]> git.proxmox.com Git - ifupdown-pve.git/blob - Makefile
Squashed 'src/' content from commit c732260
[ifupdown-pve.git] / Makefile
1 VERSION ?= 0.8
2 CFLAGS ?= -Wall -W -Wno-unused-parameter -g -O2
3 ARCH := $(shell dpkg-architecture -qDEB_HOST_ARCH_OS)
4
5 BASEDIR ?= $(DESTDIR)
6
7 CFLAGS += -std=c99 -D_DEFAULT_SOURCE
8 CFLAGS += -D'IFUPDOWN_VERSION="$(VERSION)"'
9
10 DEFNFILES := inet.defn ipx.defn inet6.defn can.defn
11
12 OBJ := main.o addrfam.o execute.o config.o \
13 $(patsubst %.defn,%.o,$(DEFNFILES)) archcommon.o arch$(ARCH).o meta.o link.o
14
15 MAN := $(patsubst %.defn,%.man,$(DEFNFILES))
16
17 DEFNFILES += meta.defn link.defn
18
19 all : ifup ifdown ifquery ifup.8 ifdown.8 ifquery.8 interfaces.5
20
21 .PHONY : all install clean distclean check
22 .SECONDARY: link.c ipx.c can.c meta.c inet6.c inet.c
23
24 install :
25 install -m 0755 -d ${BASEDIR}/sbin
26 install -m 0755 ifup ${BASEDIR}/sbin
27 ln -s /sbin/ifup ${BASEDIR}/sbin/ifdown
28 ln -s /sbin/ifup ${BASEDIR}/sbin/ifquery
29 install -D -m 0755 settle-dad.sh $(BASEDIR)/lib/ifupdown/settle-dad.sh
30 install -D -m 0755 wait-for-ll6.sh $(BASEDIR)/lib/ifupdown/wait-for-ll6.sh
31 install -D -m 0755 wait-online.sh $(BASEDIR)/lib/ifupdown/wait-online.sh
32
33 clean :
34 rm -f *.o $(patsubst %.defn,%.c,$(DEFNFILES)) *~
35 rm -f $(patsubst %.defn,%.man,$(DEFNFILES))
36 rm -f ifup ifdown ifquery interfaces.5 ifdown.8 ifquery.8
37 -rm -f ./tests/*/*-res*
38 -rm -rf ./tests/*/state.*
39
40 distclean : clean
41
42 ifup: $(OBJ)
43 $(CC) $(CFLAGS) $^ $(LDFLAGS) $(OUTPUT_OPTION)
44
45 ifdown: ifup
46 ln -sf ifup ifdown
47
48 ifquery: ifup
49 ln -sf ifup ifquery
50
51 check: ifup ifdown
52 @echo running ./tests/testbuild-$(ARCH)
53 @if ! exec ./tests/testbuild-$(ARCH); then \
54 echo '=================================================='; \
55 echo 'AUTOMATIC TESTS FAILED -- Something built wrong or'; \
56 echo 'there is a bug in the code!!! Either way something'; \
57 echo 'is completely screwed up!!! File a bug!'; \
58 echo ''; \
59 echo 'Aborting build.'; \
60 echo '=================================================='; \
61 exit 1; \
62 fi
63
64 interfaces.5: interfaces.5.pre $(MAN)
65 sed $(foreach man,$(MAN),-e '/^##ADDRESSFAM##$$/r $(man)') \
66 -e '/^##ADDRESSFAM##$$/d' < $< > $@
67
68 ifdown.8 ifquery.8: ifup.8
69 ln -sf $< $@
70
71 %.5.ps: %.5
72 groff -mandoc -Tps $< > $@
73
74 %.8.ps: %.8
75 groff -mandoc -Tps $< > $@
76
77 %.c : %.defn defn2c.pl
78 ./defn2c.pl $< > $@
79
80 %.man: %.defn defn2man.pl
81 ./defn2man.pl $< > $@