Fixed -split-objs and removed last vestiges of dLL_ifs.hi.
# things (incl "+") happens when compiling with this compiler
GhcLibHcOpts=-O
-SplitObjs = YES
+
# Win32 only: Enable the RTS and libraries to be built as DLLs
-#
+# Don't split object files for libs if we're building DLLs
EnableWin32DLLs=@EnableWin32DLLs@
+ifeq "($EnableWin32DLLs)" "YES"
+SplitObjs=NO
+endif
+
# Strip local symbols from libraries? This can make the libraries smaller,
# but makes debugging somewhat more difficult. Doesn't work with all ld's.
$(FIND) $(basename $@) -name '*.$(way_)o' -print | xargs $(RM) __rm_food ; fi
HC_SPLIT_POST = touch $@
-HC_PRE__ = $(patsubst %,$(HC_SPLIT_PRE) ; ,$(filter -split-objs,$(HC_OPTS)))
-HC_POST__ = $(patsubst %,$(HC_SPLIT_POST) ; ,$(filter -split-objs,$(HC_OPTS)))
+ifeq "$(SplitObjs)" "YES"
+HC_PRE__ = $(HC_SPLIT_PRE) ;
+HC_POST__ = $(HC_SPLIT_POST) ;
+endif
SRC_HC_POST_OPTS += $(HC_POST__)
SRC_HC_PRE_OPTS += $(HC_PRE__)
#
ifneq "$(HS_SRCS)" ""
-ifneq "$(filter -split-objs,$(HC_OPTS))" ""
+ifeq "$(SplitObjs)" "YES"
define BUILD_LIB
$(RM) $@
TMPDIR=$(TMPDIR); export TMPDIR; $(FIND) $(patsubst %.$(way_)o,%,$(LIBOBJS)) -name '*.$(way_)o' -print | xargs ar q $@
#
ifeq "$(StripLibraries)" "YES"
-ifneq "$(filter -split-objs,$(HC_OPTS))" ""
+ifeq "$(SplitObjs)" "YES"
SRC_HC_POST_OPTS += \
for i in $(basename $@)/*; do \
ld -r -x -o $$i.tmp $$i; \
endif
$(DLL_NAME) :: $(LIBRARY)
- $(BLD_DLL) --output-lib $(DLL_IMPLIB_NAME) -o $(DLL_NAME) $(LIBRARY) $(BLD_DLL_OPTS)
- touch dLL_ifs.hi
+ $(BLD_DLL) --output-lib $(DLL_IMPLIB_NAME) -o $(DLL_NAME) $(LIBRARY) $(BLD_DLL_OPTS)
endif
#