summaryrefslogtreecommitdiff
path: root/pgplot-for-ifeffit/PGPLOT_install
diff options
context:
space:
mode:
Diffstat (limited to 'pgplot-for-ifeffit/PGPLOT_install')
-rwxr-xr-xpgplot-for-ifeffit/PGPLOT_install424
1 files changed, 424 insertions, 0 deletions
diff --git a/pgplot-for-ifeffit/PGPLOT_install b/pgplot-for-ifeffit/PGPLOT_install
new file mode 100755
index 000000000..fe31a8c43
--- /dev/null
+++ b/pgplot-for-ifeffit/PGPLOT_install
@@ -0,0 +1,424 @@
+#!/bin/sh
+#
+# This file will attempt to download the PGPLOT library
+# and then build it for a linux system.
+#
+# syntax: PGPLOT_install --system=system_os --prefix=PREFIX
+#
+# where system_os is linux, irix, sun4, etc
+#
+# This may need customization for some systems
+#
+# verified on: linux
+#
+prefix='/usr/local/'
+system='linux'
+dir=`pwd`
+logfile=$dir/PGPLOT_install.log
+wget=/usr/bin/wget
+ncftp=/usr/bin/ncftp
+ftp=/usr/bin/ftp
+
+# set pgplot file locales
+#
+pgp_ftpsite='ftp.astro.caltech.edu'
+pgp_ftpdir='pub/pgplot/'
+pgp_file='pgplot5.2.tar.gz'
+
+#
+# default is to build without gif and with png support
+#
+with_gif=0
+with_png=1
+do_clean=1
+do_log=1
+use_64=0
+fcompl=
+fflagc='-Wall -O -fPIC'
+cflagd='-Wall -O -fPIC'
+# get command line options
+for opt
+do
+ option=''
+ case "$opt" in
+ -*=*)
+ optarg=`echo "$opt" | sed 's/[-_a-zA-Z0-9]*=//'`
+ option=`echo "$opt" | sed 's/=.*//' | sed 's/-*//'`
+ ;;
+ *)
+ option=`echo "$opt" | sed 's/^-*//'`
+ optarg=
+ ;;
+ esac
+ case "$option" in
+ prefix) prefix=$optarg ;;
+ system) system=$optarg ;;
+ with-64bit) use_64=1 ;;
+ no-clean) do_clean=0 ;;
+ no-log) do_log=0 ;;
+ with-fortran) fcompl=$optarg ;;
+ with-fflagc) fflagc=$optarg ;;
+ with-png) with_png=1 ;;
+ with-gif) with_gif=1 ;;
+ no-png) with_png=0 ;;
+ no-gif) with_gif=0 ;;
+ -help | --help | help) cat<<EOF
+Usage: PGPLOT_install [options]
+Options:
+ --prefix=PREFIX base directory for installation [$prefix]
+ --system=SYSTEM operating system type for PGPLOT drivers [$system]
+ typical values would be linux irix sun4
+
+ --with-png / --no-png add/remove PNG driver
+ --with-gif / --no-gif add/remove GIF driver
+
+ --with-64bit use for 64bit linux machines (links to X libs in /usr/X11R6/lib64)
+
+ --with-fortran explicitly set fortran compiler executable
+ --with-fflagc explicitly set fortran compilation flags
+
+ --no-log do NOT generate PGPLOT_install.log
+ --no-clean do not remove any files created during build
+
+EOF
+ exit 0
+ ;;
+
+ *)
+ echo " unknown option " $opt
+ exit 1
+ ;;
+ esac
+done
+
+
+
+
+echo " = = = = = = = = = = = = = = = = = = = = = = = = = = "
+echo " = PGPLOT installation script"
+echo " ="
+#
+# place to put pgplot and the final libraries
+#
+pgp_dir=$prefix/share/ifeffit/pgplot/
+
+pgp_sys=$system
+
+if test $system = linux ; then
+ pgp_sys="linux g77_gcc"
+fi
+
+if test $system = sol2 ; then
+ pgp_sys="sol2 f90_cc"
+fi
+
+echo " system = " $system " == " $pgp_sys
+echo " prefix = " $prefix
+
+
+if test $do_log = 1 ; then
+ echo "#!/bin/sh " > $logfile
+ echo "# PGPLOT install log " >> $logfile
+ echo "# system = " $system " == " $pgp_sys >> $logfile
+ echo "# prefix = " $prefix >> $logfile
+fi
+
+#
+#-----------------------------------------
+##
+## try wget, ncftp, and then ftp to get file
+
+echo " = Looking for PGPLOT file: $pgp_file"
+if [ -f $pgp_file ] ; then
+ x=1
+else
+ echo " = PGPLOT file not found "
+ echo " = I'll try to download it for you..."
+ if [ -f $wget ] ; then
+ echo " trying with wget"
+ tmp="ftp://$pgp_ftpsite/$pgp_ftpdir$pgp_file"
+ echo "getting $tmp"
+ wget --tries=2 $tmp
+ fi
+fi
+
+if [ -f $pgp_file ]; then
+ x=1
+else
+ if [ -f $ncftp ] ; then
+ echo " trying with ncftp"
+ $ncftp $pgp_ftpsite<<EOF
+ set confirm-exit no
+ set confirm-close no
+ cd $pgp_ftpdir
+ get $pgp_file
+ exit
+EOF
+ fi
+fi
+if [ -f $pgp_file ]; then
+ x=1
+else
+ if [ -f $ftp ] ; then
+ echo " trying with regular old ftp "
+ echo " you may have to hit return here for this to work -- "
+ echo " Really, you won't need to enter 'anonymous' or a valid"
+ echo " username --- just hit return"
+ $ftp $pgp_ftpsite<<EOF
+anonymous
+ifeffit@cars.uchicago.edu
+cd $pgp_ftpdir
+hash
+get $pgp_file
+exit
+EOF
+ fi
+fi
+
+##
+## if we still don't have the file, croak
+if [ -f $pgp_file ]; then
+ echo " = I see the PGPLOT tar file. Good."
+else
+ echo " = Sorry, I couldn't download the PGPLOT tar file."
+ echo " = You'll have to download it yourself. Try this: "
+ echo " = ftp $pgp_ftpsite"
+ echo " = cd $pgp_ftpdir"
+ echo " = get $pgp_file"
+ echo " = then run this script again"
+
+ if test $do_log = 1 ; then
+ echo "# pgplot tar file not found! " >> $logfile
+ fi
+ exit 1
+fi
+
+
+##
+echo " = Preparing PGPLOT Installation: "
+echo " = Looking for X libraries "
+x11_loc=''
+if [ -d /usr/X11 ] ; then
+ echo " = X libraries found at /usr/X11 "
+ x11_loc='/usr/X11'
+else
+ if [ -d /usr/X11R6 ] ; then
+ echo " = X libraries found at /usr/X11R6 "
+ x11_loc='/usr/X11R6'
+ else
+ echo " = X libraries not found: could be serious! = "
+ fi
+fi
+
+##
+echo " = Looking for fortran compiler "
+
+if test x$fcompl = 'x' ; then
+ f77 -v > /dev/null 2>&1
+ if [ $? = 0 ] ; then fcompl='g77' ; fi
+
+ g95 -v > /dev/null 2>&1
+ if [ $? = 0 ] ; then fcompl='g95' ; fi
+
+ g77 -v > /dev/null 2>&1
+ if [ $? = 0 ] ; then fcompl='g77' ; fi
+
+ gfortran -v > /dev/null 2>&1
+ if [ $? = 0 ] ; then fcompl='gfortran'; fi
+
+fi
+
+echo " fortran compiler = " $fcompl
+if test $do_log = 1 ; then
+ echo "# fortran compiler = " $fcompl >> $logfile
+fi
+
+if test x$fcompl = 'x' ; then
+ echo ' No fortran compiler found -- cannot install PGPLOT!'
+ exit 1
+fi
+
+
+## unpack kit
+
+echo " = Unpacking PGPLOT: "
+
+gzip -dc $pgp_file | tar xf -
+if test $do_log = 1 ; then
+ echo "gzip -dc $pgp_file | tar xf -" >> $logfile
+fi
+
+cd pgplot
+patch -p0 -i ../pndriv.c.patch
+cd ..
+#
+# copy Fortran90 gidriv.f for modern fortrans -- yick!
+if [ x$fcompl != 'xg77' ] ; then
+ echo 'copying fortran90 gif driver to PGPLOT'
+ # cp -fp pgplot_extras/gidriv.f pgplot/drivers/gidriv.f
+ # fflagc='-ffixed-form -ffixed-line-length-none -u -fPIC -O -fcray-pointer'
+fi
+
+echo " = Creating $pgp_dir and drivers.list "
+mkdir -p $pgp_dir
+if test $do_log = 1 ; then
+ echo "mkdir -p $pgp_dir" >> $logfile
+fi
+
+##
+## create drivers.list
+
+echo '! PGPLOT drivers created by PGPLOT_install for ifeffit: ' > $pgp_dir/drivers.list
+if test $with_gif = 1 ; then
+ echo ' GIDRIV 1 /GIF '>>$pgp_dir/drivers.list
+ echo ' GIDRIV 2 /VGIF '>>$pgp_dir/drivers.list
+fi
+if test $with_png = 1 ; then
+ echo ' PNDRIV 1 /PNG '>>$pgp_dir/drivers.list
+ echo ' PNDRIV 2 /TPNG '>>$pgp_dir/drivers.list
+fi
+
+echo ' NUDRIV 0 /NULL '>>$pgp_dir/drivers.list
+echo ' PSDRIV 1 /PS '>>$pgp_dir/drivers.list
+echo ' PSDRIV 2 /VPS '>>$pgp_dir/drivers.list
+echo ' PSDRIV 3 /CPS '>>$pgp_dir/drivers.list
+echo ' PSDRIV 4 /VCPS '>>$pgp_dir/drivers.list
+echo ' XWDRIV 1 /XWINDOW '>>$pgp_dir/drivers.list
+echo ' XWDRIV 2 /XSERVE '>>$pgp_dir/drivers.list
+
+if test $do_log = 1 ; then
+ echo "# driver.list written to " $pgp_dir/drivers.list >> $logfile
+ echo "# starting build" >> $logfile
+ echo " " >> $logfile
+fi
+
+echo " = Running the PGPGLOT makemake script "
+cd $pgp_dir/
+rm -f grfont.dat pgplot.doc pgxwin_server lib*pgplot* pgdemo* *.o
+$dir/pgplot/makemake $dir/pgplot $pgp_sys
+
+
+
+if test $do_log = 1 ; then
+ echo "cd $pgp_dir/" >> $logfile
+ echo 'rm -f grfont.dat pgplot.doc pgxwin_server lib*pgplot* pgdemo* '>> $logfile
+ echo $dir/pgplot/makemake $dir/pgplot $pgp_sys >> $logfile
+fi
+
+# hack grgfil to use $pgp_dir as default location
+sed 's|/usr/local/pgplot/|'$pgp_dir'|g' $dir/pgplot/src/grgfil.f > $dir/pgplot/src/grgfil_iff.f
+mv makefile Tmp
+sed 's|grgfil|grgfil_iff|g' Tmp > makefile
+
+sed 's|libpgplot|libpgplot_iff|g' makefile > Tmp
+sed 's|-lpgplot|-lpgplot_iff|g' Tmp > makefile
+
+echo 'customized grgfil.f for ifeffit'
+if test $do_log = 1 ; then
+ echo "# customizing grgil.f for ifeffit " >> $logfile
+ echo "sed 's|/usr/local/pgplot/|$pgp_dir|g' $dir/pgplot/src/grgfil.f > $dir/pgplot/src/grgfil_iff.f" >> $logfile
+ echo "mv makefile Tmp" >> $logfile
+ echo "sed 's|grgfil|grgfil_iff|g' Tmp > makefile" >> $logfile
+ echo "sed 's|libpgplot|libpgplot_iff|g' makefile > Tmp" >> $logfile
+ echo "sed 's|-lpgplot|-lpgplot_iff|g' Tmp > makefile" >> $logfile
+fi
+
+
+# hack xwdriv.c to use $pgp_dir a
+sed 's|getenv("PGPLOT_DIR")|'\"$pgp_dir\"'|g' $dir/pgplot/drivers/xwdriv.c > $dir/pgplot/drivers/xwdriv_iff.c
+mv makefile Tmp
+sed 's|xwdriv|xwdriv_iff|g' Tmp > makefile
+
+echo 'customized xwdriv.c for ifeffit'
+if test $do_log = 1 ; then
+ echo "# customizing xwdriv.c for ifeffit " >> $logfile
+ echo " sed 's|getenv(\"PGPLOT_DIR\")|'\"$pgp_dir\"'|g' $dir/pgplot/drivers/xwdriv.c > $dir/pgplot/drivers/xwdriv_iff.c" >> $logfile
+ echo "mv makefile Tmp" >> $logfile
+ echo "sed 's|xwdriv|xwdriv_iff|g' Tmp > makefile" >> $logfile
+fi
+
+# for 64-bit systems
+if test $use_64 = 1; then
+ sed 's|/usr/X11R6/lib|/usr/X11R6/lib64|g' makefile > Tmp
+ sed 's|/usr/X11/lib|/usr/X11/lib64|g' Tmp > makefile
+ if test $do_log = 1 ; then
+ echo "# 64-bit " >> $logfile
+ echo " sed 's|/usr/X11R6/lib|/usr/X11R6/lib64|g' makefile > Tmp " >> $logfile
+ echo " sed 's|/usr/X11/lib|/usr/X11/lib64|g' Tmp > makefile " >> $logfile
+ fi
+fi
+
+
+if test $with_png = 1 ; then
+ mv makefile Tmp
+ sed 's|pndriv.o : ./png.h|#### pndriv.o : ./png.h|g' Tmp > makefile
+
+ if test $do_log = 1 ; then
+ echo "# fix png driver" >> $logfile
+ echo "mv makefile Tmp " >> $logfile
+ echo "sed 's|pndriv.o : ./png.h|#### pndriv.o : ./png.h|g' Tmp > makefile " >> $logfile
+ fi
+fi
+
+sed "s|^FCOMPL=.*|FCOMPL=$fcompl|g" makefile | sed "s|^FFLAGC=.*|FFLAGC=$fflagc|g" | sed "s|^CFLAGD=.*|CFLAGD=$cflagd|g" > Tmp
+mv Tmp makefile
+
+
+echo " = Running make for PGPLOT "
+
+make libpgplot_iff.a grfont.dat prog pgxwin_server cpg
+
+ if test $do_log = 1 ; then
+ echo "make libpgplot_iff.a grfont.dat prog pgxwin_server cpg " >> $logfile
+ fi
+
+if test $do_clean = 1 ; then
+ echo " = Cleaning up and preparing for test"
+ make clean
+ if test $do_log = 1 ; then
+ echo "make clean " >> $logfile
+ fi
+fi
+
+cd $dir
+ls $pgp_dir/ > Tmp_file.lis
+
+echo " = = = = = = = = = = = = = = = = = = = = = = = = = = "
+if ((grep "pgxwin_server" Tmp_file.lis >/dev/null) &&
+ (grep "rgb.txt" Tmp_file.lis >/dev/null) &&
+ (grep "libpgplot_iff.a" Tmp_file.lis >/dev/null) &&
+ (grep "pgdemo1" Tmp_file.lis >/dev/null) &&
+ (grep "grfont.dat" Tmp_file.lis >/dev/null)) ; then
+ if test $do_clean = 1 ; then
+ rm -rf pgplot/
+ fi
+ echo " = PGPLOT appears to be correctly installed!"
+ echo " ="
+ echo " = Please read README.PGPLOT for more on setting up "
+ echo " = PGPLOT for your system and try running the demo"
+ echo " = programs in $pgp_dir "
+
+else
+ echo " = Uh-oh. PGPLOT is missing some important files!"
+ echo " = It looks like PGPLOT failed during building or"
+ echo " = is only partially installed."
+ echo " = "
+ echo " = Please consult the PGPLOT installation instructions"
+ echo " = in the subdirectory pgplot/, and the log file:"
+ echo " = $logfile"
+ echo " = which contains a full list of commands run."
+ echo " ="
+ echo " = You may want to repeat these steps by hand or "
+ echo " = consult the PGPLOT installations instructions "
+ echo " = in install-unix.txt"
+fi
+
+if test $do_clean = 1 ; then
+ rm -f Tmp_file.lis
+fi
+
+
+echo " = = = = = = = = = = = = = = = = = = = = = = = = = = "
+echo " "
+
+# done