1 # Makefile for `Wget' utility
2 # Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
4 # This program is free software; you can redistribute it and/or modify
5 # it under the terms of the GNU General Public License as published by
6 # the Free Software Foundation; either version 2 of the License, or
7 # (at your option) any later version.
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 # GNU General Public License for more details.
14 # You should have received a copy of the GNU General Public License
15 # along with this program; if not, write to the Free Software
16 # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
18 # In addition, as a special exception, the Free Software Foundation
19 # gives permission to link the code of its release of Wget with the
20 # OpenSSL project's "OpenSSL" library (or with modified versions of it
21 # that use the same license as the "OpenSSL" library), and distribute
22 # the linked executables. You must obey the GNU General Public License
23 # in all respects for all of the code used other than "OpenSSL". If you
24 # modify this file, you may extend this exception to your version of the
25 # file, but you are not obligated to do so. If you do not wish to do
26 # so, delete this exception statement from your version.
41 # User configuration section
48 exec_prefix = @exec_prefix@
51 sysconfdir = @sysconfdir@
54 localedir = $(prefix)/share/locale
59 DEFS = @DEFS@ -DSYSTEM_WGETRC=\"$(sysconfdir)/wgetrc\" -DLOCALEDIR=\"$(localedir)\"
60 LIBS = @LIBS@ @LIBSSL@
64 # End of user configuration section. There should be no need to change
65 # anything below this line.
68 DISTNAME = wget-@VERSION@
71 # These are used for maintenance only, so they are safe without
72 # special autoconf cruft.
77 # flags passed to recursive makes in subdirectories
78 MAKEDEFS = CC='$(CC)' CPPFLAGS='$(CPPFLAGS)' DEFS='$(DEFS)' \
79 CFLAGS='$(CFLAGS)' LDFLAGS='$(LDFLAGS)' LIBS='$(LIBS)' \
80 prefix='$(prefix)' exec_prefix='$(exec_prefix)' bindir='$(bindir)' \
81 infodir='$(infodir)' mandir='$(mandir)' manext='$(manext)'
83 # subdirectories in the distribution
84 SUBDIRS = src doc po util windows
87 all: src/config.h Makefile $(SUBDIRS)
92 cd $@ && $(MAKE) $(MAKEDEFS)
95 install: install.bin install.info install.wgetrc \
96 install.mo @COMMENT_IF_NO_POD2MAN@install.man
98 # install/uninstall the binary
99 install.bin uninstall.bin:
100 cd src && $(MAKE) $(MAKEDEFS) $@
102 # install/uninstall the info/man pages
103 install.info uninstall.info install.man uninstall.man install.wgetrc:
104 cd doc && $(MAKE) $(MAKEDEFS) $@
106 # Install `.mo' files
108 cd po && $(MAKE) $(MAKEDEFS) $@
110 # create tag files for Emacs
114 dist: $(srcdir)/configure DISTFILES
116 for d in `$(FIND) . -type d ! -name CVS -a ! -name RCS -print`; do \
117 if [ "$$d" != "." -a "$$d" != "./$(DISTNAME)" ]; then \
118 mkdir $(DISTNAME)/$$d; \
121 for f in `cat DISTFILES`; do \
122 ln $(srcdir)/$$f $(DISTNAME)/$$f || \
123 { echo copying $$f; cp -p $(srcdir)/$$f $(DISTNAME)/$$f ; } \
125 (cd $(DISTNAME); $(MAKE) distclean)
126 $(TAR) chvf - $(DISTNAME) | $(GZIP) -c --best >$(DISTNAME).tar.gz
132 (cd $(srcdir); find . ! -type d -print) \
133 | sed '/\/\(CVS\|RCS\)\//d; /$@/d; /\.tar.*/d; s/^.\///; /^\.$$/d;' \
137 # Cleanup dependencies
140 clean: clean-recursive clean-top
141 distclean: distclean-recursive distclean-top
142 realclean: realclean-recursive realclean-top
145 $(RM) *~ *.bak $(DISTNAME).tar.gz
147 distclean-top: clean-top
148 $(RM) Makefile config.status config.log config.cache libtool stamp-h
149 $(RM) -r autom4te.cache
151 realclean-top: distclean-top
154 clean-recursive distclean-recursive realclean-recursive:
155 for subdir in $(SUBDIRS); do \
156 target=`echo $@ | sed s/-recursive//`; \
157 (cd $$subdir && $(MAKE) $(MAKEDEFS) $$target) || exit 1; \
161 # Dependencies for maintenance
164 $(srcdir)/configure: configure.in
165 cd $(srcdir) && autoconf
167 # autoheader might not change config.h.in, so touch a stamp file.
168 $(srcdir)/src/config.h.in: stamp-h.in
169 $(srcdir)/stamp-h.in: configure.in
170 @true; # running autoheader here breaks: cd $(srcdir) && autoheader
171 echo timestamp > $(srcdir)/stamp-h.in
173 src/config.h: stamp-h
174 stamp-h: src/config.h.in config.status
177 Makefile: Makefile.in config.status
180 config.status: configure
181 ./config.status --recheck