X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=rules%2Fmanual-package-config.mk;h=6b2b2ac2cb3252ab12e0b75abe15e0d18c69f28d;hb=5d0747c093ee5b45e08871503c6210662958657b;hp=298fe47d480f8203b778e821d65b05426077cd16;hpb=6c2e3327033c034d057390dc2372c7d07032ce5f;p=ghc-hetmet.git diff --git a/rules/manual-package-config.mk b/rules/manual-package-config.mk index 298fe47..6b2b2ac 100644 --- a/rules/manual-package-config.mk +++ b/rules/manual-package-config.mk @@ -12,33 +12,34 @@ define manual-package-config # args: $1 = dir +$(call trace, manual-package-config($1)) $1/package.conf.inplace : $1/package.conf.in $(GHC_PKG_INPLACE) - $(CPP) $(RAWCPP_FLAGS) -P \ + $$(CPP) $$(RAWCPP_FLAGS) -P \ -DTOP='"$$(TOP)"' \ $$($1_PACKAGE_CPP_OPTS) \ - -x c -I$$(GHC_INCLUDE_DIR) $$< | \ - grep -v '^#pragma GCC' | \ - sed -e 's/""//g' -e 's/:[ ]*,/: /g' >$$@ + -x c -I$$(GHC_INCLUDE_DIR) $$< -o $$@.raw + grep -v '^#pragma GCC' $$@.raw | \ + sed -e 's/""//g' -e 's/:[ ]*,/: /g' > $$@ - $(GHC_PKG_INPLACE) update --force $$@ + "$$(GHC_PKG_INPLACE)" update --force $$@ # This is actually a real file, but we need to recreate it on every # "make install", so we declare it as phony .PHONY: $1/package.conf.install $1/package.conf.install: - $(CPP) $(RAWCPP_FLAGS) -P \ + $$(CPP) $$(RAWCPP_FLAGS) -P \ -DINSTALLING \ - -DLIB_DIR='"$$(libdir)"' \ - -DINCLUDE_DIR='"$$(libdir)/include"' \ + -DLIB_DIR='"$$(if $$(filter YES,$$(RelocatableBuild)),$$$$topdir,$$(ghclibdir))"' \ + -DINCLUDE_DIR='"$$(if $$(filter YES,$$(RelocatableBuild)),$$$$topdir,$$(ghclibdir))/include"' \ $$($1_PACKAGE_CPP_OPTS) \ - -x c -I$$(GHC_INCLUDE_DIR) $1/package.conf.in | \ - grep -v '^#pragma GCC' | \ - sed -e 's/""//g' -e 's/:[ ]*,/: /g' >$$@ + -x c -I$$(GHC_INCLUDE_DIR) $1/package.conf.in -o $$@.raw + grep -v '^#pragma GCC' $$@.raw | \ + sed -e 's/""//g' -e 's/:[ ]*,/: /g' >$$@ distclean : clean_$1_package.conf .PHONY: clean_$1_package.conf clean_$1_package.conf : - $(RM) $1/package.conf.install $1/package.conf.inplace + "$$(RM)" $$(RM_OPTS) $1/package.conf.install $1/package.conf.inplace endef