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.2
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 clean:
30 rm -f *.[do] y.tab.* compat/*.[do] tests/*.[do] fragments.c
31 ${MAKE} -C template clean
33 distclean: clean
34 rm -f config.h config.h.old config.mk config.log config.log.old
35 ${MAKE} -C template distclean
37 install:
38 mkdir -p ${DESTDIR}${MANDIR}/man5
39 mkdir -p ${DESTDIR}${MANDIR}/man8
40 mkdir -p ${DESTDIR}${SBINDIR}
41 mkdir -p ${DESTDIR}${WWWDIR}
42 ${INSTALL_MAN} galileo.conf.5 ${DESTDIR}${MANDIR}/man5/${PROG}.conf.5
43 ${INSTALL_MAN} galileo.8 ${DESTDIR}${MANDIR}/man8/${PROG}.8
44 ${INSTALL_PROGRAM} ${PROG} ${DESTDIR}${SBINDIR}
45 ${INSTALL_DATA} galileo.css ${DESTDIR}${WWWDIR}
47 uninstall:
48 rm ${DESTDIR}${MANDIR}/man5/${PROG}.conf.5
49 rm ${DESTDIR}${MANDIR}/man8/${PROG}.8
50 rm ${DESTDIR}${SBINDIR}/${PROG}
51 rm ${DESTDIR}${WWWDIR}/galileo.css
53 # -- internal build targets --
55 ${PROG}: ${OBJS}
56 ${CC} -o $@ ${OBJS} ${LIBS} ${LDFLAGS}
58 template/template:
59 ${MAKE} -C template
61 fragments.c: template/template fragments.tmpl
62 ./template/template -o $@ fragments.tmpl
64 y.tab.c: parse.y
65 ${YACC} -b y parse.y
67 .c.o:
68 ${CC} ${CFLAGS} -c $< -o $@
70 # -- maintainer targets --
72 PRIVKEY = set-PRIVKEY
73 DISTFILES = CHANGES \
74 Makefile \
75 README \
76 config.c \
77 configure \
78 fcgi.c \
79 fragments.c \
80 fragments.tmpl \
81 galileo.8 \
82 galileo.c \
83 galileo.conf.5 \
84 galileo.css \
85 galileo.h \
86 log.c \
87 log.h \
88 parse.y \
89 proc.c \
90 proc.h \
91 proxy.c \
92 xmalloc.c \
93 xmalloc.h \
94 y.tab.c
96 .PHONY: release dist
98 release: ${DISTNAME}.sha256.sig
99 dist: ${DISTNAME}.sha256
101 ${DISTNAME}.sha256.sig: ${DISTNAME}.sha256
102 signify -S -e -m ${DISTNAME}.sha256 -s ${PRIVKEY}
104 ${DISTNAME}.sha256: ${DISTNAME}.tar.gz
105 sha256 ${DISTNAME}.tar.gz > $@
107 ${DISTNAME}.tar.gz: ${DISTFILES}
108 mkdir -p .dist/${DISTNAME}/
109 ${INSTALL} -m 0644 ${DISTFILES} .dist/${DISTNAME}
110 ${MAKE} -C compat DESTDIR=${PWD}/.dist/${DISTNAME}/compat dist
111 ${MAKE} -C keys DESTDIR=${PWD}/.dist/${DISTNAME}/keys dist
112 ${MAKE} -C template DESTDIR=${PWD}/.dist/${DISTNAME}/template dist
113 ${MAKE} -C tests DESTDIR=${PWD}/.dist/${DISTNAME}/tests dist
114 cd .dist/${DISTNAME} && chmod 755 configure template/configure
115 cd .dist && tar czf ../$@ ${DISTNAME}
116 rm -rf .dist/
118 .PHONY: ${DISTNAME}.tar.gz
120 # -- dependencies --
122 -include galileo.d
123 -include config.d
124 -include fcgi.d
125 -include fragments.d
126 -include log.d
127 -include parse.d
128 -include proc.d
129 -include proxy.d
130 -include tmpl.d
131 -include xmalloc.d