-# Relies on pscp (/c/Program Files/putty/pscp)
-#
-
-PATH=$PATH:"/c/Program Files/putty:/msdev/vc/bin"
-export ROOT=/c/graphviz
-export INSTALLROOT=$ROOT/local
-GVIZ_HOME=$ROOT/gviz
-LFILE=$ROOT/build.log # log file
-SOURCEM=www.graphviz.org
-SOURCE=/var/www/www.graphviz.org/pub/graphviz
-INPKG=graphviz-working.tar.gz
-SOURCEFILE=$SOURCE/CURRENT/$INPKG
-DESTDIR=$SOURCE/CURRENT
-VERSION=$(date +%K)
-USER=${USER:-erg}
-SFX=
-export nativepp=-1
-
-function SetVersion
-{
- if [[ -f $GVIZ_HOME/config.h ]]
- then
- VERSION=$(grep 'e VERSION' $GVIZ_HOME/config.h)
- VERSION=${VERSION#*VERSION \"}
- VERSION=${VERSION%\"*}
-
- SFX=${VERSION#*.*.}
- SHORTVERSION=${VERSION%.$SFX}
- fi
-}
-
-function ErrorEx
-{
- scp -q $LFILE penguin:/home/$USER/build.log.$VERSION
- ssh penguin "echo $1 | mail $USER"
- exit 1
-}
-
-# Copy file to graphviz machine
-function PutFile
-{
- echo pscp $1 $SOURCEM:$DESTDIR >> $LFILE 2>&1
- pscp -q $1 $SOURCEM:$DESTDIR >> $LFILE 2>&1
- if [[ $? != 0 ]]
- then
- ErrorEx "failure to put $1"
- fi
-}
-
-function Get
-{
- echo pscp $SOURCEM:$SOURCEFILE . >> $LFILE
- pscp -q $SOURCEM:$SOURCEFILE . >> $LFILE 2>&1
- if [[ $? != 0 ]]
- then
- ErrorEx "failure to get source"
- fi
-
- # Remove any old source directories
- rm -rf graphviz-[1-9]*[0-9]
- echo "unpacking the package" >> $LFILE
- echo "(gunzip < $INPKG | tar xf - )" >> $LFILE 2>&1
- (gunzip < $INPKG | tar xf - ) >> $LFILE 2>&1
- if [[ $? != 0 ]]
- then
- ErrorEx "failure in unwrapping"
- fi
-
- echo rm -rf $GVIZ_HOME >> $LFILE
- rm -rf $GVIZ_HOME
- if [[ $? != 0 ]]
- then
- ErrorEx "failure in removing old gviz directory"
- fi
-
- echo mv graphviz-[1-9]*[0-9] $GVIZ_HOME >> $LFILE
- mv graphviz-[1-9]*[0-9] $GVIZ_HOME
- if [[ ! -d $GVIZ_HOME ]]
- then
- ErrorEx "could not create $GVIZ_HOME"
- fi
- echo "Finish Get" >> $LFILE
-}
-
-function mkDir {
- if [[ ! -d $1 ]]
- then
- echo mkdir $1 >> $LFILE 2>&1
- mkdir $1 >> $LFILE 2>&1
- fi
-}
-
-THIRD_PARTY_DLL="freetype6.dll libexpat.dll png.dll jpeg.dll libexpatw.dll z.dll zlib1.dll"
-THIRD_PARTY="freetype.lib libexpat.lib libexpatw.lib expat.lib png.lib jpeg.lib expatw.lib z.lib"
-
-#Todo :
-# Do we need freetype[6].def?
-
-# Prepare to build the software.
-# Initialize target tree
-# Add any missing software and libraries
-# Run configure
-# Make post-configure tweaks to source, Makefiles and config.h
-function Setup
-{
- cd $ROOT
- echo rm -rf $INSTALLROOT >> $LFILE 2>&1
- rm -rf $INSTALLROOT >> $LFILE 2>&1
-
- mkDir $INSTALLROOT
- mkDir $INSTALLROOT/lib
- mkDir $INSTALLROOT/include
- mkDir $INSTALLROOT/bin
- mkDir $INSTALLROOT/doc
- mkDir $INSTALLROOT/doc/man
-
- # Overlay third-party libraries
-# cd $ROOT/third-party/include
-# cp -r * $INSTALLROOT/include
-# cp ltdl.h $INSTALLROOT/include
-# cd ../lib
-# cp libltdl* $INSTALLROOT/lib
-# cp $THIRD_PARTY_DLL $INSTALLROOT/bin
-# cp $THIRD_PARTY $INSTALLROOT/lib
-
- # Add regex code
- cd $ROOT/add-on
- cp regex_win32.c regex_win32.h $GVIZ_HOME/lib/gvc
-
- # Add ltdlt library if necessary
- if [[ $USE_DLL == 2 ]]
- then
- cp libltdl.a ltdl.lib $INSTALLROOT/lib
- cp ltdl.dll $INSTALLROOT/bin
- fi
-
- cd $GVIZ_HOME
- cp configure xxx
- sed '/PKG_CONFIG_PATH=/d' xxx > configure
- echo ../runconf.sh $CONFARG >> $LFILE 2>&1
- ../runconf.sh $CONFARG > conf.log 2>&1
- if [[ $? != "0" ]]
- then
- ErrorEx "configure failed"
- fi
-
- # make source fixes for Windows
- if [[ ! -f lib/agraph/unistd.h ]]
- then
- > lib/agraph/unistd.h # for scan.c
- > lib/gd/unistd.h # for fontconfig.h
- fi
- mv ast_common.h xx
- sed '/#define _typ_ssize_t/d' xx > ast_common.h
-
- if ! grep DISABLE_THREADS lib/gd/gd.h > /dev/null
- then
- cp lib/gd/gd.h xx
- sed 's/#ifndef WIN32/#define NONDLL 1\n#define DISABLE_THREADS 1\n#ifndef WIN32/' xx > lib/gd/gd.h
- fi
- if grep 'define NO_POSTSCRIPT_ALIAS' lib/gd/gdft.c > /dev/null
- then
- cp lib/gd/gdft.c xx
- sed 's/^.*define NO_POSTSCRIPT_ALIAS.*$/#define NO_POSTSCRIPT_ALIAS 1/' xx > lib/gd/gdft.c
- fi
-
- if [[ $USE_DLL != 0 ]]
- then
- echo "\n#define GVDLL 1" >> config.h
- fi
-
- echo "Finish Setup" >> $LFILE
-}
-
-# To build libltdl:
-# cd libltdl
-# CC=ncc CFLAGS=-D__WINDOWS__ configure --prefix=/c/graphviz/local
-# make install
-# cd $INSTALLROOT/lib
-# mkDLL ltdl
-
-function mkGvpr
-{
- FILES="actions.o compile.o gvpr.o gprstate.o parse.o queue.o"
-
- for f in $FILES
- do
- make $f
- if [[ $? != 0 ]]
- then
- return 1
- fi
- done
-
- echo "ncc -g -L$INSTALLROOT/lib -o gvpr.exe actions.o compile.o gvpr.o gprstate.o parse.o queue.o ../../lib/ingraphs/.libs/libingraphs_C.a -lexpr -lagraph -lcdt"
- ncc -g -L$INSTALLROOT/lib -o gvpr.exe actions.o compile.o gvpr.o gprstate.o parse.o queue.o ../../lib/ingraphs/.libs/libingraphs_C.a -lexpr -lagraph -lcdt
- if [[ $? != 0 ]]
- then
- return 1
- fi
- cp gvpr.exe $INSTALLROOT/bin
- return 0
-}
-
-function mkDot
-{
- make dot.o
- if [[ $? != 0 ]]
- then
- return 1
- fi
- echo "ncc -g -o dot.exe dot.o -L$INSTALLROOT/lib -L/c/gtk/2.0/lib -lgvc -lgraph -lpathplan -lexpat -lz -lltdl"
- ncc -g -o dot.exe dot.o -L$INSTALLROOT/lib -L/c/gtk/2.0/lib -lgvc -lgraph -lpathplan -lexpat -lz -lltdl
- if [[ $? != 0 ]]
- then
- return 1
- fi
- cp dot.exe $INSTALLROOT/bin
- return 0
-}
-
-function mkTool
-{
- echo ncc ${1}.o ${3} ../../lib/ingraphs/.libs/libingraphs_C.a -L$INSTALLROOT/lib $2 -lcdt -o ${1}
- ncc -g ${1}.o ${3} ../../lib/ingraphs/.libs/libingraphs_C.a -L$INSTALLROOT/lib $2 -lcdt -o ${1}
- if [[ $? != 0 ]]
- then
- return 1
- fi
- cp ${1}.exe $INSTALLROOT/bin
- return 0
-}
-
-function mkTools
-{
- TBASE="acyclic bcomps ccomps colxlate cvtgxl dijkstra dot2gxl gc gvcolor gxl2dot nop sccmap tred unflatten gvpack"
-
- for f in $TBASE
- do
- make ${f}.o
- if [[ $? != 0 ]]
- then
- return 1
- fi
- done
-
- mkTool acyclic -lgraph
- if [[ $? != 0 ]]
- then
- return 1
- fi
- mkTool bcomps -lgraph
- if [[ $? != 0 ]]
- then
- return 1
- fi
- mkTool ccomps -lgraph
- if [[ $? != 0 ]]
- then
- return 1
- fi
- mkTool dijkstra -lagraph
- if [[ $? != 0 ]]
- then
- return 1
- fi
- mkTool gc -lgraph
- if [[ $? != 0 ]]
- then
- return 1
- fi
- mkTool gvcolor -lgraph colxlate.o
- if [[ $? != 0 ]]
- then
- return 1
- fi
- mkTool gxl2dot "-L/c/gtk/2.0/lib -lagraph -lgraph -lexpat" "cvtgxl.o dot2gxl.o"
- if [[ $? != 0 ]]
- then
- return 1
- fi
- mkTool nop -lgraph
- if [[ $? != 0 ]]
- then
- return 1
- fi
- mkTool sccmap -lagraph
- if [[ $? != 0 ]]
- then
- return 1
- fi
- mkTool tred -lgraph
- if [[ $? != 0 ]]
- then
- return 1
- fi
- mkTool unflatten -lagraph
- if [[ $? != 0 ]]
- then
- return 1
- fi
- mkTool gvpack "-lgvplugin_neato_layout -lgvc -lgraph"
- if [[ $? != 0 ]]
- then
- return 1
- fi
-
- return 0
-}
-
-function Build
-{
- cd $GVIZ_HOME
-
- cd lib
- make install >> $LFILE 2>&1
- if [[ $? != 0 ]]
- then
- ErrorEx "failure to make lib"
- fi
-
- cd ../plugin
- make install >> $LFILE 2>&1
- if [[ $? != 0 ]]
- then
- ErrorEx "failure to make plugins"
- fi
-
- # Go to install directory and move libraries from graphviz
- # subdirectory to main lib directory
- cd $INSTALLROOT/lib/graphviz
- mv lib*.a ..
- cd ..
- rm -rf graphviz
-
-
- if [[ $USE_DLL != 0 ]]
- then
- mkDLL cdt
- mkDLL pathplan
- mkDLL graph -lcdt
- mkDLL agraph -lcdt
- cp $GVIZ_HOME/lib/expr/.libs/libexpr_C.a libexpr.a
- mkDLL expr -lcdt
- mkDLL gvc "-L/c/gtk/2.0/lib -lpathplan -lgraph -lcdt -lexpat -lz -lltdl"
- mkDLL gvplugin_core "-L/c/gtk/2.0/lib -lgvc -lgraph -lcdt -lexpat -lz -lltdl"
- mkDLL gvplugin_dot_layout "-L/c/gtk/2.0/lib -lgvc -lgraph -lpathplan -lcdt -lexpat -lz -lltdl"
- mkDLL gvplugin_neato_layout "-L/c/gtk/2.0/lib -lgvc -lpathplan -lgraph -lcdt -lexpat -lz -lltdl"
- mkDLL gvplugin_gd "-L/c/gtk/2.0/lib -lgvc -lpathplan -lgraph -lcdt -lpng -ljpeg -lfontconfig -lfreetype -lcairo -liconv -lexpat -lz -lltdl"
- mkDLL gvplugin_gdk_pixbuf "-L/c/gtk/2.0/lib -lcairo -lgdk_pixbuf-2.0 -lltdl"
- mkDLL gvplugin_pango "-L/C/GTK/2.0/lib -lfontconfig -lfreetype -ljpeg -lpng -lexpat -lz -lcairo -lpango-1.0 -lpangocairo-1.0 -lgobject-2.0 -lgtk-win32-2.0 -lglib-2.0 -lgdk-win32-2.0 -latk-1.0 -lgdk_pixbuf-2.0"
- fi
-
- cd $GVIZ_HOME/cmd
- cd lefty
- make install >> $LFILE 2>&1
- if [[ $? != 0 ]]
- then
- ErrorEx "failure to make lefty"
- fi
-
- cd ../lneato
- make install >> $LFILE 2>&1
- if [[ $? != 0 ]]
- then
- ErrorEx "failure to make lneato"
- fi
-
- cd ../dotty
- make install >> $LFILE 2>&1
- if [[ $? != 0 ]]
- then
- ErrorEx "failure to make dotty"
- fi
-
- cd ../gvpr
- mkGvpr >> $LFILE 2>&1
- if [[ $? != 0 ]]
- then
- ErrorEx "failure to make gvpr"
- fi
-
- cd ../tools
- mkTools >> $LFILE 2>&1
- if [[ $? != 0 ]]
- then
- ErrorEx "failure to make tools"
- fi
-
- cd ../dot
- mkDot >> $LFILE 2>&1
- if [[ $? != 0 ]]
- then
- ErrorEx "failure to make dot"
- fi
-
-# make install >> $LFILE 2>&1
-# if [[ $? != 0 ]]
-# then
-# ErrorEx "failure to make cmd"
-# fi
-
-}
-
-# $1 is the library base name xxx
-# create xxx.lib and xxx.dll, moving the latter to ../bin
-function mkDLL
-{
- LIB=$1
- > $LIB.ign
- echo "nld -L. -G -o $LIB.dll -Bwhole-archive lib$LIB.a -Bno-whole-archive $LIB.ign" $2 >> $LFILE 2>&1
- nld -L. -G -o $LIB.dll -Bwhole-archive lib$LIB.a -Bno-whole-archive $LIB.ign $2 >> $LFILE 2>&1
- if [[ $? != 0 ]]
- then
- ErrorEx "failure to make dll $1"
- fi
- mv $LIB.dll ../bin
- rm $LIB.ign
- return 0
-}
-
-GTKDLLS="fontconfig iconv intl jpeg62 libcairo-2 libexpat libfontconfig-1 \
-libfreetype-6 libglib-2.0-0 libgmodule-2.0-0 libgobject-2.0-0 \
-libpango-1.0-0 libpangocairo-1.0-0 libpangoft2-1.0-0 libpangowin32-1.0-0 \
-libpng12 libxml2 zlib1 libgdk_pixbuf-2.0-0"
-
-# Add additional software (DLLs, manuals, examples, etc.) to tree
-function Install
-{
-# Add 3rd party libraries
- echo "Copying 3rd party libraries" >> $LFILE 2>&1
- cd /c/gtk/2.0/bin
- for l in $GTKDLLS
- do
- cp $l.dll $INSTALLROOT/bin
- done
- cp -r /c/gtk/2.0/lib/pango $INSTALLROOT/lib
- cp -r /c/gtk/2.0/etc $INSTALLROOT
-
- # Add extra software
- cd $ROOT/add-on
- cp Uninstall.exe $INSTALLROOT
- cp fonts.conf $INSTALLROOT/etc/fonts
- cp props.txt GVedit.exe GVedit.html GVUI.exe $INSTALLROOT/bin
-
-# Create "soft" links. At present, hard links appear necessary for
-# GVedit and GVUI. It is hoped this will change with the new GVUI.
- echo "Create soft links" >> $LFILE 2>&1
- cd $INSTALLROOT/bin
- cp dot.exe neato.exe
- cp dot.exe twopi.exe
- cp dot.exe circo.exe
- cp dot.exe fdp.exe
- cp gxl2dot.exe dot2gxl.exe
-
- if [[ $USE_DLL == 2 ]]
- then
- ./dot -c >> $LFILE 2>&1
- if [[ $? != 0 ]]
- then
- ErrorEx "failure to initialize dot"
- fi
- fi
-
- cd $ROOT
- echo "Install extra files" >> $LFILE 2>&1
- cp -r $GVIZ_HOME/graphs $INSTALLROOT
- cp -r $GVIZ_HOME/dot.demo $INSTALLROOT
- cp -r $GVIZ_HOME/contrib $INSTALLROOT
- cp -r $GVIZ_HOME/doc/*.pdf $INSTALLROOT/doc
-
- echo "Install man pages" >> $LFILE 2>&1
- cp $GVIZ_HOME/cmd/dot/dot.pdf $INSTALLROOT/doc/man
- cp $GVIZ_HOME/cmd/dot/dot.pdf $INSTALLROOT/doc/man/neato.pdf
- cp $GVIZ_HOME/cmd/dot/dot.pdf $INSTALLROOT/doc/man/twopi.pdf
- cp $GVIZ_HOME/cmd/dot/dot.pdf $INSTALLROOT/doc/man/circo.pdf
- cp $GVIZ_HOME/cmd/dot/dot.pdf $INSTALLROOT/doc/man/fdp.pdf
- cp $GVIZ_HOME/cmd/tools/*.pdf $INSTALLROOT/doc/man
- cp $GVIZ_HOME/cmd/tools/gxl2dot.pdf $INSTALLROOT/doc/man/dot2gxl.pdf
-
- if [[ -d $INSTALLROOT/share ]]
- then
- echo "Install share software" >> $LFILE 2>&1
- cd $INSTALLROOT/share/graphviz
- mv lefty ../../lib
-
- cd ../..
- rm -rf share
- fi
-
- if [[ -d $INSTALLROOT/include/graphviz ]]
- then
- echo "Install include/graphviz files" >> $LFILE 2>&1
- cd $INSTALLROOT
- mv include/graphviz ginclude
- rm -rf include
- mv ginclude include
- fi
-
- if [[ $USE_DLL == 0 ]]
- then
- cd $INSTALLROOT/bin
- if [[ -f dot_static.exe ]]
- then
- mv dot_static.exe dot.exe
- fi
- cd ..
- fi
-
- # Remove makefiles
- cd $INSTALLROOT
- rm -f $(find graphs -name Makefile* -print)
- rm -f $(find contrib -name Makefile -print)
- rm -f $(find contrib -name Makefile.in -print)
-
-}
-
-function PackageTar
-{
- cd $ROOT
-
- # Create tgz package
- TGZFILE=graphviz-win-${VERSION}.bin.tar.gz
- echo "creating tgz local" >> $LFILE
- pax -w -x tar -s/local/graphviz-${VERSION}/ local | gzip > $TGZFILE
- if [[ -f $TGZFILE ]]
- then
- echo "SUCCESS : tgz file created" >> $LFILE
- echo "uploading the tgz file $TGZFILE" >> $LFILE
- chmod 644 $TGZFILE
- PutFile $TGZFILE
-# rm $TGZFILE
- else
- echo "FAILED : could not create tgz file" >> $LFILE
- ErrorEx "windows install failure"
- fi
- cd ..
-}
-
-function Package
-{
- cd $ROOT
-
- # new package
- rm -rf release
- mkDir release
- cd add-on
- cp Setup.exe Selfstbv.exe $ROOT/release
- sed "s/XXX/$SHORTVERSION/" Graphviz.ini > $ROOT/release/Graphviz.ini
- cd $ROOT
- ./gsetup.sh >> $LFILE 2>&1
-
- # now copy it to the webserver
- UPLOADFILE=graphviz-${VERSION}.exe
- PACKAGEDFILE=$ROOT/release/graphvizw.exe
-
- if [[ -f $PACKAGEDFILE ]]
- then
- echo "SUCCESS : installation package created" >> $LFILE
- mv $PACKAGEDFILE $UPLOADFILE # attach version info
-
- echo "uploading the package file $UPLOADFILE" >> $LFILE
- chmod 755 $UPLOADFILE
- PutFile $UPLOADFILE
- else
- echo "FAILED : could not create installation package" >> $LFILE
- ErrorEx "windows install failure"
- fi
-
-}
-
-function PutLog
-{
- LOG=graphviz-windows-buildlog-${VERSION}.txt
- echo "uploading the log $LOG file" >> $LFILE
- cp $LFILE $LOG
- PutFile $LOG
- rm -f $LOG
-}
-
-SETOPTS=0
-GET=0 # get from cvs machine and create tree
-SETUP=0 # run configure and modify source
-BUILD=0 # build all of the software
-INSTALL=0 # install the software locally
-PACKAGE=0 # make main package and copy all software to cvs machine
-USE_DLL=2
-CONFARG=-PL
-
-Usage='build [-CDLGSBIP] [-R<relno>] \n
- -C : core package \n
- -D : build DLLs \n
- -L : build using plugins \n
- -G : get software \n
- -S : setup software \n
- -B : build \n
- -I : install in local tree \n
- -P : create package and ship'
-
-while getopts :CDLGSBIPR: c
-do
- case $c in
- D ) # build with dlls
- CONFARG=-P
- USE_DLL=1
-# SFX='.dy'
- ;;
- L ) # use ltdl
- USE_DLL=2
-# SFX='.dy'
- CONFARG=-PL
- ;;
- C ) # no pango/cairo/fontconfig
- CONFARG=
- ;;
- G ) # get
- SETOPTS=1
- GET=1
- ;;
- S ) # setup
- SETOPTS=1
- SETUP=1
- ;;
- B ) # build
- SETOPTS=1
- BUILD=1
- ;;
- I ) # install
- SETOPTS=1
- INSTALL=1
- ;;
- P ) # package
- SETOPTS=1
- PACKAGE=1
- ;;
- R ) # build official release
- RELEASE=$OPTARG
- INPKG=graphviz-${RELEASE}.tar.gz
- SOURCEFILE=$SOURCE/ARCHIVE/$INPKG
- DESTDIR=$SOURCE/ARCHIVE
- ;;
- :)
- echo $OPTARG requires a value
- exit 2
- ;;
- \? )
- if [[ "$OPTARG" == '?' ]]
- then
- echo $Usage
- exit 0
- else
- echo "build: unknown flag $OPTARG - ignored"
- fi
- ;;
- esac
-done
-
-shift $((OPTIND-1))
-
-LFILE=$ROOT/build.log${SFX}
-GVIZ_HOME=$ROOT/gviz${SFX}
-INSTALLROOT=$ROOT/local${SFX}
-
-if [[ $# > 0 ]]
-then
- LFILE=$1
-fi
-
-
-# If no passes picked, do all
-if [[ $SETOPTS == 0 ]]
-then
- GET=1
- SETUP=1
- BUILD=1
- INSTALL=1
- PACKAGE=1
-fi
-
-cd $ROOT
-rm -f $LFILE
-
-if [[ $GET == 1 ]]
-then
- Get
-fi
-if [[ $SETUP == 1 ]]
-then
- Setup
-fi
-SetVersion
-if [[ $BUILD == 1 ]]
-then
- Build
-fi
-if [[ $INSTALL == 1 ]]
-then
- Install
-fi
-if [[ $PACKAGE == 1 ]]
-then
- Package
- PackageTar
-# PutLog
-fi
-
-exit 0
-
+# Relies on pscp (/c/Program Files/putty/pscp)\r
+#\r
+\r
+PATH=$PATH:"/c/Program Files/putty:/msdev/vc/bin"\r
+export ROOT=/c/graphviz\r
+export INSTALLROOT=$ROOT/local\r
+GVIZ_HOME=$ROOT/gviz \r
+LFILE=$ROOT/build.log # log file\r
+SOURCEM=www.graphviz.org\r
+SOURCE=/var/www/www.graphviz.org/pub/graphviz\r
+INPKG=graphviz-working.tar.gz\r
+SOURCEFILE=$SOURCE/CURRENT/$INPKG\r
+DESTDIR=$SOURCE/CURRENT\r
+VERSION=$(date +%K)\r
+export GTKDIR=/c/gtk\r
+typeset -l USER=${USER:-erg}\r
+WINDBG="erg"\r
+#WINDBG="erg arif ellson"\r
+SFX=\r
+export nativepp=-1\r
+\r
+function SetVersion \r
+{\r
+ if [[ -f $GVIZ_HOME/config.h ]]\r
+ then\r
+ VERSION=$(grep 'e VERSION' $GVIZ_HOME/config.h)\r
+ VERSION=${VERSION#*VERSION \"}\r
+ VERSION=${VERSION%\"*}\r
+\r
+ SFX=${VERSION#*.*.}\r
+ SHORTVERSION=${VERSION%.$SFX}\r
+ fi\r
+}\r
+\r
+function ErrorEx\r
+{\r
+ scp -q $LFILE $USER@penguin:/home/$USER/build.log.$VERSION\r
+ ssh $USER@penguin "echo $1 | mail $WINDBG -s'Windows build failure'"\r
+ exit 1\r
+} \r
+\r
+# Copy file to graphviz machine\r
+function PutFile\r
+{\r
+ echo scp $1 $SOURCEM:$DESTDIR >> $LFILE 2>&1\r
+ scp -q $1 $SOURCEM:$DESTDIR >> $LFILE 2>&1\r
+ if [[ $? != 0 ]]\r
+ then\r
+ ErrorEx "failure to put $1"\r
+ fi\r
+}\r
+\r
+function Get \r
+{\r
+ echo scp $SOURCEM:$SOURCEFILE . >> $LFILE\r
+ scp -q $SOURCEM:$SOURCEFILE . >> $LFILE 2>&1\r
+ if [[ $? != 0 ]]\r
+ then\r
+ ErrorEx "failure to get source"\r
+ fi \r
+\r
+ # Remove any old source directories \r
+ rm -rf graphviz-[1-9]*[0-9]\r
+ echo "unpacking the package" >> $LFILE\r
+ echo "(gunzip < $INPKG | tar xf - )" >> $LFILE 2>&1\r
+ (gunzip < $INPKG | tar xf - ) >> $LFILE 2>&1\r
+ if [[ $? != 0 ]]\r
+ then\r
+ ErrorEx "failure in unwrapping"\r
+ fi\r
+\r
+ echo rm -rf $GVIZ_HOME >> $LFILE\r
+ rm -rf $GVIZ_HOME\r
+ if [[ $? != 0 ]]\r
+ then\r
+ ErrorEx "failure in removing old gviz directory"\r
+ fi\r
+\r
+ echo mv graphviz-[1-9]*[0-9] $GVIZ_HOME >> $LFILE\r
+ mv graphviz-[1-9]*[0-9] $GVIZ_HOME\r
+ if [[ ! -d $GVIZ_HOME ]]\r
+ then\r
+ ErrorEx "could not create $GVIZ_HOME"\r
+ fi\r
+ echo "Finish Get" >> $LFILE\r
+}\r
+\r
+function mkDir {\r
+ if [[ ! -d $1 ]]\r
+ then \r
+ echo mkdir $1 >> $LFILE 2>&1\r
+ mkdir $1 >> $LFILE 2>&1\r
+ fi \r
+}\r
+\r
+THIRD_PARTY_DLL="freetype6.dll libexpat.dll png.dll jpeg.dll libexpatw.dll z.dll zlib1.dll" \r
+THIRD_PARTY="freetype.lib libexpat.lib libexpatw.lib expat.lib png.lib jpeg.lib expatw.lib z.lib" \r
+\r
+#Todo : \r
+# Do we need freetype[6].def?\r
+\r
+# Prepare to build the software.\r
+# Initialize target tree\r
+# Add any missing software and libraries\r
+# Run configure\r
+# Make post-configure tweaks to source, Makefiles and config.h\r
+function Setup \r
+{\r
+ cd $ROOT\r
+ echo rm -rf $INSTALLROOT >> $LFILE 2>&1\r
+ rm -rf $INSTALLROOT >> $LFILE 2>&1\r
+\r
+ mkDir $INSTALLROOT\r
+ mkDir $INSTALLROOT/lib\r
+ mkDir $INSTALLROOT/include\r
+ mkDir $INSTALLROOT/bin\r
+ mkDir $INSTALLROOT/doc\r
+ mkDir $INSTALLROOT/doc/man\r
+\r
+ # Overlay third-party libraries\r
+# cd $ROOT/third-party/include\r
+# cp -r * $INSTALLROOT/include\r
+# cp ltdl.h $INSTALLROOT/include\r
+# cd ../lib\r
+# cp libltdl* $INSTALLROOT/lib\r
+# cp $THIRD_PARTY_DLL $INSTALLROOT/bin\r
+# cp $THIRD_PARTY $INSTALLROOT/lib\r
+\r
+ # Add regex code\r
+ cd $ROOT/add-on\r
+ cp regex_win32.c regex_win32.h $GVIZ_HOME/lib/gvc\r
+\r
+ # Add ltdlt library if necessary\r
+ if [[ $USE_DLL == 2 ]]\r
+ then\r
+ cp libltdl.a ltdl.lib $INSTALLROOT/lib\r
+ cp ltdl.dll $INSTALLROOT/bin\r
+ fi\r
+\r
+ cd $GVIZ_HOME\r
+ cp configure xxx\r
+ sed '/PKG_CONFIG_PATH=/d' xxx > configure\r
+ echo ../runconf.sh $CONFARG >> $LFILE 2>&1\r
+ ../runconf.sh $CONFARG > conf.log 2>&1\r
+ if [[ $? != "0" ]]\r
+ then\r
+ ErrorEx "configure failed"\r
+ fi\r
+ chmod 664 config.h\r
+\r
+ # make source fixes for Windows\r
+ if [[ ! -f lib/agraph/unistd.h ]]\r
+ then\r
+ > lib/agraph/unistd.h # for scan.c\r
+ > lib/cgraph/unistd.h # for scan.c\r
+ > lib/gd/unistd.h # for fontconfig.h\r
+ > plugin/pango/unistd.h # for fontconfig.h\r
+ fi\r
+ mv ast_common.h xx\r
+ sed '/#define _typ_ssize_t/d' xx > ast_common.h\r
+\r
+ if ! grep DISABLE_THREADS lib/gd/gd.h > /dev/null\r
+ then\r
+ cp lib/gd/gd.h xx\r
+ sed 's/#ifndef WIN32/#define NONDLL 1\n#define DISABLE_THREADS 1\n#ifndef WIN32/' xx > lib/gd/gd.h\r
+ fi\r
+ if grep 'define NO_POSTSCRIPT_ALIAS' lib/gd/gdft.c > /dev/null\r
+ then\r
+ cp lib/gd/gdft.c xx\r
+ sed 's/^.*define NO_POSTSCRIPT_ALIAS.*$/#define NO_POSTSCRIPT_ALIAS 1/' xx > lib/gd/gdft.c\r
+ fi\r
+\r
+ if [[ $USE_DLL != 0 ]]\r
+ then\r
+ echo "\n#define GVDLL 1" >> config.h\r
+ fi\r
+\r
+ echo "Finish Setup" >> $LFILE\r
+}\r
+\r
+# To build libltdl:\r
+# cd libltdl\r
+# CC=ncc CFLAGS=-D__WINDOWS__ configure --prefix=/c/graphviz/local\r
+# make install\r
+# cd $INSTALLROOT/lib\r
+# mkDLL ltdl\r
+\r
+function mkGvpr\r
+{\r
+ FILES="actions.o compile.o gvpr.o gprstate.o parse.o queue.o"\r
+\r
+ for f in $FILES\r
+ do\r
+ make $f\r
+ if [[ $? != 0 ]]\r
+ then\r
+ return 1\r
+ fi \r
+ done\r
+\r
+ echo "ncc -g -L$INSTALLROOT/lib -o gvpr.exe actions.o compile.o gvpr.o gprstate.o parse.o queue.o ../../lib/ingraphs/.libs/libingraphs_C.a -lexpr -lagraph -lcdt"\r
+ ncc -g -L$INSTALLROOT/lib -o gvpr.exe actions.o compile.o gvpr.o gprstate.o parse.o queue.o ../../lib/ingraphs/.libs/libingraphs_C.a -lexpr -lagraph -lcdt\r
+ if [[ $? != 0 ]]\r
+ then\r
+ return 1\r
+ fi \r
+ cp gvpr.exe $INSTALLROOT/bin\r
+ return 0\r
+}\r
+\r
+function mkDot\r
+{\r
+ make dot.o\r
+ if [[ $? != 0 ]]\r
+ then\r
+ return 1\r
+ fi \r
+ echo "ncc -g -o dot.exe dot.o -L$INSTALLROOT/lib -L$GTKDIR/lib -lgvc -lgraph -lpathplan -lexpat -lz -lltdl" \r
+ ncc -g -o dot.exe dot.o -L$INSTALLROOT/lib -L$GTKDIR/lib -lgvc -lgraph -lpathplan -lexpat -lz -lltdl\r
+ if [[ $? != 0 ]]\r
+ then\r
+ return 1\r
+ fi \r
+ cp dot.exe $INSTALLROOT/bin\r
+ return 0\r
+}\r
+\r
+function mkTool\r
+{\r
+ echo ncc ${1}.o ${3} ../../lib/ingraphs/.libs/libingraphs_C.a -L$INSTALLROOT/lib $2 -lcdt -o ${1}\r
+ ncc -g ${1}.o ${3} ../../lib/ingraphs/.libs/libingraphs_C.a -L$INSTALLROOT/lib $2 -lcdt -o ${1}\r
+ if [[ $? != 0 ]]\r
+ then\r
+ return 1\r
+ fi \r
+ cp ${1}.exe $INSTALLROOT/bin\r
+ return 0\r
+}\r
+\r
+function mkTools\r
+{\r
+ TBASE="acyclic bcomps ccomps colxlate cvtgxl dijkstra dot2gxl gc gvcolor gxl2dot nop sccmap tred unflatten gvpack"\r
+\r
+ for f in $TBASE\r
+ do\r
+ make ${f}.o\r
+ if [[ $? != 0 ]]\r
+ then\r
+ return 1\r
+ fi \r
+ done\r
+\r
+ mkTool acyclic -lgraph\r
+ if [[ $? != 0 ]]\r
+ then\r
+ return 1\r
+ fi \r
+ mkTool bcomps -lgraph\r
+ if [[ $? != 0 ]]\r
+ then\r
+ return 1\r
+ fi \r
+ mkTool ccomps -lgraph\r
+ if [[ $? != 0 ]]\r
+ then\r
+ return 1\r
+ fi \r
+ mkTool dijkstra -lagraph\r
+ if [[ $? != 0 ]]\r
+ then\r
+ return 1\r
+ fi \r
+ mkTool gc -lgraph\r
+ if [[ $? != 0 ]]\r
+ then\r
+ return 1\r
+ fi \r
+ mkTool gvcolor -lgraph colxlate.o\r
+ if [[ $? != 0 ]]\r
+ then\r
+ return 1\r
+ fi \r
+ mkTool gxl2dot "-L$GTKDIR/lib -lagraph -lgraph -lexpat" "cvtgxl.o dot2gxl.o" \r
+ if [[ $? != 0 ]]\r
+ then\r
+ return 1\r
+ fi \r
+ mkTool nop -lgraph\r
+ if [[ $? != 0 ]]\r
+ then\r
+ return 1\r
+ fi \r
+ mkTool sccmap -lagraph\r
+ if [[ $? != 0 ]]\r
+ then\r
+ return 1\r
+ fi \r
+ mkTool tred -lgraph\r
+ if [[ $? != 0 ]]\r
+ then\r
+ return 1\r
+ fi \r
+ mkTool unflatten -lagraph\r
+ if [[ $? != 0 ]]\r
+ then\r
+ return 1\r
+ fi \r
+ mkTool gvpack "-lgvplugin_neato_layout -lgvc -lgraph"\r
+ if [[ $? != 0 ]]\r
+ then\r
+ return 1\r
+ fi \r
+\r
+ return 0\r
+}\r
+\r
+function Build \r
+{\r
+ cd $GVIZ_HOME\r
+\r
+ cd lib\r
+ make install >> $LFILE 2>&1\r
+ if [[ $? != 0 ]]\r
+ then\r
+ ErrorEx "failure to make lib"\r
+ fi \r
+\r
+ cd ../plugin\r
+ make install >> $LFILE 2>&1\r
+ if [[ $? != 0 ]]\r
+ then\r
+ ErrorEx "failure to make plugins"\r
+ fi \r
+\r
+ # Go to install directory and move libraries from graphviz\r
+ # subdirectory to main lib directory\r
+ cd $INSTALLROOT/lib/graphviz\r
+ mv lib*.a ..\r
+ cd ..\r
+ rm -rf graphviz\r
+\r
+ \r
+ if [[ $USE_DLL != 0 ]]\r
+ then\r
+ mkDLL cdt\r
+ mkDLL pathplan\r
+ mkDLL graph -lcdt\r
+ mkDLL agraph -lcdt\r
+ cp $GVIZ_HOME/lib/expr/.libs/libexpr_C.a libexpr.a\r
+ mkDLL expr -lcdt\r
+ mkDLL gvc "-L$GTKDIR/lib -lpathplan -lgraph -lcdt -lexpat -lz -lltdl" \r
+ mkDLL gvplugin_core "-L$GTKDIR/lib -lgvc -lgraph -lcdt -lexpat -lz -lltdl"\r
+ mkDLL gvplugin_dot_layout "-L$GTKDIR/lib -lgvc -lgraph -lpathplan -lcdt -lexpat -lz -lltdl"\r
+ mkDLL gvplugin_neato_layout "-L$GTKDIR/lib -lgvc -lpathplan -lgraph -lcdt -lexpat -lz -lltdl"\r
+ mkDLL gvplugin_gd "-L$GTKDIR/lib -lgvc -lpathplan -lgraph -lcdt -lpng -ljpeg -lfontconfig -lfreetype -lcairo -liconv -lexpat -lz -lltdl" \r
+# mkDLL gvplugin_gdk_pixbuf "-L$GTKDIR/lib -lcairo -lgdk_pixbuf-2.0 -lltdl" \r
+ mkDLL gvplugin_pango "-L$GTKDIR/lib -lgvc -lfontconfig -lfreetype -ljpeg -lpng -lexpat -lz -lcairo -lpango-1.0 -lpangocairo-1.0 -lgobject-2.0 -lgtk-win32-2.0 -lglib-2.0 -lgdk-win32-2.0 -latk-1.0 -lgdk_pixbuf-2.0" \r
+ fi \r
+\r
+ cd $GVIZ_HOME/cmd\r
+ cd lefty\r
+ make install >> $LFILE 2>&1\r
+ if [[ $? != 0 ]]\r
+ then\r
+ ErrorEx "failure to make lefty"\r
+ fi \r
+\r
+ cd ../lneato\r
+ make install >> $LFILE 2>&1\r
+ if [[ $? != 0 ]]\r
+ then\r
+ ErrorEx "failure to make lneato"\r
+ fi \r
+\r
+ cd ../dotty\r
+ make install >> $LFILE 2>&1\r
+ if [[ $? != 0 ]]\r
+ then\r
+ ErrorEx "failure to make dotty"\r
+ fi \r
+\r
+ cd ../gvpr\r
+ mkGvpr >> $LFILE 2>&1 \r
+ if [[ $? != 0 ]]\r
+ then\r
+ ErrorEx "failure to make gvpr"\r
+ fi \r
+\r
+ cd ../tools\r
+ mkTools >> $LFILE 2>&1 \r
+ if [[ $? != 0 ]]\r
+ then\r
+ ErrorEx "failure to make tools"\r
+ fi \r
+\r
+ cd ../dot\r
+ mkDot >> $LFILE 2>&1 \r
+ if [[ $? != 0 ]]\r
+ then\r
+ ErrorEx "failure to make dot"\r
+ fi \r
+\r
+# make install >> $LFILE 2>&1\r
+# if [[ $? != 0 ]]\r
+# then\r
+# ErrorEx "failure to make cmd"\r
+# fi \r
+\r
+}\r
+\r
+# $1 is the library base name xxx\r
+# create xxx.lib and xxx.dll, moving the latter to ../bin\r
+function mkDLL\r
+{\r
+ LIB=$1\r
+ > $LIB.ign\r
+ echo "nld -L. -G -o $LIB.dll -Bwhole-archive lib$LIB.a -Bno-whole-archive $LIB.ign" $2 >> $LFILE 2>&1\r
+ nld -L. -G -o $LIB.dll -Bwhole-archive lib$LIB.a -Bno-whole-archive $LIB.ign $2 >> $LFILE 2>&1\r
+ if [[ $? != 0 ]]\r
+ then\r
+ ErrorEx "failure to make dll $1"\r
+ fi\r
+ mv $LIB.dll ../bin\r
+ rm $LIB.ign\r
+ return 0\r
+}\r
+\r
+GTKDLLS="iconv intl jpeg62 libcairo-2 libexpat libfontconfig-1 \\r
+libfreetype-6 libglib-2.0-0 libgmodule-2.0-0 libgobject-2.0-0 \\r
+libpango-1.0-0 libpangocairo-1.0-0 libpangoft2-1.0-0 libpangowin32-1.0-0 \\r
+libpng12 libxml2 zlib1 libgdk_pixbuf-2.0-0"\r
+\r
+# Add additional software (DLLs, manuals, examples, etc.) to tree\r
+function Install\r
+{\r
+# Add 3rd party libraries\r
+ echo "Copying 3rd party libraries" >> $LFILE 2>&1 \r
+ cd $GTKDIR/bin\r
+ for l in $GTKDLLS\r
+ do\r
+ cp $l.dll $INSTALLROOT/bin\r
+ done\r
+ cp -r $GTKDIR/lib/pango $INSTALLROOT/lib\r
+ cp -r $GTKDIR/etc $INSTALLROOT\r
+\r
+ # Add extra software\r
+ cd $ROOT/add-on\r
+ cp Uninstall.exe $INSTALLROOT\r
+ cp fonts.conf $INSTALLROOT/etc/fonts\r
+ cp props.txt GVedit.exe GVedit.html GVUI.exe $INSTALLROOT/bin\r
+\r
+# Create "soft" links. At present, hard links appear necessary for\r
+# GVedit and GVUI. It is hoped this will change with the new GVUI.\r
+ echo "Create soft links" >> $LFILE 2>&1 \r
+ cd $INSTALLROOT/bin\r
+ cp dot.exe neato.exe\r
+ cp dot.exe twopi.exe\r
+ cp dot.exe circo.exe\r
+ cp dot.exe fdp.exe\r
+ cp gxl2dot.exe dot2gxl.exe\r
+\r
+ if [[ $USE_DLL == 2 ]]\r
+ then\r
+ ./dot -c >> $LFILE 2>&1 \r
+ if [[ $? != 0 ]]\r
+ then\r
+ ErrorEx "failure to initialize dot"\r
+ fi \r
+ fi\r
+ \r
+ cd $ROOT\r
+ echo "Install extra files" >> $LFILE 2>&1 \r
+ cp -r $GVIZ_HOME/graphs $INSTALLROOT\r
+ cp -r $GVIZ_HOME/dot.demo $INSTALLROOT\r
+ cp -r $GVIZ_HOME/contrib $INSTALLROOT\r
+ cp -r $GVIZ_HOME/doc/*.pdf $INSTALLROOT/doc \r
+\r
+ echo "Install man pages" >> $LFILE 2>&1 \r
+ cp $GVIZ_HOME/cmd/dot/dot.pdf $INSTALLROOT/doc/man\r
+ cp $GVIZ_HOME/cmd/dot/dot.pdf $INSTALLROOT/doc/man/neato.pdf\r
+ cp $GVIZ_HOME/cmd/dot/dot.pdf $INSTALLROOT/doc/man/twopi.pdf\r
+ cp $GVIZ_HOME/cmd/dot/dot.pdf $INSTALLROOT/doc/man/circo.pdf\r
+ cp $GVIZ_HOME/cmd/dot/dot.pdf $INSTALLROOT/doc/man/fdp.pdf\r
+ cp $GVIZ_HOME/cmd/tools/*.pdf $INSTALLROOT/doc/man\r
+ cp $GVIZ_HOME/cmd/tools/gxl2dot.pdf $INSTALLROOT/doc/man/dot2gxl.pdf\r
+\r
+ if [[ -d $INSTALLROOT/share ]]\r
+ then\r
+ echo "Install share software" >> $LFILE 2>&1 \r
+ cd $INSTALLROOT/share/graphviz\r
+ mv lefty ../../lib\r
+\r
+ cd ../..\r
+ rm -rf share\r
+ fi\r
+\r
+ if [[ -d $INSTALLROOT/include/graphviz ]]\r
+ then\r
+ echo "Install include/graphviz files" >> $LFILE 2>&1 \r
+ cd $INSTALLROOT\r
+ mv include/graphviz ginclude\r
+ rm -rf include\r
+ mv ginclude include\r
+ fi\r
+\r
+ if [[ $USE_DLL == 0 ]]\r
+ then\r
+ cd $INSTALLROOT/bin\r
+ if [[ -f dot_static.exe ]]\r
+ then\r
+ mv dot_static.exe dot.exe\r
+ fi\r
+ cd ..\r
+ fi\r
+ \r
+ # Remove makefiles\r
+ cd $INSTALLROOT\r
+ rm -f $(find graphs -name Makefile* -print)\r
+ rm -f $(find contrib -name Makefile -print)\r
+ rm -f $(find contrib -name Makefile.in -print)\r
+\r
+}\r
+\r
+function PackageTar\r
+{\r
+ cd $ROOT\r
+\r
+ # Create tgz package\r
+ TGZFILE=graphviz-win-${VERSION}.bin.tar.gz\r
+ echo "creating tgz local" >> $LFILE\r
+ pax -w -x tar -s/local/graphviz-${VERSION}/ local | gzip > $TGZFILE\r
+ if [[ -f $TGZFILE ]]\r
+ then\r
+ echo "SUCCESS : tgz file created" >> $LFILE\r
+ echo "uploading the tgz file $TGZFILE" >> $LFILE\r
+ chmod 644 $TGZFILE\r
+ PutFile $TGZFILE\r
+# rm $TGZFILE\r
+ else\r
+ echo "FAILED : could not create tgz file" >> $LFILE\r
+ ErrorEx "windows install failure"\r
+ fi\r
+ cd ..\r
+}\r
+ \r
+function Package\r
+{\r
+ cd $ROOT\r
+\r
+ # new package\r
+ rm -rf release\r
+ mkDir release\r
+ cd add-on\r
+ cp Setup.exe Selfstbv.exe $ROOT/release\r
+ sed "s/XXX/$SHORTVERSION/" Graphviz.ini > $ROOT/release/Graphviz.ini\r
+ cd $ROOT\r
+ ./gsetup.sh >> $LFILE 2>&1\r
+ \r
+ # now copy it to the webserver\r
+ UPLOADFILE=graphviz-${VERSION}.exe\r
+ PACKAGEDFILE=$ROOT/release/graphvizw.exe\r
+ \r
+ if [[ -f $PACKAGEDFILE ]]\r
+ then\r
+ echo "SUCCESS : installation package created" >> $LFILE\r
+ mv $PACKAGEDFILE $UPLOADFILE # attach version info\r
+ \r
+ echo "uploading the package file $UPLOADFILE" >> $LFILE\r
+ chmod 755 $UPLOADFILE\r
+ PutFile $UPLOADFILE\r
+ else\r
+ echo "FAILED : could not create installation package" >> $LFILE\r
+ ErrorEx "windows install failure"\r
+ fi\r
+ \r
+}\r
+\r
+function PutLog \r
+{\r
+ LOG=graphviz-windows-buildlog-${VERSION}.txt\r
+ echo "uploading the log $LOG file" >> $LFILE\r
+ cp $LFILE $LOG\r
+ PutFile $LOG\r
+ rm -f $LOG\r
+}\r
+\r
+SETOPTS=0\r
+GET=0 # get from cvs machine and create tree\r
+SETUP=0 # run configure and modify source\r
+BUILD=0 # build all of the software\r
+INSTALL=0 # install the software locally\r
+PACKAGE=0 # make main package and copy all software to cvs machine\r
+USE_DLL=2\r
+CONFARG=-PL\r
+\r
+Usage='build [-CDLGSBIP] [-R<relno>] \n\r
+ -C : core package \n\r
+ -D : build DLLs \n\r
+ -L : build using plugins \n\r
+ -G : get software \n\r
+ -S : setup software \n\r
+ -B : build \n\r
+ -I : install in local tree \n\r
+ -P : create package and ship'\r
+\r
+while getopts :XCDLGSBIPR: c\r
+do\r
+ case $c in\r
+ X ) # Remove when pixbuf is fixed\r
+ PFX=x\r
+ CONFARG="$CONFARG -X"\r
+ ;;\r
+ D ) # build with dlls\r
+ CONFARG=-P\r
+ USE_DLL=1\r
+ ;;\r
+ L ) # use ltdl\r
+ USE_DLL=2\r
+ CONFARG=-PL\r
+ ;;\r
+ C ) # no pango/cairo/fontconfig\r
+ CONFARG=\r
+ ;;\r
+ G ) # get\r
+ SETOPTS=1\r
+ GET=1\r
+ ;;\r
+ S ) # setup\r
+ SETOPTS=1\r
+ SETUP=1\r
+ ;;\r
+ B ) # build\r
+ SETOPTS=1\r
+ BUILD=1\r
+ ;;\r
+ I ) # install\r
+ SETOPTS=1\r
+ INSTALL=1\r
+ ;;\r
+ P ) # package\r
+ SETOPTS=1\r
+ PACKAGE=1\r
+ ;;\r
+ R ) # build official release\r
+ RELEASE=$OPTARG\r
+ INPKG=graphviz-${RELEASE}.tar.gz\r
+ SOURCEFILE=$SOURCE/ARCHIVE/$INPKG\r
+ DESTDIR=$SOURCE/ARCHIVE\r
+ ;;\r
+ :)\r
+ echo $OPTARG requires a value\r
+ exit 2\r
+ ;;\r
+ \? )\r
+ if [[ "$OPTARG" == '?' ]]\r
+ then\r
+ echo $Usage\r
+ exit 0\r
+ else\r
+ echo "build: unknown flag $OPTARG - ignored"\r
+ fi\r
+ ;;\r
+ esac\r
+done\r
+\r
+shift $((OPTIND-1))\r
+\r
+LFILE=$ROOT/${PFX}build.log\r
+GVIZ_HOME=$ROOT/${PFX}gviz\r
+INSTALLROOT=$ROOT/${PFX}local\r
+\r
+if [[ $# > 0 ]]\r
+then\r
+ LFILE=$1\r
+fi\r
+\r
+\r
+# If no passes picked, do all\r
+if [[ $SETOPTS == 0 ]]\r
+then\r
+ GET=1\r
+ SETUP=1\r
+ BUILD=1\r
+ INSTALL=1\r
+ PACKAGE=1\r
+fi\r
+\r
+cd $ROOT\r
+rm -f $LFILE\r
+\r
+if [[ $GET == 1 ]]\r
+then\r
+ Get\r
+fi\r
+if [[ $SETUP == 1 ]]\r
+then\r
+ Setup\r
+fi\r
+SetVersion\r
+if [[ $BUILD == 1 ]]\r
+then\r
+ Build\r
+fi\r
+if [[ $INSTALL == 1 ]]\r
+then\r
+ Install\r
+fi\r
+if [[ $PACKAGE == 1 ]]\r
+then\r
+ Package\r
+ PackageTar\r
+# PutLog\r
+fi\r
+\r
+exit 0\r
+\r