From 4f31f78c602d3c9577ff6ab30ab66d43a8e9b7ca Mon Sep 17 00:00:00 2001 From: simonm Date: Fri, 28 Mar 1997 16:31:57 +0000 Subject: [PATCH] [project @ 1997-03-28 16:28:25 by simonm] merge from 2.02 branch --- distrib/Makefile-bin.in | 4 +++- ghc/driver/ghc.lprl | 26 ++++++++++++++------------ mk/target.mk | 34 +++++++++++++++++++++++++++++++--- 3 files changed, 48 insertions(+), 16 deletions(-) diff --git a/distrib/Makefile-bin.in b/distrib/Makefile-bin.in index 15882cf..e99c868 100644 --- a/distrib/Makefile-bin.in +++ b/distrib/Makefile-bin.in @@ -82,7 +82,7 @@ version = 2.02 PERL = @PerlCmd@ RM = rm -f MV = mv -CP = cp -f +CP = cp LN_S = @LN_S@ CHMOD = chmod INSTALL = @INSTALL@ @@ -138,6 +138,7 @@ config-pkgs :: echo " if $$""running_under_some_shell;" >> bin/$(platform)/$(package)-$(version)/$$i; \ echo $$"bindir='$(bindir)';" >> bin/$(platform)/$(package)-$(version)/$$i; \ echo $$"libdir='$(real_libdir)';" >> bin/$(platform)/$(package)-$(version)/$$i; \ + echo $$"libexecdir='$(real_libdir)';" >> bin/$(platform)/$(package)-$(version)/$$i; \ echo $$"datadir='$(real_datadir)';" >> bin/$(platform)/$(package)-$(version)/$$i; \ cat bin/$(platform)/$(package)-$(version)/$$i.prl >> bin/$(platform)/$(package)-$(version)/$$i; \ $(CHMOD) $(BIN_PERMS) bin/$(platform)/$(package)-$(version)/$$i; \ @@ -151,6 +152,7 @@ config-pkgs :: echo " if $$""running_under_some_shell;" >> lib/$(platform)/$(package)-$(version)/$$i; \ echo $$"bindir='$(bindir)';" >> lib/$(platform)/$(package)-$(version)/$$i; \ echo $$"libdir='$(real_libdir)';" >> lib/$(platform)/$(package)-$(version)/$$i; \ + echo $$"libexecdir='$(real_libdir)';" >> lib/$(platform)/$(package)-$(version)/$$i; \ echo $$"datadir='$(real_datadir)';" >> lib/$(platform)/$(package)-$(version)/$$i; \ cat lib/$(platform)/$(package)-$(version)/$$i.prl >> lib/$(platform)/$(package)-$(version)/$$i; \ $(CHMOD) $(BIN_PERMS) lib/$(platform)/$(package)-$(version)/$$i; \ diff --git a/ghc/driver/ghc.lprl b/ghc/driver/ghc.lprl index 0e8a3f2..b499b8a 100644 --- a/ghc/driver/ghc.lprl +++ b/ghc/driver/ghc.lprl @@ -129,11 +129,13 @@ select(STDERR); $| = 1; select(STDOUT); # no STDERR buffering, please. $TargetPlatform = $TARGETPLATFORM; -$TopPwd = "${TOP_PWD}"; -$InstBinDirGhc = "${bindir}"; -$InstLibDirGhc = "${libdir}"; -$InstDataDirGhc = "${datadir}"; -$InstSysLibDir = ( $INSTALLING ) ? "${InstLibDirGhc}/hslibs" : "$TopPwd/hslibs"; +$TopPwd = "${TOP_PWD}"; +$InstBinDirGhc = "${bindir}"; +$InstLibDirGhc = "${libdir}"; +$InstLibexecDirGhc = "${libexecdir}"; +$InstDataDirGhc = "${datadir}"; +$InstSysLibDir = ( $INSTALLING ) ? "${InstLibDirGhc}/hslibs" : + "$TopPwd/hslibs"; $Status = 0; # just used for exit() status $Verbose = ''; @@ -158,7 +160,7 @@ if ( $ENV{'TMPDIR'} ) { # where to make tmp file names @Files_to_tidy = (); # files we nuke in the case of abnormal termination -$Unlit = ( $INSTALLING ) ? "$InstLibDirGhc/unlit" +$Unlit = ( $INSTALLING ) ? "$InstLibexecDirGhc/unlit" : "$TopPwd/${CURRENT_DIR}/${GHC_UNLIT}"; $Cp = $CP; @@ -169,16 +171,16 @@ $Cmp = 'cmp'; $Time = ''; $HsCpp = # but this is re-set to "cat" (after options) if -cpp not seen - ( $INSTALLING ) ? "$InstLibDirGhc/hscpp" + ( $INSTALLING ) ? "$InstLibexecDirGhc/hscpp" : "$TopPwd/${CURRENT_DIR}/${GHC_HSCPP}"; @HsCpp_flags = (); $genSPECS_flag = ''; # See ../utils/hscpp/hscpp.prl -$HsC = ( $INSTALLING ) ? "$InstLibDirGhc/hsc" +$HsC = ( $INSTALLING ) ? "$InstLibexecDirGhc/hsc" : "$TopPwd/${CURRENT_DIR}/${GHC_HSC}"; # For PVM fiends only -$SysMan = ( $INSTALLING ) ? "$InstLibDirGhc/SysMan" +$SysMan = ( $INSTALLING ) ? "$InstLibexecDirGhc/SysMan" : "$TopPwd/${CURRENT_DIR}/${GHC_SYSMAN}"; @Unlit_flags = (); @@ -1127,7 +1129,7 @@ sub setupMachOpts { # we know how to *mangle* asm for X86 unshift(@CcRegd_flags, ('-D__STG_REV_TBLS__')); unshift(@CcRegd_flags, ('-DSTACK_CHECK_BY_PAGE_FAULT=1')) - if $StkChkByPageFaultOK; + if $StkChkByPageFaultOK && $TargetPlatform !~ /nextstep/; # I do not know how to do STACK_CHECK_BY_PAGE_FAULT # on NeXTs (my fault, not theirs), so I don't. @@ -1147,12 +1149,12 @@ sub setupMachOpts { # we know how to *mangle* asm for m68k unshift (@CcRegd_flags, ('-D__STG_REV_TBLS__')); unshift (@CcRegd_flags, ('-DSTACK_CHECK_BY_PAGE_FAULT=1')) - if $StkChkByPageFaultOK; + if $StkChkByPageFaultOK && $TargetPlatform !~ /nextstep/; # I do not know how to do STACK_CHECK_BY_PAGE_FAULT # on NeXTs (my fault, not theirs), so I don't. # CaS - && + # -fno-defer-pop : for the .hc files, we want all the pushing/ # popping of args to routines to be explicit; if we let things # be deferred 'til after an STGJUMP, imminent death is certain! diff --git a/mk/target.mk b/mk/target.mk index dd67bf4..51314d1 100644 --- a/mk/target.mk +++ b/mk/target.mk @@ -453,7 +453,7 @@ ifneq "$(BIN_DIST)" "1" $(RM) $$i.tmp; \ echo "eval 'exec $(PERL) -S $$$""0 $$""{1+\"$$$""@\"}'" > $$i.tmp ; \ echo " if $$""running_under_some_shell;" >> $$i.tmp ; \ - echo $$"bindir='$(bindir);'" >> $$i.tmp ; \ + echo $$"bindir='$(bindir)';" >> $$i.tmp ; \ echo $$"libdir='$(real_libdir)';" >> $$i.tmp ; \ echo $$"datadir='$(real_datadir)';" >> $$i.tmp ; \ cat $$i >> $$i.tmp ; \ @@ -481,7 +481,7 @@ ifneq "$(BIN_DIST)" "1" $(RM) $$i.tmp; \ echo "eval 'exec $(PERL) -S $$$""0 $$""{1+\"$$$""@\"}'" > $$i.tmp ; \ echo " if $$""running_under_some_shell;" >> $$i.tmp ; \ - echo $$"bindir='$(bindir);'" >> $$i.tmp ; \ + echo $$"bindir='$(bindir)';" >> $$i.tmp ; \ echo $$"libdir='$(real_libdir)';" >> $$i.tmp ; \ echo $$"datadir='$(real_datadir)';" >> $$i.tmp ; \ cat $$i >> $$i.tmp ; \ @@ -495,12 +495,40 @@ else done endif else - for i in $(INSTALL_SCRIPTS); do \ + for i in $(INSTALL_LIB_SCRIPTS); do \ $(INSTALL_PROGRAM) $(INSTALL_OPTS) $$i $(libdir); \ done endif endif +ifneq "$(INSTALL_LIBEXEC_SCRIPTS)" "" +install:: $(INSTALL_LIBEXEC_SCRIPTS) +ifeq "$(INTERP)" "perl" +ifneq "$(BIN_DIST)" "1" + @for i in $(INSTALL_LIBEXEC_SCRIPTS); do \ + $(RM) $$i.tmp; \ + echo "eval 'exec $(PERL) -S $$$""0 $$""{1+\"$$$""@\"}'" > $$i.tmp ; \ + echo " if $$""running_under_some_shell;" >> $$i.tmp ; \ + echo $$"bindir='$(bindir)';" >> $$i.tmp ; \ + echo $$"libdir='$(real_libdir)';" >> $$i.tmp ; \ + echo $$"datadir='$(real_datadir)';" >> $$i.tmp ; \ + cat $$i >> $$i.tmp ; \ + echo $(INSTALL_PROGRAM) $(INSTALL_OPTS) $$i $(libexecdir) ; \ + $(INSTALL_PROGRAM) $(INSTALL_OPTS) $$i.tmp $(libexecdir)/$$i ; \ + $(RM) $$i.tmp; \ + done +else + for i in $(INSTALL_LIBEXEC_SCRIPTS); do \ + $(INSTALL_PROGRAM) $(INSTALL_OPTS) $$i $(libexecdir); \ + done +endif +else + for i in $(INSTALL_LIBEXEC_SCRIPTS); do \ + $(INSTALL_PROGRAM) $(INSTALL_OPTS) $$i $(libexecdir); \ + done +endif +endif + ifneq "$(INSTALL_LIBS)" "" install:: $(INSTALL_LIBS) for i in $(INSTALL_LIBS); do \ -- 1.7.10.4