From d39a85d3211f112307dd6c781f08d43b26efe883 Mon Sep 17 00:00:00 2001 From: partain Date: Tue, 9 Jan 1996 18:03:28 +0000 Subject: [PATCH 1/1] [project @ 1996-01-09 17:59:59 by partain] --- ghc/mkworld/macros-ghc.jm | 23 +++++ ghc/mkworld/only4-ghc.jm | 231 +++++++++++++++++++++++++++++++++++++++++++ ghc/mkworld/suffixes-ghc.jm | 4 + ghc/mkworld/utils-ghc.jm | 130 ++++++++++++++++++++++++ 4 files changed, 388 insertions(+) create mode 100644 ghc/mkworld/install-ghc.jm create mode 100644 ghc/mkworld/macros-ghc.jm create mode 100644 ghc/mkworld/only4-ghc.jm create mode 100644 ghc/mkworld/suffixes-ghc.jm create mode 100644 ghc/mkworld/utils-ghc.jm diff --git a/ghc/mkworld/install-ghc.jm b/ghc/mkworld/install-ghc.jm new file mode 100644 index 0000000..e69de29 diff --git a/ghc/mkworld/macros-ghc.jm b/ghc/mkworld/macros-ghc.jm new file mode 100644 index 0000000..3c9d84b --- /dev/null +++ b/ghc/mkworld/macros-ghc.jm @@ -0,0 +1,23 @@ +# line 9 "macros-ghc.ljm" +/* ToDo: cmp -> $(CMP) */ + +#ifndef UgenTarget +#define UgenTarget(fileroot) @@\ +ExtraStuffToBeVeryClean(fileroot.c fileroot.h fileroot.hs) @@\ +fileroot.c : fileroot.ugn @@\ + d=`dirname fileroot.ugn` ; f=`basename fileroot.ugn .ugn` ; \ @@\ + $(RM) fileroot.c fileroot.hs "$$d/U_$$f.hs" fileroot.h-SAVE @@\ + if [ -f fileroot.h ] ; then $(MV) -f fileroot.h fileroot.h-SAVE ; else exit 0 ; fi @@\ + $(UGEN) fileroot.ugn || ( $(RM) fileroot.h fileroot.c fileroot.hs; $(MV) -f fileroot.h-SAVE fileroot.h ) @@\ + if cmp -s fileroot.h-SAVE fileroot.h ; then \ @@\ + $(MV) -f fileroot.h-SAVE fileroot.h ; \ @@\ + else \ @@\ + chmod 444 fileroot.h fileroot.c fileroot.hs ; \ @@\ + fi @@\ + @$(RM) fileroot.h-SAVE @@\ + @d=`dirname fileroot.ugn` ; f=`basename fileroot.ugn .ugn` ; \ @@\ + $(MV) -f fileroot.hs "$$d/U_$$f.hs" @@\ + @@\ +fileroot.h : fileroot.c @@\ + @: /* no-op */ +#endif /* UgenTarget */ diff --git a/ghc/mkworld/only4-ghc.jm b/ghc/mkworld/only4-ghc.jm new file mode 100644 index 0000000..2279ad1 --- /dev/null +++ b/ghc/mkworld/only4-ghc.jm @@ -0,0 +1,231 @@ +# line 8 "only4-ghc.ljm" +/* Project identification - name and version */ + +#ifndef ProjectName +#define ProjectName The Glorious Glasgow Haskell Compilation System +#endif +/* ProjectVersion is something printable */ +#ifndef ProjectVersion +#define ProjectVersion 0.26 +#endif +/* A patchlevel change is something *very minor* */ +#ifndef ProjectPatchLevel +#define ProjectPatchLevel patchlevel 0 +#endif +/* GhcBuildeeVersion is something CPP-testable (ProjectVersion * 100) */ +#ifndef GhcBuildeeVersion +#define GhcBuildeeVersion 26 +#endif +# line 29 "only4-ghc.ljm" +/* state of the source world */ +GHC_DRIVERSRC = $(TOP)/ghc/driver +GHC_COMPILERSRC = $(TOP)/ghc/compiler +GHC_RUNTIMESRC = $(TOP)/ghc/runtime +GHC_LIBSRC = $(TOP)/ghc/lib +GHC_INCLUDESRC = $(TOP)/ghc/includes +GHC_UTILSRC = $(TOP)/ghc/utils +GHC_BOOKSRC = $(TOP)/ghc/book +# line 41 "only4-ghc.ljm" +#ifndef GhcIncludesDir +#define GhcIncludesDir $(GHC_INCLUDESRC) +#endif +GHC_INCLUDES = GhcIncludesDir +# line 51 "only4-ghc.ljm" +#ifndef AllProjectsGhcOpts +#define AllProjectsGhcOpts /*none*/ +#endif + +#ifndef PlatformGhcOpts +#define PlatformGhcOpts /*none*/ +#endif + +#if HaskellCompilerType == HC_CHALMERS_HBC +GHC_RTS_STYLE = 'hbc' +#else +# if HaskellCompilerType == HC_ROJEMO_NHC +GHC_RTS_STYLE = 'ghc' /* wrong, but more likely to trigger something */ +# else +GHC_RTS_STYLE = 'ghc' +# endif +#endif + +#ifndef ProjectGhcOpts +#define ProjectGhcOpts -hi-diffs -dcore-lint -link-chk +#endif /* ! ProjectGhcOpts */ + +#ifndef SetupGhcOpts +#define SetupGhcOpts /*none*/ +#endif + +GenerateOptionsMakeVars(GHC,OPTS,AllProjectsGhcOpts,PlatformGhcOpts,ProjectGhcOpts,SetupGhcOpts) + +GHCFLAGS=$(GLUED_CPP_DEFINES) $(GLUED_GHC_OPTS) +# line 95 "only4-ghc.ljm" +/* build York interpreter as well as Glasgow compiler +*/ +#ifndef BuildYorkInterpreter +#define BuildYorkInterpreter NO +#endif + +/* incorporate Semantique strictness analyser into the compiler; + it analyses, but the info generated is *UNUSED* :-( + */ +#ifndef UseSemantiqueStrictnessAnalyser +#define UseSemantiqueStrictnessAnalyser NO +#endif +# line 116 "only4-ghc.ljm" +/* defaults for which pieces should be installed */ +/* ToDo: possibly obsolete */ +#ifndef DoInstallGHCSystem +#define DoInstallGHCSystem YES +#endif /* DoInstallGHCSystem */ +# line 124 "only4-ghc.ljm" +/* ------------------------------------------------------------------ */ +/* compiler-proper subsystem: + the lib/data bits are installed w/ a version number as well +*/ + +#ifndef InstBinDir_GHC +# if AT_GLASGOW +# define InstBinDir_GHC $(exec_prefix_GHC)/bin/`/usr/local/gnu/bin/hw_os` +# else +# define InstBinDir_GHC $(exec_prefix_GHC)/bin +# endif +#endif + +/* scripts are platform-independent */ +#ifndef InstScriptDir_GHC +#define InstScriptDir_GHC $(exec_prefix_GHC)/bin +#endif + +/* main "internally-used-by-GHC" stuff */ +#ifndef InstLibDir_GHC +#define InstLibDir_GHC $(prefix_GHC)/lib/ghc/$(PROJECTVERSION)/$(HOSTPLATFORM) +#endif + +/* "data" is defined (by WDP) to be platform-independent library stuff */ +#ifndef InstDataDir_GHC +#define InstDataDir_GHC $(prefix_GHC)/lib/ghc/$(PROJECTVERSION) +#endif + +prefix_GHC = InstRootDir_GHC /* set by configure */ +exec_prefix_GHC = InstBinRootDir_GHC /* ditto */ +INSTBINDIR_GHC = InstBinDir_GHC +INSTSCRIPTDIR_GHC = InstScriptDir_GHC +INSTLIBDIR_GHC = InstLibDir_GHC +INSTDATADIR_GHC = InstDataDir_GHC +# line 183 "only4-ghc.ljm" +#ifndef GhcDriverInstallName +#define GhcDriverInstallName ghc +#endif /* ! GhcDriverInstallName */ +GHC_DRIVER_INST_NAME = GhcDriverInstallName +# line 197 "only4-ghc.ljm" +/* ghc: std driver for compilation system */ +#ifndef GhcDriverCmd +#define GhcDriverCmd $(GHC_DRIVERSRC)/ghc +#endif + +/* macro to make sure it has been built */ +#ifndef GhcDriverNeededHere +#define GhcDriverNeededHere(target) \ +__SomeUtilNeededHere(target,$(GHC),$(GHC_DRIVERSRC),all) +#endif + +/* could be GHC_DRIVER, but GHC is its common name */ +GHC = GhcDriverCmd +# line 218 "only4-ghc.ljm" +#ifndef HsCppCmd +#define HsCppCmd $(GHC_HSCPPSRC)/hscpp +#endif + +#ifndef HsCppNeededHere +#define HsCppNeededHere(target) \ +__SomeUtilNeededHere(target,$(GHC_HSCPP),$(GHC_HSCPPSRC),hscpp) +#endif + +GHC_HSCPP = HsCppCmd $(ALLPROJ_CPP_DEFINES) +GHC_HSCPPSRC = $(GHC_UTILSRC)/hscpp +# line 233 "only4-ghc.ljm" +#ifndef HsParserCmd +#define HsParserCmd $(GHC_HSPSRC)/hsp +#endif + +#ifndef HsParserNeededHere +#define HsParserNeededHere(target) \ +__SomeUtilNeededHere(target,$(GHC_HSP),$(GHC_HSPSRC),hsp) +#endif /* HsParserNeededHere */ + +GHC_HSP = HsParserCmd +GHC_HSPSRC = $(GHC_HSCSRC) +# line 248 "only4-ghc.ljm" +#ifndef HsCompilerCmd +#define HsCompilerCmd $(GHC_HSCSRC)/hsc +#endif + +#ifndef HsCompilerNeededHere +#define HsCompilerNeededHere(target) \ +__SomeUtilNeededHere(target,$(GHC_HSC),$(GHC_HSCSRC),hsc) +#endif /* HsCompilerNeededHere */ + +GHC_HSC = HsCompilerCmd +GHC_HSCSRC = $(GHC_COMPILERSRC) +# line 263 "only4-ghc.ljm" +#ifndef SysManCmd +#define SysManCmd $(GHC_RUNTIMESRC)/gum/SysMan +#endif + +#ifndef SysManNeededHere +#define SysManNeededHere(target) \ +__SomeUtilNeededHere(target,$(GHC_SYSMAN),$(GHC_SYSMANSRC),gum/SysMan) +#endif /* SysManNeededHere */ + +GHC_SYSMAN = SysManCmd +GHC_SYSMANSRC = $(GHC_RUNTIMESRC) +# line 318 "only4-ghc.ljm" +/* NON-OPTIMISING C COMPILATION: ================================== + + We can use GCC 2.n for the non-optimising (normal) .hc C + compilation [use it if we have it] +*/ +#ifndef GhcUseGccForDebuggingAsm +#if HaveGcc == YES +#define GhcUseGccForDebuggingAsm YES +#else +#define GhcUseGccForDebuggingAsm NO +#endif +#endif + +#ifndef GhcDebuggingHighLevelAsmCmd +#if GhcUseGccForDebuggingAsm == YES +#define GhcDebuggingHighLevelAsmCmd WhatGccIsCalled +#else +#define GhcDebuggingHighLevelAsmCmd $(CC) +#endif /* ! gcc */ +#endif /* GhcDebuggingHighLevelAsmCmd */ +GHC_DEBUG_HILEV_ASM = GhcDebuggingHighLevelAsmCmd +# line 342 "only4-ghc.ljm" +/* OPTIMISING C COMPILATION (regs, etc): ========================== + + Must use GCC 2.n for this + compilation [OFF by default] +*/ +/* We have GCC, which is necessary for optimising the Haskell + compiler's C output. +*/ +#ifndef GhcUseGccForOptAsm +#if HaveGcc == YES +#define GhcUseGccForOptAsm YES +#else +#define GhcUseGccForOptAsm NO +#endif +#endif + +#ifndef GhcOptHighLevelAsmCmd +#if GhcUseGccForOptAsm == YES +#define GhcOptHighLevelAsmCmd WhatGccIsCalled +GHC_GCC_IS_AVAILABLE = 1 +#else +GHC_GCC_IS_AVAILABLE = 0 +#endif /* ! gcc */ +#endif /* GhcOptHighLevelAsmCmd */ +GHC_OPT_HILEV_ASM = GhcOptHighLevelAsmCmd diff --git a/ghc/mkworld/suffixes-ghc.jm b/ghc/mkworld/suffixes-ghc.jm new file mode 100644 index 0000000..31af401 --- /dev/null +++ b/ghc/mkworld/suffixes-ghc.jm @@ -0,0 +1,4 @@ +# line 11 "suffixes-ghc.ljm" +#ifndef SuffixRules_WantStdOnes +#define SuffixRules_WantStdOnes NO +#endif diff --git a/ghc/mkworld/utils-ghc.jm b/ghc/mkworld/utils-ghc.jm new file mode 100644 index 0000000..d1421da --- /dev/null +++ b/ghc/mkworld/utils-ghc.jm @@ -0,0 +1,130 @@ +# line 11 "utils-ghc.ljm" +#if GhcWithHscOptimised == YES +#define __hsc_opt -O +#else +#define __hsc_opt /**/ +#endif + +#ifndef SetupHcOpts +#if HaskellCompilerType == HC_CHALMERS_HBC +#define SetupHcOpts __hsc_opt -fpbu +#else +#if HaskellCompilerType == HC_GLASGOW_GHC +#define SetupHcOpts __hsc_opt -hi-diffs -link-chk +#else +#if HaskellCompilerType == HC_ROJEMO_NHC +#define SetupHcOpts /*nothing*/ +#else +#define SetupHcOpts /*nothing*/ +#endif +#endif +#endif +#endif /* SetupHcOpts */ + +#ifndef ProjectCcOpts +#if HaveGcc == YES && UseGcc == YES +/* can cope w/ "-g -O" ...; but leave out -g to avoid bloated libs */ +#define ProjectCcOpts -O /*-g*/ +#else +#define ProjectCcOpts /*-g*/ +#endif /* Gcc whatnot */ +#endif /* ProjectCcOpts */ + +#ifndef ProjectJmakeDefines +#define ProjectJmakeDefines /*none*/ +#endif +# line 48 "utils-ghc.ljm" +#ifndef MkDependHSSrc +#define MkDependHSSrc $(GHC_UTILSRC)/mkdependHS +#endif + +#ifndef MkDependHSCmd +#if defined(UseInstalledUtils) +#define MkDependHSCmd mkdependHS +#else +#define MkDependHSCmd $(MKDEPENDHSSRC)/mkdependHS +#endif +#endif /* ! MkDependHSCmd */ + +#ifndef MkDependHSNeededHere +#if defined(UseInstalledUtils) +#define MkDependHSNeededHere(target) /**/ +#else +#define MkDependHSNeededHere(target) \ +__SomeUtilNeededHere(target,$(MKDEPENDHS),$(MKDEPENDHSSRC),mkdependHS) +#endif /* UseInstalledUtils */ +#endif /* MkDependHSNeededHere */ + +#ifndef UseInstalledUtils +MKDEPENDHSSRC = MkDependHSSrc +#endif + +#ifndef UnlitCmd +#define UnlitCmd $(GHC_UNLITSRC)/unlit +#endif + +#ifndef UnlitNeededHere +#define UnlitNeededHere(target) \ +__SomeUtilNeededHere(target,$(GHC_UNLIT),$(GHC_UNLITSRC),unlit) +#endif /* UnlitNeededHere */ + +GHC_UNLIT = UnlitCmd +GHC_UNLITSRC = $(GHC_UTILSRC)/unlit +# line 87 "utils-ghc.ljm" +#ifndef HsTagsSrc +#define HsTagsSrc $(GHC_UTILSRC)/hstags +#endif +#if defined(UseInstalledUtils) +#define HsTagsCmd hstags +#else +#define HsTagsCmd $(HSTAGSSRC)/hstags +#endif + +#ifndef HsTagsNeededHere +#if defined(UseInstalledUtils) +#define HsTagsNeededHere(target) /**/ +#else +#define HsTagsNeededHere(target) \ +__SomeUtilNeededHere(target,$(HSTAGS),$(HSTAGSSRC),hstags) +#endif /* UseInstalledUtils */ +#endif /* HsTagsNeededHere */ +HSTAGS = HsTagsCmd +#ifndef UseInstalledUtils +HSTAGSSRC = HsTagsSrc +#endif + +#ifndef AllProjectsHsTagsOpts +#define AllProjectsHsTagsOpts /*none*/ +#endif +#ifndef PlatformHsTagsOpts +#define PlatformHsTagsOpts /*none*/ +#endif +#ifndef ProjectHsTagsOpts +#define ProjectHsTagsOpts /*none*/ +#endif +#ifndef SetupHsTagsOpts +#define SetupHsTagsOpts /*none*/ +#endif +GenerateOptionsMakeVars(HSTAGS,OPTS,AllProjectsHsTagsOpts,PlatformHsTagsOpts,ProjectHsTagsOpts,SetupHsTagsOpts) +HSTAGSFLAGS = $(GLUED_HSTAGS_OPTS) + +/* ugen: allegedly generally-useful util from LML distribution */ +#ifndef UgenCmd +#if defined(UseInstalledUtils) +#define UgenCmd ugen +#else +#define UgenCmd $(UGENSRC)/ugen +#endif +#endif +#ifndef UgenNeededHere +#if defined(UseInstalledUtils) +#define UgenNeededHere(target) /**/ +#else +#define UgenNeededHere(target) \ +__SomeUtilNeededHere(target,$(UGEN),$(UGENSRC),ugen) +#endif /* ! UseInstalledUtils */ +#endif /* UgenNeededHere */ +UGEN = UgenCmd +#ifndef UseInstalledUtils +UGENSRC = $(GHC_UTILSRC)/ugen +#endif -- 1.7.10.4