From eba93774c3ce2f151e7c72f6d068b753f24dbcfa Mon Sep 17 00:00:00 2001 From: Thomas Miedema Date: Wed, 15 Jun 2016 14:56:46 +0200 Subject: [PATCH] Build system: build unlit twice See Note [Why build certain utils twice?] in utils/ghc-pkg/ghc.mk --- utils/ghc-pkg/ghc.mk | 7 ++++++- utils/unlit/ghc.mk | 10 +++++++++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/utils/ghc-pkg/ghc.mk b/utils/ghc-pkg/ghc.mk index f7d97de..410de72 100644 --- a/utils/ghc-pkg/ghc.mk +++ b/utils/ghc-pkg/ghc.mk @@ -27,7 +27,7 @@ utils/ghc-pkg_PACKAGE = ghc-pkg # Note [Why build certain utils twice?] # # We build certain utils twice: once with stage0, and once with stage1. -# Examples are ghc-pkg and hsc2hs. +# Examples are ghc-pkg, hsc2hs and unlit. # # These tools are needed during the bootstrapping process, so we have to use # stage0 to build them at first (stage1 doesn't exist yet). (side note: they're @@ -38,6 +38,11 @@ utils/ghc-pkg_PACKAGE = ghc-pkg # dynamically linked. But the stage0 copies are either statically linked, or # linked against libraries on the build machine. # +# Another reason why we can't install the stage0 copies is that they are +# built to run on the build(=host) platform, but when installing a +# "cross-compiled stage2 compiler" we need copies that run on the target +# platform. +# # Therefore we build fresh copies, using the stage1 compiler, and install them # when you run 'make install'. They are not used for any other purpose. diff --git a/utils/unlit/ghc.mk b/utils/unlit/ghc.mk index e947989..6805c4e 100644 --- a/utils/unlit/ghc.mk +++ b/utils/unlit/ghc.mk @@ -13,8 +13,16 @@ utils/unlit_dist_C_SRCS = unlit.c utils/unlit_dist_PROGNAME = unlit utils/unlit_dist_TOPDIR = YES -utils/unlit_dist_INSTALL = YES +utils/unlit_dist_INSTALL = NO utils/unlit_dist_INSTALL_INPLACE = YES $(eval $(call build-prog,utils/unlit,dist,0)) +utils/unlit_dist-install_C_SRCS = unlit.c +utils/unlit_dist-install_PROGNAME = unlit +utils/unlit_dist-install_TOPDIR = YES +utils/unlit_dist-install_INSTALL = YES +utils/unlit_dist-install_INSTALL_INPLACE = NO + +# See Note [Why build certain utils twice?]. +$(eval $(call build-prog,utils/unlit,dist-install,1))