Interactive Receiver Function & Dispersion Forward Modeller (IRFFM) Julian Byrne 20160602 Julian.Byrne@anu.edu.au Includes IRFFM1 and IRFFM2. See irffm{1,2}-1.4_info_and_manual.pdf (= IRFFM_info_and_manual.pdf) for what IRFFM1 and IRFFM2 are and how to operate them. This README describes how to install, start and (if necessary) compile them from source. IRFFM1 and IRFFM2 are java programs with a "Standard Widget Toolkit" (swt) GUI, and with Fortran and C command line helper programs. They can be run on Linux, Windows and OSX and includes source plus jar files and 64 bit binaries for recent versions of these platforms. To run IRFFM1 and IRFFM2 it's necessary to make sure a C, Fortran, Java (jre) runtime environment (including shared libraries and swt.jar) and SAC are installed. To run IRFFM1 and IRFFM2 binaries for the first time: 1. Unpack the download package in to a convenient directory ("..." in the following). 2. Set environment variable "IRFFM_HOME" to directory "..." . 3. Copy the files in .../bin// into .../bin/ (where is CygWin, Darwin [=OSX=Mac] or Linux) 4. Change default directory to .../work/ and execute ../bin/irffm1 or ../bin/irffm2. 5. GUI's should appear in a few seconds with both grey and yellow lines on the top-right chart. It may be convenient to put the .../bin and /usr/local/sac/bin directories on your PATH - on Linux or OSX modify ~/.bashrc or ~/.bash_profile (assuming your default shell is bash) and on Windows modify the PATH variable in: Control Panel/System/Advanced system settings/Advanced/Environment Variables. Possible problems: - Environment variable IRFFM_HOME not defined. Define it. - Java JRE not installed. Install Java runtime libraries (see below). - Swt not found. Install swt (see below). - SAC not found. Install SAC (see below). - GNU c and fortran run time libraries not found. Install them (see below). - GNU bash not installed. Install it. (see below). - Not in default directory ".../work". This has several data files used by IRFFM1 and IRFFM2 and also the helper scripts irffm1_script.sh and irffm2_script.sh. - Helper binaries not found. Possibly haven't been copied from ".../bin/" to ".../bin/" - Helper scripts failing. Look in .../work/irffm{1,2}_script.log to see any errors. irffm{1,2}_script.sh expects to find the helper binaries in ".../bin/" by default. - Binaries incompatible. Not 64 bit or platform not recent enough. Compile IRFFM from source. To compile IRFFM from source requires C, Fortran and Java (jdk) development environments. By default IRFFM is built with gcc, gfortran, javac, make and apache ant on the tested platforms - linux (native), Mac OSX (MacPorts) and Windows (CygWin). Any reasonably recent version of these tools should do. While only 64 bit IRFFM helper binaries are provided IRFFM has run on 32 bit platforms in the past. IRFFM runtime dependencies: gnu C, gnu Fortran and Java runtime libraries. (all on PATH): bash, mv, cp, rm, awk, make IRFFM build/development dependencies: (On Linux): Native linux GNU development tools: https://www.gnu.org/ (On Mac=OSX=Darwin) Mac Ports: https://www.macports.org/ (On Windows) CygWin: https://www.cygwin.com/ Use the respective platform's package managers to install the GNU and other build tools needed. MacPorts depends on OSX Xcode which is available in the OSX App Store. As a general rule install packages needed from a package manager (possibly excepting the package manager itself) instead of downloading a package directly from the package's web site. Not using a package manager can make an installation much more problematic. It's not necessary to install the above package managers if another package manager is already installed and has the packages required. Java: http://www.oracle.com/technetwork/java/javase/downloads/index.html Should be available in your package manager. Install jre (Java Runtime Environment SE [Standard Edition]) to run IRFFM and jdk (Java Development Kit) to build IRFFM from source. ant: http://ant.apache.org/ Should be available in your package manager - probably under "apache-ant". By default requires a recent version of Java. swt: https://www.eclipse.org/swt/ Not included but should be available in your package manager. If not, install it from the above link. Swt is dependent on each platform's specific shared graphics libraries and can be complex to install manually. By default IRFFM expects to find swt on the Java CLASSPATH. proguard: https://sourceforge.net/projects/proguard/ xmlgraphics-commons: https://xmlgraphics.apache.org/commons/ jide-oss: http://www.jidesoft.com/products/oss.htm jchart2d: https://sourceforge.net/projects/jchart2d/ jcommon: http://www.jfree.org/jcommon/ jfreechart: http://www.jfree.org/jfreechart/ Java libraries - all included and may be available in your package manager also. SAC: http://ds.iris.edu/ds/nodes/dmc/forms/sac/ Free but not included with IRFFM due to distribution restrictions. IRFFM expects to find SAC in the default installation directory /usr/local/sac/ . libreoffice: https://www.libreoffice.org/ Free office package used to convert documentation from .doc to .pdf . "libreoffice" or "soffice" need to be on your PATH. Important build commands: make setup # Copy platform specific binaries to .../bin from sub-directory. make all # Build irffm1, irffm2, helper programs & subroutine libraries. make clean # Delete all files created by build/install leaving source only. make install # Build & install irffm1, irffm2 & helper programs in .../bin . make uninstall # Remove irffm1, irffm2 & helper programs in .../bin . make rebuild # Equivalent of "make clean all". make run1 # Run irffm1 after "make install". make run2 # Run irffm2 after "make install". make setupinstall # Copy current platform specific binaries to .../bin # sub-directory ready for "make setup". make dist # Create distribution packages ../irffm-*.{tar.gz,zip}. # Distribution packages include generated files, # not just source as is usual. make distclean # Delete distribution packages. Important files (all text): defines.mk : Default values used by all Makefile's. prefix.mk : Automatically created installation directory definition. Delete this if you change the directory irffm is in. Makefile : In the main directory and in each sub-directory. build*.xml : Equivalent of Makefile for java+ant bin/sys.sh : System identification script. work/irffm{1,2}_script.{sh,log} : Runtime helper program config and log. ----