1#################################################################
2#
3#	@(#) Makefile for dnssec zone key tool  (c) Mar 2005 hoz
4#
5#################################################################
6
7prefix	=	@prefix@
8mandir	=	@mandir@
9
10CC	=	@CC@
11
12PROFILE =	# -pg
13OPTIM	=	# -O3 -DNDEBUG
14
15#CFLAGS	?=	@CFLAGS@ @DEFS@ -I@top_srcdir@
16CFLAGS	+=	-g @DEFS@ -I@top_srcdir@
17CFLAGS	+=	-Wall #-DDBG
18CFLAGS	+=	-Wmissing-prototypes
19CFLAGS	+=	$(PROFILE) $(OPTIM)
20LDFLAGS	+=	$(PROFILE)
21LIBS	=	@LIBS@
22
23PROJECT =	@PACKAGE_TARNAME@
24VERSION =	@PACKAGE_VERSION@
25
26HEADER	=	dki.h misc.h domaincmp.h zconf.h config_zkt.h \
27		config.h.in strlist.h zone.h zkt.h debug.h \
28		ncparse.h log.h rollover.h nscomm.h soaserial.h \
29		zfparse.h tcap.h
30SRC_ALL	=	dki.c misc.c domaincmp.c zconf.c log.c
31OBJ_ALL	=	$(SRC_ALL:.c=.o)
32
33SRC_SIG	=	zkt-signer.c zone.c ncparse.c rollover.c \
34		nscomm.c soaserial.c
35OBJ_SIG	=	$(SRC_SIG:.c=.o)
36MAN_SIG	=	zkt-signer.8
37PROG_SIG=	zkt-signer
38
39SRC_CNF	=	zkt-conf.c zfparse.c
40OBJ_CNF	=	$(SRC_CNF:.c=.o)
41MAN_CNF	=	zkt-conf.8
42PROG_CNF=	zkt-conf
43
44# shared sources
45SRC_KLS	=	strlist.c zkt.c tcap.c
46OBJ_KLS	=	$(SRC_KLS:.c=.o)
47
48SRC_KEY	=	zkt-keyman.c
49OBJ_KEY	=	$(SRC_KEY:.c=.o) $(OBJ_KLS)
50MAN_KEY	=	zkt-keyman.8
51PROG_KEY=	zkt-keyman
52
53SRC_LS	=	zkt-ls.c
54OBJ_LS	=	$(SRC_LS:.c=.o) $(OBJ_KLS)
55MAN_LS	=	zkt-ls.8
56PROG_LS=	zkt-ls
57
58SRC_SER	=	zkt-soaserial.c
59OBJ_SER	=	$(SRC_SER:.c=.o)
60#MAN_SER	=	zkt-soaserial.8
61PROG_SER=	zkt-soaserial
62
63SRC_PRG	=	$(SRC_SIG) $(SRC_CNF) $(SRC_LS) $(SRC_SER) $(SRC_KEY)
64OBJ_PRG	=	$(SRC_PRG:.c=.o)
65PROG_PRG=	$(PROG_SIG) $(PROG_CNF) $(PROG_LS) $(PROG_SER) $(PROG_KEY)
66
67MAN_ALL	=	$(MAN_SIG) $(MAN_LS) $(MAN_CNF) $(MAN_KEY)
68OTHER	=	README README.logging TODO LICENSE CHANGELOG tags Makefile.in \
69		configure distribute.sh examples
70SAVE	=	$(HEADER) $(SRC_ALL) $(SRC_SIG) $(SRC_CNF) $(SRC_KLS) \
71		$(SRC_LS) $(SRC_KEY) $(SRC_SER) $(OTHER) \
72		man configure.ac config.h.in doc
73#MNTSAVE	=	$(SAVE) configure.ac config.h.in doc
74
75
76all:	 $(PROG_CNF) $(PROG_LS) $(PROG_SIG) $(PROG_SER) $(PROG_KEY)
77
78macos:		## for MAC OS (depreciated)
79macos:
80	$(MAKE) CFLAGS="$(CFLAGS) -D HAS_UTYPES=0" all
81
82solaris:	## for solaris (depreciated)
83solaris:
84	@$(MAKE) CFLAGS="$(CFLAGS) -D HAVE_GETOPT_LONG=0" all
85
86linux:		## for linux (default)
87linux:
88	@$(MAKE) all
89
90$(PROG_SIG):	$(OBJ_SIG) $(OBJ_ALL) Makefile
91	$(CC) $(LDFLAGS) $(OBJ_SIG) $(OBJ_ALL) -o $(PROG_SIG)
92
93$(PROG_CNF):	$(OBJ_CNF) $(OBJ_ALL) Makefile
94	$(CC) $(LDFLAGS) $(OBJ_CNF) $(OBJ_ALL) -o $(PROG_CNF)
95
96$(PROG_KEY):	$(OBJ_KEY) $(OBJ_ALL) Makefile
97	$(CC) $(LDFLAGS) $(LIBS) $(OBJ_KEY) $(OBJ_ALL) -o $(PROG_KEY)
98
99$(PROG_LS):	$(OBJ_LS) $(OBJ_ALL) Makefile
100	$(CC) $(LDFLAGS) $(LIBS) $(OBJ_LS) $(OBJ_ALL) -o $(PROG_LS)
101
102$(PROG_SER):	$(OBJ_SER) Makefile
103	$(CC) $(LDFLAGS) $(OBJ_SER) -o $(PROG_SER)
104
105install:	## install binaries in prefix/bin
106install:	$(PROG_PRG)
107		test -d $(prefix)/bin || mkdir -p $(prefix)/bin
108		cp $(PROG_PRG) $(prefix)/bin/
109
110install-man:	## install man pages in mandir
111install-man:
112	test -d $(mandir)/man8/ || mkdir -p $(mandir)/man8/
113	cp -p man/$(MAN_LS) man/$(MAN_SIG) man/$(MAN_KEY) man/$(MAN_CNF) $(mandir)/man8/
114
115
116
117tags:		## create tags file
118#tags:	$(SRC_ALL) $(SRC_PRG)
119tags:	$(SRC_ALL) $(SRC_SIG) $(SRC_CNF) $(SRC_KEY) $(SRC_LS) $(SRC_SER) $(SRC_KLS)
120	ctags $(SRC_ALL) $(SRC_SIG) $(SRC_CNF) $(SRC_KEY) $(SRC_LS) $(SRC_SER) $(SRC_KLS)
121
122clean:		## remove objectfiles and binaries
123clean:
124	-rm -f $(OBJ_PRG) $(OBJ_ALL) $(PROG_PRG)
125
126distclean:	## remove objectfiles, binaries and distribution files
127distclean:	clean
128	-rm -f Makefile config.h config.log config.status config.cache \
129	$(PROJECT)-$(VERSION).tar.gz
130
131tar:		## create tar file for distribution
132tar:	$(PROJECT)-$(VERSION).tar.gz
133
134configure:	## create configure script
135configure:	configure.ac Makefile.in
136	autoconf && autoheader
137
138man:	man/$(MAN_KEY).html man/$(MAN_KEY).pdf \
139	man/$(MAN_SIG).html man/$(MAN_SIG).pdf \
140	man/$(MAN_LS).html man/$(MAN_LS).pdf \
141	man/$(MAN_CNF).html man/$(MAN_CNF).pdf
142
143man/$(MAN_KEY).html: man/$(MAN_KEY)
144	groff -Thtml -man -mhtml man/$(MAN_KEY) > man/$(MAN_KEY).html
145man/$(MAN_KEY).pdf: man/$(MAN_KEY)
146	groff -Tps -man man/$(MAN_KEY) | ps2pdf - man/$(MAN_KEY).pdf
147man/$(MAN_LS).html: man/$(MAN_LS)
148	groff -Thtml -man -mhtml man/$(MAN_LS) > man/$(MAN_LS).html
149man/$(MAN_LS).pdf: man/$(MAN_LS)
150	groff -Tps -man man/$(MAN_LS) | ps2pdf - man/$(MAN_LS).pdf
151man/$(MAN_SIG).html: man/$(MAN_SIG)
152	groff -Thtml -man -mhtml man/$(MAN_SIG) > man/$(MAN_SIG).html
153man/$(MAN_SIG).pdf: man/$(MAN_SIG)
154	groff -Tps -man man/$(MAN_SIG) | ps2pdf - man/$(MAN_SIG).pdf
155man/$(MAN_CNF).html: man/$(MAN_CNF)
156	groff -Thtml -man -mhtml man/$(MAN_CNF) > man/$(MAN_CNF).html
157man/$(MAN_CNF).pdf: man/$(MAN_CNF)
158	groff -Tps -man man/$(MAN_CNF) | ps2pdf - man/$(MAN_CNF).pdf
159
160# generation of tar file out of the git archive
161# (use v$(VERSION) instead of HEAD if the tar file should depend on a tagged revision)
162$(PROJECT)-$(VERSION).tar.gz:   $(SAVE)
163	@test "`git tag -l $(VERSION)`" != $(VERSION) && echo "no tag $(VERSION) found in repository" && exit
164        git archive --format=tar --prefix="$(PROJECT)-$(VERSION)/" $(VERSION) | \
165        gzip  > $(PROJECT)-$(VERSION).tar.gz
166        # git archive --format=tar --prefix="$(PROJECT)-$(VERSION)/" HEAD | \
167        # cat > $(PROJECT)-$(VERSION).tar
168
169depend:
170	$(CC) -MM $(CFLAGS) $(SRC_PRG) $(SRC_ALL)
171
172help:
173	@grep "^.*:[ 	]*##" Makefile
174
175## all dependicies
176#:r !make depend
177#gcc -MM -g -DHAVE_CONFIG_H -I. -Wall  -Wmissing-prototypes   zkt-signer.c zone.c ncparse.c rollover.c nscomm.c soaserial.c zkt-conf.c zfparse.c zkt-ls.c zkt-soaserial.c zkt-keyman.c dki.c misc.c domaincmp.c zconf.c log.c
178zkt-signer.o: zkt-signer.c config.h config_zkt.h zconf.h debug.h misc.h \
179  ncparse.h nscomm.h zone.h dki.h log.h soaserial.h rollover.h
180zone.o: zone.c config.h config_zkt.h debug.h domaincmp.h misc.h zconf.h \
181  dki.h zone.h
182ncparse.o: ncparse.c debug.h misc.h zconf.h log.h ncparse.h
183rollover.o: rollover.c config.h config_zkt.h zconf.h debug.h misc.h \
184  zone.h dki.h log.h rollover.h
185nscomm.o: nscomm.c config.h config_zkt.h zconf.h nscomm.h zone.h dki.h \
186  log.h misc.h debug.h
187soaserial.o: soaserial.c config.h config_zkt.h zconf.h log.h debug.h \
188  soaserial.h
189zkt-conf.o: zkt-conf.c config.h config_zkt.h debug.h misc.h zconf.h \
190  zfparse.h
191zfparse.o: zfparse.c config.h config_zkt.h zconf.h log.h debug.h \
192  zfparse.h
193zkt-ls.o: zkt-ls.c config.h config_zkt.h debug.h misc.h zconf.h strlist.h \
194  dki.h tcap.h zkt.h
195zkt-soaserial.o: zkt-soaserial.c config.h config_zkt.h
196zkt-keyman.o: zkt-keyman.c config.h config_zkt.h debug.h misc.h zconf.h \
197  strlist.h dki.h zkt.h
198dki.o: dki.c config.h config_zkt.h debug.h domaincmp.h misc.h zconf.h \
199  dki.h
200misc.o: misc.c config.h config_zkt.h zconf.h log.h debug.h misc.h
201domaincmp.o: domaincmp.c domaincmp.h
202zconf.o: zconf.c config.h config_zkt.h debug.h misc.h zconf.h dki.h
203log.o: log.c config.h config_zkt.h misc.h zconf.h debug.h log.h
204