Blob


1 include config.mk
3 # -- options --
5 PREFIX = /usr/local
6 SBINDIR = ${PREFIX}/sbin
7 MANDIR = ${PREFIX}/man
8 WWWDIR = /var/www/htdocs
10 # -- build-related variables --
12 PROG = galileo
13 VERSION = 0.4
14 DISTNAME = ${PROG}-${VERSION}
16 SRCS = galileo.c config.c fcgi.c fragments.c log.c proc.c proxy.c \
17 template/tmpl.c xmalloc.c y.tab.c
19 COBJS = ${COMPATS:.c=.o}
20 OBJS = ${SRCS:.c=.o} ${COBJS}
22 MAN = ${PROG}.conf.5 ${PROG}.8
24 # -- public targets --
26 all: ${PROG}
27 .PHONY: all clean distclean install uninstall
29 tags: ${SRCS}
30 ctags ${SRCS}
32 clean:
33 rm -f *.[do] y.tab.* compat/*.[do] tests/*.[do] fragments.c
34 ${MAKE} -C template clean
36 distclean: clean
37 rm -f config.h config.h.old config.mk config.log config.log.old
38 ${MAKE} -C template distclean
40 install:
41 mkdir -p ${DESTDIR}${MANDIR}/man5
42 mkdir -p ${DESTDIR}${MANDIR}/man8
43 mkdir -p ${DESTDIR}${SBINDIR}
44 mkdir -p ${DESTDIR}${WWWDIR}
45 ${INSTALL_MAN} galileo.conf.5 ${DESTDIR}${MANDIR}/man5/${PROG}.conf.5
46 ${INSTALL_MAN} galileo.8 ${DESTDIR}${MANDIR}/man8/${PROG}.8
47 ${INSTALL_PROGRAM} ${PROG} ${DESTDIR}${SBINDIR}
48 ${INSTALL_DATA} galileo.css ${DESTDIR}${WWWDIR}
50 uninstall:
51 rm ${DESTDIR}${MANDIR}/man5/${PROG}.conf.5
52 rm ${DESTDIR}${MANDIR}/man8/${PROG}.8
53 rm ${DESTDIR}${SBINDIR}/${PROG}
54 rm ${DESTDIR}${WWWDIR}/galileo.css
56 # -- internal build targets --
58 ${PROG}: ${OBJS}
59 ${CC} -o $@ ${OBJS} ${LIBS} ${LDFLAGS}
61 fragments.c: fragments.tmpl
62 ${MAKE} -C template
63 ./template/template -o $@ fragments.tmpl
65 y.tab.c: parse.y
66 ${YACC} -b y parse.y
68 .c.o:
69 ${CC} ${CFLAGS} -c $< -o $@
71 # -- maintainer targets --
73 PRIVKEY = missing-PRIVKEY
74 DISTFILES = CHANGES \
75 Makefile \
76 README \
77 config.c \
78 configure \
79 fcgi.c \
80 fragments.c \
81 fragments.tmpl \
82 galileo.8 \
83 galileo.c \
84 galileo.conf.5 \
85 galileo.css \
86 galileo.h \
87 log.c \
88 log.h \
89 parse.y \
90 proc.c \
91 proc.h \
92 proxy.c \
93 xmalloc.c \
94 xmalloc.h \
95 y.tab.c
97 .PHONY: release dist
99 release:
100 sed -i -e '/^RELEASE=/s/no/yes/' configure
101 ${MAKE} ${DISTNAME}.sha256.sig
102 sed -i -e '/^RELEASE=/s/yes/no/' configure
104 dist: ${DISTNAME}.sha256
106 ${DISTNAME}.sha256.sig: ${DISTNAME}.sha256
107 signify -S -e -m ${DISTNAME}.sha256 -s ${PRIVKEY}
109 ${DISTNAME}.sha256: ${DISTNAME}.tar.gz
110 sha256 ${DISTNAME}.tar.gz > $@
112 ${DISTNAME}.tar.gz: ${DISTFILES}
113 mkdir -p .dist/${DISTNAME}/
114 ${INSTALL} -m 0644 ${DISTFILES} .dist/${DISTNAME}
115 ${MAKE} -C compat DESTDIR=${PWD}/.dist/${DISTNAME}/compat dist
116 ${MAKE} -C keys DESTDIR=${PWD}/.dist/${DISTNAME}/keys dist
117 ${MAKE} -C template DESTDIR=${PWD}/.dist/${DISTNAME}/template dist
118 ${MAKE} -C tests DESTDIR=${PWD}/.dist/${DISTNAME}/tests dist
119 cd .dist/${DISTNAME} && chmod 755 configure template/configure
120 cd .dist && tar czf ../$@ ${DISTNAME}
121 rm -rf .dist/
123 .PHONY: ${DISTNAME}.tar.gz
125 # -- dependencies --
127 -include config.d
128 -include fcgi.d
129 -include fragments.d
130 -include galileo.d
131 -include log.d
132 -include proc.d
133 -include proxy.d
134 -include template/tmpl.d
135 -include xmalloc.d
136 -include y.tab.d