RN rnmake  3.0.0
dpkg-helper.sh
1 #!/bin/sh
2 # Package: RN Makefile System Utility
3 # File: dpkg-helper.sh
4 # Desc: Build debian package
5 # Usage: dpkg-helper <dev|src|doc>
6 #
7 # /*! \file */
8 # /*! \cond RNMAKE_DOXY*/
9 
10 
11 optstr="a:c:d:n:p:t:v:y:"
12 
13 dist_dir=
14 deb_arch=
15 deb_confdir=
16 deb_name=
17 deb_prefix=
18 deb_tmpdir=
19 deb_version=
20 pkg_type=
21 
22 while getopts :${optstr} opt
23 do
24  case $opt in
25  a) deb_arch=${OPTARG} ;;
26 
27  c) deb_confdir=${OPTARG} ;;
28 
29  d) dist_dir=${OPTARG} ;;
30 
31  n) deb_name=${OPTARG} ;;
32 
33  p) deb_prefix=${OPTARG} ;;
34 
35  t) deb_tmpdir=${OPTARG} ;;
36 
37  v) deb_version=${OPTARG} ;;
38 
39  y) pkg_type=${OPTARG} ;;
40 
41  *) echo "rnmake: $0: error: Unknown opt: $opt"; exit 2;;
42  esac
43 done
44 
45 repo_dir=${dist_dir}/repo
46 
47 # because dpkg-deb uses amd64 instead of x86_64
48 #if [ $deb_arch = "x86_64" ]
49 #then
50  #deb_arch="amd64"
51 #fi
52 case $deb_arch in
53  x86_64) deb_arch="amd64";;
54  i386) deb_arch="i386";;
55  linaro) deb_arch="armhf";;
56  odroid) deb_arch="armhf";;
57 
58  *) echo "rnmake does not yet support the requested debian package arch";
59  echo " *" $deb_arch;
60  echo ;
61  exit 2;;
62 
63 esac
64 
65 deb_tmpdir=${deb_tmpdir}-${deb_arch}
66 
67 echo
68 echo "Found debian package configuration directoy:" ${deb_confdir}
69 echo " Creating package" ${deb_name}".deb"
70 echo " arch =" ${deb_arch}
71 echo " vers =" ${deb_version}
72 echo " install prefix =" ${deb_prefix}
73 echo
74 
75 if [ ! -e $deb_tmpdir ]
76 then
77  mkdir -p $deb_tmpdir/DEBIAN
78  mkdir -p $deb_tmpdir/$deb_prefix
79 fi
80 
81 if [ ! -e $repo_dir ]
82 then
83  mkdir -p $repo_dir
84 fi
85 
86 cp -r $deb_confdir/* ${deb_tmpdir}/DEBIAN/.
87 
88 sed_arch="s/@ARCH@/"$deb_arch"/"
89 sed_version="s/@VERSION@/"$deb_version"/"
90 sed -e $sed_version -e $sed_arch --in-place $deb_tmpdir/DEBIAN/control
91 sed -e $sed_version -e $sed_arch --in-place $deb_tmpdir/DEBIAN/postinst
92 
93 # copying files from dist
94 case $pkg_type in
95  pkgtype-dev) echo "Creating dev package."; \
96  cp -r ${dist_dir}/bin ${deb_tmpdir}/${deb_prefix}/.;
97  cp -r ${dist_dir}/lib ${deb_tmpdir}/${deb_prefix}/.;
98  cp -r ${dist_dir}/include ${deb_tmpdir}/${deb_prefix}/.;
99  cp -r ${dist_dir}/share ${deb_tmpdir}/${deb_prefix}/.;
100  cp -r ${dist_dir}/etc ${deb_tmpdir}/.;;
101 
102  pkgtype-src) echo "Creating src package."; \
103  cp -r ${dist_dir}/src ${deb_tmpdir}/${deb_prefix}/.;;
104 
105  pkgtype-doc) echo "Creating doc package."; \
106  cp -r ${dist_dir}/doc ${deb_tmpdir}/${deb_prefix}/.;;
107 
108  *) echo "rnmake does not support the requested debian package type";
109  echo " * " $deb_type
110 esac
111 
112 fakeroot -- dpkg-deb --build $deb_tmpdir 1>/dev/null
113 mv $dist_dir/tmp/deb/$deb_name-$deb_arch.deb $repo_dir/.
114 
115 echo " Done."
116 
117 #/*! \endcond RNMAKE_DOXY */