Enable shared libs on OpenBSD
[ghc-hetmet.git] / mk / config.mk.in
index 40f1ea7..3882c26 100644 (file)
@@ -97,13 +97,19 @@ GhcStage1HcOpts=
 GhcStage2HcOpts=-O2
 GhcStage3HcOpts=-O2
 
-GhcProfiled=NO
 GhcDebugged=NO
 GhcDynamic=NO
-GhcLibProfiled=$(if $(filter p,$(GhcLibWays)),YES,NO)
+
+# GhcProfiled=YES means compile a profiled stage-2 compiler
+GhcProfiled=NO
 
 # Do we support shared libs?
-PlatformSupportsSharedLibs = $(if $(filter $(TARGETPLATFORM),i386-unknown-linux x86_64-unknown-linux i386-unknown-freebsd x86_64-unknown-freebsd i386-unknown-mingw32 i386-apple-darwin powerpc-apple-darwin),YES,NO)
+PlatformSupportsSharedLibs = $(if $(filter $(TARGETPLATFORM),\
+       i386-unknown-linux x86_64-unknown-linux \
+       i386-unknown-freebsd x86_64-unknown-freebsd \
+       i386-unknown-openbsd x86_64-unknown-openbsd \
+       i386-unknown-mingw32 \
+       i386-apple-darwin powerpc-apple-darwin),YES,NO)
 
 # Build a compiler that will build *unregisterised* libraries and
 # binaries by default.  Unregisterised code is supposed to compile and
@@ -139,6 +145,9 @@ GhcWithNativeCodeGen=$(strip\
     $(if $(filter YESYESNO,\
                  $(OsSupportsNCG)$(ArchSupportsNCG)$(GhcUnregisterised)),YES,NO))
 
+# Build a compiler with the llvm code generator backend
+GhcWithLlvmCodeGen=NO
+
 HaveLibDL = @HaveLibDL@
 
 # ArchSupportsSMP should be set iff there is support for that arch in
@@ -174,7 +183,7 @@ endif
 # Whether to use libffi for adjustors (foreign import "wrapper") or
 # not.  If we have built-in support (rts/Adjustor.c) then we use that,
 # otherwise we fall back on libffi, which is slightly slower.
-ArchHasAdjustorSupport=$(strip $(if $(findstring $(HostArch_CPP),i386 x86_64 alpha powerpc ia64,),YES,NO))
+ArchHasAdjustorSupport = $(if $(findstring $(HostArch_CPP),i386 x86_64),YES,NO)
 ifeq "$(ArchHasAdjustorSupport)" "YES"
 UseLibFFIForAdjustors=NO
 else
@@ -287,15 +296,16 @@ PackageSourceURL = http://darcs.haskell.org/packages/$(PACKAGE)/%{FILE}
 #              doing object-file splitting
 
 ArchSupportsSplitObjs=$(strip $(if $(filter $(TargetArch_CPP),i386 x86_64 powerpc sparc),YES,NO))
+# Object splitting is disabled on darwin due to #4013
+OsSupportsSplitObjs=$(strip $(if $(filter $(TargetOS_CPP),mingw32 cygwin32 linux solaris2 freebsd dragonfly netbsd openbsd),YES,NO))
 
 # lazy test, so that $(GhcUnregisterised) can be set in build.mk
-SupportsSplitObjs=$(strip $(if $(filter YES,$(ArchSupportsSplitObjs)),\
-                   $(if $(filter NO,$(BootingFromHc)),\
-                     $(if $(filter NO,$(GhcUnregisterised)),\
-                       YES,\
-                       NO),\
-                      NO),\
-                    NO))
+SupportsSplitObjs=$(strip \
+                    $(if $(and $(filter YES,$(ArchSupportsSplitObjs)),\
+                               $(filter YES,$(OsSupportsSplitObjs)),\
+                               $(filter NO,$(BootingFromHc)),\
+                               $(filter NO,$(GhcUnregisterised))),\
+                          YES,NO))
 
 # By default, enable SplitObjs for the libraries if this build supports it
 SplitObjs=$(SupportsSplitObjs)
@@ -531,15 +541,20 @@ endif
 endif
 
 # C compiler and linker flags from configure (e.g. -m<blah> to select
