X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=mk%2Ftarget.mk;h=dd2ddcbd2a9b482eced21ad7873d32e1c088ea5d;hb=ec2e177faf6ed8ff934f0bd97cf77fcb0f2210bd;hp=69f48c8ada3638768228d7eec542e6da75a61c06;hpb=7d74fdf5eb88dda397430f238870d1c3a628d0b8;p=ghc-hetmet.git diff --git a/mk/target.mk b/mk/target.mk index 69f48c8..dd2ddcb 100644 --- a/mk/target.mk +++ b/mk/target.mk @@ -344,13 +344,18 @@ ifeq "$(IS_CBITS_LIB)" "YES" _cbits := _cbits STUBOBJS += $(HSC_C_OBJS) # Add _hsc.c files to the cbits library -SRCS += $(wildcard ../*_hsc.c) +C_SRCS += $(wildcard ../*_hsc.c) # Make .hsc.h include files from the directory above visible -SRC_CC_OPTS += -I.. +# (and the cbits/ library too). +SRC_CC_OPTS += -I.. -I. endif +ifneq "$(way)" "i" LIBRARY = libHS$(PACKAGE)$(_cbits)$(_way).a GHCI_LIBRARY = HS$(PACKAGE)$(_cbits)$(_way).o +else +LIBRARY = $(PACKAGE).dll +endif ifneq "$(IS_CBITS_LIB)" "YES" WAYS=$(GhcLibWays) @@ -364,8 +369,6 @@ ifeq "$(LIBOBJS)" "" endif endif -SRC_CC_OPTS += -I$(GHC_INCLUDE_DIR) -I$(GHC_RUNTIME_DIR) - ifeq "$(IS_CBITS_LIB)" "YES" override datadir:=$(libdir)/include INSTALL_DATAS += Hs$(shell perl -e 'print ucfirst "$(PACKAGE)"').h @@ -378,7 +381,7 @@ endif # PACKAGE #---------------------------------------- # Libraries/archives # -# Build $(LIBRARY) from $(LIBOJBS)+$(STUBOBJS) +# Build $(LIBRARY) from $(LIBOBJS)+$(STUBOBJS) # # Inputs: # $(LIBOBJS) @@ -390,11 +393,18 @@ endif # PACKAGE ifneq "$(LIBRARY)" "" all :: $(LIBRARY) +ifneq "$(way)" "i" define BUILD_LIB $(RM) $@ $(AR) $(AR_OPTS) $@ $(STUBOBJS) $(LIBOBJS) $(RANLIB) $@ endef +else +define BUILD_LIB +$(RM) $@ +al -out:$@ $(STUBOBJS) $(LIBOBJS) +endef +endif # # For Haskell object files, we might have chosen to split @@ -505,21 +515,18 @@ CLEAN_FILES += $(GHCI_LIBRARY) all :: $(GHCI_LIBRARY) -ifneq "$(GHCI_LIBRARY)" "HSstd.o" -# An annoying gotcha is that the Prelude is a bit special, -# for reasons described in ghc/lib/std/Makefile. -# So we only put in this standard rule for packages other than std -# The rule for the Prelude is in ghc/lib/std/Makefile -# We check for GHCI_LIBRARY being HSstd.o rather than -# PACKAGE being std, because we want to still use the boilerplate rule -# for cbits. +ifneq "$(DONT_WANT_STD_GHCI_LIB_RULE)" "YES" +# If you don't want to build GHCI_LIBRARY the 'standard' way, +# set DONT_WANT_STD_GHCI_LIB_RULE to YES. The Prelude and +# hslibs/Win32 uses this 'feature'. +# $(GHCI_LIBRARY) :: $(LIBOBJS) ld -r -x -o $@ $(LIBOBJS) $(STUBOBJS) -endif +endif # DONT_WANT_STD_GHCI_LIB_RULE endif # GhcWithInterpreter endif # way -endif # GHCI_LIBRARY +endif # GHCI_LIBRARY != "" #----------------------------------------