Introduction
This is a quick guide on how to install BERNESE 5.0 GPS Software on:
- Mac OS X 10.5 Leopard with Power PC & INTEL processor, and
- Mac OS X 10.6 Snow Leopard (which runs on INTEL processor only)
- Mac OS X 10.7 Lion (which runs on INTEL processor only)
Last updated on:
Jan 9th, 2012: – Updated gfortran compiler flags to be the same as LINUX (this allows bugfix B195 for ORBGEN to run again).
Jan 6th, 2012: – Updated for Mac OS X 10.7 Lion
July 13th, 2011: – Added gfortran version which was used to compile
July 5th, 2011: – Updated compilation options the same as “LINUX + GNU FORTRAN”, with same optimization. Tested results between LINUX (Fedora 14) and Mac OS X 10.6.8 are exactly the same.
The following guide was done with BERNESE 5.0 and all patches til “11-May-2011”.
1. Prerequirements
- For Mac OS X 10.7: Apple XCode 4.2 Development Tools / free via Mac AppStore or from http://connect.apple.com
- For Mac OS X 10.5 or 10.6: Apple XCode 3.x Development Tools (contains gcc compiler) must be installed either from Mac OS X Install DVD or download the latest version freely (recommended) from http://connect.apple.com
- Required: Install Macports 2.0.3 or later
- Required: Install gfortran for your platform (Mac OS X 10.5 Leopard or Mac OS X 10.6 Snow Leopard or Mac OS X 10.7 Lion). The compilation of the FORTRAN programs was done with “gfortran gcc version 4.6.2 released 2011-10-20”
- For Mac OS X 10.5 and 10.6 – Optional: Porticus is a GUI for Macports, which makes it easier to install ports
- Optional: A good text editor TextWrangler (free) here
Note: All new Macs (since 2010 and later) have Mac OS X 10.6.x Snow Leopard and INTEL processors. Recent Mac Models come with Mac OS X 10.7 preinstalled.
2. Installing QT3 libraries
For BERNESE Menu Graphical User Interface (GUI) we need to install the QT3 libraries.
This is easily done by launching “Macports” port
command from “Terminal.app” and copy/pasting the following command:
#sudo port selfupdate #sudo port install qt3
It will take a while to download and install all the QT3 port. As every Macport it will be installed in the directory /opt/local/
So the qt3 library is installed in /opt/local/lib/qt3 which is the QTDIR used in BERNESE setup script.
3. Create the directory BERN50 and BERNESE-GPS directory
The directory BERN50 is the directory where all your executable files will be copied.
The directory BERNESE-GPS is the directory where all the GPSDATA / GPSTEMP / GPSUSER will go.
I prefer to have GPSDATA, GPSTEMP and GPSUSER to be in one place (and not spread in the HOME directory), which makes it easier to backup:
#mkdir ~/BERN50 #mkdir ~/BERNESE-GPS/ #mkdir ~/BERNESE-GPS/GPSDATA #mkdir ~/BERNESE-GPS/GPSTEMP #mkdir ~/BERNESE-GPS/GPSUSER
4. Launch BERNESE “setup.sh” script from the Installer dir
After you have downloaded the BERNESE UNIX version you must launch the “setup.sh” script from the installer directory (e.g. my installer dir is called “BERNESE-Installer”).
IMPORTANT: Before invoking the “setup.sh” command you must tell where the QTDIR is located, this is done by entering the command, or else you will get the error:The QT library seems not to be installed correctly.
#export QTDIR=/opt/local/lib/qt3 #cd ~/Downloads/BERNESE-Installer/UNIX/ #./setup.sh
The setup script will ask you the location of the installation directory:
Input the Installation Directory [ /Users/gilles/BERN50 ] :
Just type RETURN it should extract all the files in your $HOME/BERN50 directory (mine is /Users/gilles 🙂 )
For PERL just type RETURN since PERL was also installed with Macports in /opt/local/bin/perl and by default PERL comes on Mac OS X in /usr/bin/perl.
Perl program used [ /opt/local/bin/perl ] :
After that it will give you CONFIGURATION MENU:
===================================== CONFIGURATION OF THE BERNESE SOFTWARE ===================================== 0 ... Complete Installation (Steps 1 to 4) 1 ... Update LOADGPS.setvar 2 ... Add a new user 3 ... Compile Bernese menu 4 ... Compile Fortran programs 5 ... Install Example Campaigns X ... Exit Enter option:
Enter “X” to exit the Configuration menu. We need to setup some config file to allow the installer to finish without errors.
5. Exit the CONFIGURATION and edit the config file LOADGPS.setvar
By default the file LOADGPS.setvar is loaded by the setup.sh file to include the various installation variables like Installation Dir, Operating System etc.
We create a new one and edit it:
#touch ~/BERN50/GPS/EXE/LOADGPS.setvar #edit ~/BERN50/GPS/EXE/LOADGPS.setvar
You can copy/paste the following text:
# ~/BERN50/GPS/EXE/LOADGPS.setvar # Function to add path to $PATH only once # --------------------------------------- addtopath () { if [ "`echo $PATH | grep $1`" != "$PATH" ] then export PATH="$PATH:$1" fi } # Version of Bernese GPS software # ------------------------------- export VERSION="50" # Path to the Bernese software # ---------------------------- export C="${HOME}/BERN50" # Path to Bernese GPS data files # ------------------------------ export X="${C}/GPS" # Fortran source of subroutines # ----------------------------- export LG="${C}/LIB/FOR" # Fortran source of include and modules # ------------------------------------- export I="${C}/INC/FOR" # Fortran source of programs # -------------------------- export FG="${C}/PGM/FOR" # Executables of Bernese fortran programs # --------------------------------------- export XG="${C}/PGM/EXE" # Executable and source of Bernese menu # ------------------------------------- export XQ="${C}/MENU" # Scripts for the BPE # ------------------- export BPE="${C}/BPE" # Host of the BPE server # ---------------------- #change to "localhost" if running on your computer export BPE_SERVER_HOST="localhost" # Path to campaign directory # -------------------------- export P="${HOME}/BERNESE-GPS/GPSDATA" # Path to temp. user environment # ------------------------------ export T="${HOME}/BERNESE-GPS/GPSTEMP" # Path to user environment # ------------------------ export U="${HOME}/BERNESE-GPS/GPSUSER" # Fortran soure of user programs # ------------------------------ export FU="${HOME}/BERN50/PGM/FOR" # Executables of user programs # ---------------------------- export XU="${HOME}/BERN50/PGM/EXE" # Path to QT-lib for Bernese # -------------------------- export QTBERN="/opt/local/lib/qt3" # Operating system group # ---------------------- export OS="UNIX" # Name of the operating system # ---------------------------- export OS_NAME="DARWIN" # Fortran compiler name # --------------------- export F_VERS="GNU" # Memory model for compilation # ---------------------------- export MEMSIZE="LARGE" # Add Bernese paths to $PATH # -------------------------- addtopath "$X/EXE" addtopath "$XG" addtopath "$XQ"
Now that we have created the LOADGPS.setvar file we want to load the whole kaboonga variables by sourcing it out:
#source ~/BERN50/GPS/EXE/LOADGPS.setvar
This command loads the various variables to the BASH shell.
6. Exit the CONFIG Menu and edit CMOPT.pl in ~/BERN50/GPS/EXE
Since the installer has extracted the tar gzipped files we need to edit some config files or else we will compile errors.
Edit the config file “~/BERN50/GPS/EXE/CMPOPT.pl” to accept “DARWIN” as UNIX platform and add this code at line 461 for example:
#edit ~/BERN50/GPS/EXE/CMPOPT.pl
# Darwin Mac OS X + GFORTRAN (gfortran) # -------------------------------------------------- if($OS_NAME eq "DARWIN" && $F_VERS eq "GNU") { if($ext eq "f90" || $ext eq "f") { $cppCmd = "cpp -traditional-cpp "; $cppCmd.= "-DOS_UNIX -DCMP_GNU -DDIM_${MEMSIZE}"; $cmpCmd = "gfortran"; if($ENV{F_DEBUG} && $ENV{F_DEBUG} eq "YES") { $optOpt = "-O0 -g -Wextra -fbounds-check"; } else { $optOpt = "-O"; } $genOpt = "-Wall -fbacktrace ". "-I. -I$C/LIB/OBJ -I$I"; } $genOpt .= " -fno-automatic" if($ext eq "f"); }
IMPORTANT: Don’t launch setup.sh again or else it will erase the newly modified LOADGPS.setvar with the older one.
We need to modify just one more file to compile the BERNESE MENU correctly.
7. BERNESE MENU Configuration
After trying to launch the compilation of the MENU in the setup installation of BERNESE, an error message appeared of “undefined symbols” in menuutils.cpp > compress etc.
Just go in the directory and invoke the qmake command and edit the “Makefile”
#cd ~/BERN50/MENU/ #qmake #edit Makefile
Edit the “Makefile” in the directory ~/BERN50/MENU/ and add -lz at the end of the “LIBS” line:
LIBS = $(SUBLIBS) -L/opt/local/lib -L$(QTDIR)/lib -L/opt/local/lib -lICE -lSM -ldl -lqt-mt -lXext -lX11 -lm -lz
or else you will get error about undefined symbols “compress” if you want to compile the BERNESE-Menu. I’ve found out the zLib library was missing in the LFLAGS for compilation (this may be a bug of Macports qt3-qmake command, not sure).
8. Update your .bash login config
Now edit your “.bash_profile” or your “.bashrc” and add these lines:
# For BERNESE 5.0 export QTDIR=/opt/local/lib/qt3 source ~/BERN50/GPS/EXE/LOADGPS.setvar
9. Edit “configure.pm” script
Before launching the “configure.pm” script in ~/BERN50/GPS/EXE there are two issues which needs to be fixed:
An error message will appear with ‘qmake.cache’ not found etc. Just edit:
#edit ~/BERN50/GPS/EXE/configure.pm
and comment out the lines: 933-937 the one with qmake.cache. It should look like this:
# my $cashFile = "$ENV{QTDIR}/.qmake.cache"; # if (! -f $cashFile) { # die "File $cashFile not found\n". # "Please make sure that the QT library has been installed correctly.\n"; # }
Then edit line 956 to read like from:
system("$qmake -cache $cashFile menu.pro");
to:
system("$qmake menu.pro");
10. Launch “configure.pm” to compile the Menu and the Fortran programs
IMPORTANT: Don’t launch setup.sh again or else it will erase the newly modified LOADGPS.setvar and other files with the one from the .tar.gz archives.
Launch the configure.pm script from your Home directories BERN50 folder:
#source ~/.bash_profile #cd ~/BERN50/GPS/EXE/ #configure.pm
Choose option “3 … Compile BERNESE Menu” or option “4 … Compile Fortran programs”.
It should hopefully compile correctly the menu and the fortran programs! Hurray!!!
If it fails to compile the menu one trick is to go directly to the directory ~/BERN50/MENU and invoke the commands:
#cd ~/BERN50/MENU/ #make clean #make mocclean #make
if you get the error:
Undefined symbols: "_compress", referenced from: compress(QString const&)in menutils.o "_uncompress", referenced from: uncompress(QMemArray const&)in menutils.o ld: symbol(s) not found collect2: ld returned 1 exit status make: *** [menu] Error 1
then you need to edit the “~/BERN50/MENU/Makefile” and add “-lz” to the LIBS flags (see BERNESE Menu Configuration)
After succesful compilation:
11. Launch BERNESE MENU
Launch BERNESE 5.0 by typing the following command in the “Terminal.app”:
#G
An X11 Window opens and the BERNESE Menu appears. Enjoy!
Comments are closed.