mirror of
https://github.com/DrBeef/Raze.git
synced 2024-11-15 17:01:51 +00:00
Automated build and packaging script.
git-svn-id: https://svn.eduke32.com/eduke32@1512 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
parent
c030768d71
commit
5d748a1aff
1 changed files with 89 additions and 0 deletions
89
polymer/synthesis.sh
Executable file
89
polymer/synthesis.sh
Executable file
|
@ -0,0 +1,89 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# some paths
|
||||||
|
top=/home/pgriffais/src/eduke32
|
||||||
|
source=$top/polymer/eduke32
|
||||||
|
output=/home/pgriffais/src/synthesis/output
|
||||||
|
make=( make PLATFORM=WINDOWS CC='wine gcc' CXX='wine g++' AS='wine nasm' RC='wine windres' STRIP='wine strip' AR='wine ar' RANLIB='wine ranlib' PRETTY_OUTPUT=0 )
|
||||||
|
clean=veryclean
|
||||||
|
# the following file paths are relative to $source
|
||||||
|
targets=( eduke32.exe mapster32.exe )
|
||||||
|
packaged=( eduke32.exe mapster32.exe names.h tiles.cfg buildlic.txt GNU.TXT m32help.hlp ror.map a.m32 )
|
||||||
|
|
||||||
|
|
||||||
|
# some variables
|
||||||
|
dobuild=
|
||||||
|
buildfailed=
|
||||||
|
|
||||||
|
# if the output dir doesn't exist, create it
|
||||||
|
if [ ! -e $output ]
|
||||||
|
then
|
||||||
|
mkdir -p $output
|
||||||
|
fi
|
||||||
|
|
||||||
|
# update the code repository and get the last revision number from SVN
|
||||||
|
cd $top
|
||||||
|
head=`svn update | tail -n1 | awk '{ print $NF }' | cut -d. -f1`
|
||||||
|
echo "HEAD is revision $head."
|
||||||
|
|
||||||
|
lastrevision=`ls -A1 $output | tail -n1 | cut -d- -f2`
|
||||||
|
|
||||||
|
# if the output dir is empty, we build no matter what
|
||||||
|
if [ ! $lastrevision ]
|
||||||
|
then
|
||||||
|
echo "No builds yet."
|
||||||
|
dobuild=1
|
||||||
|
else
|
||||||
|
echo "Last built revision is $lastrevision."
|
||||||
|
# if the last built revision is less than HEAD, we also build
|
||||||
|
if [ $lastrevision -lt $head ]
|
||||||
|
then
|
||||||
|
echo "Need a new build."
|
||||||
|
dobuild=1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $dobuild ]
|
||||||
|
then
|
||||||
|
echo "Launching a build..."
|
||||||
|
cd $source
|
||||||
|
# # clean the tree
|
||||||
|
# echo "${make[@]}" $clean
|
||||||
|
# "${make[@]}" $clean
|
||||||
|
# build
|
||||||
|
echo "${make[@]}"
|
||||||
|
"${make[@]}"
|
||||||
|
# make sure all the targets were produced
|
||||||
|
for i in "${targets[@]}"; do
|
||||||
|
if [ ! -e $i ]
|
||||||
|
then
|
||||||
|
buildfailed=1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
# bail out if the build is failed
|
||||||
|
if [ $buildfailed ]
|
||||||
|
then
|
||||||
|
echo "Build failed! Bailing out..."
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
# get the date in the YYYYMMDD format (ex: 20091001)
|
||||||
|
date=`date +%Y%m%d`
|
||||||
|
# create the output directory
|
||||||
|
mkdir $output/$date-$head
|
||||||
|
# package the binary snapshot
|
||||||
|
echo zip $output/$date-$head/eduke32_win32_$date-$head.zip ${packaged[@]}
|
||||||
|
zip $output/$date-$head/eduke32_win32_$date-$head.zip ${packaged[@]}
|
||||||
|
# hack to restore [e]obj/keep.me
|
||||||
|
echo svn update -r $head
|
||||||
|
svn update -r $head
|
||||||
|
# export the source tree into the output directory
|
||||||
|
svn export . $output/$date-$head/eduke32_$date-$head
|
||||||
|
echo svn export . $output/$date-$head/eduke32_$date-$head
|
||||||
|
# package the source
|
||||||
|
cd $output/$date-$head
|
||||||
|
echo tar cvzf eduke32_src_$date-$head.tar.gz eduke32_$date-$head
|
||||||
|
tar cvzf eduke32_src_$date-$head.tar.gz eduke32_$date-$head
|
||||||
|
rm -r eduke32_$date-$head
|
||||||
|
else
|
||||||
|
echo "Nothing to do."
|
||||||
|
fi
|
Loading…
Reference in a new issue