summaryrefslogtreecommitdiff
path: root/recipes/netpbm
diff options
context:
space:
mode:
authorDenys Dmytriyenko <denis@denix.org>2009-03-17 14:32:59 -0400
committerDenys Dmytriyenko <denis@denix.org>2009-03-17 14:32:59 -0400
commit709c4d66e0b107ca606941b988bad717c0b45d9b (patch)
tree37ee08b1eb308f3b2b6426d5793545c38396b838 /recipes/netpbm
parentfa6cd5a3b993f16c27de4ff82b42684516d433ba (diff)
rename packages/ to recipes/ per earlier agreement
See links below for more details: http://thread.gmane.org/gmane.comp.handhelds.openembedded/21326 http://thread.gmane.org/gmane.comp.handhelds.openembedded/21816 Signed-off-by: Denys Dmytriyenko <denis@denix.org> Acked-by: Mike Westerhof <mwester@dls.net> Acked-by: Philip Balister <philip@balister.org> Acked-by: Khem Raj <raj.khem@gmail.com> Acked-by: Marcin Juszkiewicz <hrw@openembedded.org> Acked-by: Koen Kooi <koen@openembedded.org> Acked-by: Frans Meulenbroeks <fransmeulenbroeks@gmail.com>
Diffstat (limited to 'recipes/netpbm')
-rw-r--r--recipes/netpbm/files/oeendiangen30
-rw-r--r--recipes/netpbm/netpbm-10.28/Makefile.config380
-rw-r--r--recipes/netpbm/netpbm-10.28/ppmtojpeg.patch17
-rw-r--r--recipes/netpbm/netpbm_10.28.bb90
4 files changed, 517 insertions, 0 deletions
diff --git a/recipes/netpbm/files/oeendiangen b/recipes/netpbm/files/oeendiangen
new file mode 100644
index 0000000000..b01e5e855b
--- /dev/null
+++ b/recipes/netpbm/files/oeendiangen
@@ -0,0 +1,30 @@
+#!/bin/sh
+#
+# This replaces 'endiangen' for OpenEmbedded. OE builds can rely on
+# the GNU endian.h, however this generates __ names, (unless __USE_BSD
+# is set) so we need to deal with this. Match the output of endiangen.
+cat <<EOF
+#ifndef OE_ENDIAN_H
+#define OE_ENDIAN_H 1
+#include <ctype.h>
+#include <endian.h>
+
+#ifndef LITTLE_ENDIAN
+# define LITTLE_ENDIAN __LITTLE_ENDIAN
+#endif
+#ifndef BIG_ENDIAN
+# define BIG_ENDIAN __BIG_ENDIAN
+#endif
+#ifndef PDP_ENDIAN
+# define PDP_ENDIAN __PDP_ENDIAN
+#endif
+#ifndef BYTE_ORDER
+# define BYTE_ORDER __BYTE_ORDER
+#endif
+
+#ifndef BITS_PER_WORD
+# include <bits/wordsize.h>
+# define BITS_PER_WORD __WORDSIZE
+#endif
+#endif
+EOF
diff --git a/recipes/netpbm/netpbm-10.28/Makefile.config b/recipes/netpbm/netpbm-10.28/Makefile.config
new file mode 100644
index 0000000000..3407fcfd18
--- /dev/null
+++ b/recipes/netpbm/netpbm-10.28/Makefile.config
@@ -0,0 +1,380 @@
+# This is the configuration file for OpenEmbedded
+# It is a generic file for *all* architectures supported by
+# OpenEmbedded.
+#
+# This is a make file inclusion, to be included in all the Netpbm make
+# files.
+
+# This file is meant to contain variable settings that customize the
+# build for a particular target system configuration.
+
+# The distribution contains the file Makefile.config.in. You edit
+# Makefile.config.in in ways relevant to your particular environment
+# to create Makefile.config. The "configure" program will do this
+# for you in simple cases.
+
+# Some of the variables that the including make file must set for this
+# file to work:
+#
+# SRCDIR: The directory at the top of the Netpbm source tree. Note that
+# this is typically a relative directory, and it must be relative to the
+# make file that includes this file.
+
+DEFAULT_TARGET = merge
+
+# Fiasco has some special requirements that make it fail to compile on
+# some systems, and since it isn't very important, just set this to "N"
+# and skip it on those systems unless you want to debug it and fix it.
+# OpenBSD:
+#BUILD_FIASCO = N
+BUILD_FIASCO = Y
+
+# The following are commands for the build process to use. These values
+# do not get built into anything.
+
+# The C compiler (including macro preprocessor)
+#CC = gcc
+
+# The linker.
+LD = $(CC)
+
+#If the linker identified above is a compiler that invokes a linker
+#(as in 'cc foo.o -o foo'), set LINKERISCOMPILER. The main difference is
+#that we expect a compiler to take linker options in the '-Wl,-opt1,val1'
+#syntax whereas the actual linker would take '-opt1 val1'.
+LINKERISCOMPILER=Y
+
+#LINKER_CAN_DO_EXPLICIT_LIBRARY means the linker specified above can
+#take a library as just another link object argument, as in 'ld
+#pnmtojpeg.o /usr/local/lib/libjpeg.so ...' as opposed to requiring a
+#-l option as in 'ld pnmtojpeg.o -L/usr/local/lib -l jpeg'.
+#This variable controls how 'libopt' gets built. Note that with some
+#linkers, you can specify a shared library explicitly, but then it has
+#to live in that exact place at run time. That's not good enough for us.
+LINKER_CAN_DO_EXPLICIT_LIBRARY=Y
+
+# This is the name of the header file that declares the types
+# uint32_t, etc. This name is used as #include $(INTTYPES_H) .
+# Set to null if the types come automatically without including anything.
+INTTYPES_H = <inttypes.h>
+
+# HAVE_INT64 tells whether, assuming you include the header indicated by
+# INTTYPES_H, you have the int64_t type and related stuff. (If you don't
+# the build will omit certain code that does 64 bit computations).
+HAVE_INT64 = Y
+
+# CC and LD are for building the Netpbm programs, which are not necessarily
+# intended to run on the same system on which Make is running. But when we
+# build a build tool such as Libopt, it is meant to run only on the same
+# system on which the Make is running. The variables below define programs
+# to use to compile and link build tools.
+CC_FOR_BUILD = $(BUILD_CC)
+LD_FOR_BUILD = $(BUILD_CC)
+
+# MAKE is set automatically by Make to what was used to invoke Make.
+
+INSTALL = install
+
+# STRIPFLAG is the option you pass to the above install program to make it
+# strip unnecessary information out of binaries.
+STRIPFLAG = -s
+
+SYMLINK = ln -s
+
+#MANPAGE_FORMAT is "nroff" or "cat". It determines in what format the
+#pointer man pages are installed (ready to nroff, or ready to cat).
+#A pointer man pages is just a single-paragraph pages that tells you there is
+#no man page for the program, to look at the HTML documentation instead.
+MANPAGE_FORMAT = nroff
+
+LEX = flex
+
+# EXE is a suffix that the linker puts on any executable it generates.
+# In cygwin, this is .exe and most programs deal with its existence without
+# us having to know about it. Some don't though, so set this:
+EXE =
+
+# linker options.
+
+# Linker options for created Netpbm shared libraries.
+
+# Here, $(SONAME) resolves to the soname for the shared library being created.
+# The following are gcc options. This works on GNU libc systems.
+LDSHLIB = -shared -fpic -Wl,-soname,$(SONAME)
+
+# LDRELOC is the command to combine two .o files (relocateable object files)
+# into a single .o file that can later be linked into something else. NONE
+# means no such command is available.
+LDRELOC = $(TARGET_LD) --reloc
+
+# On older systems, you have to make shared libraries out of position
+# independent code, so you need -fpic or fPIC here. (The rule is: if
+# -fpic works, use it. If it bombs, go to fPIC). On newer systems,
+# it isn't necessary, but can save real memory at the expense of
+# execution speed. Without position independent code, the library
+# loader may have to patch addresses into the executable text. On an
+# older system, this would cause a program crash because the loader
+# would be writing into read-only shared memory. But on newer
+# systems, the system silently creates a private mapping of the page
+# or segment being modified (the "copy on write" phenomenon). So it
+# needs its own private real page frame. In one experiment, A second
+# copy of Pbmtext used 16K less real memory when built with -fpic than
+# when built without. 2001.06.02.
+
+# We have seen -fPIC required on IA64 and AMD64 machines (GNU
+# compiler/linker). Build-time linking fails without it. I don't
+# know why -- history seems to be repeating itself. 2005.02.23.
+
+CFLAGS_SHLIB = -fpic
+
+# SHLIB_CLIB is the link option to include the C library in a shared library,
+# normally "-lc". On typical systems, this serves no purpose. On some,
+# though, it causes information about which C library to use to be recorded
+# in the shared library and thus choose the correct library among several or
+# avoid using an incompatible one. But on some systems, the link fails.
+# On 2002.09.30, "John H. DuBois III" <spcecdt@armory.com> reports that on
+# SCO OpenServer, he gets the following error message with -lc:
+#
+# -lc; relocations referenced ; from file(s) /usr/ccs/lib/libc.so(random.o);
+# fatal error: relocations remain against allocatable but non-writable
+# section: ; .text
+
+SHLIB_CLIB =
+
+# On some systems you have to build into an executable the list of
+# directories where its dynamically linked libraries can be found at
+# run time. This is typically done with a -R or -rpath linker
+# option. Even on systems that don't require it, you might prefer to do
+# that rather than set up environment variables or configuration files
+# to tell the system where the libraries are. A "Y" here means to put
+# the directory information in the executable at link time.
+NEED_RUNTIME_PATH = Y
+
+# RPATHOPTNAME is the option you use on the link command to specify
+# a runtime search path for a shared library. It is meaningless unless
+# NEED_RUNTIME_PATH is Y.
+RPATHOPTNAME = -rpath
+
+# The following variables tell where your various libraries on which
+# Netpbm depends live. The LIBxxx variable is a full file
+# specification of the link library (not necessarily the library used
+# at run time). e.g. "/usr/local/lib/graphics/libpng.so". It usually
+# doesn't matter if the library prefix and suffix are right -- you can
+# use "lib" and ".so" or ".a" regardless of what your system actually
+# uses because these just turn into "-L" and "-l" linker options
+# anyway. ".a" implies a static library for some purposes, though.
+# If you don't have the library in question, use a value of NONE for
+# LIBxxx and the build will simply skip the programs that require that
+# library. If the library is in your linker's (or the Netpbm build's)
+# default search path, leave off the directory part, e.g. "libpng.so".
+
+# The xxxHDR_DIR variable is the directory in which the interface
+# headers for the library live (e.g. /usr/include). If they are in your
+# compiler's default search path, set this variable to null.
+
+# This is where the Netpbm shared libraries will reside when Netpbm is
+# fully installed. In some configurations, the Netpbm builder builds
+# this information into the Netpbm executables. This does NOT affect
+# where the Netpbm installer installs the libraries. A null value
+# means the libraries are in a default search path used by the runtime
+# library loader.
+NETPBMLIB_RUNTIME_PATH = $(libdir)
+#NETPBMLIB_RUNTIME_PATH = /usr/lib/netpbm
+
+# The TIFF library. See above. If you want to build the tiff
+# converters, you must have the tiff library already installed.
+
+TIFFLIB = libtiff.so
+TIFFHDR_DIR =
+
+# Some TIFF libraries do Jpeg and/or Z (flate) compression and thus any
+# program linked with the TIFF library needs a Jpeg and/or Z library.
+# Some TIFF libraries have such library statically linked in, but others
+# need it to be dynamically linked at program load time.
+# Make this 'N' if youf TIFF library doesn't need such dynamic linking.
+# As of 2005.01, the most usual build of the TIFF library appears to require
+# both.
+TIFFLIB_NEEDS_JPEG = Y
+TIFFLIB_NEEDS_Z = Y
+
+# The JPEG library. See above. If you want to build the jpeg
+# converters you must have the jpeg library already installed.
+
+# Tiff files can use JPEG compression, so the Tiff library can reference
+# the JPEG library. If your Tiff library references a dynamic JPEG
+# library, you must specify at least JPEGLIB here, or the Tiff
+# converters will not build. Note that your Tiff library may have the
+# JPEG stuff statically linked in, in which case you won't need
+# JPEGLIB in order to build the Tiff converters.
+
+JPEGLIB = libjpeg.so
+JPEGHDR_DIR =
+
+# The PNG library. See above. If you want to build the PNG
+# converters you must have the PNG library already installed.
+
+# The PNG library, by convention starting around April 2002, gets installed
+# with names that include a version number, such as libpng10.a and header
+# files in /usr/include/libpng10.
+# option.
+PNGLIB = libpng.so
+PNGHDR_DIR =
+PNGVER =
+
+# The zlib compression library. See above. You need it to build
+# anything that needs the PNG library (see above). If you selected
+# NONE for the PNG library, it doesn't matter what you specify here --
+# it won't get used.
+ZLIB = libz.so
+ZHDR_DIR =
+
+# The JBIG lossless image compression library (aka JBIG-KIT):
+JBIGLIB = $(BUILDDIR)/converter/other/jbig/libjbig.a
+JBIGHDR_DIR = $(SRCDIR)/converter/other/jbig
+
+# The Jasper JPEG-2000 image compression library (aka JasPer):
+JASPERLIB = $(INTERNAL_JASPERLIB)
+JASPERHDR_DIR = $(INTERNAL_JASPERHDR_DIR)
+# JASPERDEPLIBS is the libraries (-l options or file names) on which
+# The Jasper library depends -- i.e. what you have to link into any
+# executable that links in the Jasper library.
+JASPERDEPLIBS =
+#JASPERDEPLIBS = -ljpeg
+
+# And the Utah Raster Toolkit (aka URT aka RLE) library:
+URTLIB = $(BUILDDIR)/urt/librle.a
+URTHDR_DIR = $(SRCDIR)/urt
+
+# The Linux SVGA library (Svgalib) is a facility for displaying graphics
+# on the Linux console. It is required by Ppmsvgalib.
+LINUXSVGALIB = NONE
+LINUXSVGAHDR_DIR =
+
+# If you don't want any network functions, set OMIT_NETWORK to "y".
+# The only thing that requires network functions is the option in
+# ppmtompeg to run it on multiple computers simultaneously. On some
+# systems network functions don't work or we haven't figured out how to
+# make them work, or they just aren't worth the effort.
+OMIT_NETWORK =
+
+# These are -l options to link in the network libraries. Often, these are
+# built into the standard C library, so this can be null. This is irrelevant
+# if OMIT_NETWORK is "y".
+NETWORKLD =
+
+VMS =
+#VMS:
+#VMS = yes
+
+# The following variables are used only by 'make install' (and the
+# variants of it). Paths here don't, for example, get built into any
+# programs.
+
+# This is where everything goes when you do 'make package', unless you
+# override it by setting 'pkgdir' on the Make command line.
+PKGDIR_DEFAULT = /tmp/netpbm
+
+# File permissions for installed files.
+# Note that on some systems (e.g. Solaris), 'install' can't use the
+# mnemonic permissions - you have to use octal.
+
+# binaries (pbmmake, etc)
+INSTALL_PERM_BIN = 755 # u=rwx,go=rx
+# shared libraries (libpbm.so, etc)
+INSTALL_PERM_LIBD = 755 # u=rwx,go=rx
+# static libraries (libpbm.a, etc)
+INSTALL_PERM_LIBS = 644 # u=rw,go=r
+# header files (pbm.h, etc)
+INSTALL_PERM_HDR = 644 # u=rw,go=r
+# man pages (pbmmake.1, etc)
+INSTALL_PERM_MAN = 644 # u=rw,go=r
+# data files (pnmtopalm color maps, etc)
+INSTALL_PERM_DATA = 644 # u=rw,go=r
+
+# Specify the suffix that want the man pages to have.
+
+SUFFIXMANUALS1 = 1
+SUFFIXMANUALS3 = 3
+SUFFIXMANUALS5 = 5
+
+#NETPBMLIBTYPE tells the kind of libraries that will get built to hold the
+#Netpbm library functions. The value is used only in make file tests.
+# "unixshared" means a unix-style shared library, typically named like
+# libxyz.so.2.3
+NETPBMLIBTYPE = unixshared
+# "unixstatic" means a unix-style static library, (like libxyz.a)
+#NETPBMLIBTYPE = unixstatic
+# "dll" means a Windows DLL shared library
+#NETPBMLIBTYPE = dll
+# "dylib" means a Darwin/Mac OS shared library
+#NETPBMLIBTYPE = dylib
+
+#NETPBMLIBSUFFIX is the suffix used on whatever kind of library is
+#selected above. All this is used for is to construct library names.
+#The make files never examine the actual value.
+NETPBMLIBSUFFIX = so
+
+# "a" is the suffix for unix-style static libraries. It is also
+# traditionally used for shared libraries on AIX. The Visual Age C
+# manual says sometimes .so works on AIX, and GNU software for AIX
+# 5.1.0 does indeed use it. In our experiments, it works fine if you
+# name the library file explicitly on the link, but isn't in the -l
+# search order. If you name the library explicitly on the link, the
+# library must live in exactly the same position at run time, so we
+# can't use that. Therefore, you cannot build both static and shared
+# libraries with AIX. You have to choose.
+#NETPBMLIBSUFFIX = a
+# For HP-UX shared libraries:
+#NETPBMLIBSUFFIX = sl
+# Darwin/Mac OS shared library:
+#NETPBMLIBSUFFIX = dylib
+# Windows shared library:
+#NETPBMLIBSUFFIX = dll
+
+#STATICLIB_TOO is "y" to signify that you want a static library built
+#and installed in addition to whatever library type you specified by
+#NETPBMLIBTYPE. If NETPBMLIBTYPE specified a static library,
+#STATICLIB_TOO simply has no effect.
+STATICLIB_TOO = y
+#STATICLIB_TOO = n
+
+#STATICLIBSUFFIX is the suffix that static libraries have. It's
+#meaningless if you aren't building static libraries.
+STATICLIBSUFFIX = a
+
+#SHLIBPREFIXLIST is a blank-delimited list of prefixes that a filename
+#of a shared library may have on this system. Traditionally, it's
+#just "lib", as in libc or libnetpbm. On Windows, though, varying
+#prefixes are used when multiple alternative forms of a library are
+#available. The first prefix in this list is what we use to name the
+#Netpbm shared libraries.
+#
+# This variable controls how 'libopt' gets built.
+#
+SHLIBPREFIXLIST = lib
+
+NETPBMSHLIBPREFIX = $(firstword $(SHLIBPREFIXLIST))
+
+#DLLVER is used to version the DLLs built on cygwin or other
+#windowsish platforms. We can't add this to LIBROOT, or we'd
+#version the static libs (which is bad). We can't add this
+#at the end of the name (like unix does with so numbers) because
+#windows will only load dlls whose name ends in "dll". So,
+#we have this variable, which becomes the end of the library "root" name
+#for DLLs only.
+#
+# This variable controls how 'libopt' gets built.
+#
+DLLVER =
+#Cygwin
+#DLLVER = $(NETPBM_MAJOR_RELEASE)
+
+#NETPBM_DOCURL is the URL of the main documentation page for Netpbm.
+#This is a directory which contains a file for each Netpbm program,
+#library, and file type. E.g. The documentation for jpegtopnm might be in
+#http://netpbm.sourceforge.net/doc/jpegtopnm.html . This value gets
+#installed in the man pages (which say no more than to read the webpage)
+#and in the Webman netpbm.url file.
+NETPBM_DOCURL = http://netpbm.sourceforge.net/doc/
+#For a system with no web access, but a local copy of the doc:
+#NETPBM_DOCURL = file:/usr/doc/netpbm/
diff --git a/recipes/netpbm/netpbm-10.28/ppmtojpeg.patch b/recipes/netpbm/netpbm-10.28/ppmtojpeg.patch
new file mode 100644
index 0000000000..39df5edbea
--- /dev/null
+++ b/recipes/netpbm/netpbm-10.28/ppmtojpeg.patch
@@ -0,0 +1,17 @@
+# This patch makes the /usr/bin/ppmtojpeg work on OE.
+
+--- netpbm-10.28/netpbm.c.orig 2005-08-04 13:20:15.665273549 -0700
++++ netpbm-10.28/netpbm.c 2005-08-04 13:21:09.288647855 -0700
+@@ -62,8 +62,11 @@
+ which would know whether pnmtojpeg was built into the merged binary
+ or not. But that's too much work.
+
+- TRY("ppmtojpeg", main_pnmtojpeg);
++ * Patched for OE because OE builds the jpeg library (always) and the
++ * subdirectory creates the link anyway, so otherwise we have a bogus
++ * link.
+ */
++ TRY("ppmtojpeg", main_pnmtojpeg);
+ TRY("bmptoppm", main_bmptopnm);
+ TRY("pgmnorm", main_pnmnorm);
+ TRY("ppmnorm", main_pnmnorm);
diff --git a/recipes/netpbm/netpbm_10.28.bb b/recipes/netpbm/netpbm_10.28.bb
new file mode 100644
index 0000000000..ff90310e1b
--- /dev/null
+++ b/recipes/netpbm/netpbm_10.28.bb
@@ -0,0 +1,90 @@
+DESCRIPTION = "Netpbm is a toolkit for manipulation of graphic images, including\
+conversion of images between a variety of different formats. There\
+are over 220 separate tools in the package including converters for\
+about 100 graphics formats."
+HOMEPAGE = "http://netpbm.sourceforge.net"
+SECTION = "console/utils"
+LICENSE = "GPL MIT Artistic"
+# NOTE: individual command line utilities are covered by different
+# licenses. The compiled and linked command line utilties are
+# subject to the licenses of the libraries they use too - including
+# libpng libz, IJG, and libtiff licenses
+DEPENDS = "jpeg zlib libpng tiff install-native flex-native"
+RDEPENDS = "perl\
+ perl-module-cwd\
+ perl-module-english\
+ perl-module-fcntl\
+ perl-module-file-basename\
+ perl-module-file-spec\
+ perl-module-getopt-long\
+ perl-module-strict\
+ "
+
+# these should not be required, they are here because the perl
+# module dependencies are currently incorrect:
+RDEPENDS += "perl-module-exporter-heavy"
+RDEPENDS += "perl-module-file-spec-unix"
+
+PR = "r5"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/netpbm/netpbm-${PV}.tgz \
+ file://ppmtojpeg.patch;patch=42 \
+ file://Makefile.config \
+ file://oeendiangen"
+
+PARALLEL_MAKE = ""
+
+EXTRA_OEMAKE = "ENDIANGEN=${S}/buildtools/oeendiangen TARGET_LD=${LD}"
+
+do_configure() {
+ install -c -m 644 ../Makefile.config .
+ # The following stops the host endiangen program being run and uses
+ # the target endian.h header instead.
+ install -c -m 755 ../oeendiangen buildtools
+}
+
+do_compile() {
+ # need all to get the static library too
+ oe_runmake all default
+}
+
+do_install() {
+ # netpbm makes its own installation package, which must then be
+ # installed to form the dummy installation for ipkg
+ rm -rf ${WORKDIR}/netpbm-package
+ oe_runmake package pkgdir=${WORKDIR}/netpbm-package
+ # now install the stuff from the package into ${D}
+ for d in ${WORKDIR}/netpbm-package/*
+ do
+ # following will cause an error if used
+ case "$d" in
+ */README) ;;
+ */VERSION) ;;
+ */pkginfo) ;;
+ */bin) install -d ${D}${bindir}
+ cp -pPR "$d"/* ${D}${bindir}
+ rm ${D}${bindir}/doc.url;;
+ */include) install -d ${D}${includedir}
+ cp -pPR "$d"/* ${D}${includedir};;
+ */link|*/lib) install -d ${D}${libdir}
+ cp -pPR "$d"/* ${D}${libdir};;
+ */man) install -d ${D}${mandir}
+ cp -pPR "$d"/* ${D}${mandir};;
+ */misc) install -d ${D}${datadir}/netpbm
+ cp -pPR "$d"/* ${D}${datadir}/netpbm;;
+ */config_template)
+ install -d ${D}${bindir}
+ sed "/^@/d
+ s!@VERSION@!$(<'${WORKDIR}/netpbm-package/VERSION')!
+ s!@DATADIR@!${datadir}/netpbm!
+ s!@LIBDIR@!${libdir}!
+ s!@LINKDIR@!${libdir}!
+ s!@INCLUDEDIR@!${includedir}!
+ s!@BINDIR@!${bindir}!
+ " "$d" >${D}${bindir}/netpbm-config
+ chmod 755 ${D}${bindir}/netpbm-config;;
+ *) echo "netpbm-package/$d: unknown item" >&2
+ exit 1;;
+ esac
+ done
+}