commit ff84d052850b637b03bbb98cf05202e44886257d Author: Sergei Trofimovich 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 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))