1#!/bin/sh 2 3set -u 4set -e 5trap onexit INT 6trap onexit TERM 7trap onexit EXIT 8 9TMPDIR= 10SUDO= 11 12onexit() 13{ 14 if [ ! "$TMPDIR" = "" ]; then 15 $SUDO rm -rf $TMPDIR 16 fi 17} 18 19uid() 20{ 21 id | cut -f2 -d = | cut -f1 -d \(; 22} 23 24safedirmove () 25{ 26 if [ "$1" = "$2" ]; then 27 return 0 28 fi 29 if [ "$1" = "" -o ! -d "$1" ]; then 30 echo safedirmove: source dir $1 is not valid 31 return 1 32 fi 33 if [ "$2" = "" -o -e "$2" ]; then 34 echo safedirmove: dest dir $2 is not valid 35 return 1 36 fi 37 if [ "$3" = "" -o -e "$3" ]; then 38 echo safedirmove: tmp dir $3 is not valid 39 return 1 40 fi 41 mkdir -p $3 42 mv $1/* $3/ 43 rmdir $1 44 mkdir -p $2 45 mv $3/* $2/ 46 rmdir $3 47 return 0 48} 49 50makedeb() 51{ 52 SUPPLEMENT=$1 53 DIRNAME=$PKGNAME 54 55 if [ $SUPPLEMENT = 1 ]; then 56 PKGNAME=$PKGNAME\32 57 if [ "$DEBARCH" = "i386" ]; then 58 DEBARCH=amd64 59 else 60 DEBARCH=arm64 61 fi 62 fi 63 64 umask 022 65 rm -f $PKGNAME\_$VERSION\_$DEBARCH.deb 66 TMPDIR=`mktemp -d /tmp/$PKGNAME-build.XXXXXX` 67 mkdir $TMPDIR/DEBIAN 68 69 if [ $SUPPLEMENT = 1 ]; then 70 DESTDIR=$TMPDIR @CMAKE_MAKE_PROGRAM@ install 71 rm -rf $TMPDIR$BINDIR 72 if [ "$DATAROOTDIR" != "$PREFIX" ]; then 73 rm -rf $TMPDIR$DATAROOTDIR 74 fi 75 if [ "$JAVADIR" != "" ]; then 76 rm -rf $TMPDIR$JAVADIR 77 fi 78 rm -rf $TMPDIR$DOCDIR 79 rm -rf $TMPDIR$INCLUDEDIR 80 rm -rf $TMPDIR$MANDIR 81 else 82 DESTDIR=$TMPDIR @CMAKE_MAKE_PROGRAM@ install 83 if [ "$PREFIX" = "@CMAKE_INSTALL_DEFAULT_PREFIX@" -a "$DOCDIR" = "@CMAKE_INSTALL_DEFAULT_PREFIX@/doc" ]; then 84 safedirmove $TMPDIR/$DOCDIR $TMPDIR/usr/share/doc/$PKGNAME-$VERSION $TMPDIR/__tmpdoc 85 ln -fs /usr/share/doc/$DIRNAME-$VERSION $TMPDIR$DOCDIR 86 fi 87 fi 88 89 SIZE=`du -s $TMPDIR | cut -f1` 90 (cat pkgscripts/deb-control | sed s/{__PKGNAME}/$PKGNAME/g \ 91 | sed s/{__ARCH}/$DEBARCH/g | sed s/{__SIZE}/$SIZE/g \ 92 > $TMPDIR/DEBIAN/control) 93 94 /sbin/ldconfig -n $TMPDIR$LIBDIR 95 96 $SUDO chown -Rh root:root $TMPDIR/* 97 dpkg -b $TMPDIR $PKGNAME\_$VERSION\_$DEBARCH.deb 98} 99 100PKGNAME=@PKGNAME@ 101VERSION=@VERSION@ 102DEBARCH=@DEBARCH@ 103PREFIX=@CMAKE_INSTALL_PREFIX@ 104BINDIR=@CMAKE_INSTALL_FULL_BINDIR@ 105DATAROOTDIR=@CMAKE_INSTALL_FULL_DATAROOTDIR@ 106DOCDIR=@CMAKE_INSTALL_FULL_DOCDIR@ 107INCLUDEDIR=@CMAKE_INSTALL_FULL_INCLUDEDIR@ 108JAVADIR=@CMAKE_INSTALL_FULL_JAVADIR@ 109LIBDIR=@CMAKE_INSTALL_FULL_LIBDIR@ 110MANDIR=@CMAKE_INSTALL_FULL_MANDIR@ 111 112if [ ! `uid` -eq 0 ]; then 113 SUDO=sudo 114fi 115 116makedeb 0 117if [ "$DEBARCH" = "i386" -o "$DEBARCH" = "armel" -o "$DEBARCH" = "armhf" ]; then 118 makedeb 1 119fi 120 121exit 122