Blob


1 include config.mk
3 # -- options --
5 PREFIX = /usr/local
6 SBINDIR = ${PREFIX}/sbin
7 MANDIR = ${PREFIX}/man
9 # -- build-related variables --
11 PROG = galileo
12 VERSION = 0.1
13 DISTNAME = ${PROG}-${VERSION}
15 SRCS = galileo.c config.c fcgi.c fragments.o log.c proc.c proxy.c \
16 template/tmpl.c xmalloc.c y.tab.c
18 COBJS = ${COMPATS:.c=.o}
19 OBJS = ${SRCS:.c=.o} ${COBJS}
21 MAN = ${PROG}.conf.5 ${PROG}.8
23 # -- public targets --
25 all: ${PROG}
26 .PHONY: all clean distclean install uninstall
28 clean:
29 rm -f *.[do] y.tab.* compat/*.[do] tests/*.[do] fragments.c
30 ${MAKE} -C template clean
32 distclean: clean
33 rm -f config.h config.h.old config.mk config.log config.log.old
34 ${MAKE} -C template distclean
36 install:
37 mkdir -p ${DESTDIR}${MANDIR}/man5
38 mkdir -p ${DESTDIR}${MANDIR}/man8
39 mkdir -p ${DESTDIR}${SBINDIR}
40 mkdir -p ${DESTDIR}${WWWDIR}
41 ${INSTALL_MAN} galileo.conf.5 ${DESTDIR}${MANDIR}/man5/${PROG}.conf.5
42 ${INSTALL_MAN} galileo.8 ${DESTDIR}${MANDIR}/man8/${PROG}.8
43 ${INSTALL_PROGRAM} ${PROG} ${DESTDIR}${SBINDIR}
44 ${INSTALL_DATA} galileo.css ${DESTDIR}${WWWDIR}
46 uninstall:
47 rm ${DESTDIR}${MANDIR}/man5/${PROG}.conf.5
48 rm ${DESTDIR}${MANDIR}/man8/${PROG}.8
49 rm ${DESTDIR}${SBINDIR}/${PROG}
50 rm ${DESTDIR}${WWWDIR}/galileo.css
52 # -- internal build targets --
54 ${PROG}: ${OBJS}
55 ${CC} -o $@ ${OBJS} ${LIBS} ${LDFLAGS}
57 template/template:
58 ${MAKE} -C template
60 fragments.c: template/template fragments.tmpl
61 ./template/template fragments.tmpl > $@ || rm -f $@
63 y.tab.c: parse.y
64 ${YACC} -b y parse.y
66 .c.o:
67 ${CC} ${CFLAGS} -c $< -o $@
69 # -- maintainer targets --
71 DISTFILES = Makefile \
72 README \
73 config.c \
74 configure \
75 fcgi.c \
76 fragments.c \
77 fragments.tmpl \
78 galileo.8 \
79 galileo.c \
80 galileo.conf.5 \
81 galileo.css \
82 galileo.h \
83 log.c \
84 log.h \
85 parse.y \
86 proc.c \
87 proc.h \
88 proxy.c \
89 xmalloc.c \
90 xmalloc.h \
91 y.tab.c
93 dist: ${DISTNAME}.sha256
95 ${DISTNAME}.sha256: ${DISTNAME}.tar.gz
96 sha256 ${DISTNAME}.tar.gz > $@
98 ${DISTNAME}.tar.gz: ${DISTFILES}
99 mkdir -p .dist/${DISTNAME}/
100 ${INSTALL} -m 0644 ${DISTFILES} .dist/${DISTNAME}
101 ${MAKE} -C compat DESTDIR=${PWD}/.dist/${DISTNAME}/compat dist
102 ${MAKE} -C template DESTDIR=${PWD}/.dist/${DISTNAME}/template dist
103 ${MAKE} -C tests DESTDIR=${PWD}/.dist/${DISTNAME}/tests dist
104 cd .dist/${DISTNAME} && chmod 755 configure template/configure
105 cd .dist && tar czf ../$@ ${DISTNAME}
106 rm -rf .dist/
108 .PHONY: ${DISTNAME}.tar.gz
110 # -- dependencies --
112 galileo.o: galileo.c
113 config.o: config.c
114 fcgi.o: fcgi.c
115 fragments.o: fragments.c
116 log.o: log.c
117 parse.o: parse.c
118 proc.o: proc.c
119 proxy.o: proxy.c
120 tmpl.o: template/tmpl.c
121 xmalloc.o: xmalloc.c
123 -include galileo.d
124 -include config.d
125 -include fcgi.d
126 -include fragments.d
127 -include log.d
128 -include parse.d
129 -include proc.d
130 -include proxy.d
131 -include tmpl.d
132 -include xmalloc.d