| #!/bin/sh |
| |
| set -u |
| set -e |
| trap onexit INT |
| trap onexit TERM |
| trap onexit EXIT |
| |
| TMPDIR= |
| SUDO= |
| |
| onexit() |
| { |
| if [ ! "$TMPDIR" = "" ]; then |
| $SUDO rm -rf $TMPDIR |
| fi |
| } |
| |
| uid() |
| { |
| id | cut -f2 -d = | cut -f1 -d \(; |
| } |
| |
| safedirmove () |
| { |
| if [ "$1" = "$2" ]; then |
| return 0 |
| fi |
| if [ "$1" = "" -o ! -d "$1" ]; then |
| echo safedirmove: source dir $1 is not valid |
| return 1 |
| fi |
| if [ "$2" = "" -o -e "$2" ]; then |
| echo safedirmove: dest dir $2 is not valid |
| return 1 |
| fi |
| if [ "$3" = "" -o -e "$3" ]; then |
| echo safedirmove: tmp dir $3 is not valid |
| return 1 |
| fi |
| mkdir -p $3 |
| mv $1/* $3/ |
| rmdir $1 |
| mkdir -p $2 |
| mv $3/* $2/ |
| rmdir $3 |
| return 0 |
| } |
| |
| makedeb() |
| { |
| SUPPLEMENT=$1 |
| DIRNAME=$PKGNAME |
| |
| if [ $SUPPLEMENT = 1 ]; then |
| PKGNAME=$PKGNAME\32 |
| DEBARCH=amd64 |
| fi |
| |
| umask 022 |
| rm -f $PKGNAME\_$VERSION\_$DEBARCH.deb |
| TMPDIR=`mktemp -d /tmp/$PKGNAME-build.XXXXXX` |
| mkdir $TMPDIR/DEBIAN |
| |
| if [ $SUPPLEMENT = 1 ]; then |
| make install DESTDIR=$TMPDIR |
| rm -rf $TMPDIR$BINDIR |
| if [ "$DATAROOTDIR" != "$PREFIX" ]; then |
| rm -rf $TMPDIR$DATAROOTDIR |
| fi |
| if [ "$JAVADIR" != "" ]; then |
| rm -rf $TMPDIR$JAVADIR |
| fi |
| rm -rf $TMPDIR$DOCDIR |
| rm -rf $TMPDIR$INCLUDEDIR |
| rm -rf $TMPDIR$MANDIR |
| else |
| make install DESTDIR=$TMPDIR |
| if [ "$PREFIX" = "@CMAKE_INSTALL_DEFAULT_PREFIX@" -a "$DOCDIR" = "@CMAKE_INSTALL_DEFAULT_PREFIX@/doc" ]; then |
| safedirmove $TMPDIR/$DOCDIR $TMPDIR/usr/share/doc/$PKGNAME-$VERSION $TMPDIR/__tmpdoc |
| ln -fs /usr/share/doc/$DIRNAME-$VERSION $TMPDIR$DOCDIR |
| fi |
| fi |
| |
| SIZE=`du -s $TMPDIR | cut -f1` |
| (cat pkgscripts/deb-control | sed s/{__PKGNAME}/$PKGNAME/g \ |
| | sed s/{__ARCH}/$DEBARCH/g | sed s/{__SIZE}/$SIZE/g \ |
| > $TMPDIR/DEBIAN/control) |
| |
| /sbin/ldconfig -n $TMPDIR$LIBDIR |
| |
| $SUDO chown -Rh root:root $TMPDIR/* |
| dpkg -b $TMPDIR $PKGNAME\_$VERSION\_$DEBARCH.deb |
| } |
| |
| PKGNAME=@PKGNAME@ |
| VERSION=@VERSION@ |
| DEBARCH=@DEBARCH@ |
| PREFIX=@CMAKE_INSTALL_PREFIX@ |
| BINDIR=@CMAKE_INSTALL_FULL_BINDIR@ |
| DATAROOTDIR=@CMAKE_INSTALL_FULL_DATAROOTDIR@ |
| DOCDIR=@CMAKE_INSTALL_FULL_DOCDIR@ |
| INCLUDEDIR=@CMAKE_INSTALL_FULL_INCLUDEDIR@ |
| JAVADIR=@CMAKE_INSTALL_FULL_JAVADIR@ |
| LIBDIR=@CMAKE_INSTALL_FULL_LIBDIR@ |
| MANDIR=@CMAKE_INSTALL_FULL_MANDIR@ |
| |
| if [ ! `uid` -eq 0 ]; then |
| SUDO=sudo |
| fi |
| |
| makedeb 0 |
| if [ "$DEBARCH" = "i386" ]; then makedeb 1; fi |
| |
| exit |