Fix up logic to decide whether shared libs are being built or not
authorSimon Marlow <marlowsd@gmail.com>
Wed, 9 Sep 2009 11:57:57 +0000 (11:57 +0000)
committerSimon Marlow <marlowsd@gmail.com>
Wed, 9 Sep 2009 11:57:57 +0000 (11:57 +0000)
Now, adding dyn to $(GhcLibWays) is how shared libs are enabled.
Everything else keys off that, rather than testing
$(BuildSharedLibs).

mk/build.mk.sample
mk/config.mk.in

index 5b61d16..b43ef94 100644 (file)
@@ -40,6 +40,10 @@ GhcHcOpts       = -Rghc-timing
 GhcLibHcOpts    = -O2 -XGenerics
 GhcLibWays     += p
 
+ifeq "$(PlatformSupportsSharedLibs)" "YES"
+GhcLibWays += dyn
+endif
+
 endif
 
 # -------- A Fast build ------------------------------------------------------
index 53d7f81..813a912 100644 (file)
@@ -102,13 +102,9 @@ GhcProfiled=NO
 GhcDebugged=NO
 GhcLibProfiled=$(if $(filter p,$(GhcLibWays)),YES,NO)
 
-# Build shared and/or static libs?
+# Do we support shared libs?
 PlatformSupportsSharedLibs = $(if $(filter $(TARGETPLATFORM),i386-unknown-linux x86_64-unknown-linux),YES,NO)
-ifeq "$(PlatformSupportsSharedLibs)" "YES"
-BuildSharedLibs = YES
-else
-BuildSharedLibs = NO
-endif
+
 # ToDo later:
 # BuildStaticLibs=@BuildStaticLibs@
 
@@ -221,10 +217,13 @@ ifneq "$(BootingFromHc)" "YES"
 GhcLibWays += p
 endif
 
-ifeq "$(BuildSharedLibs)" "YES"
+ifeq "$(PlatformSupportsSharedLibs)" "YES"
 GhcLibWays += dyn
 endif
 
+# Handy way to test whether we're building shared libs or not.
+BuildSharedLibs=$(strip $(if $(findstring dyn,$(GhcLibWays)),YES,NO))
+
 # In addition, the RTS is built in some further variations.  Ways that
 # make sense here:
 # 
@@ -246,15 +245,12 @@ ifeq "$(BootingFromHc)" "NO"
 GhcRTSWays += debug 
 endif
 
-ifeq "$(BuildSharedLibs)" "YES"
-GhcRTSWays += dyn debug_dyn $(if $(findstring NO, $(GhcUnregisterised)),thr_dyn thr_debug_dyn)
-endif
-
 # Want the threaded versions unless we're unregisterised
 # Defer the check until later by using $(if..), because GhcUnregisterised might
 # be set in build.mk, which hasn't been read yet.
 GhcRTSWays += $(if $(findstring NO, $(GhcUnregisterised)),thr thr_debug thr_l,)
 GhcRTSWays += $(if $(findstring p, $(GhcLibWays)),$(if $(findstring NO, $(GhcUnregisterised)),thr_p,),)
+GhcRTSWays += $(if $(findstring dyn, $(GhcLibWays)), dyn debug_dyn $(if $(findstring NO, $(GhcUnregisterised)),thr_dyn thr_debug_dyn),)
 
 # We can only build GHCi threaded if we have a threaded RTS:
 GhcThreaded = $(if $(findstring thr,$(GhcRTSWays)),YES,NO)