blob: 2bc40d434d819442e9794b9339f97d5746719043 [file] [log] [blame]
#!/bin/sh
set -u
set -e
trap onexit INT
trap onexit TERM
trap onexit EXIT
TMPDIR=
onexit()
{
if [ ! "$TMPDIR" = "" ]; then
rm -rf $TMPDIR
fi
}
usage()
{
echo "$0 <package name> <version> <build> <package architecture> <source dir.> [combined]"
exit 1
}
COMBINED=0
if [ $# -lt 4 ]; then usage $0; fi
PACKAGE_NAME=$1
VERSION=$2
BUILD=$3
PKGARCH=$4
SRCDIR=$5
CC=$6
CXX=$7
if [ $# -gt 7 ]; then
if [ "$8" = "combined" ]; then COMBINED=1; fi
fi
umask 022
TMPDIR=`mktemp -d /tmp/$PACKAGE_NAME-build.XXXXXX`
rm -f $PACKAGE_NAME.pkg.bz2
cp $SRCDIR/release/copyright $TMPDIR
touch $TMPDIR/depend
cat $SRCDIR/release/pkginfo.tmpl | sed s/{__VERSION}/$VERSION/g \
| sed s/{__BUILD}/$BUILD/g | sed s/{__APPNAME}/$PACKAGE_NAME/g \
| sed s/{__PKGNAME}/$PACKAGE_NAME/g > $TMPDIR/pkginfo
if [ "$PKGARCH" = "i386" ]; then
__LIB=lib
else
__LIB=lib/$PKGARCH
fi
# This mess is to work around a bug in /usr/ccs/bin/make
if [ $COMBINED = 1 ]; then
if [ ! -d $SRCDIR/solx86 ]; then
mkdir -p $SRCDIR/solx86
fi
PWD=`pwd`
cd $SRCDIR/solx86
sh $SRCDIR/configure --with-pic CC=$CC CXX=$CXX CFLAGS= CXXFLAGS= LDFLAGS= host_alias=
make install DESTDIR=$TMPDIR mandir=/opt/$PACKAGE_NAME/man AM_MAKEFLAGS="mandir=/opt/$PACKAGE_NAME/man"
cd $PWD
fi
make install DESTDIR=$TMPDIR libdir=/opt/$PACKAGE_NAME/$__LIB mandir=/opt/$PACKAGE_NAME/man AM_MAKEFLAGS="libdir=/opt/$PACKAGE_NAME/$__LIB mandir=/opt/$PACKAGE_NAME/man"
rm -f $TMPDIR/opt/$PACKAGE_NAME/$__LIB/*.la
mkdir -p $TMPDIR/opt/$PACKAGE_NAME/doc
cp $SRCDIR/LICENSE.txt $SRCDIR/LGPL.txt $SRCDIR/README-turbo.txt $SRCDIR/README $SRCDIR/libjpeg.doc $SRCDIR/usage.doc $TMPDIR/opt/$PACKAGE_NAME/doc
chmod 644 $TMPDIR/opt/$PACKAGE_NAME/doc/*
cat >$TMPDIR/proto <<EOF
i copyright
i depend
i pkginfo
d none $PACKAGE_NAME 0755 root bin
d none $PACKAGE_NAME/bin 0755 root bin
f none $PACKAGE_NAME/bin/cjpeg 0755 root bin
f none $PACKAGE_NAME/bin/djpeg 0755 root bin
f none $PACKAGE_NAME/bin/jpegtran 0755 root bin
f none $PACKAGE_NAME/bin/rdjpgcom 0755 root bin
f none $PACKAGE_NAME/bin/wrjpgcom 0755 root bin
d none $PACKAGE_NAME/lib 0755 root bin
EOF
if [ $COMBINED = 1 ]; then
cat >>$TMPDIR/proto <<EOF
f none $PACKAGE_NAME/lib/libjpeg.so.62.0.0 0755 root bin
s none $PACKAGE_NAME/lib/libjpeg.so.62=libjpeg.so.62.0.0
s none $PACKAGE_NAME/lib/libjpeg.so=libjpeg.so.62.0.0
f none $PACKAGE_NAME/lib/libjpeg.a 0644 root bin
f none $PACKAGE_NAME/lib/libturbojpeg.so 0755 root bin
f none $PACKAGE_NAME/lib/libturbojpeg.a 0644 root bin
EOF
fi
if [ "${__LIB}" != "lib" ]; then
echo d none $PACKAGE_NAME/${__LIB} 0755 root bin >>$TMPDIR/proto
echo s none $PACKAGE_NAME/lib64=${__LIB} >>$TMPDIR/proto
echo s none $PACKAGE_NAME/lib/64=$PKGARCH >>$TMPDIR/proto
fi
cat >>$TMPDIR/proto <<EOF
f none $PACKAGE_NAME/${__LIB}/libjpeg.so.62.0.0 0755 root bin
s none $PACKAGE_NAME/${__LIB}/libjpeg.so.62=libjpeg.so.62.0.0
s none $PACKAGE_NAME/${__LIB}/libjpeg.so=libjpeg.so.62.0.0
f none $PACKAGE_NAME/${__LIB}/libjpeg.a 0644 root bin
f none $PACKAGE_NAME/${__LIB}/libturbojpeg.so 0755 root bin
f none $PACKAGE_NAME/${__LIB}/libturbojpeg.a 0644 root bin
s none $PACKAGE_NAME/lib32=lib
d none $PACKAGE_NAME/man 0755 root bin
d none $PACKAGE_NAME/man/man1 0755 root bin
d none $PACKAGE_NAME/man/man1/cjpeg.1 0644 root bin
d none $PACKAGE_NAME/man/man1/djpeg.1 0644 root bin
d none $PACKAGE_NAME/man/man1/jpegtran.1 0644 root bin
d none $PACKAGE_NAME/man/man1/rdjpgcom.1 0644 root bin
d none $PACKAGE_NAME/man/man1/wrjpgcom.1 0644 root bin
d none $PACKAGE_NAME/include 0755 root bin
f none $PACKAGE_NAME/include/jconfig.h 0644 root bin
f none $PACKAGE_NAME/include/jerror.h 0644 root bin
f none $PACKAGE_NAME/include/jmorecfg.h 0644 root bin
f none $PACKAGE_NAME/include/jpeglib.h 0644 root bin
f none $PACKAGE_NAME/include/turbojpeg.h 0644 root bin
d none $PACKAGE_NAME/doc 0755 root bin
f none $PACKAGE_NAME/doc/LGPL.txt 0644 root bin
f none $PACKAGE_NAME/doc/libjpeg.doc 0644 root bin
f none $PACKAGE_NAME/doc/LICENSE.txt 0644 root bin
f none $PACKAGE_NAME/doc/README 0644 root bin
f none $PACKAGE_NAME/doc/README-turbo.txt 0644 root bin
f none $PACKAGE_NAME/doc/usage.doc 0644 root bin
EOF
pkgmk -o -r $TMPDIR/opt -d $TMPDIR -a i386 -f $TMPDIR/proto
pkgtrans -s $TMPDIR $TMPDIR/$PACKAGE_NAME.pkg $PACKAGE_NAME
bzip2 $TMPDIR/$PACKAGE_NAME.pkg
cp $TMPDIR/$PACKAGE_NAME.pkg.bz2 .
exit