From c16cd856651c5d8fde6bfad41de6f24acd811e46 Mon Sep 17 00:00:00 2001 From: Charles Wilson Date: Thu, 29 Oct 2009 21:53:47 +0000 Subject: Honor DESTDIR for winsup/mingw and winsup/w32api --- winsup/w32api/ChangeLog | 17 +++++++++++++++ winsup/w32api/Makefile.in | 2 +- winsup/w32api/lib/Makefile.in | 40 +++++++++++++++++++++++------------ winsup/w32api/lib/ddk/Makefile.in | 36 ++++++++++++++++++++----------- winsup/w32api/lib/directx/Makefile.in | 36 ++++++++++++++++++++----------- 5 files changed, 92 insertions(+), 39 deletions(-) (limited to 'winsup/w32api') diff --git a/winsup/w32api/ChangeLog b/winsup/w32api/ChangeLog index 329e4b54c..e0d9449de 100644 --- a/winsup/w32api/ChangeLog +++ b/winsup/w32api/ChangeLog @@ -1,3 +1,20 @@ +2009-10-29 Charles Wilson + + Honor DESTDIR for winsup/mingw and winsup/w32api. + Detect and report error if installation paths are win32 + format, but DESTDIR is non-empty. + + * Makefile.in (install, uninstall): Use FLAGS_TO_PASS + when invoking make in subdirs. + * lib/Makefile.in (DESTDIR): Honor per convention. + (need-DESTDIR-compatibility): New macro; define it and a + corresponding rule. + (fail-DESTDIR-compatibility): New dependency goal. + (install-libraries, install-headers, uninstall-libraries, + uninstall-headers): Require need-DESTDIR-compatibility. + * lib/ddk/Makefile.in: Ditto. + * lib/directx/Makefile.in: Ditto. + 2009-10-04 Corinna Vinschen * include/winbase.h (CreateRestrictedToken): Declare for >= Win 2000. diff --git a/winsup/w32api/Makefile.in b/winsup/w32api/Makefile.in index e97cdd36b..e48e1de09 100644 --- a/winsup/w32api/Makefile.in +++ b/winsup/w32api/Makefile.in @@ -89,7 +89,7 @@ test: install uninstall: for i in $(SUBDIRS); do \ - (cd $$i; $(MAKE) $@); \ + (cd $$i; $(MAKE) $@ $(FLAGS_TO_PASS)); \ done ifdef SNAPDATE diff --git a/winsup/w32api/lib/Makefile.in b/winsup/w32api/lib/Makefile.in index d1bcebffc..9439627c3 100644 --- a/winsup/w32api/lib/Makefile.in +++ b/winsup/w32api/lib/Makefile.in @@ -208,24 +208,36 @@ lib%.a: %.o $(AR) rc $@ $*.o $(RANLIB) $@ +need-DESTDIR-compatibility = prefix libdir includedir +.PHONY: $(need-DESTDIR-compatibility) fail-DESTDIR-compatibility + +$(need-DESTDIR-compatibility): + @test -z "$(DESTDIR)" || case "$($@)" in ?:*) \ + $(MAKE) --no-print-directory reject="$@" fail-DESTDIR-compatibility ;; \ + esac + +fail-DESTDIR-compatibility: + $(error DESTDIR is not supported when $(reject) contains Win32 path `$($(reject))'; \ + try `make install $(reject)=$(shell echo '$($(reject))' | sed s,:,:$(DESTDIR),) ...' instead) + .PHONY: install install-libraries install-headers install-ddk # install headers and libraries in a target specified directory. install: install-libraries install-headers install-ddk install-directx -install-libraries: all - $(mkinstalldirs) $(inst_libdir) +install-libraries: all $(need-DESTDIR-compatibility) + $(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) +install-headers: $(need-DESTDIR-compatibility) + $(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 @@ -237,17 +249,17 @@ install-directx: install-libraries install-headers # uninstall headers and libraries from a target specified directory uninstall: uninstall-ddk uninstall-directx uninstall-libraries uninstall-headers -uninstall-libraries: +uninstall-libraries: $(need-DESTDIR-compatibility) @for i in $(LIBS); do \ - rm -f $(inst_libdir)/$$i ; \ + rm -f $(DESTDIR)$(inst_libdir)/$$i ; \ done - rmdir $(inst_libdir) + rmdir $(DESTDIR)$(inst_libdir) -uninstall-headers: +uninstall-headers: $(need-DESTDIR-compatibility) @for i in $(HEADERS); do \ - rm -r $(inst_includedir)/$$i ; \ + rm -r $(DESTDIR)$(inst_includedir)/$$i ; \ done - rmdir $(inst_includedir) + rmdir $(DESTDIR)$(inst_includedir) uninstall-ddk: cd ddk && $(MAKE) -C uninstall $(FLAGS_TO_PASS) diff --git a/winsup/w32api/lib/ddk/Makefile.in b/winsup/w32api/lib/ddk/Makefile.in index 80b148c2a..d6040f3cc 100644 --- a/winsup/w32api/lib/ddk/Makefile.in +++ b/winsup/w32api/lib/ddk/Makefile.in @@ -141,35 +141,47 @@ lib%.a: %.o $(AR) rc $@ $*.o $(RANLIB) $@ +need-DESTDIR-compatibility = prefix libdir includedir +.PHONY: $(need-DESTDIR-compatibility) fail-DESTDIR-compatibility + +$(need-DESTDIR-compatibility): + @test -z "$(DESTDIR)" || case "$($@)" in ?:*) \ + $(MAKE) --no-print-directory reject="$@" fail-DESTDIR-compatibility ;; \ + esac + +fail-DESTDIR-compatibility: + $(error DESTDIR is not supported when $(reject) contains Win32 path `$($(reject))'; \ + try `make install $(reject)=$(shell echo '$($(reject))' | sed s,:,:$(DESTDIR),) ...' instead) + # install headers and libraries in a target specified directory. install: install-libraries install-headers -install-libraries: all - $(mkinstalldirs) $(inst_libdir) +install-libraries: all $(need-DESTDIR-compatibility) + $(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) +install-headers: $(need-DESTDIR-compatibility) + $(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 uninstall: uninstall-libraries uninstall-headers -uninstall-libraries: +uninstall-libraries: $(need-DESTDIR-compatibility) @for i in $(LIBS); do \ - rm -f $(inst_libdir)/$$i ; \ + rm -f $(DESTDIR)$(inst_libdir)/$$i ; \ done - rmdir $(inst_libdir) + rmdir $(DESTDIR)$(inst_libdir) -uninstall-headers: +uninstall-headers: $(need-DESTDIR-compatibility) @for i in $(HEADERS); do \ - rm -r $(inst_includedir)/$$i ; \ + rm -r $(DESTDIR)$(inst_includedir)/$$i ; \ done - rmdir $(inst_includedir) + rmdir $(DESTDIR)$(inst_includedir) dist: diff --git a/winsup/w32api/lib/directx/Makefile.in b/winsup/w32api/lib/directx/Makefile.in index a56c398d5..89a3cc602 100644 --- a/winsup/w32api/lib/directx/Makefile.in +++ b/winsup/w32api/lib/directx/Makefile.in @@ -166,35 +166,47 @@ lib%.a: %.o $(AR) rc $@ $*.o $(RANLIB) $@ +need-DESTDIR-compatibility = prefix libdir includedir +.PHONY: $(need-DESTDIR-compatibility) fail-DESTDIR-compatibility + +$(need-DESTDIR-compatibility): + @test -z "$(DESTDIR)" || case "$($@)" in ?:*) \ + $(MAKE) --no-print-directory reject="$@" fail-DESTDIR-compatibility ;; \ + esac + +fail-DESTDIR-compatibility: + $(error DESTDIR is not supported when $(reject) contains Win32 path `$($(reject))'; \ + try `make install $(reject)=$(shell echo '$($(reject))' | sed s,:,:$(DESTDIR),) ...' instead) + # install headers and libraries in a target specified directory. install: install-libraries install-headers -install-libraries: all - $(mkinstalldirs) $(inst_libdir) +install-libraries: all $(need-DESTDIR-compatibility) + $(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) +install-headers: $(need-DESTDIR-compatibility) + $(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 uninstall: uninstall-libraries uninstall-headers -uninstall-libraries: +uninstall-libraries: $(need-DESTDIR-compatibility) @for i in $(LIBS); do \ - rm -f $(inst_libdir)/$$i ; \ + rm -f $(DESTDIR)$(inst_libdir)/$$i ; \ done - rmdir $(inst_libdir) + rmdir $(DESTDIR)$(inst_libdir) -uninstall-headers: +uninstall-headers: $(need-DESTDIR-compatibility) @for i in $(HEADERS); do \ - rm -r $(inst_includedir)/$$i ; \ + rm -r $(DESTDIR)$(inst_includedir)/$$i ; \ done - rmdir $(inst_includedir) + rmdir $(DESTDIR)$(inst_includedir) dist: -- cgit v1.2.3