1 #
2 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
3 #
4 # Copyright 2013 Olaf Wintermann. All rights reserved.
5 #
6 # Redistribution and use in source and binary forms, with or without
7 # modification, are permitted provided that the following conditions are met:
8 #
9 # 1. Redistributions of source code must retain the above copyright
10 # notice, this list of conditions and the following disclaimer.
11 #
12 # 2. Redistributions in binary form must reproduce the above copyright
13 # notice, this list of conditions and the following disclaimer in the
14 # documentation and/or other materials provided with the distribution.
15 #
16 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
17 # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18 # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19 # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
20 # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
21 # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
22 # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
23 # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
24 # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
25 # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
26 # POSSIBILITY OF SUCH DAMAGE.
27 #
28
29 BUILD_ROOT = ../..
30 include $(BUILD_ROOT)/config.mk
31
32 OBJ_DIR = $(BUILD_ROOT)/build/
33
34 MAIN_TARGET = $(BUILD_ROOT)/build/bin/webservd
35
36 LIB_WSCFG = $(BUILD_ROOT)/build/lib/libwscfg$(LIB_EXT)
37
38 TEST_TARGET = $(BUILD_ROOT)/build/bin/wstest
39
40 all: preparation $(MAIN_TARGET) $(LIB_WSCFG) $(PLUGINS) $(TEST_TARGET)
41
42 include util/objs.mk
43 include safs/objs.mk
44 include webdav/objs.mk
45 include daemon/objs.mk
46 include config/objs.mk
47 include admin/objs.mk
48 include test/objs.mk
49
50 include util/Makefile
51 include safs/Makefile
52 include webdav/Makefile
53 include daemon/Makefile
54 include config/Makefile
55 include admin/Makefile
56 include test/Makefile
57
58 MAINOBJS = $(UTILOBJS) $(SAFOBJS) $(DAVOBJS) $(DAEMONOBJS) $(CONFOBJS) $(ADMINOBJS)
59
60 TESTOBJS += $(MAINOBJS)
61
62 OBJ_DIRS = daemon safs ucx util webdav config admin plugins test
63 MK_OBJ_DIRS = $(OBJ_DIRS:%=$(OBJ_DIR)server/%)
64
65 WS_CFLAGS = -I../ucx/
66
67 LDFLAGS += -lucx
68
69 preparation: $(MK_OBJ_DIRS)
70
71 $(MK_OBJ_DIRS):
72 mkdir -p $@
73
74 $(MAIN_TARGET): preparation $(MAINOBJS) $(DAEMON_STARTOBJ) $(LIB_WSCFG)
75 $(CC) -o $(MAIN_TARGET) $(MAINOBJS) $(DAEMON_STARTOBJ) -L$(BUILD_ROOT)/build/lib $(LDFLAGS) $(RPATH_WS_LIB_FLAG)
76
77 $(LIB_WSCFG): $(CONFOBJS)
78 $(CC) $(SHLIB_LDFLAGS) -o $@ $(CONFOBJS) -L$(BUILD_ROOT)/build/lib -lucx
79
80
81 $(TEST_TARGET): $(TESTOBJS) $(PLUGINS)
82 $(CC) -o $(TEST_TARGET) $(TESTOBJS) -L$(BUILD_ROOT)/build/lib $(LDFLAGS) $(RPATH_WS_LIB_FLAG) $(TEST_PLUGIN_LDFLAGS)
83
84
85 $(PLUGINS): $(MAIN_TARGET) FORCE
86 cd plugins/$@/; $(MAKE) all
87
88 FORCE:
89
90