-# correct C compiler backend).
-CONF_CC_OPTS = @CONF_CC_OPTS@
-CONF_LD_OPTS = @CONF_LD_OPTS@
+# correct C compiler backend). The stage number is the stage of GHC
+# that is being used to compile with.
+CONF_CC_OPTS_STAGE0 = @CONF_CC_OPTS_STAGE0@
+CONF_CC_OPTS_STAGE1 = @CONF_CC_OPTS_STAGE1@
+CONF_CC_OPTS_STAGE2 = @CONF_CC_OPTS_STAGE2@
+CONF_LD_OPTS_STAGE0 = @CONF_LD_OPTS_STAGE0@
+CONF_LD_OPTS_STAGE1 = @CONF_LD_OPTS_STAGE1@
+CONF_LD_OPTS_STAGE2 = @CONF_LD_OPTS_STAGE2@
 
 ifeq "$(TARGETPLATFORM)" "ia64-unknown-linux"
 CONF_CC_OPTS += -G0
 endif
 
-SRC_HSC2HS_OPTS += $(addprefix --cflag=,$(filter-out -O,$(SRC_CC_OPTS) $(CONF_CC_OPTS)))
+SRC_HSC2HS_OPTS += $(addprefix --cflag=,$(filter-out -O,$(SRC_CC_OPTS) $(CONF_CC_OPTS_STAGE0)))
 SRC_HSC2HS_OPTS += $(foreach d,$(GMP_INCLUDE_DIRS),-I$(d))
 
 #-----------------------------------------------------------------------------
@@ -589,11 +604,7 @@ INSTALL                    := $(subst .././install-sh,$(TOP)/install-sh,$(INSTALL))
 LATEX                  = latex
 PDFLATEX        = pdflatex
 BIBTEX          = bibtex
-HEVEA                  = hevea
-HACHA                  = hacha
 LN_S                   = @LN_S@
-MANMACROS              = -man
-MSMACROS               = -ms
 MV                     = mv
 NROFF                  = nroff
 PERL                   = @PerlCmd@
@@ -623,10 +634,12 @@ LdIsGNULd         = @LdIsGNULd@
 # On MSYS, building with SplitObjs=YES fails with 
 #   ar: Bad file number
 # see #3201.  We need to specify a smaller max command-line size
-# to work around it.  32767 doesn't work; 30000 does.
+# to work around it.  32767 doesn't work; 30000 does, but says
+#     xargs: value for -s option should be < 28153
+# so we now use 20000 to be comfortably below this bound
 XARGS = xargs
 ifeq "$(Windows)" "YES"
-XARGS_OPTS = -s 30000
+XARGS_OPTS = -s 20000
 endif
 
 #
@@ -651,37 +664,24 @@ endif
 # with REAL_SHELL set to something else than /bin/sh, for instance, your favourite
 # command shell.
 #
-REAL_SHELL=$(SHELL)
-SIZE                   = size
-STRIP                  = strip
-PATCH                  = @PatchCmd@
-TAR                    = @TarCmd@
-BZIP2                   = bzip2
-GZIP                    = gzip
-ZIP                    = zip
+REAL_SHELL     = $(SHELL)
 
-HSCOLOUR = @HSCOLOUR@
+STRIP_CMD      = strip
+PATCH_CMD      = @PatchCmd@
+TAR_CMD        = @TarCmd@
+BZIP2_CMD      = bzip2
+GZIP_CMD       = gzip
 
-#
-# This is special to literate/, ToDo: add literate-specific
-# configure setup to literate/.
-#
-TBL                    = tbl
-TEX                    = tex
-TGRIND                         = tgrind
-TGRIND_HELPER          = /usr/local/lib/tgrind/tfontedpr # XXX
-TIB                    = tib
+HSCOLOUR_CMD   = @HSCOLOUR@
 
-TIME                   = @TimeCmd@
-TROFF                  = troff
-UNAME                  = uname
+TIME_CMD       = @TimeCmd@
 
 # GTK+
-GTK_CONFIG = @GTK_CONFIG@
+GTK_CONFIG_CMD = @GTK_CONFIG@
 
 # Set this if you want to use Inno Setup to build a Windows installer
 # when you make a bindist
-ISCC                    =
+ISCC_CMD       =
 
 #-----------------------------------------------------------------------------
 # DocBook XML stuff
@@ -709,12 +709,6 @@ BLD_DLL                    = dllwrap
 GHC_PKG                        = @GhcPkgCmd@
 
 #
-# GreenCard
-#
-GREENCARD              = @GreenCardCmd@
-GREENCARD_VERSION      = @GreenCardVersion@            
-
-#
 # Happy
 #
 HAPPY                  = @HappyCmd@
@@ -741,9 +735,9 @@ SRC_ALEX_OPTS               = -g
 HSTAGS = @HstagsCmd@
 
 # Should we build haddock docs?
-HADDOCK_DOCS = $(GhcWithInterpreter)
+HADDOCK_DOCS = YES
 # And HsColour the sources?
-ifeq "$(HSCOLOUR)" ""
+ifeq "$(HSCOLOUR_CMD)" ""
 HSCOLOUR_SRCS = NO
 else
 HSCOLOUR_SRCS = YES