aboutsummaryrefslogtreecommitdiff
path: root/utils/tcsh/Makefile
diff options
context:
space:
mode:
authorSergey V. Lobanov <sergey@lobanov.in>2022-01-14 01:29:08 +0300
committerRosen Penev <rosenp@gmail.com>2022-01-18 18:10:48 -0800
commit50b4221ee5c77bf427b010ea22c2b96bd232d1a3 (patch)
tree52017ddeee2e24ce554efba61f444ea37f92d25d /utils/tcsh/Makefile
parent30f4e26d1688b745d165eb0c604325dd42da9f04 (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/Makefile25
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))