2019-06-20 07:02:38 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								#!/bin/bash
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# Creates a set of packages for each different Ubuntu distribution, with the  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# intention of uploading them to:  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#   https://launchpad.net/~joseluisblancoc/  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# JLBC, 2010  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# [Addition 2012:]  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# You can declare a variable (in the caller shell) with extra flags for the  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# CMake in the final ./configure like:  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#  GTSAM_PKG_CUSTOM_CMAKE_PARAMS="\"-DDISABLE_SSE3=ON\""  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  -e 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# List of distributions to create PPA packages for:  
						 
					
						
							
								
									
										
										
										
											2019-08-14 08:35:50 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								LST_DISTROS = ( xenial bionic disco eoan)  
						 
					
						
							
								
									
										
										
										
											2019-06-20 07:02:38 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# Checks  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# --------------------------------  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  [  -f CMakeLists.txt ] ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								then  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									source  package_scripts/prepare_debian_gen_snapshot_version.sh
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									echo  " GTSAM version:  ${ GTSAM_VER_MMP } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								else  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									echo  "ERROR: Run this script from the GTSAM root directory." 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									exit  1 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								fi  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  [  -z " ${ gtsam_ubuntu_OUT_DIR } "  ] ;  then  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								       export  gtsam_ubuntu_OUT_DIR = " $HOME /gtsam_ubuntu " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								fi  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								GTSAMSRC = ` pwd `  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  [  -z " ${ GTSAM_DEB_DIR } "  ] ;  then  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								       export  GTSAM_DEB_DIR = " $HOME /gtsam_debian " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								fi  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								GTSAM_EXTERN_DEBIAN_DIR = " $GTSAMSRC /debian/ "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								EMAIL4DEB = "Jose Luis Blanco (University of Malaga) <joseluisblancoc@gmail.com>"  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# Clean out dirs:  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								rm -fr $gtsam_ubuntu_OUT_DIR /
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# -------------------------------------------------------------------  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# And now create the custom packages for each Ubuntu distribution:  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# -------------------------------------------------------------------  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								count = ${# LST_DISTROS [@] }  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								IDXS = $( seq 0  $( expr $count  - 1) )  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								cp ${ GTSAM_EXTERN_DEBIAN_DIR } /changelog /tmp/my_changelog
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								for  IDX in ${ IDXS } ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								do  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									DEBIAN_DIST = ${ LST_DISTROS [ $IDX ] } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									# ------------------------------------------------------------------- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									# Call the standard "prepare_debian.sh" script: 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									# ------------------------------------------------------------------- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									cd  ${ GTSAMSRC } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									bash package_scripts/prepare_debian.sh -s -u -d ${ DEBIAN_DIST }    -c " ${ GTSAM_PKG_CUSTOM_CMAKE_PARAMS } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									CUR_SCRIPT_DIR = " $(  cd  " $(  dirname " ${ BASH_SOURCE [0] } "  ) "  &&  pwd  ) " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									source  $CUR_SCRIPT_DIR /prepare_debian_gen_snapshot_version.sh # populate GTSAM_SNAPSHOT_VERSION 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									echo  " ===== Distribution:  ${ DEBIAN_DIST }   ========= " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									cd  ${ GTSAM_DEB_DIR } /gtsam-${ GTSAM_VER_MMP } ~snapshot${ GTSAM_SNAPSHOT_VERSION } ${ DEBIAN_DIST } /debian
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									#cp ${GTSAM_EXTERN_DEBIAN_DIR}/changelog changelog 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									cp /tmp/my_changelog changelog
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									DEBCHANGE_CMD = " --newversion  ${ GTSAM_VERSION_STR } ~snapshot ${ GTSAM_SNAPSHOT_VERSION } ${ DEBIAN_DIST } -1 " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									echo  " Changing to a new Debian version:  ${ DEBCHANGE_CMD } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									echo  " Adding a new entry to debian/changelog for distribution  ${ DEBIAN_DIST } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									DEBEMAIL = "Jose Luis Blanco Claraco <joseluisblancoc@gmail.com>"  debchange $DEBCHANGE_CMD  -b --distribution ${ DEBIAN_DIST }  --force-distribution New version of upstream sources.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									cp changelog /tmp/my_changelog
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									echo  "Now, let's build the source Deb package with 'debuild -S -sa':" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									cd  ..
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									# -S: source package 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									# -sa: force inclusion of sources 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									# -d: don't check dependencies in this system 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									debuild -S -sa -d
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									# Make a copy of all these packages: 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									cd  ..
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									mkdir -p $gtsam_ubuntu_OUT_DIR /$DEBIAN_DIST 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									cp gtsam_* $gtsam_ubuntu_OUT_DIR /${ DEBIAN_DIST } /
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									echo  " >>>>>> Saving packages to:  $gtsam_ubuntu_OUT_DIR / $DEBIAN_DIST / " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								done  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								exit  0