X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=includes%2Fghc.mk;h=8411a26c155e060b0db6ebb52574549e637ff098;hp=4e9a59823ff0022307d8b4fdce19f05f7d20a17c;hb=aee44bbe090c356d649398a93e260d967a7c50db;hpb=34cc75e1a62638f2833815746ebce0a9114dc26b diff --git a/includes/ghc.mk b/includes/ghc.mk index 4e9a598..8411a26 100644 --- a/includes/ghc.mk +++ b/includes/ghc.mk @@ -1,3 +1,15 @@ +# ----------------------------------------------------------------------------- +# +# (c) 2009 The University of Glasgow +# +# This file is part of the GHC build system. +# +# To understand how the build system works and how to modify it, see +# http://hackage.haskell.org/trac/ghc/wiki/Building/Architecture +# http://hackage.haskell.org/trac/ghc/wiki/Building/Modifying +# +# ----------------------------------------------------------------------------- + # # Header files built from the configure script's findings # @@ -6,9 +18,15 @@ includes_H_CONFIG = includes/ghcautoconf.h includes_H_PLATFORM = includes/ghcplatform.h # -# All header files +# All header files are in includes/{one of these subdirectories} # -includes_H_FILES = $(filter-out $(includes_H_CONFIG) $(includes_H_PLATFORM),$(wildcard includes/*.h)) +includes_H_SUBDIRS += . +includes_H_SUBDIRS += rts +includes_H_SUBDIRS += rts/prof +includes_H_SUBDIRS += rts/storage +includes_H_SUBDIRS += stg + +includes_H_FILES := $(wildcard $(patsubst %,includes/%/*.h,$(includes_H_SUBDIRS))) # # Options @@ -21,14 +39,7 @@ ifeq "$(GhcEnableTablesNextToCode) $(GhcUnregisterised)" "YES NO" includes_CC_OPTS += -DTABLES_NEXT_TO_CODE endif -includes_CC_OPTS += -Iincludes -Irts -Irts/parallel -ifeq "$(HaveLibGmp)" "YES" -ifneq "$(GMP_INCLUDE_DIRS)" "" -includes_CC_OPTS += -I$(GMP_INCLUDE_DIRS) -endif -else -includes_CC_OPTS += -Igmp/gmpbuild -endif +includes_CC_OPTS += -Iincludes -Irts ifneq "$(GhcWithSMP)" "YES" includes_CC_OPTS += -DNOSMP @@ -41,7 +52,7 @@ endif ifneq "$(BINDIST)" "YES" -ifneq "$(TARGETPLATFORM)" "$(HOSTPLATFORM)" +ifeq "$(PORTING_HOST)" "YES" $(includes_H_CONFIG) : @echo "*** Cross-compiling: please copy $(includes_H_CONFIG) from the target system" @@ -60,8 +71,8 @@ $(includes_H_CONFIG) : mk/config.h mk/config.mk includes/ghc.mk endif -$(includes_H_PLATFORM) : Makefile - $(RM) $@ +$(includes_H_PLATFORM) : includes/Makefile + "$(RM)" $(RM_OPTS) $@ @echo "Creating $@..." @echo "#ifndef __GHCPLATFORM_H__" >$@ @echo "#define __GHCPLATFORM_H__" >>$@ @@ -111,7 +122,7 @@ endif includes_DERIVEDCONSTANTS = includes/DerivedConstants.h -ifneq "$(TARGETPLATFORM)" "$(HOSTPLATFORM)" +ifeq "$(PORTING_HOST)" "YES" DerivedConstants.h : @echo "*** Cross-compiling: please copy DerivedConstants.h from the target system" @@ -124,7 +135,7 @@ includes_dist-derivedconstants_PROG = mkDerivedConstants$(exeext) $(eval $(call build-prog,includes,dist-derivedconstants,0)) -$(includes_dist-derivedconstants_depfile) : $(includes_H_CONFIG) $(includes_H_PLATFORM) +$(includes_dist-derivedconstants_depfile_c_asm) : $(includes_H_CONFIG) $(includes_H_PLATFORM) $(includes_H_FILES) $$(rts_H_FILES) includes/dist-derivedconstants/build/mkDerivedConstants.o : $(includes_H_CONFIG) $(includes_H_PLATFORM) ifneq "$(BINDIST)" "YES" @@ -139,7 +150,7 @@ endif includes_GHCCONSTANTS = includes/GHCConstants.h -ifneq "$(TARGETPLATFORM)" "$(HOSTPLATFORM)" +ifeq "$(PORTING_HOST)" "YES" $(includes_GHCCONSTANTS) : @echo "*** Cross-compiling: please copy DerivedConstants.h from the target system" @@ -154,7 +165,7 @@ includes_dist-ghcconstants_CC_OPTS = -DGEN_HASKELL $(eval $(call build-prog,includes,dist-ghcconstants,0)) ifneq "$(BINDIST)" "YES" -$(includes_dist-ghcconstants_depfile) : $(includes_H_CONFIG) $(includes_H_PLATFORM) +$(includes_dist-ghcconstants_depfile_c_asm) : $(includes_H_CONFIG) $(includes_H_PLATFORM) $(includes_H_FILES) $$(rts_H_FILES) includes/dist-ghcconstants/build/mkDerivedConstants.o : $(includes_H_CONFIG) $(includes_H_PLATFORM) @@ -167,8 +178,6 @@ endif # --------------------------------------------------------------------------- # Install all header files -INSTALL_HEADERS += $(includes_H_FILES) $(includes_H_CONFIG) $(includes_H_PLATFORM) - $(eval $(call clean-target,includes,,\ $(includes_H_CONFIG) $(includes_H_PLATFORM) \ $(includes_GHCCONSTANTS) $(includes_DERIVEDCONSTANTS))) @@ -177,3 +186,14 @@ $(eval $(call all-target,includes,,\ $(includes_H_CONFIG) $(includes_H_PLATFORM) \ $(includes_GHCCONSTANTS) $(includes_DERIVEDCONSTANTS))) +install: install_includes + +.PHONY: install_includes +install_includes : + $(call INSTALL_DIR,"$(DESTDIR)$(ghcheaderdir)") + $(foreach d,$(includes_H_SUBDIRS), \ + $(call INSTALL_DIR,"$(DESTDIR)$(ghcheaderdir)/$d") && \ + $(call INSTALL_HEADER,$(INSTALL_OPTS),includes/$d/*.h,"$(DESTDIR)$(ghcheaderdir)/$d/") && \ + ) true + $(call INSTALL_HEADER,$(INSTALL_OPTS),$(includes_H_CONFIG) $(includes_H_PLATFORM),"$(DESTDIR)$(ghcheaderdir)/") +