From f031ededc8589306fad75034bdf3e4319e43562c Mon Sep 17 00:00:00 2001 From: Ryan Bloom Date: Sat, 15 Jun 2002 04:41:52 +0000 Subject: [PATCH] Allow 'make install DESTDIR=/path'. This allows packagers to install into a directory different from the one that was configured. This also mirrors the root= feature from 1.3. We cannot use prefix=, because both APR and APR-util resolve their installation paths at configuration time. This means that there is no variable prefix to replace. PR: 7803 Submitted by: Andreas Hasenack git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@95686 13f79535-47bb-0310-9956-ffa450edef68 --- CHANGES | 7 +++ Makefile.in | 108 ++++++++++++++++++++++---------------------- build/rules.mk.in | 4 +- build/special.mk | 4 +- support/Makefile.in | 18 ++++---- 5 files changed, 74 insertions(+), 67 deletions(-) diff --git a/CHANGES b/CHANGES index 833ee8d2f0..75ea893de7 100644 --- a/CHANGES +++ b/CHANGES @@ -1,5 +1,12 @@ Changes with Apache 2.0.38 + *) Allow 'make install DESTDIR=/path'. This allows packagers to install + into a directory different from the one that was configured. This + also mirrors the root= feature from 1.3. We cannot use prefix=, + because both APR and APR-util resolve their installation paths at + configuration time. This means that there is no variable prefix + to replace. [Andreas Hasenack ] + *) AIX 4.3.2 and above: Define SINGLE_LISTEN_UNSERIALIZED_ACCEPT. These levels of AIX don't have a thundering herd problem with accept(). [Jeff Trawick] diff --git a/Makefile.in b/Makefile.in index ffb895075c..7d85dd6939 100644 --- a/Makefile.in +++ b/Makefile.in @@ -28,10 +28,10 @@ include $(top_srcdir)/build/program.mk install-conf: @echo Installing configuration files - @test -d $(sysconfdir) || $(MKINSTALLDIRS) $(sysconfdir) + @test -d $(DESTDIR)$(sysconfdir) || $(MKINSTALLDIRS) $(DESTDIR)$(sysconfdir) @cd $(top_srcdir)/docs/conf; \ for i in mime.types magic; do \ - $(INSTALL_DATA) $$i $(sysconfdir); \ + $(INSTALL_DATA) $$i $(DESTDIR)$(sysconfdir); \ done; \ for j in $(top_srcdir)/docs/conf $(top_builddir)/docs/conf ; do \ cd $$j ; \ @@ -67,31 +67,31 @@ install-conf: -e 's#@@Port@@#$(PORT)#g' \ < $$i; \ fi \ - ) > $(sysconfdir)/$$i; \ - chmod 0644 $(sysconfdir)/$$i; \ + ) > $(DESTDIR)$(sysconfdir)/$$i; \ + chmod 0644 $(DESTDIR)$(sysconfdir)/$$i; \ file=`echo $$i|sed s/-std//`; \ if [ "$$file" = "httpd.conf" ]; then \ file=`echo $$file|sed s/.*.conf/$(PROGRAM_NAME).conf/`; \ fi; \ - if test "$$file" != "$$i" && test ! -f $(sysconfdir)/$$file; then \ - $(INSTALL_DATA) $(sysconfdir)/$$i $(sysconfdir)/$$file; \ + if test "$$file" != "$$i" && test ! -f $(DESTDIR)$(sysconfdir)/$$file; then \ + $(INSTALL_DATA) $(DESTDIR)$(sysconfdir)/$$i $(DESTDIR)$(sysconfdir)/$$file; \ fi; \ done ; \ done @if test -f "$(builddir)/envvars-std"; then \ - cp -p envvars-std $(sbindir); \ - if test ! -f $(sbindir)/envvars; then \ - cp -p envvars-std $(sbindir)/envvars ; \ + cp -p envvars-std $(DESTDIR)$(sbindir); \ + if test ! -f $(DESTDIR)$(sbindir)/envvars; then \ + cp -p envvars-std $(DESTDIR)$(sbindir)/envvars ; \ fi ; \ fi install-build: @echo Installing build system files - @test -d $(installbuilddir) || $(MKINSTALLDIRS) $(installbuilddir) - @cp build/*.mk $(installbuilddir); \ + @test -d $(DESTDIR)$(installbuilddir) || $(MKINSTALLDIRS) $(DESTDIR)$(installbuilddir) + @cp build/*.mk $(DESTDIR)$(installbuilddir); \ sed 's#LIBTOOL = \(.*\)#LIBTOOL = $(SHELL) $(installbuilddir)/libtool $(LTFLAGS)#' \ - build/config_vars.mk > $(installbuilddir)/config_vars.mk; \ - cp $(top_srcdir)/build/instdso.sh $(installbuilddir); + build/config_vars.mk > $(DESTDIR)$(installbuilddir)/config_vars.mk; \ + cp $(top_srcdir)/build/instdso.sh $(DESTDIR)$(installbuilddir); htdocs-srcdir = $(top_srcdir)/docs/docroot @@ -104,77 +104,77 @@ dox:: install-htdocs: @echo Installing HTML documents - @test -d $(htdocsdir) || $(MKINSTALLDIRS) $(htdocsdir) - @test -d $(htdocs-srcdir) && (cd $(htdocs-srcdir) && cp -rp * $(htdocsdir)) - @test -d $(manualdir) || $(MKINSTALLDIRS) $(manualdir) - @test -d $(top_srcdir)/docs/manual && (cd $(top_srcdir)/docs/manual && cp -rp * $(manualdir)) - @test "x$(htdocsdir)" != "x" && cd $(htdocsdir) && find . -name "CVS" -print | xargs rm -rf + @test -d $(DESTDIR)$(htdocsdir) || $(MKINSTALLDIRS) $(DESTDIR)$(htdocsdir) + @test -d $(htdocs-srcdir) && (cd $(htdocs-srcdir) && cp -rp * $(DESTDIR)$(htdocsdir)) + @test -d $(DESTDIR)$(manualdir) || $(MKINSTALLDIRS) $(DESTDIR)$(manualdir) + @test -d $(top_srcdir)/docs/manual && (cd $(top_srcdir)/docs/manual && cp -rp * $(DESTDIR)$(manualdir)) + @test "x$(htdocsdir)" != "x" && cd $(DESTDIR)$(htdocsdir) && find . -name "CVS" -print | xargs rm -rf install-error: @echo Installing error documents - @test -d $(errordir) || $(MKINSTALLDIRS) $(errordir) - @cd $(top_srcdir)/docs/error && cp -rp * $(errordir) - @test "x$(errordir)" != "x" && cd $(errordir) && find . -name "CVS" -print | xargs rm -rf + @test -d $(DESTDIR)$(errordir) || $(MKINSTALLDIRS) $(DESTDIR)$(errordir) + @cd $(top_srcdir)/docs/error && cp -rp * $(DESTDIR)$(errordir) + @test "x$(errordir)" != "x" && cd $(DESTDIR)$(errordir) && find . -name "CVS" -print | xargs rm -rf install-icons: @echo Installing icons - @test -d $(iconsdir) || $(MKINSTALLDIRS) $(iconsdir) - @cd $(top_srcdir)/docs/icons && cp -rp * $(iconsdir) - @test "x$(iconsdir)" != "x" && cd $(iconsdir) && find . -name "CVS" -print | xargs rm -rf + @test -d $(DESTDIR)$(iconsdir) || $(MKINSTALLDIRS) $(DESTDIR)$(iconsdir) + @cd $(top_srcdir)/docs/icons && cp -rp * $(DESTDIR)$(iconsdir) + @test "x$(iconsdir)" != "x" && cd $(DESTDIR)$(iconsdir) && find . -name "CVS" -print | xargs rm -rf install-cgi: @echo Installing CGIs - @test -d $(cgidir) || $(MKINSTALLDIRS) $(cgidir) - @cd $(top_srcdir)/docs/cgi-examples && cp -rp * $(cgidir) - @test "x$(cgidir)" != "x" && cd $(cgidir) && find . -name "CVS" -print | xargs rm -rf + @test -d $(DESTDIR)$(cgidir) || $(MKINSTALLDIRS) $(DESTDIR)$(cgidir) + @cd $(top_srcdir)/docs/cgi-examples && cp -rp * $(DESTDIR)$(cgidir) + @test "x$(cgidir)" != "x" && cd $(DESTDIR)$(cgidir) && find . -name "CVS" -print | xargs rm -rf install-other: - @test -d $(logfiledir) || $(MKINSTALLDIRS) $(logfiledir) - @test -d $(runtimedir) || $(MKINSTALLDIRS) $(runtimedir) + @test -d $(DESTDIR)$(logfiledir) || $(MKINSTALLDIRS) $(DESTDIR)$(logfiledir) + @test -d $(DESTDIR)$(runtimedir) || $(MKINSTALLDIRS) $(DESTDIR)$(runtimedir) @for ext in dll x; do \ file=apachecore.$$ext; \ if test -f $$file; then \ - cp -p $$file $(libdir); \ + cp -p $$file $(DESTDIR)$(libdir); \ fi; \ done; \ file=httpd.dll; \ if test -f $$file; then \ - cp -p $$file $(bindir); \ + cp -p $$file $(DESTDIR)$(bindir); \ fi; install-include: @echo Installing header files - @test -d $(includedir) || $(MKINSTALLDIRS) $(includedir) - @cp -p include/*.h $(srcdir)/include/*.h $(includedir) - @cp -p $(srcdir)/os/$(OS_DIR)/os.h $(includedir) + @test -d $(DESTDIR)$(includedir) || $(MKINSTALLDIRS) $(DESTDIR)$(includedir) + @cp -p include/*.h $(srcdir)/include/*.h $(DESTDIR)$(includedir) + @cp -p $(srcdir)/os/$(OS_DIR)/os.h $(DESTDIR)$(includedir) @if test -f $(srcdir)/os/$(OS_DIR)/os-inline.c; then \ - cp -p $(srcdir)/os/$(OS_DIR)/os-inline.c $(includedir); \ + cp -p $(srcdir)/os/$(OS_DIR)/os-inline.c $(DESTDIR)$(includedir); \ fi; - @cp -p $(srcdir)/server/mpm/$(MPM_SUBDIR_NAME)/*.h $(includedir) - @cp -p $(srcdir)/modules/dav/main/mod_dav.h $(includedir) - @cp -p $(srcdir)/modules/filters/mod_include.h $(includedir) - @cp -p $(srcdir)/modules/generators/mod_cgi.h $(includedir) - @cp -p $(srcdir)/modules/loggers/mod_log_config.h $(includedir) - @cp -p $(srcdir)/modules/http/mod_core.h $(includedir) - @cp -p $(srcdir)/modules/proxy/mod_proxy.h $(includedir) - @cp -p $(srcdir)/modules/ssl/*.h $(includedir) - @cp -p $(srcdir)/srclib/pcre/pcre*.h $(includedir) - @cp -p $(srcdir)/os/$(OS_DIR)/*.h $(includedir) - @chmod 644 $(includedir)/*.h + @cp -p $(srcdir)/server/mpm/$(MPM_SUBDIR_NAME)/*.h $(DESTDIR)$(includedir) + @cp -p $(srcdir)/modules/dav/main/mod_dav.h $(DESTDIR)$(includedir) + @cp -p $(srcdir)/modules/filters/mod_include.h $(DESTDIR)$(includedir) + @cp -p $(srcdir)/modules/generators/mod_cgi.h $(DESTDIR)$(includedir) + @cp -p $(srcdir)/modules/loggers/mod_log_config.h $(DESTDIR)$(includedir) + @cp -p $(srcdir)/modules/http/mod_core.h $(DESTDIR)$(includedir) + @cp -p $(srcdir)/modules/proxy/mod_proxy.h $(DESTDIR)$(includedir) + @cp -p $(srcdir)/modules/ssl/*.h $(DESTDIR)$(includedir) + @cp -p $(srcdir)/srclib/pcre/pcre*.h $(DESTDIR)$(includedir) + @cp -p $(srcdir)/os/$(OS_DIR)/*.h $(DESTDIR)$(includedir) + @chmod 644 $(DESTDIR)$(includedir)/*.h install-man: @echo Installing man pages - @test -d $(mandir) || $(MKINSTALLDIRS) $(mandir) - @test -d $(mandir)/man1 || $(MKINSTALLDIRS) $(mandir)/man1 - @test -d $(mandir)/man8 || $(MKINSTALLDIRS) $(mandir)/man8 - @cp -p $(top_srcdir)/docs/man/*.1 $(mandir)/man1 - @cp -p $(top_srcdir)/docs/man/*.8 $(mandir)/man8 + @test -d $(DESTDIR)$(mandir) || $(MKINSTALLDIRS) $(DESTDIR)$(mandir) + @test -d $(DESTDIR)$(mandir)/man1 || $(MKINSTALLDIRS) $(DESTDIR)$(mandir)/man1 + @test -d $(DESTDIR)$(mandir)/man8 || $(MKINSTALLDIRS) $(DESTDIR)$(mandir)/man8 + @cp -p $(top_srcdir)/docs/man/*.1 $(DESTDIR)$(mandir)/man1 + @cp -p $(top_srcdir)/docs/man/*.8 $(DESTDIR)$(mandir)/man8 install-suexec: @if test -f $(builddir)/support/suexec; then \ - test -d $(sbindir) || $(MKINSTALLDIRS) $(sbindir); \ - $(INSTALL_PROGRAM) $(top_builddir)/support/suexec $(sbindir); \ - chmod 4755 $(sbindir)/suexec; \ + test -d $(DESTDIR)$(sbindir) || $(MKINSTALLDIRS) $(DESTDIR)$(sbindir); \ + $(INSTALL_PROGRAM) $(top_builddir)/support/suexec $(DESTDIR)$(sbindir); \ + chmod 4755 $(DESTDIR)$(sbindir)/suexec; \ fi suexec: diff --git a/build/rules.mk.in b/build/rules.mk.in index f0fc3b9bb9..8c30ebe8ce 100644 --- a/build/rules.mk.in +++ b/build/rules.mk.in @@ -197,9 +197,9 @@ local-extraclean: local-distclean x-local-extraclean local-install: $(TARGETS) $(SHARED_TARGETS) $(INSTALL_TARGETS) @if test -n '$(PROGRAMS)'; then \ - test -d $(sbindir) || $(MKINSTALLDIRS) $(sbindir); \ + test -d $(DESTDIR)$(sbindir) || $(MKINSTALLDIRS) $(DESTDIR)$(sbindir); \ list='$(PROGRAMS)'; for i in $$list; do \ - $(INSTALL_PROGRAM) $$i $(sbindir); \ + $(INSTALL_PROGRAM) $$i $(DESTDIR)$(sbindir); \ done; \ fi diff --git a/build/special.mk b/build/special.mk index 089bd5d103..56db865368 100644 --- a/build/special.mk +++ b/build/special.mk @@ -62,13 +62,13 @@ SHARED_TARGETS = $(shared) INSTALL_TARGETS = install-modules install-modules: - @test -d $(libexecdir) || $(MKINSTALLDIRS) $(libexecdir); + @test -d $(DESTDIR)$(libexecdir) || $(MKINSTALLDIRS) $(DESTDIR)$(libexecdir); @builtin='$(BUILTIN_LIBS)'; \ has_mod_so=`echo $$builtin|sed 's/^.*mod_so.*$$/has_mod_so/'`; \ if [ "x$$has_mod_so" = "xhas_mod_so" ]; then \ list='$(shared)'; \ for i in $$list; do \ - $(top_srcdir)/build/instdso.sh SH_LIBTOOL='$(SH_LIBTOOL)' $$i $(libexecdir); \ + $(top_srcdir)/build/instdso.sh SH_LIBTOOL='$(SH_LIBTOOL)' $$i $(DESTDIR)$(libexecdir); \ done; \ fi diff --git a/support/Makefile.in b/support/Makefile.in index 9a3747a464..cbfd53099a 100644 --- a/support/Makefile.in +++ b/support/Makefile.in @@ -10,20 +10,20 @@ PROGRAM_DEPENDENCIES = include $(top_builddir)/build/rules.mk install: - @test -d $(bindir) || $(MKINSTALLDIRS) $(bindir) - @test -d $(sbindir) || $(MKINSTALLDIRS) $(sbindir) - @test -d $(libexecdir) || $(MKINSTALLDIRS) $(libexecdir) - @cp -p $(top_builddir)/server/httpd.exp $(libexecdir) + @test -d $(DESTDIR)$(bindir) || $(MKINSTALLDIRS) $(DESTDIR)$(bindir) + @test -d $(DESTDIR)$(sbindir) || $(MKINSTALLDIRS) $(DESTDIR)$(sbindir) + @test -d $(DESTDIR)$(libexecdir) || $(MKINSTALLDIRS) $(DESTDIR)$(libexecdir) + @cp -p $(top_builddir)/server/httpd.exp $(DESTDIR)$(libexecdir) @for i in apxs apachectl dbmmanage; do \ if test -f "$(builddir)/$$i"; then \ - cp -p $$i $(sbindir); \ - chmod 755 $(sbindir)/$$i; \ + cp -p $$i $(DESTDIR)$(sbindir); \ + chmod 755 $(DESTDIR)$(sbindir)/$$i; \ fi ; \ done @if test -f "$(builddir)/envvars-std"; then \ - cp -p envvars-std $(sbindir); \ - if test ! -f $(sbindir)/envvars; then \ - cp -p envvars-std $(sbindir)/envvars ; \ + cp -p envvars-std $(DESTDIR)$(sbindir); \ + if test ! -f $(DESTDIR)$(sbindir)/envvars; then \ + cp -p envvars-std $(DESTDIR)$(sbindir)/envvars ; \ fi ; \ fi -- 2.50.1