• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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