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>
This commit is contained in:
parent
30f4e26d16
commit
50b4221ee5
2 changed files with 25 additions and 11 deletions
|
@ -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))
|
||||
|
|
|
@ -1,11 +0,0 @@
|
|||
--- a/Makefile.in
|
||||
+++ b/Makefile.in
|
||||
@@ -448,7 +448,7 @@ pure:$(P) ${OBJS}
|
||||
|
||||
gethost: gethost.c sh.err.h tc.const.h sh.h
|
||||
rm -f gethost
|
||||
- ${CC_FOR_GETHOST} -o gethost ${CPPFLAGS} ${CFLAGS} ${LDFLAGS} $(srcdir)/gethost.c
|
||||
+ ${CC_FOR_GETHOST} -o gethost $(srcdir)/gethost.c
|
||||
|
||||
tc.defs.c: gethost host.defs
|
||||
@rm -f $@.tmp
|
Loading…
Reference in a new issue