summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorOlliver Schinagl <oliver@schinagl.nl>2023-01-13 10:50:30 +0100
committerOlliver Schinagl <oliver@schinagl.nl>2023-01-17 21:01:54 +0100
commit62e150949fc01ae2327207fa98fae9c5cff6035c (patch)
tree0aa578f4e0c8ed504566474e763b28cdb04f58ed /tools
parent9a59bf35281a89e2a783127f16647d4fc07fcf7a (diff)
downloadopenwrt-62e150949fc01ae2327207fa98fae9c5cff6035c.tar.gz
openwrt-62e150949fc01ae2327207fa98fae9c5cff6035c.tar.bz2
openwrt-62e150949fc01ae2327207fa98fae9c5cff6035c.zip
libdeflate: Avoid circular dependencies
CMake depends on (libdeflate-)gunzip, libdeflate depends on Cmake, so we can't win. Luckily libdeflate is _very_ easy to build, without any build system, so lets just manually compile it and be done with it. Signed-off-by: Olliver Schinagl <oliver@schinagl.nl> Signed-off-by: Rosen Penev <rosenp@gmail.com>
Diffstat (limited to 'tools')
-rw-r--r--tools/Makefile3
-rw-r--r--tools/libdeflate/Makefile17
2 files changed, 13 insertions, 7 deletions
diff --git a/tools/Makefile b/tools/Makefile
index 7ca874aa91..7b3a8eb142 100644
--- a/tools/Makefile
+++ b/tools/Makefile
@@ -42,7 +42,6 @@ tools-y += findutils
tools-y += firmware-utils
tools-y += flex
tools-y += gengetopt
-tools-y += libdeflate
tools-y += libressl
tools-y += libtool
tools-y += lzma
@@ -98,7 +97,6 @@ $(curdir)/genext2fs/compile := $(curdir)/libtool/compile
$(curdir)/gengetopt/compile := $(curdir)/libtool/compile
$(curdir)/gmp/compile := $(curdir)/libtool/compile
$(curdir)/isl/compile := $(curdir)/gmp/compile
-$(curdir)/libdeflate/compile := $(curdir)/cmake/compile
$(curdir)/liblzo/compile := $(curdir)/cmake/compile
$(curdir)/libressl/compile := $(curdir)/pkgconf/compile
$(curdir)/libtool/compile := $(curdir)/automake/compile $(curdir)/missing-macros/compile
@@ -148,6 +146,7 @@ $(foreach tool, $(tools-y), $(if $(wildcard $(curdir)/$(tool)/patches),$(eval $(
$(foreach tool, $(filter-out xz,$(tools-y)), $(eval $(curdir)/$(tool)/compile += $(curdir)/xz/compile))
# make any tool depend on the following to ensure that archives can be unpacked and patched properly
+tools-core += libdeflate
tools-core += patch
tools-core += tar
tools-core += xz
diff --git a/tools/libdeflate/Makefile b/tools/libdeflate/Makefile
index 53137e2dab..53a674440a 100644
--- a/tools/libdeflate/Makefile
+++ b/tools/libdeflate/Makefile
@@ -8,7 +8,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=libdeflate
PKG_VERSION:=1.17
-PKG_RELEASE:=1
+PKG_RELEASE:=2
PKG_SOURCE_URL:=https://github.com/ebiggers/libdeflate.git
PKG_SOURCE_PROTO:=git
@@ -16,16 +16,23 @@ PKG_SOURCE_VERSION:=v$(PKG_VERSION)
PKG_MIRROR_HASH:=ee5790cf3140aa6a2e0f0c400d4b32539f13cb270e9357135c51927ba3784dc7
include $(INCLUDE_DIR)/host-build.mk
-include $(INCLUDE_DIR)/cmake.mk
+
+define Host/Compile
+ $(HOSTCC_NOCACHE) $(HOST_CFLAGS) $(HOST_LDFLAGS) \
+ $(HOST_BUILD_DIR)/lib/*{,/*}.c \
+ $(HOST_BUILD_DIR)/programs/{gzip,prog_util,tgetopt}.c \
+ -o $(HOST_BUILD_DIR)/libdeflate-gzip
+endef
define Host/Install
- $(INSTALL_BIN) $(HOST_BUILD_DIR)/programs/libdeflate-gzip $(STAGING_DIR_HOST)/bin/
+ $(INSTALL_BIN) $(HOST_BUILD_DIR)/libdeflate-gzip $(STAGING_DIR_HOST)/bin/
$(LN) libdeflate-gzip $(STAGING_DIR_HOST)/bin/libdeflate-gunzip
endef
define Host/Uninstall
- rm -f $(STAGING_DIR_HOST)/bin/libdeflate-gzip
- rm -f $(STAGING_DIR_HOST)/bin/libdeflate-gunzip
+ $(RM) $(STAGING_DIR_HOST)/bin/libdeflate-gzip
+ $(RM) $(STAGING_DIR_HOST)/bin/libdeflate-gunzip
+ $(call Host/Uninstall/Default)
endef
$(eval $(call HostBuild))