CONTENTS
These notes describe the changes that had to be made to our code to
get it to run on Scientific Linux 5. The machine used was
flxi06.fnal.gov (Scientific Linux SLF release 5.1 (Lederman) gcc
version 4.1.2 20070626 (Red Hat 4.1.2-14).
Note that this is for 32 bit not
64-bit
machines
The following RPMs were installed in addition to the standard SLF 5.1:-
gcc-gfortran.i386
giflib-devel.i386
giflib-utils.i386
imake.i386
libgfortran.i386
libjpeg-devel.i386
libpng-devel.i386
libtiff-devel.i386
libXext
libXext-devel
libXft-devel.i386
libXpm-devel.i386
If the CERNlib is not built from source then it has to be taken from an
SL5 32-bit gcc 4.1 build e.g.:-
2006b_i686-slc5-gcc41-opt/tar
of
http://cernlib.web.cern.ch/cernlib/download
The make files:-
Make.include
Make.include.minos
of version v3_5_5 are hardwired to use g77. To have it automatically
switch to gfortran and use the option -fbounds-check which replaces
-ffortran-bounds-check if the gfortran is present the following patch
files had to be applied:-
Index: Make.include
===================================================================
RCS file: /cvs/minoscvs/rep1/neugen3/Make.include,v
retrieving revision 1.1.2.7
diff -u -b -r1.1.2.7 Make.include
--- Make.include 26 Sep 2006 03:27:50 -0000 1.1.2.7
+++ Make.include 17 Sep 2009 11:43:52 -0000
@@ -38,6 +38,12 @@
FORT := g77
FORTOPTS := $(FFLAGS) -ffortran-bounds-check -fno-second-underscore -fPIC -g -c -DLINUX $(NEUGENINCS) -I$(LUNDINCS)
+# If gfortran is present, use it rather than g77
+ifneq ($(shell which gfortran 2>/dev/null),)
+ FORT := gfortran
+ FORTOPTS := $(FFLAGS) -fbounds-check -fno-second-underscore -fPIC -g -c -DLINUX $(NEUGENINCS) -I$(LUNDINCS)
+endif
+
ifneq ($(LABYRINTH),)
# modified version for MINOS
include $(NEUGEN3PATH)/Make.include.minos
Index: Make.include.minos
===================================================================
RCS file: /cvs/minoscvs/rep1/neugen3/Attic/Make.include.minos,v
retrieving revision 1.1.2.4
diff -u -b -r1.1.2.4 Make.include.minos
--- Make.include.minos 26 Sep 2006 02:48:22 -0000 1.1.2.4
+++ Make.include.minos 17 Sep 2009 11:43:52 -0000
@@ -32,8 +32,14 @@
# make compile options compatible with standard MINOS options
# (critical is lack of second underscore)
# (for linking with NeugenInterface .so library one needs -fPIC)
+ # If gfortran is present, use its bound checking option rather than g77's
+ ifneq ($(shell which gfortran 2>/dev/null),)
+ FORTOPTS := $(FORTOPTS) -DLINUX \
+ -fno-second-underscore -fbounds-check -fPIC -Wall
+ else
FORTOPTS := $(FORTOPTS) -DLINUX \
-fno-second-underscore -ffortran-bounds-check -fPIC -Wall
+ endif
endif
This patch has been applied and the v3_5_5 tag moved on:-
Make.include revision: 1.1.2.8
Make.include.minos revision: 1.1.2.5
The only problem encountered building the Minossoft code was with latex which complained:-
Latex problem with \htmladdnormallink{...}{...file#anchor}
\htmladdnormallink{List of Classes of the Navigation PACKRAT}
{http://www-numi.fnal.gov:8875/fnal_minos/computing/oo_discussions/navigation/nav_packrat.html#List of Classes:}:-
[176] [177] [178] [179] [180] [181] [182]
! Illegal parameter number in definition of \Hy@tempa.
L
l.1921 ...ation/nav_packrat.html#List of Classes:}
when processing:-
See \htmladdnormallink{List of Classes of the Navigation PACKRAT}
{http://www-numi.fnal.gov:8875/fnal_minos/computing/oo_discussions/navigation/nav_packrat.html#List of Classes:}
The '#' needs to be escaped.
|