[project @ 1996-11-21 16:45:53 by simonm]
[ghc-hetmet.git] / ghc / mkworld / only4-ghc.jm
diff --git a/ghc/mkworld/only4-ghc.jm b/ghc/mkworld/only4-ghc.jm
deleted file mode 100644 (file)
index 15b1c0f..0000000
+++ /dev/null
@@ -1,391 +0,0 @@
-#if 0
-%************************************************************************
-%*                                                                     *
-\section[mkworld-only4-ghc]{Extra things ``only for'' for the @ghc@ project}
-%*                                                                     *
-%************************************************************************
-
-\begin{code}
-#endif /* 0 */
-/* Project identification - name and version */
-
-#ifndef ProjectName
-#define ProjectName     The Glorious Glasgow Haskell Compilation System
-#endif
-/* ProjectVersion is something printable */
-#ifndef ProjectVersion
-#define ProjectVersion  2.01
-#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  201
-#endif
-#if 0
-\end{code}
-
-Make variables that say where the source to main pieces of the system live:
-\begin{code}
-#endif /* 0 */
-/* 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
-#if 0
-\end{code}
-
-Include definitions (usually to go with generated C):
-\begin{code}
-#endif /* 0 */
-#ifndef GhcIncludesDir
-#define GhcIncludesDir $(GHC_INCLUDESRC)
-#endif
-GHC_INCLUDES = GhcIncludesDir
-#if 0
-\end{code}
-
-A make variable that's occasionally very important: we use \tr{GHC_*}
-when we really mean GHC, rather than \tr{HC*}, which just means ``the
-standard Haskell compiler'' (whatever that is).
-\begin{code}
-#endif /* 0 */
-#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)
-#if 0
-\end{code}
-
-%************************************************************************
-%*                                                                     *
-\subsection{What to build}
-%*                                                                     *
-%************************************************************************
-
-%************************************************************************
-%*                                                                     *
-\subsubsection{Include or leave out these individual ``features''}
-%*                                                                     *
-%************************************************************************
-
-\begin{code}
-#endif /* 0 */
-/* 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
-#if 0
-\end{code}
-
-%************************************************************************
-%*                                                                     *
-\subsection{Installation: whether to, where to, what to}
-%*                                                                     *
-%************************************************************************
-
-\begin{code}
-#endif /* 0 */
-/* defaults for which pieces should be installed */
-/* ToDo: possibly obsolete */
-#ifndef DoInstallGHCSystem
-#define DoInstallGHCSystem     YES
-#endif /* DoInstallGHCSystem */
-
-/* ------------------------------------------------------------------ */
-/* 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
-#if 0
-\end{code}
-
-%************************************************************************
-%*                                                                     *
-\subsection{Configuring the driver}
-%*                                                                     *
-%************************************************************************
-
-The driver script is the thing that glues the compilation system
-together.  It needs to know what is/isn't included in the system,
-e.g., what garbage-collectors are catered for.
-
-Mkworld records the needed information in make variables (e.g.,
-\tr{$(GHC_HSCPP)}), and we then `msub' that into the driver (perl)
-script.  Note: ALL configuration info should be HERE (not hacked into
-the script)!
-
-The first chunk of stuff here is mkworld boilerplate and probably
-doesn't need fiddling.  Once we get into what C compiler(s) to use for
-compiling .hc files, what libraries are available, etc., there may be
-something to tweak (but not here -- in a `setup' file, please!)  There
-are further comments where the tweakables begin...
-
-First, the driver can be installed under any old name; here's the default:
-\begin{code}
-#endif /* 0 */
-#ifndef GhcDriverInstallName
-#define GhcDriverInstallName ghc
-#endif /* ! GhcDriverInstallName */
-GHC_DRIVER_INST_NAME = GhcDriverInstallName
-#if 0
-\end{code}
-
-%************************************************************************
-%*                                                                     *
-\subsubsection{Where to find the programs for the various phases}
-%*                                                                     *
-%************************************************************************
-
-First, the driver itself:
-\begin{code}
-#endif /* 0 */
-/* 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
-#if 0
-\end{code}
-
-\tr{unlit}, to de-literatise a source file, is from the HBC
-distribution.  See utils-ghc.
-
-\tr{hscpp}: runs C pre-processor but converts \tr{#line}s to Haskell pragmas;
-is platform-independent.
-\begin{code}
-#endif /* 0 */
-#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
-#if 0
-\end{code}
-
-\tr{hsp}: std Haskell parser.
-\begin{code}
-#endif /* 0 */
-#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)
-#if 0
-\end{code}
-
-\tr{hsc}: std Haskell compiler.
-\begin{code}
-#endif /* 0 */
-#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)
-#if 0
-\end{code}
-
-\tr{SysMan}: PVM-controlling program for parallel Haskell.
-\begin{code}
-#endif /* 0 */
-#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)
-#if 0
-\end{code}
-
-For an ``assembler'' and a ``linker,'' the driver uses the same
-program as it used for C compilation; this means libraries and things
-are likely to be picked up correctly.
-
-%************************************************************************
-%*                                                                     *
-\subsubsection{Stuff for the C-compiling phase in particular...}
-%*                                                                     *
-%************************************************************************
-
-{\em High-level assembler}: C compiler with which to compile \tr{.hc} files.
-
-There are {\em three} things to set:
-\begin{enumerate}
-\item
-C compilers to use:
-\begin{itemize}
-\item
-compiler to use for ``debugging'' compilation (@GHC_DEBUG_HILEV_ASM@)
-\item
-compiler to use for ``optimising'' compiling (w/ regs magic, etc)
-(@GHC_OPT_HILEV_ASM@)
-This must be GCC; otherwise opt compiling must be turned off.
-\end{itemize}
-
-\item
-Whether or not you can do the ``optimising''-style compilation (set
-@GHC_GCC_IS_AVAILABLE@).
-\end{enumerate}
-
-For options that should always be applied {\em for this project},
-set the @ProjectGhcOpts@ variable...
-      
-Similarly, for a particular {\em setup}, use @SetupGhcOpts@...
-
-%************************************************************************
-%*                                                                     *
-\subsubsubsection{Which C compiler to use (GCC is best)}
-%*                                                                     *
-%************************************************************************
-
-\begin{code}
-#endif /* 0 */
-/*  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
-
-/*  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
-#if 0
-\end{code}
-#endif /* 0 */