UNIXworkcode

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