X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Flib%2Fcompat%2FMakefile;h=e6bf14a3ef9186aeb5033be57216fdbb51a71ad7;hb=fa9a03c15ad5ba9f05b90026031933da10a08fd8;hp=c3f080b6e71885b4228bb1302e10367dd82fd74d;hpb=120f14425699fc0d6fb9f024c928c8596d00f914;p=ghc-hetmet.git diff --git a/ghc/lib/compat/Makefile b/ghc/lib/compat/Makefile index c3f080b..e6bf14a 100644 --- a/ghc/lib/compat/Makefile +++ b/ghc/lib/compat/Makefile @@ -1,25 +1,55 @@ -# -# This library contains modules only available in versions of GHC -# newer than the current one. They are implemented as stubs that -# #include the actual code from fptools/libraries. -# -# The idea is to ease the task of writing portable code in GHC and its -# tools: the client can link with libghccompat.a and assume that all -# the modules are available. In this way we can add modules to the library -# and start using them right away in GHC, as long as the new library modules -# can be compiled using older versions of GHC. -# - TOP=../.. include $(TOP)/mk/boilerplate.mk ALL_DIRS = \ Data \ + Compat \ Distribution \ - Distribution/Compat + Distribution/Compat \ + System \ + cbits LIBRARY = libghccompat.a -SRC_HC_OPTS += -I$(FPTOOLS_TOP)/libraries -fglasgow-exts +# Just to silence warnings +MKDEPENDC_OPTS += -I$(GHC_INCLUDE_DIR) + +UseGhcForCc = YES + +ghc_603_plus = $(shell if (test $(GhcCanonVersion) -ge 603); then echo YES; else echo NO; fi) + +ifeq "$(ghc_603_plus)" "YES" +# These modules are all provided in GHC 6.3+ +EXCLUDED_SRCS += \ + Data/Version.hs \ + System/FilePath.hs \ + Distribution/Compat/Error.hs \ + Distribution/Compat/ReadP.hs \ + Distribution/Extension.hs \ + Distribution/InstalledPackageInfo.hs \ + Distribution/License.hs \ + Distribution/Package.hs \ + Distribution/ParseUtils.hs \ + Distribution/Setup.hs \ + Distribution/Version.hs +endif + +# Make the #includes in the stubs independent of the current location +SRC_HC_OPTS += -I$(FPTOOLS_TOP)/libraries + +SRC_HC_OPTS += -fglasgow-exts + +ifeq "$(HOSTPLATFORM)" "i386-unknown-mingw32" +Compat/Directory_HC_OPTS += -\#include shlobj.h +endif + +# libghccompat is needed to build ghc-pkg, which is built during 'make boot', +# so we must build this library during 'make boot' too. +# Do a recursive 'make all' after generating dependencies, because this +# will work with 'make -j'. +ifneq "$(BootingFromHc)" "YES" +boot :: depend + $(MAKE) all +endif include $(TOP)/mk/target.mk