netpbm, compiles on glibc only (because it uses sinf)
authorJohn Bowler <jbowler@nslu2-linux.org>
Wed, 3 Aug 2005 19:49:52 +0000 (19:49 +0000)
committerOpenEmbedded Project <openembedded-devel@lists.openembedded.org>
Wed, 3 Aug 2005 19:49:52 +0000 (19:49 +0000)
packages/netpbm/.mtn2git_empty [new file with mode: 0644]
packages/netpbm/files/.mtn2git_empty [new file with mode: 0644]
packages/netpbm/files/oeendiangen [new file with mode: 0644]
packages/netpbm/netpbm-10.28/.mtn2git_empty [new file with mode: 0644]
packages/netpbm/netpbm-10.28/Makefile.config [new file with mode: 0644]
packages/netpbm/netpbm_10.28.bb [new file with mode: 0644]

diff --git a/packages/netpbm/.mtn2git_empty b/packages/netpbm/.mtn2git_empty
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/packages/netpbm/files/.mtn2git_empty b/packages/netpbm/files/.mtn2git_empty
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/packages/netpbm/files/oeendiangen b/packages/netpbm/files/oeendiangen
new file mode 100644 (file)
index 0000000..b01e5e8
--- /dev/null
@@ -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/packages/netpbm/netpbm-10.28/.mtn2git_empty b/packages/netpbm/netpbm-10.28/.mtn2git_empty
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/packages/netpbm/netpbm-10.28/Makefile.config b/packages/netpbm/netpbm-10.28/Makefile.config
new file mode 100644 (file)
index 0000000..3407fcf
--- /dev/null
@@ -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/packages/netpbm/netpbm_10.28.bb b/packages/netpbm/netpbm_10.28.bb
new file mode 100644 (file)
index 0000000..b4f78a5
--- /dev/null
@@ -0,0 +1,78 @@
+# bitbake configuration file for NetPBM, a command line image (sampled
+# data) processing package derived from PBMPlus
+#
+# For documentation see: http://netpbm.sourceforge.net/doc/
+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
+
+SECTION = "console/utils" 
+DEPENDS = "jpeg zlib libpng tiff install-native flex-native" 
+RDEPENDS = "perl"
+HOMEPAGE = "http://netpbm.sourceforge.net" 
+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."
+PR = "r0"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/netpbm/netpbm-${PV}.tgz \
+          file://Makefile.config \
+          file://oeendiangen" 
+
+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 -a "$d"/* ${D}${bindir}
+                               rm ${D}${bindir}/doc.url;;
+               */include)      install -d ${D}${includedir}
+                               cp -a "$d"/* ${D}${includedir};;
+               */link|*/lib)   install -d ${D}${libdir}
+                               cp -a "$d"/* ${D}${libdir};;
+               */man)          install -d ${D}${mandir}
+                               cp -a "$d"/* ${D}${mandir};;
+               */misc)         install -d ${D}${datadir}/netpbm
+                               cp -a "$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
+}