Makefile: improve DESTDIR support

This commit is contained in:
Matthew Flatt 2014-06-16 08:33:38 +01:00
parent 4f96f6fe62
commit 6778604bd2
5 changed files with 48 additions and 44 deletions

View File

@ -82,9 +82,9 @@ On Windows, Unix-style install is not supported.
A Unix-style install leaves no reference to this source directory.
To split the build and install steps of a Unix-style installation,
supply `DESTDIR=<dest-dir>` with `make unix-style PREFIX=<dir>", which
assembles the installation in <dest-dir>. Then, copy the content of
`<dest-dir>` to `<dir>`.
supply `DESTDIR=<dest-dir>` with `make unix-style PREFIX=<dir>`, which
assembles the installation in "<dest-dir>". Then, copy the content of
"<dest-dir>" to the target root.
See "More Instructions: Building Racket" below for more information.

View File

@ -76,6 +76,7 @@ PREFIX =
CONFIG_PREFIX_ARGS = --prefix="$(PREFIX)" --enable-macprefix
UNIX_RACO_ARGS = $(JOB_OPTIONS) --catalog build/local/catalog --auto -i
UNIX_BASE_ARGS = SELF_FLAGS_qq="" SKIP_DESTDIR_FIX="skip"
unix-style:
if [ "$(CPUS)" = "" ] ; \
@ -87,9 +88,10 @@ cpus-unix-style:
plain-unix-style:
if [ "$(PREFIX)" = "" ] ; then $(MAKE) error-need-prefix ; fi
$(MAKE) base CONFIGURE_ARGS_qq='$(CONFIGURE_ARGS_qq) $(CONFIG_PREFIX_ARGS)' SELF_FLAGS_qq=""
$(MAKE) local-catalog-maybe-native RACKET="$(PREFIX)/bin/racket"
"$(PREFIX)/bin/raco" pkg install $(UNIX_RACO_ARGS) $(REQUIRED_PKGS) $(PKGS)
$(MAKE) base CONFIGURE_ARGS_qq='$(CONFIGURE_ARGS_qq) $(CONFIG_PREFIX_ARGS)' $(UNIX_BASE_ARGS)
$(MAKE) local-catalog-maybe-native RACKET="$(DESTDIR)$(PREFIX)/bin/racket"
"$(DESTDIR)$(PREFIX)/bin/raco" pkg install $(UNIX_RACO_ARGS) $(REQUIRED_PKGS) $(PKGS)
cd racket/src/build; $(MAKE) fix-paths
error-need-prefix:
: ================================================================

View File

@ -135,10 +135,12 @@ install-no-post-collects:
fix-paths:
if [ "$(DESTDIR)" != "" ]; then \
@RUN_RACKET_CGC@ $(SELF_RACKET_FLAGS) -u \
"$(srcdir)/../collects/setup/unixstyle-install.rkt" \
make-install-destdir-fix "$(srcdir)/.." \
$(ALLDIRINFO) "@INSTALL_ORIG_TREE@"; \
if [ "$(SKIP_DESTDIR_FIX)" = "" ]; then \
@RUN_RACKET_CGC@ $(SELF_RACKET_FLAGS) -u \
"$(srcdir)/../collects/setup/unixstyle-install.rkt" \
make-install-destdir-fix "$(srcdir)/.." \
$(ALLDIRINFO) "@INSTALL_ORIG_TREE@"; \
fi \
fi
# 3m install ----------------------------------------

View File

@ -235,32 +235,32 @@ FRAMEWORK_REL_PREFIX="@executable_path/../../../"
install-wx_mac:
$(MAKE) install-common
cd ..; rm -rf "$(prefix)/lib/GRacket@CGC_CAP_INSTALLED@.app"
cd ..; rm -rf "$(prefix)/lib/GRacket@MMM_CAP_INSTALLED@.app"
cd ..; rm -rf $(DESTDIR)"$(prefix)/lib/GRacket@CGC_CAP_INSTALLED@.app"
cd ..; rm -rf $(DESTDIR)"$(prefix)/lib/GRacket@MMM_CAP_INSTALLED@.app"
install-wx_mac-cgc:
cd ..; $(ICP) -r gracket/GRacket@CGC@.app "$(prefix)/lib/GRacket@CGC_CAP_INSTALLED@.app"
@RUN_RACKET_CGC@ $(SELF_RACKET_FLAGS) -cqu "$(srcdir)/../mac/rename-app.rkt" "$(prefix)/lib/GRacket@CGC_CAP_INSTALLED@.app" "GRacket@CGC@" "GRacket@CGC_CAP_INSTALLED@"
/usr/bin/install_name_tool -change "@executable_path/../../../../racket/Racket.framework/Versions/$(FWVERSION)/Racket" "@FRAMEWORK_PREFIX@Racket.framework/Versions/$(FWVERSION)/Racket" "$(prefix)/lib/GRacket@CGC_CAP_INSTALLED@.app/Contents/MacOS/GRacket@CGC_CAP_INSTALLED@"
@RUN_RACKET_CGC@ $(SELF_RACKET_FLAGS) -cu "$(srcdir)/../racket/collects-path.rkt" "$(prefix)/lib/GRacket@CGC_CAP_INSTALLED@.app/Contents/MacOS/GRacket@CGC_CAP_INSTALLED@" ../../../../collects ../../../../etc
@STRIP_DEBUG@ "$(prefix)/lib/GRacket@CGC_CAP_INSTALLED@.app/Contents/MacOS/GRacket@CGC_CAP_INSTALLED@"
cd ..; $(ICP) -r gracket/GRacket@CGC@.app $(DESTDIR)"$(prefix)/lib/GRacket@CGC_CAP_INSTALLED@.app"
@RUN_RACKET_CGC@ $(SELF_RACKET_FLAGS) -cqu "$(srcdir)/../mac/rename-app.rkt" $(DESTDIR)"$(prefix)/lib/GRacket@CGC_CAP_INSTALLED@.app" "GRacket@CGC@" "GRacket@CGC_CAP_INSTALLED@"
/usr/bin/install_name_tool -change "@executable_path/../../../../racket/Racket.framework/Versions/$(FWVERSION)/Racket" "@FRAMEWORK_PREFIX@Racket.framework/Versions/$(FWVERSION)/Racket" $(DESTDIR)"$(prefix)/lib/GRacket@CGC_CAP_INSTALLED@.app/Contents/MacOS/GRacket@CGC_CAP_INSTALLED@"
@RUN_RACKET_CGC@ $(SELF_RACKET_FLAGS) -cu "$(srcdir)/../racket/collects-path.rkt" $(DESTDIR)"$(prefix)/lib/GRacket@CGC_CAP_INSTALLED@.app/Contents/MacOS/GRacket@CGC_CAP_INSTALLED@" ../../../../collects ../../../../etc
@STRIP_DEBUG@ $(DESTDIR)"$(prefix)/lib/GRacket@CGC_CAP_INSTALLED@.app/Contents/MacOS/GRacket@CGC_CAP_INSTALLED@"
install-wx_mac-cgc-final:
$(NOOP)
install-wx_mac-3m:
cd ..; $(ICP) -r "gracket/GRacket@MMM@.app" "$(prefix)/lib/GRacket@MMM_CAP_INSTALLED@.app"
@RUN_RACKET_MMM@ $(SELF_RACKET_FLAGS) -cqu "$(srcdir)/../mac/rename-app.rkt" "$(prefix)/lib/GRacket@MMM_CAP_INSTALLED@.app" "GRacket@MMM@" "GRacket@MMM_CAP_INSTALLED@"
/usr/bin/install_name_tool -change "@executable_path/../../../../racket/Racket.framework/Versions/$(FWVERSION)_3m/Racket" "@FRAMEWORK_PREFIX@Racket.framework/Versions/$(FWVERSION)_3m/Racket" "$(prefix)/lib/GRacket@MMM_CAP_INSTALLED@.app/Contents/MacOS/GRacket@MMM_CAP_INSTALLED@"
@RUN_RACKET_MMM@ $(SELF_RACKET_FLAGS) -cu "$(srcdir)/../racket/collects-path.rkt" "$(prefix)/lib/GRacket@MMM_CAP_INSTALLED@.app/Contents/MacOS/GRacket@MMM_CAP_INSTALLED@" "../../../../collects" ../../../../etc
@STRIP_DEBUG@ "$(prefix)/lib/GRacket@MMM_CAP_INSTALLED@.app/Contents/MacOS/GRacket@MMM_CAP_INSTALLED@"
cd ..; $(ICP) -r "gracket/GRacket@MMM@.app" $(DESTDIR)"$(prefix)/lib/GRacket@MMM_CAP_INSTALLED@.app"
@RUN_RACKET_MMM@ $(SELF_RACKET_FLAGS) -cqu "$(srcdir)/../mac/rename-app.rkt" $(DESTDIR)"$(prefix)/lib/GRacket@MMM_CAP_INSTALLED@.app" "GRacket@MMM@" "GRacket@MMM_CAP_INSTALLED@"
/usr/bin/install_name_tool -change "@executable_path/../../../../racket/Racket.framework/Versions/$(FWVERSION)_3m/Racket" "@FRAMEWORK_PREFIX@Racket.framework/Versions/$(FWVERSION)_3m/Racket" $(DESTDIR)"$(prefix)/lib/GRacket@MMM_CAP_INSTALLED@.app/Contents/MacOS/GRacket@MMM_CAP_INSTALLED@"
@RUN_RACKET_MMM@ $(SELF_RACKET_FLAGS) -cu "$(srcdir)/../racket/collects-path.rkt" $(DESTDIR)"$(prefix)/lib/GRacket@MMM_CAP_INSTALLED@.app/Contents/MacOS/GRacket@MMM_CAP_INSTALLED@" "../../../../collects" ../../../../etc
@STRIP_DEBUG@ $(DESTDIR)"$(prefix)/lib/GRacket@MMM_CAP_INSTALLED@.app/Contents/MacOS/GRacket@MMM_CAP_INSTALLED@"
install-wx_mac-3m-final:
$(NOOP)
install-wx_mac-post-collects:
cd ..; rm -rf $(prefix)/lib/Starter.app
cd ..; $(ICP) -r gracket/Starter.app $(prefix)/lib/.
cd ..; rm -rf $(DESTDIR)$(prefix)/lib/Starter.app
cd ..; $(ICP) -r gracket/Starter.app $(DESTDIR)$(prefix)/lib/.
@INCLUDEDEP@ grmain.d

View File

@ -350,7 +350,7 @@ unix-install:
cp $(srcdir)/dynsrc/starter-sh .
cd ..; cp racket/starter-sh "$(DESTDIR)$(libpltdir)/starter-sh"
cd ..; $(STRIP_DEBUG) "$(DESTDIR)$(libpltdir)/starter@EXE_SUFFIX@"
@RUN_RACKET_CGC@ -cu "$(srcdir)/collects-path.rkt" "$(DESTDIR)$(libpltdir)/starter@EXE_SUFFIX@" @COLLECTS_PATH@ @CONFIG_PATH@
@RUN_RACKET_CGC@ -cu "$(srcdir)/collects-path.rkt" "$(DESTDIR)$(libpltdir)/starter@EXE_SUFFIX@" $(DESTDIR)@COLLECTS_PATH@ $(DESTDIR)@CONFIG_PATH@
cd ..; echo 'CC=@CC@' > "$(BUILDINFO)"
cd ..; echo 'CFLAGS=$(CFLAGS) $(CPPFLAGS)' >> "$(BUILDINFO)"
cd ..; echo 'OPTIONS=@OPTIONS@' >> "$(BUILDINFO)"
@ -363,7 +363,7 @@ unix-install-cgc:
cd ..; $(ICP) racket/racket@CGC@ "$(DESTDIR)$(bindir)/racket@CGC_INSTALLED@"
cd ..; $(STRIP_DEBUG) "$(DESTDIR)$(bindir)/racket@CGC_INSTALLED@"
cd ..; cp racket/mzdyn.o "$(DESTDIR)$(libpltdir)/mzdyn.o"
@RUN_RACKET_CGC@ -cu "$(srcdir)/collects-path.rkt" "$(DESTDIR)$(bindir)/racket@CGC_INSTALLED@@EXE_SUFFIX@" @COLLECTS_PATH@ @CONFIG_PATH@
@RUN_RACKET_CGC@ -cu "$(srcdir)/collects-path.rkt" "$(DESTDIR)$(bindir)/racket@CGC_INSTALLED@@EXE_SUFFIX@" $(DESTDIR)@COLLECTS_PATH@ $(DESTDIR)@CONFIG_PATH@
unix-install-libs-cgc:
cd ..; $(ICP) racket/libmzgc.@LIBSFX@ "$(DESTDIR)$(libdir)/libmzgc.@LIBSFX@"
@ -380,7 +380,7 @@ unix-install-3m:
cd ..; $(STRIP_DEBUG) "$(DESTDIR)$(bindir)/racket@MMM_INSTALLED@"
$(MAKE) unix-@INSTALL_LIBS_ENABLE@-libs-3m
cd ..; $(ICP) racket/mzdyn3m.o "$(DESTDIR)$(libpltdir)/mzdyn3m.o"
@RUN_RACKET_MMM@ -cu "$(srcdir)/collects-path.rkt" "$(DESTDIR)$(bindir)/racket@MMM_INSTALLED@@EXE_SUFFIX@" @COLLECTS_PATH@ @CONFIG_PATH@
@RUN_RACKET_MMM@ -cu "$(srcdir)/collects-path.rkt" "$(DESTDIR)$(bindir)/racket@MMM_INSTALLED@@EXE_SUFFIX@" $(DESTDIR)@COLLECTS_PATH@ $(DESTDIR)@CONFIG_PATH@
unix-install-libs-3m:
cd ..; $(ICP) racket/libracket3m.@LIBSFX@ "$(DESTDIR)$(libdir)/libracket3m.@LIBSFX@"
@ -403,7 +403,7 @@ mingw-install-cgc:
cd ..; $(ICP) racket/lib/libmzgcxxxxxxx.dll "$(DESTDIR)$(libdir)/libmzgcxxxxxxx.dll"
cd ..; $(ICP) racket/lib/libracketxxxxxxx.dll "$(DESTDIR)$(libdir)/libracketxxxxxxx.dll"
cd ..; $(ICP) racket/racket@CGC@ "$(DESTDIR)@MZINSTALLBINDIR@/Racket@CGC_INSTALLED@"
@RUN_RACKET_CGC@ -cu "$(srcdir)/collects-path.rkt" @DIRCVTPRE@"$(DESTDIR)@MZINSTALLBINDIR@/Racket@CGC_INSTALLED@@EXE_SUFFIX@"@DIRCVTPOST@ @COLLECTS_PATH@ @CONFIG_PATH@
@RUN_RACKET_CGC@ -cu "$(srcdir)/collects-path.rkt" @DIRCVTPRE@"$(DESTDIR)@MZINSTALLBINDIR@/Racket@CGC_INSTALLED@@EXE_SUFFIX@"@DIRCVTPOST@ $(DESTDIR)@COLLECTS_PATH@ $(DESTDIR)@CONFIG_PATH@
mingw-install-cgc-final:
$(NOOP)
@ -411,7 +411,7 @@ mingw-install-cgc-final:
mingw-install-3m:
cd ..; $(ICP) racket/racket@MMM@ "$(DESTDIR)@MZINSTALLBINDIR@/Racket@MMM_INSTALLED@"
cd ..; $(ICP) racket/lib/libracket3mxxxxxxx.dll "$(DESTDIR)$(libdir)/libracket3mxxxxxxx.dll"
@RUN_RACKET_MMM@ -cu "$(srcdir)/collects-path.rkt" @DIRCVTPRE@"$(DESTDIR)@MZINSTALLBINDIR@/Racket@MMM_INSTALLED@@EXE_SUFFIX@"@DIRCVTPOST@ @COLLECTS_PATH@ @CONFIG_PATH@
@RUN_RACKET_MMM@ -cu "$(srcdir)/collects-path.rkt" @DIRCVTPRE@"$(DESTDIR)@MZINSTALLBINDIR@/Racket@MMM_INSTALLED@@EXE_SUFFIX@"@DIRCVTPOST@ $(DESTDIR)@COLLECTS_PATH@ $(DESTDIR)@CONFIG_PATH@
mingw-install-3m-final:
$(NOOP)
@ -424,33 +424,33 @@ FRAMEWORK_REL_PREFIX = "@executable_path/../lib/"
osx-install:
$(MAKE) unix-install
rm -f $(MZFWDIR)/Racket
rm -rf $(MZFWDIR)/Versions/$(FWVERSION)
rm -rf $(MZFWDIR)/Versions/$(FWVERSION)_3m
if [ @FRAMEWORK_REL_INSTALL@ = yes ] ; then rm -rf $(MZFWDIR) ; fi
mkdir -p @FRAMEWORK_INSTALL_DIR@
rm -f $(DESTDIR)$(MZFWDIR)/Racket
rm -rf $(DESTDIR)$(MZFWDIR)/Versions/$(FWVERSION)
rm -rf $(DESTDIR)$(MZFWDIR)/Versions/$(FWVERSION)_3m
if [ @FRAMEWORK_REL_INSTALL@ = yes ] ; then rm -rf $(DESTDIR)$(MZFWDIR) ; fi
mkdir -p $(DESTDIR)@FRAMEWORK_INSTALL_DIR@
osx-install-cgc:
$(MAKE) unix-install-cgc
mkdir -p "$(MZFWDIR)/Versions/$(FWVERSION)"
cp $(MZFW) $(MZFWDIR)/Versions/$(FWVERSION)/
/usr/bin/install_name_tool -change "@executable_path/Racket.framework/Versions/$(FWVERSION)/Racket" "@FRAMEWORK_PREFIX@Racket.framework/Versions/$(FWVERSION)/Racket" "$(bindir)/racket@CGC_INSTALLED@"
$(STRIP_DEBUG) "$(bindir)/racket@CGC_INSTALLED@"
mkdir -p $(DESTDIR)$(MZFWDIR)/Versions/$(FWVERSION)
cp $(MZFW) $(DESTDIR)$(MZFWDIR)/Versions/$(FWVERSION)/
/usr/bin/install_name_tool -change "@executable_path/Racket.framework/Versions/$(FWVERSION)/Racket" "@FRAMEWORK_PREFIX@Racket.framework/Versions/$(FWVERSION)/Racket" $(DESTDIR)"$(bindir)/racket@CGC_INSTALLED@"
$(STRIP_DEBUG) $(DESTDIR)"$(bindir)/racket@CGC_INSTALLED@"
osx-install-cgc-final:
$(MAKE) unix-install-cgc-final
ln -s Versions/$(FWVERSION)/Racket $(MZFWDIR)/
ln -s Versions/$(FWVERSION)/Racket $(DESTDIR)$(MZFWDIR)/
osx-install-3m:
$(MAKE) unix-install-3m
mkdir -p "$(MZFWDIR)/Versions/$(FWVERSION)_3m"
cp $(MZFWMMM) $(MZFWDIR)/Versions/$(FWVERSION)_3m/
/usr/bin/install_name_tool -change "@executable_path/Racket.framework/Versions/$(FWVERSION)_3m/Racket" "@FRAMEWORK_PREFIX@Racket.framework/Versions/$(FWVERSION)_3m/Racket" "$(bindir)/racket@MMM_INSTALLED@"
$(STRIP_DEBUG) "$(bindir)/racket@MMM_INSTALLED@"
mkdir -p $(DESTDIR)"$(MZFWDIR)/Versions/$(FWVERSION)_3m"
cp $(MZFWMMM) $(DESTDIR)$(MZFWDIR)/Versions/$(FWVERSION)_3m/
/usr/bin/install_name_tool -change "@executable_path/Racket.framework/Versions/$(FWVERSION)_3m/Racket" "@FRAMEWORK_PREFIX@Racket.framework/Versions/$(FWVERSION)_3m/Racket" $(DESTDIR)"$(bindir)/racket@MMM_INSTALLED@"
$(STRIP_DEBUG) $(DESTDIR)"$(bindir)/racket@MMM_INSTALLED@"
osx-install-3m-final:
$(MAKE) unix-install-3m-final
ln -s Versions/$(FWVERSION)_3m/Racket $(MZFWDIR)/
ln -s Versions/$(FWVERSION)_3m/Racket $(DESTDIR)$(MZFWDIR)/
# Cygwin install ----------------------------------------