1#! /usr/bin/make 2 3all: $(SHARED_LIBS) $(EXTRAS) 4 5experimental: $(EXTRAS_EXP) 6 7# Have to handle extensions which no longer exist. 8clean: $(EXTRA_CLEANS) 9 rm -f $(SHARED_LIBS) $(EXTRAS) $(EXTRAS_EXP) $(SHARED_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 $(LD) -shared -o $@ $< 35 36%_sh.o : %.c 37 $(CC) $(SH_CFLAGS) -o $@ -c $< 38 39.makefirst: 40 @echo Making dependencies: please wait... 41 @touch .makefirst 42 43# This is useful for when dependencies completely screwed 44%.h:: 45 @echo Something wrong... deleting dependencies. 46 @-rm -f $(DEPFILES) $(EXTRA_DEPENDS) .makefirst 47 @[ -d $(KERNEL_DIR)/include/linux/netfilter_ipv4 ] || echo -e '\n\n Please try `make KERNEL_DIR=path-to-correct-kernel'\'.'\n\n' 48 @exit 1 49 50-include $(DEPFILES) $(EXTRA_DEPENDS) 51-include .makefirst 52