Martin Herren writes:
authorMike Frysinger <vapier@gentoo.org>
Tue, 14 Dec 2004 01:18:23 +0000 (01:18 -0000)
committerMike Frysinger <vapier@gentoo.org>
Tue, 14 Dec 2004 01:18:23 +0000 (01:18 -0000)
here is a small patch to add libpng to buildroot.
It's the first application which i integrated in the buildroot build
system, so i welcome any comments, feedbacks and/or improvements about
it.  I tested it using directfb on a arm/pxa platform, and as far as i
could test it it seems to work.

package/Config.in
package/libpng/Config.in [new file with mode: 0644]
package/libpng/Makefile.in [new file with mode: 0644]
package/libpng/libpng.mk [new file with mode: 0644]

index 4da1f5016bc8b8e354e6f037968c9623468b69a6..eaf53a7eb22d8783e175cfb1ae3b0d2bca9087e8 100644 (file)
@@ -58,6 +58,7 @@ source "package/less/Config.in"
 source "package/libfloat/Config.in"
 source "package/libglib12/Config.in"
 source "package/libmad/Config.in"
+source "package/libpng/Config.in"
 source "package/libtool/Config.in"
 source "package/links/Config.in"
 source "package/linux/Config.in"
diff --git a/package/libpng/Config.in b/package/libpng/Config.in
new file mode 100644 (file)
index 0000000..8c270f1
--- /dev/null
@@ -0,0 +1,8 @@
+config BR2_PACKAGE_LIBPNG
+       bool "libpng"
+       default n
+       help
+         Library for handling PNG (Portable Network Graphics)
+         images.
+
+         http://www.libpng.org/
diff --git a/package/libpng/Makefile.in b/package/libpng/Makefile.in
new file mode 100644 (file)
index 0000000..f4dfc9f
--- /dev/null
@@ -0,0 +1,3 @@
+ifeq ($(strip $(BR2_PACKAGE_LIBPNG)),y)
+TARGETS+=libpng
+endif
diff --git a/package/libpng/libpng.mk b/package/libpng/libpng.mk
new file mode 100644 (file)
index 0000000..ca7302f
--- /dev/null
@@ -0,0 +1,70 @@
+#############################################################
+#
+# libpng (Portable Network Graphic library)
+#
+#############################################################
+# Copyright (C) 2001-2003 by Erik Andersen <andersen@codepoet.org>
+# Copyright (C) 2002 by Tim Riker <Tim@Rikers.org>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Library General Public License as
+# published by the Free Software Foundation; either version 2 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Library General Public License for more details.
+#
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+# USA
+
+LIBPNG_VER:=1.2.7
+LIBPNG_DIR:=$(BUILD_DIR)/libpng-$(LIBPNG_VER)
+LIBPNG_SITE:=ftp://sunsite.cnlab-switch.ch/mirror/freetype/png
+LIBPNG_SOURCE:=libpng-$(LIBPNG_VER).tar.bz2
+LIBPNG_CAT:=bzcat
+
+$(DL_DIR)/$(LIBPNG_SOURCE):
+        $(WGET) -P $(DL_DIR) $(LIBPNG_SITE)/$(LIBPNG_SOURCE)
+
+libpng-source: $(DL_DIR)/$(LIBPNG_SOURCE)
+
+$(LIBPNG_DIR)/.unpacked: $(DL_DIR)/$(LIBPNG_SOURCE)
+       $(LIBPNG_CAT) $(DL_DIR)/$(LIBPNG_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
+       touch $(LIBPNG_DIR)/.unpacked
+
+$(LIBPNG_DIR)/.configured: $(LIBPNG_DIR)/.unpacked
+       ( \
+               cd $(LIBPNG_DIR) ; \
+               cp scripts/makefile.linux Makefile ; \
+               $(SED) 's~prefix=/usr/local/~$(STAGING_DIR)~' Makefile ; \
+               $(SED) 's~gcc~${TARGET_CC}~' Makefile ; \
+               $(SED) "s~-O3 -funroll-loops~${TARGET_CFLAGS}~" Makefile ; \
+       )
+       touch $(LIBPNG_DIR)/.configured
+
+$(LIBPNG_DIR)/.compiled: $(LIBPNG_DIR)/.configured
+       $(MAKE) -C $(LIBPNG_DIR)
+       touch $(LIBPNG_DIR)/.compiled
+
+$(STAGING_DIR)/lib/libpng.so: $(LIBPNG_DIR)/.compiled
+       $(MAKE) \
+               -C $(LIBPNG_DIR) \
+               prefix=$(STAGING_DIR) \
+               exec_prefix=$(STAGING_DIR) \
+               bindir=$(STAGING_DIR)/bin \
+               datadir=$(STAGING_DIR)/share \
+               install
+       touch -c $(STAGING_DIR)/lib/libpng.so
+
+$(TARGET_DIR)/usr/lib/libpng.so: $(STAGING_DIR)/lib/libpng.so
+       cp -dpf $(STAGING_DIR)/lib/libpng.so* $(TARGET_DIR)/usr/lib/
+       -$(STRIP) --strip-unneeded $(TARGET_DIR)/usr/lib/libpng.so
+
+libpng: uclibc zlib $(TARGET_DIR)/usr/lib/libpng.so
+
+libpng-clean:
+       -$(MAKE) -C $(LIBPNG_DIR) clean