This commit was manufactured by cvs2svn to create tag
[iptables.git] / Rules.make
1 #! /usr/bin/make
2
3 all: $(SHARED_LIBS) $(EXTRAS)
4
5 experimental: $(EXTRAS_EXP)
6
7 # Have to handle extensions which no longer exist.
8 clean: $(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
13 install: all $(EXTRA_INSTALLS)
14         @if [ -f /usr/bin/iptables -a "$(BINDIR)" = "/usr/sbin" ];\
15         then echo 'Erasing iptables from old location (now /usr/sbin).';\
16         rm -f /usr/bin/iptables;\
17         fi
18
19 install-experimental: $(EXTRA_INSTALLS_EXP)
20
21 TAGS:
22         @rm -f $@
23         find . -name '*.[ch]' | xargs etags -a
24
25 dep: $(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