Fix up logic to decide whether shared libs are being built or not
[ghc-hetmet.git] / mk / config.mk.in
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)