Revert gperf: remove 12034/head
authorSebastian Kemper <sebastian_ml@gmx.net>
Fri, 1 May 2020 11:00:51 +0000 (13:00 +0200)
committerSebastian Kemper <sebastian_ml@gmx.net>
Fri, 1 May 2020 11:04:16 +0000 (13:04 +0200)
gperf is a basic tool used when building packages. It's not available on
all hosts, in which case having a host package like this one is
required. For instance the CircleCI environment does not contain gperf,
in which case building of software requiring gperf fails.

This commit reverts the gperf removal.

Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
libs/gperf/Makefile [new file with mode: 0644]
libs/gperf/patches/100-include_own_first.patch [new file with mode: 0644]

diff --git a/libs/gperf/Makefile b/libs/gperf/Makefile
new file mode 100644 (file)
index 0000000..5035895
--- /dev/null
@@ -0,0 +1,47 @@
+#
+# Copyright (C) 2006-2017 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=gperf
+PKG_VERSION:=3.1
+PKG_RELEASE:=1
+PKG_HASH:=588546b945bba4b70b6a3a616e80b4ab466e3f33024a352fc2198112cdbb3ae2
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=@GNU/gperf
+PKG_HOST_ONLY=1
+
+PKG_MAINTAINER:=Espen Jürgensen <espenjurgensen+openwrt@gmail.com>
+PKG_LICENSE:=GPL-3.0
+PKG_LICENSE_FILES:=COPYING
+
+include $(INCLUDE_DIR)/host-build.mk
+include $(INCLUDE_DIR)/package.mk
+
+define Package/gperf
+  SECTION:=libs
+  CATEGORY:=Libraries
+  TITLE:=GNU gperf
+  BUILDONLY:=1
+  URL:=http://www.gnu.org/software/gperf
+endef
+
+define Package/gperf/description
+ GNU gperf is a perfect hash function generator. For a given list of strings, it
+ produces a hash function and hash table, in form of C or C++ code, for looking 
+ up a value depending on the input string. The hash function is perfect, which 
+ means that the hash table has no collisions, and the hash table lookup needs a
+ single string comparison only.
+endef
+
+define Host/Install
+       $(MAKE) -C $(HOST_BUILD_DIR) install
+endef
+
+$(eval $(call HostBuild))
+$(eval $(call BuildPackage,gperf))
diff --git a/libs/gperf/patches/100-include_own_first.patch b/libs/gperf/patches/100-include_own_first.patch
new file mode 100644 (file)
index 0000000..6936f35
--- /dev/null
@@ -0,0 +1,26 @@
+diff --git a/lib/Makefile.in b/lib/Makefile.in
+index 29bbf92..cf2bf3c 100644
+--- a/lib/Makefile.in
++++ b/lib/Makefile.in
+@@ -61,7 +61,7 @@ SHELL = /bin/sh
+ VPATH = $(srcdir)
+ OBJECTS  = getopt.$(OBJEXT) getopt1.$(OBJEXT) getline.$(OBJEXT) hash.$(OBJEXT)
+-CPPFLAGS = @CPPFLAGS@ -I$(srcdir)
++CPPFLAGS = -I$(srcdir) @CPPFLAGS@
+ TARGETLIB = libgp.a
+diff --git a/src/Makefile.in b/src/Makefile.in
+index 6866ffd..bd4df14 100644
+--- a/src/Makefile.in
++++ b/src/Makefile.in
+@@ -64,7 +64,7 @@ VPATH = $(srcdir)
+ OBJECTS  = version.$(OBJEXT) positions.$(OBJEXT) options.$(OBJEXT) keyword.$(OBJEXT) keyword-list.$(OBJEXT) \
+            input.$(OBJEXT) bool-array.$(OBJEXT) hash-table.$(OBJEXT) search.$(OBJEXT) output.$(OBJEXT) main.$(OBJEXT)
+ LIBS     = ../lib/libgp.a @GPERF_LIBM@
+-CPPFLAGS = @CPPFLAGS@ -I. -I$(srcdir)/../lib
++CPPFLAGS = -I. -I$(srcdir)/../lib @CPPFLAGS@
+ TARGETPROG = gperf$(EXEEXT)