libdeflate: Avoid circular dependencies
authorOlliver Schinagl <oliver@schinagl.nl>
Fri, 13 Jan 2023 09:50:30 +0000 (10:50 +0100)
committerOlliver Schinagl <oliver@schinagl.nl>
Tue, 17 Jan 2023 20:01:54 +0000 (21:01 +0100)
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>
tools/Makefile
tools/libdeflate/Makefile

index 7ca874aa91d696139da2e791f093796df2fc827e..7b3a8eb1425cbccb573dfd78762ff499b075ee8e 100644 (file)
@@ -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
index 53137e2dabc1e87540b035976979ed68c838244c..53a674440a81fad53c600de489dcf7ac9f2ae424 100644 (file)
@@ -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))