[project @ 1996-01-09 17:59:59 by partain]
authorpartain <unknown>
Tue, 9 Jan 1996 18:03:28 +0000 (18:03 +0000)
committerpartain <unknown>
Tue, 9 Jan 1996 18:03:28 +0000 (18:03 +0000)
ghc/mkworld/install-ghc.jm [new file with mode: 0644]
ghc/mkworld/macros-ghc.jm [new file with mode: 0644]
ghc/mkworld/only4-ghc.jm [new file with mode: 0644]
ghc/mkworld/suffixes-ghc.jm [new file with mode: 0644]
ghc/mkworld/utils-ghc.jm [new file with mode: 0644]

diff --git a/ghc/mkworld/install-ghc.jm b/ghc/mkworld/install-ghc.jm
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/ghc/mkworld/macros-ghc.jm b/ghc/mkworld/macros-ghc.jm
new file mode 100644 (file)
index 0000000..3c9d84b
--- /dev/null
@@ -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 (file)
index 0000000..2279ad1
--- /dev/null
@@ -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 (file)
index 0000000..31af401
--- /dev/null
@@ -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 (file)
index 0000000..d1421da
--- /dev/null
@@ -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