| commit ff84d052850b637b03bbb98cf05202e44886257d |
| Author: Sergei Trofimovich <slyfox@gentoo.org> |
| Date: Sat Apr 8 10:02:34 2017 +0100 |
| |
| cross-build 'unlit' and 'hp2ps' for stage2 install |
| |
| In navive build case it does not matter much if we build |
| 'unlit' and 'hp2ps' tools with ghc-stage0 or ghc-stage1: |
| both GHCs are native compilers and both tools are written |
| in C (have no haskell code). |
| |
| But in cross-case the difference is substantial: |
| In Stag1Only=YES case we need to install native tools built |
| by ghc-stage0/${host}-cc. |
| In Stag1Only=NO case we need to install cross-built tools |
| built by ghc-stage1/${target}-cc. |
| |
| Before this change GHC did not have a rule to build cross-built |
| 'unlit' and 'hp2ps'. |
| |
| The change adds cross-built 'unlit' and 'hp2ps' as 'dist-install' |
| targets. |
| |
| 'inplace/lib/bin/unlit.bin' target is unchanged and still contains |
| native binary. |
| |
| As a result this change allows cross-building and packaging whole |
| GHC for target platform! |
| |
| Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org> |
| |
| diff --git a/utils/hp2ps/ghc.mk b/utils/hp2ps/ghc.mk |
| index f6e01ec6c1..21ce87dcfa 100644 |
| --- a/utils/hp2ps/ghc.mk |
| +++ b/utils/hp2ps/ghc.mk |
| @@ -10,6 +10,7 @@ |
| # |
| # ----------------------------------------------------------------------------- |
| |
| +# stage0 |
| utils/hp2ps_dist_C_SRCS = AreaBelow.c Curves.c Error.c Main.c \ |
| Reorder.c TopTwenty.c AuxFile.c Deviation.c \ |
| HpFile.c Marks.c Scale.c TraceElement.c \ |
| @@ -17,11 +18,27 @@ utils/hp2ps_dist_C_SRCS = AreaBelow.c Curves.c Error.c Main.c \ |
| Utilities.c |
| utils/hp2ps_dist_EXTRA_LIBRARIES = m |
| utils/hp2ps_dist_PROGNAME = hp2ps |
| -utils/hp2ps_dist_INSTALL = YES |
| utils/hp2ps_dist_INSTALL_INPLACE = YES |
| utils/hp2ps_dist_SHELL_WRAPPER = YES |
| utils/hp2ps_dist_INSTALL_SHELL_WRAPPER_NAME = hp2ps |
| |
| utils/hp2ps_CC_OPTS += $(addprefix -I,$(GHC_INCLUDE_DIRS)) |
| |
| +# stage 1 |
| +utils/hp2ps_dist-install_C_SRCS = $(utils/hp2ps_dist_C_SRCS) |
| +utils/hp2ps_dist-install_EXTRA_LIBRARIES = $(utils/hp2ps_dist_EXTRA_LIBRARIES) |
| +utils/hp2ps_dist-install_PROGNAME = $(utils/hp2ps_dist_PROGNAME) |
| +utils/hp2ps_dist-install_INSTALL_INPLACE = NO |
| +utils/hp2ps_dist-install_SHELL_WRAPPER = YES |
| +utils/hp2ps_dist-install_INSTALL_SHELL_WRAPPER_NAME = $(utils/hp2ps_dist_INSTALL_SHELL_WRAPPER_NAME) |
| + |
| +ifeq "$(Stage1Only)" "YES" |
| +utils/hp2ps_dist_INSTALL = YES |
| +utils/hp2ps_dist-install_INSTALL = NO |
| +else |
| +utils/hp2ps_dist_INSTALL = NO |
| +utils/hp2ps_dist-install_INSTALL = YES |
| +endif |
| + |
| $(eval $(call build-prog,utils/hp2ps,dist,0)) |
| +$(eval $(call build-prog,utils/hp2ps,dist-install,1)) |
| diff --git a/utils/unlit/ghc.mk b/utils/unlit/ghc.mk |
| index e947989b5e..8911f4e856 100644 |
| --- a/utils/unlit/ghc.mk |
| +++ b/utils/unlit/ghc.mk |
| @@ -10,11 +10,25 @@ |
| # |
| # ----------------------------------------------------------------------------- |
| |
| +# built by ghc-stage0 |
| 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_INPLACE = YES |
| |
| -$(eval $(call build-prog,utils/unlit,dist,0)) |
| +# built by ghc-stage1 |
| +utils/unlit_dist-install_C_SRCS = $(utils/unlit_dist_C_SRCS) |
| +utils/unlit_dist-install_PROGNAME = $(utils/unlit_dist_PROGNAME) |
| +utils/unlit_dist-install_TOPDIR = $(utils/unlit_dist_TOPDIR) |
| +utils/unlit_dist-install_INSTALL_INPLACE = NO |
| + |
| +ifeq "$(Stage1Only)" "YES" |
| +utils/unlit_dist_INSTALL = YES |
| +utils/unlit_dist-install_INSTALL = NO |
| +else |
| +utils/unlit_dist_INSTALL = NO |
| +utils/unlit_dist-install_INSTALL = YES |
| +endif |
| |
| +$(eval $(call build-prog,utils/unlit,dist,0)) |
| +$(eval $(call build-prog,utils/unlit,dist-install,1)) |