libnetpbm.a
and
executables pbm*
, pgm*
, pnm*
, ppm*
.
gmake
, libjpeg,libtiff,libpng,libz,perl
.
configure
script.
It is rather "nonstandard", complex, cumbersome, and buggy at times.
libpng
to be older than V1.4.x.
netpbm
relies on the libpng-config
script
to configure the png
library. Thus it must be in
the command path, for example:
export PATH=/nfs/local/71/libpng-1.2.50/bin:$PATHMoreover,
libpng-config
might need some modifications
to reflect zlib
usage:
libs="-lpng12 -lz" I_opts="-I${includedir} -I/nfs/local/71/include"
Makefile.config.in
modify:
# for AIX: CFLAGS= -O2 -qlanglvl=extc99 -D_LARGE_FILES
configure
script and answer the prompts, for example
(only non-default entries shown):
./configure # creates Makefile.config static or shared [shared] ==> static '#include' argument or NONE [] ==> library filename or 'none' [libjpeg.a] ==> /nfs/local/71/lib/libjpeg.a JPEG header directory [default] ==> /nfs/local/71/include library filename or 'none' [libtiff.a] ==> /nfs/local/71/lib/libtiff.a TIFF header directory [default] ==> /nfs/local/71/include library filename or 'none' [libz.a] ==> /nfs/local/71/lib/libz.a Z header directory [default] ==> /nfs/local/71/include
Makefile.config
modify:
# disable (doesn't exist on AIX): #LDFLAGS += -L /usr/pubsw/libIf
libtiff
has been built with
jbig
support, in
converter/other/Makefile
add
TIFFLIB_EXTRALIBS += -ljbig -llzma
makeIt may be necessary in
converter/pbm/thinkjettopbm.c
to fix the missing /
(around line 66, see comment)
caused by an incorrect lex
usage.
(The maintainers don't bother to fix this obvious bug).
Re-run make
.
make package pkgdir=/tmp/netpbm-10.35.89/ # some temporary installation installnetpbm # just an option, not mandatory
configure
script.
You will be prompted for the locations of support libraries (full name)
and header directories (path).
Makefile.config
editor/pamperspective.c
change
typedef enum {nearest, linear} interpolation;to
typedef enum {interp_nearest, interp_linear} interpolation;because
nearest
is a builtin function.
In other/pamx/window.c
remove/outcomment
#include <X11/Xdefs.h>this file does not exist and is not necessary.
lib/libpm.c(pm_tmpfile)
:
FILENAME_MAX
is only 14 characters, which is too short.
Change all occurences to
PATH_MAX
.
pm_config.in.h
#if defined(__hpux) #define UINT_FAST8_MAX UINT_MAX #define UINT_FAST16_MAX USHRT_MAX #define UINT_FAST64_MAX ULLONG_MAX #endifis not sufficient, had to do it in
converter/other/jpeg2000/libjasper/include/jasper/jas_types.h
.
converter/ppm/ppmtompeg/psocket.c
:
#include "pm_config.h" /* For POSIX_IS_IMPLIED */ #undef _XOPEN_SOURCE_EXTENDEDto force usage of macros
htonl
and friends.
pm_config.in.h
#if defined(__hpux) #define UINT_FAST8_MAX UINT_MAX #define UINT_FAST16_MAX USHRT_MAX #define UINT_FAST32_MAX UINT_MAX #define UINT_FAST64_MAX ULLONG_MAX #endif
configure
script, for example:
export CC=cc # native compiler configure # answer the questions # prompts where I did not choose the default: # (example for AIX 5.3) Y or N (N) ==> Y static or shared [shared] ==> static library filename or 'none' [libjpeg.a] ==> /nfs/bio/local.AIX/53/lib/libjpeg.a JPEG header directory [default] ==> /nfs/bio/local.AIX/53/include library filename or 'none' [libtiff.a] ==> /nfs/bio/local.AIX/53/lib/libtiff.a TIFF header directory [default] ==> /nfs/bio/local.AIX/53/include library filename or 'none' [libpng.a] ==> /nfs/bio/local.AIX/53/lib/libpng.a PNG header directory [default] ==> /nfs/bio/local.AIX/53/include library filename or 'none' [libz.a] ==> /nfs/bio/local.AIX/53/lib/libz.a Z header directory [default] ==> /nfs/bio/local.AIX/53/includeNote that
PNG
seems to be a troublemaker here.
Not all versions of this library work with netpbm
,
one might have to fall back to an earlier one.
Note further that the configure
script runs
libpng-config
, which may be not what you want.
Makefile.config
:
# AIX 6.1, C 9.0; some source uses //, C99 integer types CFLAGS=-O2 -qcpluscmt -D_ISOC99_SOURCE -D_LARGE_FILES -D_THREAD_SAFE # AIX 5.3, C 8.0 CFLAGS=-O2 -qcpluscmt -D_ISOC99_SOURCE # some source uses //, C99 integer types #LDFLAGS = -L /usr/pubsw/lib # no flags needed, this lib does not exist # HP-UX 10.20: CFLAGS=-O -Ae -D_REENTRANT -D_FILE_OFFSET_BITS=64 +z ... # this definition is originally misplaced: CC_FOR_BUILD = $(CC) $(CFLAGS)
make clean make make package pkgdir=/tmp/netpbm-10.26.29/ installnetpbm # just an option, not mandatory
libnetpbm.a
originally lives
in a link
subdirectory, rather than the normal lib
.