X-Recipient: archive-cygwin AT delorie DOT com X-SWARE-Spam-Status: No, hits=-0.0 required=5.0 tests=AWL,BAYES_05,FB_WORD1_END_DOLLAR,HK_OBFDOM,J_CHICKENPOX_43,J_CHICKENPOX_65,RCVD_IN_SORBS_WEB,SPF_PASS X-Spam-Check-By: sourceware.org Message-ID: <49A2DA22.4090708@dazjorz.com> Date: Mon, 23 Feb 2009 18:17:22 +0100 From: Sjors Gielen User-Agent: Thunderbird 2.0.0.19 (Windows/20081209) MIME-Version: 1.0 To: cygwin AT cygwin DOT com Subject: Makefile.in respect $(DESTDIR) - Patch applied Content-Type: multipart/mixed; boundary="------------080809070500030909050207" X-IsSubscribed: yes Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com --------------080809070500030909050207 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Hello, I noticed winsup does not respect $(DESTDIR) in its installation process. The applied patch modifies the Makefile.in files, to have them use $(DESTDIR) in all install lines. This includes: * install(1) (also MKDIRP) * the mkinstalldirs / $(mkinstalldirs) commands * a ln -sf line I may have forgotten some, however the following commands show the patch works: build$ ../src/configure --prefix=/tmp/wrongplace build$ make build$ make install DESTDIR=/tmp/rightplace This correctly installs all files to /tmp/rightplace/tmp/wrongplace, /tmp/wrongplace is never created. newlib already respects DESTDIR in its makefiles (it does use automake). This patch applies cleanly to the current CVS revision. After applying this patch, the commands in FAQ section 6.18 "How do I build Cygwin on my own" can be changed to: mkdir build install; cd build; (../src/configure --prefix= -v; make) >& make.out make install DESTDIR=../install > install.log 2>&1 After these commands, all files are in ../install and configured to be installed in / (prefix is empty, i.e. / without the last slash). In my opinion, this is a cleaner way to compile Cygwin than giving --prefix=../install to configure. Sjors --------------080809070500030909050207 Content-Type: text/x-patch; name="destdir.patch" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="destdir.patch" Index: winsup/Makefile.in =================================================================== RCS file: /cvs/src/src/winsup/Makefile.in,v retrieving revision 1.32 diff -u -r1.32 Makefile.in --- winsup/Makefile.in 26 Nov 2008 16:42:00 -0000 1.32 +++ winsup/Makefile.in 23 Feb 2009 17:10:28 -0000 @@ -65,9 +65,9 @@ all: Makefile $(SUBDIRS) install-license: CYGWIN_LICENSE COPYING - ${INSTALL} -d $(prefix)/share/doc/Cygwin + ${INSTALL} -d $(DESTDIR)$(prefix)/share/doc/Cygwin for i in $^; do \ - ${INSTALL} $$i $(prefix)/share/doc/Cygwin ; \ + ${INSTALL} $$i $(DESTDIR)$(prefix)/share/doc/Cygwin ; \ done install: Makefile $(INSTALL_LICENSE) $(INSTALL_SUBDIRS) Index: winsup/cygserver/Makefile.in =================================================================== RCS file: /cvs/src/src/winsup/cygserver/Makefile.in,v retrieving revision 1.21 diff -u -r1.21 Makefile.in --- winsup/cygserver/Makefile.in 3 Jan 2009 05:37:34 -0000 1.21 +++ winsup/cygserver/Makefile.in 23 Feb 2009 17:10:28 -0000 @@ -51,14 +51,14 @@ all: cygserver.exe install: all $(updir1)/mkinstalldirs cygserver.conf cygserver-config README - $(updir1)/mkinstalldirs $(sbindir) - $(updir1)/mkinstalldirs $(bindir) - $(updir1)/mkinstalldirs $(sysconfdir)/defaults/etc - $(updir1)/mkinstalldirs $(prefix)/share/doc/Cygwin - $(INSTALL_PROGRAM) cygserver.exe $(sbindir)/cygserver.exe - $(INSTALL_PROGRAM) $(srcdir)/cygserver-config $(bindir)/cygserver-config - $(INSTALL_DATA) $(srcdir)/cygserver.conf $(sysconfdir)/defaults/etc/cygserver.conf - $(INSTALL_DATA) $(srcdir)/README $(prefix)/share/doc/Cygwin/cygserver.README + $(updir1)/mkinstalldirs $(DESTDIR)$(sbindir) + $(updir1)/mkinstalldirs $(DESTDIR)$(bindir) + $(updir1)/mkinstalldirs $(DESTDIR)$(sysconfdir)/defaults/etc + $(updir1)/mkinstalldirs $(DESTDIR)$(prefix)/share/doc/Cygwin + $(INSTALL_PROGRAM) cygserver.exe $(DESTDIR)$(sbindir)/cygserver.exe + $(INSTALL_PROGRAM) $(srcdir)/cygserver-config $(DESTDIR)$(bindir)/cygserver-config + $(INSTALL_DATA) $(srcdir)/cygserver.conf $(DESTDIR)$(sysconfdir)/defaults/etc/cygserver.conf + $(INSTALL_DATA) $(srcdir)/README $(DESTDIR)$(prefix)/share/doc/Cygwin/cygserver.README clean: rm -f $(OBJS) ${patsubst %.o,%.d,$(OBJS)} cygserver.exe Index: winsup/cygwin/Makefile.in =================================================================== RCS file: /cvs/src/src/winsup/cygwin/Makefile.in,v retrieving revision 1.219 diff -u -r1.219 Makefile.in --- winsup/cygwin/Makefile.in 3 Jan 2009 05:12:20 -0000 1.219 +++ winsup/cygwin/Makefile.in 23 Feb 2009 17:10:28 -0000 @@ -308,37 +308,37 @@ uninstall: uninstall-libs uninstall-headers uninstall-man install-libs: $(TARGET_LIBS) - @$(MKDIRP) $(bindir) - $(INSTALL_PROGRAM) $(TEST_DLL_NAME) $(bindir)/$(DLL_NAME); \ + @$(MKDIRP) $(DESTDIR)$(bindir) + $(INSTALL_PROGRAM) $(TEST_DLL_NAME) $(DESTDIR)$(bindir)/$(DLL_NAME); \ for i in $^; do \ - $(INSTALL_DATA) $$i $(tooldir)/lib/`basename $$i` ; \ + $(INSTALL_DATA) $$i $(DESTDIR)$(tooldir)/lib/`basename $$i` ; \ done - cd $(tooldir)/lib && ln -sf libcygwin.a libg.a + cd $(DESTDIR)$(tooldir)/lib && ln -sf libcygwin.a libg.a install-headers: cd $(srcdir); \ for sub in `find include -name '[a-z]*' -type d -print | sort`; do \ - $(MKDIRP) $(tooldir)/$$sub; \ + $(MKDIRP) $(DESTDIR)$(tooldir)/$$sub; \ for i in $$sub/*.h ; do \ - $(INSTALL_DATA) $$i $(tooldir)/$$sub/`basename $$i` ; \ + $(INSTALL_DATA) $$i $(DESTDIR)$(tooldir)/$$sub/`basename $$i` ; \ done ; \ done ; \ - $(INSTALL_DATA) regex/regex.h $(tooldir)/include/regex.h + $(INSTALL_DATA) regex/regex.h $(DESTDIR)$(tooldir)/include/regex.h install-man: - @$(MKDIRP) $(mandir)/man2 $(mandir)/man3 $(mandir)/man5 $(mandir)/man7 + @$(MKDIRP) $(DESTDIR)$(mandir)/man2 $(DESTDIR)$(mandir)/man3 $(DESTDIR)$(mandir)/man5 $(DESTDIR)$(mandir)/man7 cd $(srcdir); \ for i in `find . -type f -name '*.2'`; do \ - $(INSTALL_DATA) $$i $(mandir)/man2/`basename $$i` ; \ + $(INSTALL_DATA) $$i $(DESTDIR)$(mandir)/man2/`basename $$i` ; \ done; \ for i in `find . -type f -name '*.3'`; do \ - $(INSTALL_DATA) $$i $(mandir)/man3/`basename $$i` ; \ + $(INSTALL_DATA) $$i $(DESTDIR)$(mandir)/man3/`basename $$i` ; \ done; \ for i in `find . -type f -name '*.5'`; do \ - $(INSTALL_DATA) $$i $(mandir)/man5/`basename $$i` ; \ + $(INSTALL_DATA) $$i $(DESTDIR)$(mandir)/man5/`basename $$i` ; \ done; \ for i in `find . -type f -name '*.7'`; do \ - $(INSTALL_DATA) $$i $(mandir)/man7/`basename $$i` ; \ + $(INSTALL_DATA) $$i $(DESTDIR)$(mandir)/man7/`basename $$i` ; \ done install_target: Index: winsup/lsaauth/Makefile.in =================================================================== RCS file: /cvs/src/src/winsup/lsaauth/Makefile.in,v retrieving revision 1.2 diff -u -r1.2 Makefile.in --- winsup/lsaauth/Makefile.in 12 Oct 2008 23:53:26 -0000 1.2 +++ winsup/lsaauth/Makefile.in 23 Feb 2009 17:10:28 -0000 @@ -70,10 +70,10 @@ rm -f *.o *.dll install: all - $(SHELL) $(updir1)/mkinstalldirs $(bindir) - $(INSTALL_PROGRAM) $(DLL) $(bindir)/$(DLL) - $(INSTALL_PROGRAM) $(srcdir)/cyglsa64.dll $(bindir)/cyglsa64.dll - $(INSTALL_PROGRAM) $(srcdir)/cyglsa-config $(bindir)/cyglsa-config + $(SHELL) $(updir1)/mkinstalldirs $(DESTDIR)$(bindir) + $(INSTALL_PROGRAM) $(DLL) $(DESTDIR)$(bindir)/$(DLL) + $(INSTALL_PROGRAM) $(srcdir)/cyglsa64.dll $(DESTDIR)$(bindir)/cyglsa64.dll + $(INSTALL_PROGRAM) $(srcdir)/cyglsa-config $(DESTDIR)$(bindir)/cyglsa-config %.o: %.c $(CC) $(WIN32_CFLAGS) -c -o $@ $< Index: winsup/mingw/Makefile.in =================================================================== RCS file: /cvs/src/src/winsup/mingw/Makefile.in,v retrieving revision 1.88 diff -u -r1.88 Makefile.in --- winsup/mingw/Makefile.in 28 Oct 2008 23:55:39 -0000 1.88 +++ winsup/mingw/Makefile.in 23 Feb 2009 17:10:29 -0000 @@ -231,7 +231,7 @@ install_dlls_host: for i in $(DLLS); do \ - $(INSTALL_PROGRAM) $$i $(inst_bindir)/$$i ; \ + $(INSTALL_PROGRAM) $$i $(DESTDIR)$(inst_bindir)/$$i ; \ done _libm_dummy.o: @@ -445,24 +445,24 @@ install-info: info install-dirs: - $(mkinstalldirs) $(inst_bindir) - $(mkinstalldirs) $(inst_includedir) - $(mkinstalldirs) $(inst_libdir) - $(mkinstalldirs) $(inst_docdir) - $(mkinstalldirs) $(mandir)/man$(mansection) + $(mkinstalldirs) $(DESTDIR)$(inst_bindir) + $(mkinstalldirs) $(DESTDIR)$(inst_includedir) + $(mkinstalldirs) $(DESTDIR)$(inst_libdir) + $(mkinstalldirs) $(DESTDIR)$(inst_docdir) + $(mkinstalldirs) $(DESTDIR)$(mandir)/man$(mansection) install: all install-dirs $(install_dlls_host) for i in $(LIBS); do \ - $(INSTALL_DATA) $$i $(inst_libdir)/$$i ; \ + $(INSTALL_DATA) $$i $(DESTDIR)$(inst_libdir)/$$i ; \ done for i in $(CRT0S); do \ - $(INSTALL_DATA) $$i $(inst_libdir)/$$i ; \ + $(INSTALL_DATA) $$i $(DESTDIR)$(inst_libdir)/$$i ; \ done for i in $(INSTDOCS); do \ - $(INSTALL_DATA) $(srcdir)/$$i $(inst_docdir)/$$i ; \ + $(INSTALL_DATA) $(srcdir)/$$i $(DESTDIR)$(inst_docdir)/$$i ; \ done for sub in . sys ; do \ - dstdir=$(inst_includedir)/$$sub ; \ + dstdir=$(DESTDIR)$(inst_includedir)/$$sub ; \ $(mkinstalldirs) $$dstdir ; \ for i in $(srcdir)/include/$$sub/*.h ; do \ $(INSTALL_DATA) $$i $$dstdir/`basename $$i` ; \ @@ -472,10 +472,10 @@ # This provisional hack installs the only manpage we have at present... # It simply CANNOT suffice, when we have more manpages to ship. # - $(mkinstalldirs) $(mandir)/man$(mansection) - $(INSTALL_DATA) $(srcdir)/man/dirname.man $(mandir)/man$(mansection)/`\ + $(mkinstalldirs) $(DESTDIR)$(mandir)/man$(mansection) + $(INSTALL_DATA) $(srcdir)/man/dirname.man $(DESTDIR)$(mandir)/man$(mansection)/`\ echo dirname.man|sed '$(manpage_transform);s,man$$,$(mansection),'` - $(INSTALL_DATA) $(srcdir)/man/dirname.man $(mandir)/man$(mansection)/`\ + $(INSTALL_DATA) $(srcdir)/man/dirname.man $(DESTDIR)$(mandir)/man$(mansection)/`\ echo basename.man|sed '$(manpage_transform);s,man$$,$(mansection),'` # # End provisional hack. Index: winsup/mingw/mingwex/Makefile.in =================================================================== RCS file: /cvs/src/src/winsup/mingw/mingwex/Makefile.in,v retrieving revision 1.46 diff -u -r1.46 Makefile.in --- winsup/mingw/mingwex/Makefile.in 12 Oct 2008 23:58:17 -0000 1.46 +++ winsup/mingw/mingwex/Makefile.in 23 Feb 2009 17:10:29 -0000 @@ -239,9 +239,9 @@ install-info: info install: all - $(mkinstalldirs) $(inst_libdir) + $(mkinstalldirs) $(DESTDIR)$(inst_libdir) for i in $(LIBS); do \ - $(INSTALL_DATA) $$i $(inst_libdir)/$$i ; \ + $(INSTALL_DATA) $$i $(DESTDIR)$(inst_libdir)/$$i ; \ done clean: Index: winsup/mingw/profile/Makefile.in =================================================================== RCS file: /cvs/src/src/winsup/mingw/profile/Makefile.in,v retrieving revision 1.16 diff -u -r1.16 Makefile.in --- winsup/mingw/profile/Makefile.in 12 Oct 2008 23:58:17 -0000 1.16 +++ winsup/mingw/profile/Makefile.in 23 Feb 2009 17:10:29 -0000 @@ -112,17 +112,17 @@ install-info: info install: all - $(mkinstalldirs) $(inst_libdir) + $(mkinstalldirs) $(DESTDIR)$(inst_libdir) for i in $(LIBS); do \ - $(INSTALL_DATA) $$i $(inst_libdir)/$$i ; \ + $(INSTALL_DATA) $$i $(DESTDIR)$(inst_libdir)/$$i ; \ done for i in $(CRT0S); do \ - $(INSTALL_DATA) $$i $(inst_libdir)/$$i ; \ + $(INSTALL_DATA) $$i $(DESTDIR)$(inst_libdir)/$$i ; \ done for sub in . ; do \ - $(mkinstalldirs) $(inst_includedir)/$$sub ; \ + $(mkinstalldirs) $(DESTDIR)$(inst_includedir)/$$sub ; \ for i in $(srcdir)/$$sub/*.h ; do \ - $(INSTALL_DATA) $$i $(inst_includedir)/$$sub/`basename $$i` ; \ + $(INSTALL_DATA) $$i $(DESTDIR)$(inst_includedir)/$$sub/`basename $$i` ; \ done ; \ done Index: winsup/utils/Makefile.in =================================================================== RCS file: /cvs/src/src/winsup/utils/Makefile.in,v retrieving revision 1.80 diff -u -r1.80 Makefile.in --- winsup/utils/Makefile.in 17 Jan 2009 11:59:16 -0000 1.80 +++ winsup/utils/Makefile.in 23 Feb 2009 17:10:29 -0000 @@ -158,10 +158,10 @@ rm -f Makefile config.cache install: all - $(SHELL) $(updir1)/mkinstalldirs $(bindir) + $(SHELL) $(updir1)/mkinstalldirs $(DESTDIR)$(bindir) for i in $(CYGWIN_BINS) ${filter-out testsuite.exe,$(MINGW_BINS)} ; do \ n=`echo $$i | sed '$(program_transform_name)'`; \ - $(INSTALL_PROGRAM) $$i $(bindir)/$$n; \ + $(INSTALL_PROGRAM) $$i $(DESTDIR)$(bindir)/$$n; \ done $(cygwin_build)/libcygwin.a: $(cygwin_build)/Makefile Index: winsup/w32api/lib/Makefile.in =================================================================== RCS file: /cvs/src/src/winsup/w32api/lib/Makefile.in,v retrieving revision 1.46 diff -u -r1.46 Makefile.in --- winsup/w32api/lib/Makefile.in 29 Jan 2008 21:18:49 -0000 1.46 +++ winsup/w32api/lib/Makefile.in 23 Feb 2009 17:10:30 -0000 @@ -213,19 +213,19 @@ install: install-libraries install-headers install-ddk install-directx install-libraries: all - $(mkinstalldirs) $(inst_libdir) + $(mkinstalldirs) $(DESTDIR)$(inst_libdir) for i in $(LIBS); do \ - $(INSTALL_DATA) $$i $(inst_libdir)/$$i ; \ + $(INSTALL_DATA) $$i $(DESTDIR)$(inst_libdir)/$$i ; \ done install-headers: - $(mkinstalldirs) $(inst_includedir) + $(mkinstalldirs) $(DESTDIR)$(inst_includedir) for i in $(HEADERS); do \ - $(INSTALL_DATA) $(srcdir)/../include/$$i $(inst_includedir)/$$i ; \ + $(INSTALL_DATA) $(srcdir)/../include/$$i $(DESTDIR)$(inst_includedir)/$$i ; \ done - $(mkinstalldirs) $(inst_includedir)/GL + $(mkinstalldirs) $(DESTDIR)$(inst_includedir)/GL for i in $(GL_HEADERS); do \ - $(INSTALL_DATA) $(srcdir)/../include/GL/$$i $(inst_includedir)/GL/$$i ; \ + $(INSTALL_DATA) $(srcdir)/../include/GL/$$i $(DESTDIR)$(inst_includedir)/GL/$$i ; \ done install-ddk: install-libraries install-headers Index: winsup/w32api/lib/ddk/Makefile.in =================================================================== RCS file: /cvs/src/src/winsup/w32api/lib/ddk/Makefile.in,v retrieving revision 1.5 diff -u -r1.5 Makefile.in --- winsup/w32api/lib/ddk/Makefile.in 12 Sep 2006 00:29:04 -0000 1.5 +++ winsup/w32api/lib/ddk/Makefile.in 23 Feb 2009 17:10:30 -0000 @@ -145,15 +145,15 @@ install: install-libraries install-headers install-libraries: all - $(mkinstalldirs) $(inst_libdir) + $(mkinstalldirs) $(DESTDIR)$(inst_libdir) for i in $(LIBS); do \ - $(INSTALL_DATA) $$i $(inst_libdir)/$$i ; \ + $(INSTALL_DATA) $$i $(DESTDIR)$(inst_libdir)/$$i ; \ done install-headers: - $(mkinstalldirs) $(inst_includedir) + $(mkinstalldirs) $(DESTDIR)$(inst_includedir) for i in $(HEADERS); do \ - $(INSTALL_DATA) $(srcdir)/../../include/ddk/$$i $(inst_includedir)/$$i ; \ + $(INSTALL_DATA) $(srcdir)/../../include/ddk/$$i $(DESTDIR)$(inst_includedir)/$$i ; \ done # uninstall headers and libraries from a target specified directory Index: winsup/w32api/lib/directx/Makefile.in =================================================================== RCS file: /cvs/src/src/winsup/w32api/lib/directx/Makefile.in,v retrieving revision 1.4 diff -u -r1.4 Makefile.in --- winsup/w32api/lib/directx/Makefile.in 12 Sep 2006 00:29:04 -0000 1.4 +++ winsup/w32api/lib/directx/Makefile.in 23 Feb 2009 17:10:30 -0000 @@ -170,15 +170,15 @@ install: install-libraries install-headers install-libraries: all - $(mkinstalldirs) $(inst_libdir) + $(mkinstalldirs) $(DESTDIR)$(inst_libdir) for i in $(LIBS); do \ - $(INSTALL_DATA) $$i $(inst_libdir)/$$i ; \ + $(INSTALL_DATA) $$i $(DESTDIR)$(inst_libdir)/$$i ; \ done install-headers: - $(mkinstalldirs) $(inst_includedir) + $(mkinstalldirs) $(DESTDIR)$(inst_includedir) for i in $(HEADERS); do \ - $(INSTALL_DATA) $(srcdir)/../../include/directx/$$i $(inst_includedir)/$$i ; \ + $(INSTALL_DATA) $(srcdir)/../../include/directx/$$i $(DESTDIR)$(inst_includedir)/$$i ; \ done # uninstall headers and libraries from a target specified directory --------------080809070500030909050207 Content-Type: text/plain; charset=us-ascii -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/ --------------080809070500030909050207--