1#! /usr/bin/make 2 3all: $(SHARED_LIBS) $(SHARED_SE_LIBS) $(EXTRAS) 4 5experimental: $(EXTRAS_EXP) 6 7# Have to handle extensions which no longer exist. 8clean: $(EXTRA_CLEANS) 9 rm -f $(SHARED_LIBS) $(SHARED_SE_LIBS) $(EXTRAS) $(EXTRAS_EXP) $(SHARED_LIBS:%.so=%_sh.o) $(SHARED_SE_LIBS:%.so=%_sh.o) 10 rm -f extensions/initext.c extensions/initext6.c 11 @find . -name '*.[ao]' -o -name '*.so' | xargs rm -f 12 13install: all $(EXTRA_INSTALLS) 14 @if [ -f /usr/local/bin/iptables -a "$(BINDIR)" = "/usr/local/sbin" ];\ 15 then echo 'Erasing iptables from old location (now /usr/local/sbin).';\ 16 rm -f /usr/local/bin/iptables;\ 17 fi 18 19install-experimental: $(EXTRA_INSTALLS_EXP) 20 21TAGS: 22 @rm -f $@ 23 find . -name '*.[ch]' | xargs etags -a 24 25dep: $(DEPFILES) $(EXTRA_DEPENDS) 26 @echo Dependencies will be generated on next make. 27 rm -f $(DEPFILES) $(EXTRA_DEPENDS) .makefirst 28 29$(SHARED_LIBS:%.so=%.d): %.d: %.c 30 @-$(CC) -M -MG $(CFLAGS) $< | \ 31 sed -e 's@^.*\.o:@$*.d $*_sh.o:@' > $@ 32 33$(SHARED_LIBS): %.so : %_sh.o 34 $(CC) -shared $(EXT_LDFLAGS) -o $@ $< 35 36$(SHARED_SE_LIBS:%.so=%.d): %.d: %.c 37 @-$(CC) -M -MG $(CFLAGS) $< | \ 38 sed -e 's@^.*\.o:@$*.d $*_sh.o:@' > $@ 39 40$(SHARED_SE_LIBS): %.so : %_sh.o 41 $(LD) -shared $(EXT_LDFLAGS) -o $@ $< $(LDLIBS) 42 43%_sh.o : %.c 44 $(CC) $(SH_CFLAGS) -o $@ -c $< 45 46.makefirst: 47 @echo Making dependencies: please wait... 48 @touch .makefirst 49 50# This is useful for when dependencies completely screwed 51%.h:: 52 @echo "Unable to resolve dependency on $@. Try 'make clean'." 53 @-rm -f $(DEPFILES) $(EXTRA_DEPENDS) .makefirst 54 @[ -d $(KERNEL_DIR)/include/linux/netfilter_ipv4 ] || echo -e '\n\n Please try `make KERNEL_DIR=path-to-correct-kernel'\'.'\n\n' 55 @exit 1 56 57-include $(DEPFILES) $(EXTRA_DEPENDS) 58-include .makefirst 59