More work on debian package generation
[oonf.git] / files / create_debian_package.sh
1 #!/bin/sh
2
3 # store source directory
4 SOURCE=$(git rev-parse --show-toplevel)
5
6 # handle script input and variables
7 : ${BUILD:=oonf_build_debian}
8
9 BUILDDIR=/tmp/${BUILD}
10
11 if [ "$#" -eq "0" ]
12 then
13         TARGET=olsrd2
14 else
15         TARGET=${1}
16 fi
17
18 if [ "${TOOLCHAIN}" != "" ]
19 then
20     echo "Using toolchain file: ${TOOLCHAIN}"
21     TOOLCHAIN="-D CMAKE_TOOLCHAIN_FILE=`realpath ${TOOLCHAIN}`"
22 fi
23
24 if [ "${ARCH}" != "" ]
25 then
26     echo "Using architecture: ${ARCH}"
27     ARCH="-a${ARCH}"
28 fi
29
30 # calculate version and tarball names
31 VERSION=`git describe --abbrev=0| sed -e "s/^v//"`
32 FULLVERSION=`git describe`
33
34 TARPREFIX=${TARGET}_${VERSION}
35 TARBALL=${BUILDDIR}/${TARPREFIX}.orig.tar.gz
36
37 # check if target is there and prepared for a debian package
38 if [ ! -d ${SOURCE}/src/${TARGET} ]
39 then
40     echo "Could not find target '${TARGET}'"
41     exit 1
42 fi
43
44 if [ ! -f ${SOURCE}/src/${TARGET}/debian/changelog ]
45 then
46     echo "Could not find target '${TARGET}' debian changelog"
47     exit 1
48 fi
49
50 if [ ! -f ${SOURCE}/src/${TARGET}/debian/control ]
51 then
52     echo "Could not find target '${TARGET}' debian control file"
53     exit 1
54 fi
55
56 # create clean build directory
57 if [ -d ${BUILDDIR} ]
58 then
59     echo "remove ${BUILDDIR}"
60     rm -r ${BUILDDIR}
61 fi
62
63 mkdir -p ${BUILDDIR}
64 cd ${BUILDDIR}
65
66 # create directory structure
67 mkdir build
68
69 # build tarball of current source
70 cd build
71
72 cmake -DTARBALL=${TARBALL} -DTARPREFIX=${TARPREFIX} ${SOURCE}
73 make targz
74
75 cd ${BUILDDIR}
76
77 # uncompress tarball
78 tar xf ${TARBALL}
79
80 # build debian directory from template
81 cd ${TARPREFIX}
82
83 cp -r ${SOURCE}/src/${TARGET}/debian ./
84 cp ${SOURCE}/files/default_licence.txt ./debian/copyright
85
86 # adapt changelog template
87 sed -i  -e "s@SHORTVERSION@${VERSION}@" \
88         -e "s@FULLVERSION@${FULLVERSION}@" \
89         -e "s@DATETIME@`date -R`@" \
90         ./debian/changelog
91
92 # adapt rules template
93 sed -i  -e "s@SOURCEDIR@${BUILDDIR}/${TARPREFIX}@" \
94         -e "s@SOURCETOOLCHAIN@${TOOLCHAIN}@" \
95         -e "s@TARGETNAME@${TARGET}@" \
96         -e "s@INSTALLDESTDIR@${BUILDDIR}/${TARPREFIX}/debian/${TARGET}@" \
97         ./debian/rules
98
99 # create debian package
100 debuild -us -uc ${ARCH}
101
102 # copy package to source directory
103 cp ${BUILDDIR}/*.deb ${SOURCE}