30d40db93c224aa09a5cb0de3b49c57b27919223
[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 VERSIONCOUNT=`git rev-list v${VERSION}..HEAD --count`
34
35 TARPREFIX=${TARGET}_${VERSION}
36 TARBALL=${BUILDDIR}/${TARPREFIX}.orig.tar.gz
37
38 # check if target is there and prepared for a debian package
39 if [ ! -d ${SOURCE}/src/${TARGET} ]
40 then
41     echo "Could not find target '${TARGET}'"
42     exit 1
43 fi
44
45 if [ ! -f ${SOURCE}/src/${TARGET}/debian/changelog ]
46 then
47     echo "Could not find target '${TARGET}' debian changelog"
48     exit 1
49 fi
50
51 if [ ! -f ${SOURCE}/src/${TARGET}/debian/control ]
52 then
53     echo "Could not find target '${TARGET}' debian control file"
54     exit 1
55 fi
56
57 # create clean build directory
58 if [ -d ${BUILDDIR} ]
59 then
60     echo "remove ${BUILDDIR}"
61     rm -r ${BUILDDIR}
62 fi
63
64 mkdir -p ${BUILDDIR}
65 cd ${BUILDDIR}
66
67 # create directory structure
68 mkdir build
69
70 # build tarball of current source
71 cd build
72
73 cmake -DTARBALL=${TARBALL} -DTARPREFIX=${TARPREFIX} ${SOURCE}
74 make targz
75
76 cd ${BUILDDIR}
77
78 # uncompress tarball
79 tar xf ${TARBALL}
80
81 # build debian directory from template
82 cd ${TARPREFIX}
83
84 cp -r ${SOURCE}/src/${TARGET}/debian ./
85 cp ${SOURCE}/files/default_licence.txt ./debian/copyright
86
87 # adapt changelog template
88 sed -i -e "s@SHORTVERSION@${VERSION}-${VERSIONCOUNT}@" \
89        -e "s@FULLVERSION@${FULLVERSION}@" \
90        -e "s@DATETIME@`date -R`@" \
91        ./debian/changelog
92
93 # adapt rules template
94 sed -i -e "s@SOURCETOOLCHAIN@${TOOLCHAIN}@" ./debian/rules
95
96 # create debian package
97 debuild -us -uc ${ARCH}
98
99 # copy package to source directory
100 cp ${BUILDDIR}/*.deb ${SOURCE}