1#
2# $Id: Makefile,v 1.2 2008/11/20 21:38:53 Exp $
3#
4
5srcdir=	.
6CFLAGS=	-I../shared -O2 -I$(srcdir) -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DYYTEXT_POINTER=1 -DHAVE_LIBCRYPTO=1 -DHAVE_LIBRESOLV=1 -DHAVE_GETADDRINFO=1 -DHAVE_GETNAMEINFO=1 -DHAVE_IF_NAMETOINDEX=1 -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_FCNTL_H=1 -DHAVE_SYS_IOCTL_H=1 -DHAVE_SYS_TIME_H=1 -DHAVE_SYSLOG_H=1 -DHAVE_UNISTD_H=1 -DHAVE_IFADDRS_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_STRUCT_TM_TM_ZONE=1 -DHAVE_TM_ZONE=1 -DGETPGRP_VOID=1 -DSETPGRP_VOID=1 -DRETSIGTYPE=void -DHAVE_MKTIME=1 -DHAVE_SELECT=1 -DHAVE_SOCKET=1 -DHAVE_ANSI_FUNC=1 -DHAVE_STDARG_H=1 
7LDFLAGS=
8LIBOBJS= ifaddrs$U.o
9LIBS=	-lresolv -lcrypto 
10CC=	gcc
11YACC=	bison -y
12LEX=	flex
13TARGET=	dhcp6c dhcp6s dhcp6r
14DESTDIR=
15
16INSTALL=/usr/bin/install -c
17INSTALL_PROGRAM=${INSTALL}
18INSTALL_DATA=${INSTALL} -m 644
19prefix=	/usr/local
20exec_prefix=	${prefix}
21bindir=	${exec_prefix}/bin
22sbindir=${exec_prefix}/sbin
23mandir=	${prefix}/man
24initdir=/etc/rc.d/init.d
25etc=/etc
26sysconfigdir=/etc/sysconfig
27CHKCONFIG=/sbin/chkconfig
28
29COMMONGENSRCS=lease_token.c
30CLIENTGENSRCS=client6_parse.c client6_token.c dad_token.c ra_token.c \
31		resolv_token.c radvd_token.c
32SERVERGENSRCS=server6_parse.c server6_token.c 
33CLIENTOBJS=	dhcp6c.o common.o config.o timer.o client6_addr.o \
34		hash.o lease.o netlink.o\
35	$(CLIENTGENSRCS:%.c=%.o) $(COMMONGENSRCS:%.c=%.o)
36SERVOBJS=	dhcp6s.o common.o timer.o hash.o lease.o \
37		server6_conf.o server6_addr.o \
38	$(SERVERGENSRCS:%.c=%.o) $(COMMONGENSRCS:%.c=%.o)
39RELAYOBJS=	dhcp6r.o relay6_database.o relay6_parser.o relay6_socket.o
40
41CLEANFILES=cf.tab.h cp.tab.h sf.tab.h dad_token.c ra_token.c client6_token.c client6_parse.c \
42		server6_parse.c server6_token.c lease_token.c resolv_token.c radvd_token.c
43
44all:	$(TARGET) 
45dhcp6c:	$(CLIENTOBJS) $(LIBOBJS)
46	$(CC) $(LDFLAGS) -o dhcp6c $(CLIENTOBJS) $(LIBOBJS) $(LIBS) 
47dhcp6s:	$(SERVOBJS) $(LIBOBJS)
48	$(CC) $(LDFLAGS) -o dhcp6s $(SERVOBJS) $(LIBOBJS) $(LIBS) 
49dhcp6r: $(RELAYOBJS) $(LIBOBJS)
50	$(CC) $(LDFLAGS) -o dhcp6r $(RELAYOBJS)
51
52dad_token.c: dad_token.l
53	$(LEX) -Pifyy dad_token.l
54	mv lex.ifyy.c $@
55
56ra_token.c: ra_token.l
57	$(LEX) -Prayy ra_token.l
58	mv lex.rayy.c $@
59
60resolv_token.c: resolv_token.l
61	$(LEX) -Prvyy resolv_token.l
62	mv lex.rvyy.c $@
63
64radvd_token.c: radvd_token.l
65	$(LEX) -Prdyy radvd_token.l
66	mv lex.rdyy.c $@
67
68client6_parse.c cp.tab.h: client6_parse.y
69	$(YACC) -d -p cpyy client6_parse.y
70	mv y.tab.h cp.tab.h
71	mv y.tab.c client6_parse.c
72
73client6_token.c: client6_token.l
74	$(LEX) -Pcpyy client6_token.l
75	mv lex.cpyy.c $@	
76
77lease_token.c: lease_token.l
78	$(LEX) -Plyy lease_token.l
79	mv lex.lyy.c $@
80
81server6_parse.c sf.tab.h: server6_parse.y
82	$(YACC) -d -p sfyy server6_parse.y
83	mv y.tab.h sf.tab.h
84	mv y.tab.c server6_parse.c 
85
86server6_token.c: server6_token.l sf.tab.h
87	$(LEX) -Psfyy server6_token.l
88	mv lex.sfyy.c $@
89
90install::
91	$(INSTALL) -d $(DESTDIR)$(sbindir)
92	$(INSTALL_PROGRAM) -s -o bin -g bin $(TARGET) $(DESTDIR)$(sbindir)
93	$(INSTALL) -d $(DESTDIR)$(mandir)/man8 $(DESTDIR)$(mandir)/man5
94	$(INSTALL_DATA) -o bin -g bin dhcp6c.8 $(DESTDIR)$(mandir)/man8/
95	$(INSTALL_DATA) -o bin -g bin dhcp6s.8 $(DESTDIR)$(mandir)/man8/
96	$(INSTALL_DATA) -o bin -g bin dhcp6r.8 $(DESTDIR)$(mandir)/man8/
97	$(INSTALL_DATA) -o bin -g bin dhcp6c.conf.5 $(DESTDIR)$(mandir)/man5/
98	$(INSTALL_DATA) -o bin -g bin dhcp6s.conf.5 $(DESTDIR)$(mandir)/man5/
99
100rh_install:: install
101	$(INSTALL) -d $(initdir)
102	$(INSTALL_PROGRAM) -o root -g root dhcp6s.sh $(initdir)/dhcp6s
103	$(INSTALL_PROGRAM) -o root -g root dhcp6c.sh $(initdir)/dhcp6c
104	$(CHKCONFIG) --add dhcp6s
105	$(CHKCONFIG) --add dhcp6c
106
107uninstall::
108	for progs in $(TARGET); do \
109		/bin/rm -f $(sbindir)/$$progs; \
110	done
111	/bin/rm -f $(mandir)/man8/dhcp6c.8
112	/bin/rm -f $(mandir)/man8/dhcp6s.8
113	/bin/rm -f $(mandir)/man5/dhcp6c.conf.5
114	/bin/rm -f $(mandir)/man5/dhcp6s.conf.5
115
116rh_uninstall:: uninstall
117	$(CHKCONFIG) --del dhcp6s
118	$(CHKCONFIG) --del dhcp6c
119	/bin/rm -f $(initdir)/dhcp6s
120	/bin/rm -f $(initdir)/dhcp6c
121
122includes::
123
124clean::
125	/bin/rm -f *.o $(TARGET) $(CLEANFILES) $(GENSRCS)
126
127distclean:: clean
128	/bin/rm -f config.cache config.log config.status .depend 
129
130depend:
131	mkdep ${CFLAGS:M-[ID]*} $(srcdir)/*.c
132