summaryrefslogtreecommitdiff
path: root/tools/genext2fs
diff options
context:
space:
mode:
Diffstat (limited to 'tools/genext2fs')
-rw-r--r--tools/genext2fs/Makefile56
-rw-r--r--tools/genext2fs/patches/01-remove_getline.patch52
2 files changed, 108 insertions, 0 deletions
diff --git a/tools/genext2fs/Makefile b/tools/genext2fs/Makefile
new file mode 100644
index 0000000000..69700ed54b
--- /dev/null
+++ b/tools/genext2fs/Makefile
@@ -0,0 +1,56 @@
+#
+# Copyright (C) 2006 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+# $Id$
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=genext2fs
+PKG_VERSION:=1.4rc1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=@SF/$(PKG_NAME)
+PKG_MD5SUM:=664431bf6737df1c265500e1f0b5d40c
+PKG_CAT:=zcat
+
+include $(INCLUDE_DIR)/host-build.mk
+
+define Build/Configure
+ ( cd $(PKG_BUILD_DIR); \
+ ./configure \
+ --target=$(GNU_HOST_NAME) \
+ --host=$(GNU_HOST_NAME) \
+ --build=$(GNU_HOST_NAME) \
+ --program-prefix="" \
+ --program-suffix="" \
+ --prefix=/usr \
+ --exec-prefix=/usr \
+ --bindir=/usr/bin \
+ --sbindir=/usr/sbin \
+ --libexecdir=/usr/lib \
+ --sysconfdir=/etc \
+ --datadir=/usr/share \
+ --localstatedir=/var \
+ --mandir=/usr/man \
+ --infodir=/usr/info \
+ )
+endef
+
+define Build/Compile
+ $(MAKE) -C $(PKG_BUILD_DIR) \
+ CFLAGS="$(HOST_CFLAGS) -include getline.h" \
+ all
+endef
+
+define Build/Install
+ install -m0755 $(PKG_BUILD_DIR)/genext2fs $(STAGING_DIR_HOST)/bin/
+endef
+
+define Build/Clean
+ rm -f $(STAGING_DIR_HOST)/bin/genext2fs
+endef
+
+$(eval $(call HostBuild))
diff --git a/tools/genext2fs/patches/01-remove_getline.patch b/tools/genext2fs/patches/01-remove_getline.patch
new file mode 100644
index 0000000000..d09404c0c5
--- /dev/null
+++ b/tools/genext2fs/patches/01-remove_getline.patch
@@ -0,0 +1,52 @@
+diff -urN genext2fs-1.4rc1/genext2fs.c genext2fs-1.4rc1.new/genext2fs.c
+--- genext2fs-1.4rc1/genext2fs.c 2005-05-17 18:29:10.000000000 +0200
++++ genext2fs-1.4rc1.new/genext2fs.c 2007-01-03 15:21:16.000000000 +0100
+@@ -243,48 +243,6 @@
+ }
+ #endif // defined SNPRINTF_STORAGE_CLASS
+
+-#if defined(__APPLE__) && defined(__GNUC__)
+-// getline() replacement for Darwin, might work on other systems
+-// written according to the getline man page included with Debian Linux
+-ssize_t
+-getline(char **lineptr, size_t *n, FILE *stream)
+-{
+- char *buf = *lineptr; // could be NULL, in which case we allocate
+- size_t bufsize = *n; // current buffer size, adjust if we (re)alloc
+-
+- char *temp = NULL;
+- size_t tempsize = 0;
+-
+- // temp is not a C string and we don't own the buffer it points into
+- // must copy into a malloced buffer and NULL terminate
+- temp = fgetln(stream, &tempsize);
+- if(!temp) return -1;
+-
+- tempsize++; // adjust for NULL terminator
+- if(buf) {
+- // check if we have to reallocate
+- if(bufsize < tempsize) {
+- bufsize = tempsize;
+- buf = (char*)realloc(buf, tempsize);
+- if(!buf) return -1;
+- }
+- } else {
+- bufsize = tempsize;
+- buf = (char*)malloc(bufsize);
+- if(!buf) return -1;
+- }
+-
+- memcpy(buf, temp, tempsize-1);
+- buf[tempsize-1] = '\0';
+-
+- // give new pointer and size back, nondestructive if we didn't change anything..
+- *n = bufsize;
+- *lineptr = buf;
+-
+- return (ssize_t)(tempsize-1); // don't include the NULL terminator, per getline man page
+-}
+-#endif
+-
+ // Convert a numerical string to a float, and multiply the result by an
+ // SI-style multiplier if provided; supported multipliers are Ki, Mi, Gi, k, M
+ // and G.