initial capture of my stuff
[rrq/thttpd.git] / Makefile.in
1 # Makefile.in for thttpd
2 #
3 # Copyright © 1995,1998 by Jef Poskanzer <jef@mail.acme.com>.
4 # All rights reserved.
5 #
6 # Redistribution and use in source and binary forms, with or without
7 # modification, are permitted provided that the following conditions
8 # are met:
9 # 1. Redistributions of source code must retain the above copyright
10 #    notice, this list of conditions and the following disclaimer.
11 # 2. Redistributions in binary form must reproduce the above copyright
12 #    notice, this list of conditions and the following disclaimer in the
13 #    documentation and/or other materials provided with the distribution.
14
15 # THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
16 # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17 # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18 # ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
19 # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
20 # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
21 # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
22 # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
23 # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
24 # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
25 # SUCH DAMAGE.
26
27 # Various configurable paths (remember to edit Makefile.in, not Makefile)
28
29 # Top level hierarchy.
30 prefix = @prefix@
31 exec_prefix = @exec_prefix@
32 # Pathname of directory to install the binary.
33 BINDIR = @sbindir@
34 # Pathname of directory to install the man page.
35 MANDIR = @mandir@
36 # Pathname of directory to install the CGI programs.
37 WEBDIR = $(prefix)/www
38
39 # CONFIGURE: The group that the web directory belongs to.  This is so that
40 # the makeweb program can be installed set-group-id to that group, and make
41 # subdirectories.  If you're not going to use makeweb, ignore this.
42 WEBGROUP =      www
43
44 # CONFIGURE: Directory for CGI executables.
45 CGIBINDIR =     $(WEBDIR)/cgi-bin
46
47 # You shouldn't need to edit anything below here.
48
49 CC =            @CC@
50 CCOPT =         @V_CCOPT@
51 DEFS =          @DEFS@
52 INCLS =         -I.
53 CFLAGS =        $(CCOPT) $(DEFS) $(INCLS)
54 LDFLAGS =       @LDFLAGS@
55 LIBS =          @LIBS@
56 NETLIBS =       @V_NETLIBS@
57 INSTALL =       @INSTALL@
58
59 @SET_MAKE@
60
61 .c.o:
62         @rm -f $@
63         $(CC) $(CFLAGS) -c $*.c
64
65 SRC =           thttpd.c libhttpd.c fdwatch.c mmc.c timers.c match.c tdate_parse.c
66
67 OBJ =           $(SRC:.c=.o) @LIBOBJS@
68
69 ALL =           thttpd
70
71 GENHDR =        mime_encodings.h mime_types.h
72
73 CLEANFILES =    $(ALL) $(OBJ) $(GENSRC) $(GENHDR)
74
75 #SUBDIRS =      cgi-src extras
76
77 all:            this subdirs
78 this:           $(ALL)
79
80 thttpd: $(OBJ)
81         @rm -f $@
82         $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(OBJ) $(LIBS) $(NETLIBS)
83
84 mime_encodings.h:       mime_encodings.txt
85         rm -f mime_encodings.h
86         sed < mime_encodings.txt > mime_encodings.h \
87           -e 's/#.*//' -e 's/[  ]*$$//' -e '/^$$/d' \
88           -e 's/[       ][      ]*/", 0, "/' -e 's/^/{ "/' -e 's/$$/", 0 },/'
89
90 mime_types.h:   mime_types.txt
91         rm -f mime_types.h
92         sed < mime_types.txt > mime_types.h \
93           -e 's/#.*//' -e 's/[  ]*$$//' -e '/^$$/d' \
94           -e 's/[       ][      ]*/", 0, "/' -e 's/^/{ "/' -e 's/$$/", 0 },/'
95
96
97 subdirs:
98         for i in $(SUBDIRS) ; do ( \
99             cd $$i ; \
100             pwd ; \
101             $(MAKE) $(MFLAGS) \
102                 WEBDIR=$(WEBDIR) \
103                 CGIBINDIR=$(CGIBINDIR) \
104                 MANDIR=$(MANDIR) \
105                 WEBGROUP=$(WEBGROUP) \
106         ) ; done
107
108
109 install:        installthis install-man # installsubdirs
110
111 installthis:
112         -mkdir -p $(DESTDIR)$(BINDIR)
113         $(INSTALL) -m 555 -o bin -g bin thttpd $(DESTDIR)$(BINDIR)
114
115 install-man:
116         -mkdir -p $(DESTDIR)$(MANDIR)/man8
117         $(INSTALL) -m 444 -o bin -g bin thttpd.8 $(DESTDIR)$(MANDIR)/man8
118
119 installsubdirs:
120         for i in $(SUBDIRS) ; do ( \
121             cd $$i ; \
122             pwd ; \
123             $(MAKE) $(MFLAGS) \
124                 WEBDIR=$(WEBDIR) \
125                 CGIBINDIR=$(CGIBINDIR) \
126                 MANDIR=$(MANDIR) \
127                 WEBGROUP=$(WEBGROUP) \
128                 install \
129         ) ; done
130
131
132 clean:          cleansubdirs
133         rm -f $(CLEANFILES)
134
135 distclean:      distcleansubdirs
136         rm -f $(CLEANFILES) Makefile config.cache config.log config.status tags
137
138 cleansubdirs:
139         for i in $(SUBDIRS) ; do ( \
140             cd $$i ; \
141             pwd ; \
142             $(MAKE) $(MFLAGS) clean \
143         ) ; done
144
145 distcleansubdirs:
146         for i in $(SUBDIRS) ; do ( \
147             cd $$i ; \
148             pwd ; \
149             $(MAKE) $(MFLAGS) distclean \
150         ) ; done
151
152 tags:
153         ctags -wtd *.c *.h
154
155 tar:
156         @name=`sed -n -e '/SERVER_SOFTWARE/!d' -e 's,.*thttpd/,thttpd-,' -e 's, .*,,p' version.h` ; \
157           rm -rf $$name ; \
158           mkdir $$name ; \
159           tar cf - `cat FILES` | ( cd $$name ; tar xfBp - ) ; \
160           chmod 644 $$name/Makefile.in $$name/config.h $$name/mime_encodings.txt $$name/mime_types.txt ; \
161           chmod 755 $$name/cgi-bin $$name/cgi-src $$name/contrib $$name/contrib/redhat-rpm $$name/extras $$name/scripts ; \
162           tar cf $$name.tar $$name ; \
163           rm -rf $$name ; \
164           gzip $$name.tar
165
166 thttpd.o:       config.h version.h libhttpd.h fdwatch.h mmc.h timers.h match.h
167 libhttpd.o:     config.h version.h libhttpd.h mime_encodings.h mime_types.h \
168                 mmc.h timers.h match.h tdate_parse.h
169 fdwatch.o:      fdwatch.h
170 mmc.o:          mmc.h libhttpd.h
171 timers.o:       timers.h
172 match.o:        match.h
173 tdate_parse.o:  tdate_parse.h