diff options
author | Sergey V. Lobanov <sergey@lobanov.in> | 2022-01-14 01:29:08 +0300 |
---|---|---|
committer | Rosen Penev <rosenp@gmail.com> | 2022-01-18 18:10:48 -0800 |
commit | 50b4221ee5c77bf427b010ea22c2b96bd232d1a3 (patch) | |
tree | 52017ddeee2e24ce554efba61f444ea37f92d25d /utils/tcsh/Makefile | |
parent | 30f4e26d1688b745d165eb0c604325dd42da9f04 (diff) |
tcsh: fix build on macos
tcsh requires host-tool (gethost) to generate tc.defs.c file.
To build this tool on macos, it is required to run ./configure
script wihout target vars/flags, but this package is not
splitted to host and target build.
This patch splits build to host and target builds to compile
host-tool(gethost) first, then compile tsch.
Due to lack of support of separate building host and target,
OpenWrt Makefile is modified to do it in the order below:
1. build host-tool (gethost)
2. build sh.err.h header for target
3. build tc.const.h header for target
4. copy gethost tool from host staging dir to target build dir
5. touch (make -t) gethost to protect it from recompiling
6. build tsch for target
It is required to do step 2 and 3 because 'make -t' generates
empty files but these files required to build tcsh
Patch 020-cross.patch has been removed due to not required
anymore (gethost build is separated and not affected by
target configure flags and vars)
Signed-off-by: Sergey V. Lobanov <sergey@lobanov.in>
Diffstat (limited to 'utils/tcsh/Makefile')
-rw-r--r-- | utils/tcsh/Makefile | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/utils/tcsh/Makefile b/utils/tcsh/Makefile index 4f41e31ec..3a1482594 100644 --- a/utils/tcsh/Makefile +++ b/utils/tcsh/Makefile @@ -25,8 +25,10 @@ PKG_CPE_ID:=cpe:/a:tcsh:tcsh PKG_FIXUP:=autoreconf PKG_INSTALL:=1 +PKG_BUILD_DEPENDS:=tcsh/host PKG_BUILD_PARALLEL:=1 +include $(INCLUDE_DIR)/host-build.mk include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/nls.mk @@ -50,6 +52,28 @@ define Package/tcsh/description mechanism, job control and a C-like syntax. endef + +define Host/Compile + $(call Host/Compile/Default,gethost) +endef + +define Host/Install + mkdir -p $(STAGING_DIR_HOSTPKG)/usr/bin + $(INSTALL_BIN) $(HOST_BUILD_DIR)/gethost $(STAGING_DIR_HOSTPKG)/usr/bin/tcsh-gethost +endef + +define Build/Compile + #Build sh.err.h and tc.const.h for target build + $(call Build/Compile/Default,sh.err.h) + $(call Build/Compile/Default,tc.const.h) + #Copy gethost (host tool to generate header file) from hostpkg dir + $(CP) $(STAGING_DIR_HOSTPKG)/usr/bin/tcsh-gethost $(PKG_BUILD_DIR)/gethost + #Make-touch header generator binary to prevent recompiling during target build + $(call Build/Compile/Default,-t gethost) + #Build tcsh for target + $(call Build/Compile/Default) +endef + define Package/tcsh/postinst #!/bin/sh grep tcsh $${IPKG_INSTROOT}/etc/shells || { \ @@ -64,4 +88,5 @@ define Package/tcsh/install ln -sf tcsh $(1)/bin/csh endef +$(eval $(call HostBuild)) $(eval $(call BuildPackage,tcsh)) |