[project @ 2001-12-20 17:10:00 by simonpj]
[ghc-hetmet.git] / ghc / compiler / Makefile
index 8cd1ea1..23042a4 100644 (file)
@@ -1,5 +1,5 @@
 # -----------------------------------------------------------------------------
-# $Id: Makefile,v 1.195 2001/10/23 16:47:30 rrt Exp $
+# $Id: Makefile,v 1.203 2001/11/19 18:47:43 sof Exp $
 
 TOP = ..
 include $(TOP)/mk/boilerplate.mk
@@ -90,7 +90,7 @@ CLEAN_FILES += $(CONFIG_HS)
 DIRS = \
   utils basicTypes types hsSyn prelude rename typecheck deSugar coreSyn \
   specialise simplCore stranal stgSyn simplStg codeGen absCSyn main \
-  profiling parser usageSP cprAnalysis javaGen compMan
+  profiling parser usageSP cprAnalysis compMan
 
 ifeq ($(GhcWithNativeCodeGen),YES)
 DIRS += nativeGen
@@ -103,25 +103,19 @@ DIRS += ilxGen
 SRC_HC_OPTS += -DILX
 endif
 
-#
-# Canonicalize the GHC version number - assume it is has the form x.yy.[z] or 
-# x.yy[.date] where date = yyyymmdd
-#
-# [First sed substitution gets rid of the '.', second gets rid of the date portion,
-#  third appends a '0' if the z portion is missing]
-#
-CANON_HC_VERSION=$(shell echo "$(GhcVersion)" | sed -e 's/\.//g;s/^\(...\)........$$/\1/g;s/^\(...\)$$/\10/g')
-
-# 20010625
+ifeq ($(GhcWithJavaGen),YES)
+DIRS += javaGen
+SRC_HC_OPTS += -DJAVA
+endif
 
 ifeq "$(BootingFromHc)" "YES"
 # HC files are always from a self-booted compiler
 bootstrapped = YES
 compiling_with_4xx=NO
 else
-bootstrapped = $(shell if (test $(CANON_HC_VERSION) -ge $(ProjectVersionInt)0); then echo YES; else echo NO; fi)
-compiling_with_4xx = $(shell if (test $(CANON_HC_VERSION) -lt 5000); then echo YES; else echo NO; fi)
-ghc_502_at_least = $(shell if (test $(CANON_HC_VERSION) -ge 5020); then echo YES; else echo NO; fi)
+bootstrapped = $(shell if (test $(GhcCanonVersion) -ge $(ProjectVersionInt)); then echo YES; else echo NO; fi)
+compiling_with_4xx = $(shell if (test $(GhcCanonVersion) -lt 500); then echo YES; else echo NO; fi)
+ghc_502_at_least = $(shell if (test $(GhcCanonVersion) -ge 502); then echo YES; else echo NO; fi)
 endif
 
 # Only include GHCi if we're bootstrapping with at least version 411
@@ -139,7 +133,7 @@ HS_SRCS += $(CONFIG_HS)
 # Enable code that assumes a MSDOSish subshell. See mk/config.mk.in
 # for explanatory comment as to what this does.
 ifeq "$(TARGETPLATFORM)" "i386-unknown-mingw32"
-ghc_501_at_least = $(shell if (test $(CANON_HC_VERSION) -ge 5010); then echo YES; else echo NO; fi)
+ghc_501_at_least = $(shell if (test $(GhcVanonVersion) -ge 5010); then echo YES; else echo NO; fi)
 
 # -----------------------------------------------
 # GHCi calls the C procedure 'rawSystem'; but alas GHC 4.08 
@@ -255,9 +249,11 @@ prelude/PrimOp_HC_OPTS             = -no-recomp -H80m
 # because the NCG can't handle the 64-bit math in here
 prelude/PrelRules_HC_OPTS      = -fvia-C
 
-rename/ParseIface_HC_OPTS      += -Onot -H45m -fno-warn-incomplete-patterns
-parser/Parser_HC_OPTS          += -Onot -fno-warn-incomplete-patterns
 main/ParsePkgConf_HC_OPTS      += -fno-warn-incomplete-patterns
+# Use -fvia-C since the NCG can't handle the narrow16Int# (and intToInt16#?)
+# primops on all platforms.
+rename/ParseIface_HC_OPTS      += -Onot -H45m -fno-warn-incomplete-patterns -fvia-C
+parser/Parser_HC_OPTS          += -Onot -fno-warn-incomplete-patterns -fvia-C
 
 # The latest GHC version doesn't have a -K option yet, and it doesn't
 # seem to be necessary anymore for the modules below.
@@ -304,7 +300,7 @@ main/SysTools_HC_OPTS               = -fno-cse
 # compiler doesn't realise that the stcall foreign imports are indeed
 # stdcall, and doesn't generate the Foo@8 name for them
 ifeq "$(TARGETPLATFORM)" "i386-unknown-mingw32"
-main/SysTools_HC_OPTS          += '-\#include <windows.h>'
+main/SysTools_HC_OPTS          += '-\#include <windows.h>' '-\#include <process.h>'
 endif
 
 # ----------------------------------------------------------------------------
@@ -387,7 +383,7 @@ all :: ghc-inplace
 ghc-inplace : $(HS_PROG)
        @$(RM) $@
        echo '#!/bin/sh' >>$@
-       echo exec $(FPTOOLS_TOP_ABS_UNIX)/ghc/compiler/$(HS_PROG) -B$(FPTOOLS_TOP_ABS) '"$$@"' >>$@
+       echo exec $(FPTOOLS_TOP_ABS)/ghc/compiler/$(HS_PROG) '-B$(FPTOOLS_TOP_ABS_PLATFORM)' '"$$@"' >>$@
        chmod 755 $@
 
 CLEAN_FILES += ghc-inplace