diff --git a/scripts/make_dellib b/scripts/make_dellib
index cd9a99bfd2a4c1952505a6fd883e1bc6ccdd2baf..cb18f286524eaa8d550a1c343f2b17cffcf06c56 100755
--- a/scripts/make_dellib
+++ b/scripts/make_dellib
@@ -167,6 +167,9 @@ if ($OS_ARCH eq 'x86_64') {
$CFLAGS = "$CFLAGS -mfpmath=387";
$ADDFOPT = "$ADDFOPT -mfpmath=387";
}
+if ($OS eq 'Darwin'){
+ $LDFLAGS = "$LDFLAGS -Wl,-ld_classic,-dead_strip";
+}
my $gfortran_version;
if ($OS eq "Linux" || $OS eq "Darwin"){
$gfortran_version = `echo '__GNUC__'| gfortran -E -P -`;
@@ -180,7 +183,6 @@ if ($OS eq "Linux" || $OS eq "Darwin"){
$ENV{"ADDFOPT"}=$ADDFOPT;
$ENV{"ADDCOPT"}=$ADDCOPT;
}
-
#
# parse the options
#
@@ -232,36 +234,29 @@ my %LIBRARIES;
if (grep {$VERSION =~ /$_/} @lep1){
%LIBRARIES = (
"delana" =>
- [qw(ddapp cargo dplot delanagen deltask pxtag25
- ufield delanamod tanagra322 uhlib delphys ux26
+ [qw(ddapp cargo dplot delanagen deltask pxtag25 phdst
+ ufield delanamod tanagra322 uhlib delphys ux26 uxxx
pxdst33 trigglib fxsolv delana43.exe delblkd
comlib)],
"delsim" =>
[qw(simrun36 modsim36 delsim36 jetst732 dbsnap shortdst longdst dbzeb)]
);
push(@{$LIBRARIES{delsim}}, qw[dstana10 vdclap phdst]);
- # pxdst defines the symbols _qnext and _zend which are also defined in CERNLIB. This should be generally fine
- # but for shortdst and longdst which do not use the routines (pxloop and pxend) using those, and the Apple linker
- # links these and their dependencies, resulting in thee need of adding most of the other DELPHI libraries albeit they
- # should not be used. To remedy this, on Apple we create an additional library pxdstext which contains only those symbols
- # of pxdst which are needed for (x)shortdst and longdst, and link against this one instead when creating these execs.
- push(@{$LIBRARIES{delana}}, qw[pxdstext]) if $OS eq "Darwin";
} else {
%LIBRARIES = (
"dstana" =>
- [qw(uxxx bsaurus dstanaxx herlibxx kalxx phdst pxdstxx
+ [qw(uxxx bsaurus dstanaxx herlibxx kalxx phdst
pxtagxx skelana tanagraxx triggerxx ufield
uhlib vdclapxx vfclapxx tauplus errhp delblkd)],
"delana" =>
- [qw(ddapp cargo dplot delanagen deltask pxtag25
+ [qw(ddapp cargo dplot delanagen deltask pxtag25 phdst
ufield delanamod tanagra322 uhlib delphys
- pxdst34 trigglib ux26 fxsolv delana45.exe delblkd
+ pxdst34 trigglib ux26 uxxx fxsolv delana45.exe delblkd
comlib)],
"delsim" =>
[qw(simrun36 modsim delsim jetst732 dbsnap xshortdst dbzeb)]
);
push(@{$LIBRARIES{delsim}},qw[dstanaxx vdclapxx vfclapxx phdst]);
- push(@{$LIBRARIES{delana}}, qw[pxdstext]) if $OS eq "Darwin";
};
# only create dstana and delana executables for event server
undef $LIBRARIES{delsim} if defined $DATA;
@@ -587,7 +582,7 @@ sub MakeLibs {
if ($PACKAGE eq "dstana"){
print CRA "+USE, SHIFT.\n+USE, $PLINAM,*$PLINAM.\n+USE, UNIX.\n";
}else{
- print CRA "+USE, SHIFT.\n+USE, $PLINAM,*$PLINAM.\n+USE, UNIX.\n" if grep {$_ eq $lib} qw(pxdst33 pxdst34 ux26 dstanaxx vdclapxx vfclapxx ufield);
+ print CRA "+USE, SHIFT.\n+USE, $PLINAM,*$PLINAM.\n+USE, UNIX.\n" if grep {$_ eq $lib} qw(pxdst33 pxdst34 ux26 uxxx dstanaxx vdclapxx vfclapxx ufield);
}
close(CRA);
my $delcra = $lib;
@@ -1137,7 +1132,7 @@ sub CreateSimrun {
#
# Compile and link the executable
#
- my $command = "$F77{$OS} $LDFLAGS $FFLAGS $ADDFOPT -o $lib *.f $DELPHI_BLKD/simblkd.o $dellib $cernlib";
+ my $command = "$F77{$OS} -v $LDFLAGS $FFLAGS $ADDFOPT -o $lib *.f $DELPHI_BLKD/simblkd.o $dellib $cernlib";
PrintInfo("running \"$command\"");
system($command);
PrintInfo("No executable \"$lib\" created") if not -f $lib;
@@ -1162,7 +1157,7 @@ sub CreateDelana {
my $dellib;
my @liblist;
if ($LEP1flag){
- @liblist = qw(trigglib pxdst33 pxtag25 pxdst33 delphys deltask delanamod delanagen delanamod ux26 ddappxx tanagra322 uhlib ufield com);
+ @liblist = qw(trigglib pxdst33 pxtag25 pxdst33 delphys deltask delanamod delanagen delanamod uxxx phdstxx ddappxx tanagra322 uhlib ufield com);
map {PrintError("Cannot create \"$lib.exe\": no library $DELPHI_LIB/lib$_.a") if not -f "$DELPHI_LIB/lib$_.a"} @liblist;
map {PrintError("Cannot create \"$lib.exe\": no object $_") if not -f $_} ("$DELPHI_BLKD/anablkd.o","$DELPHI_LIB/fxsolv.o");
#
@@ -1170,10 +1165,10 @@ sub CreateDelana {
#
map {$_ = "-l$_"} @liblist; # prepend each library with "-l"
PrintInfo(@liblist);
- $dellib = "$DELPHI_LIB/fxsolv.o -L$DELPHI_LIB @liblist";
+ $dellib = "$DELPHI_LIB/fxsolv.o -L$DELPHI_LIB @liblist -lz";
} else {
#LEP2
- @liblist = qw(trigglib pxdst34 pxtag25 pxdst34 delphys deltask delanamod delanagen delanamod ux26 ddappxx tanagra322 uhlib ufield com);
+ @liblist = qw(trigglib pxdst34 pxtag25 pxdst34 delphys deltask delanamod delanagen delanamod uxxx phdstxx ddappxx tanagra322 uhlib ufield com );
map {PrintError("Cannot create \"$lib.exe\": no library $DELPHI_LIB/lib$_.a") if not -f "$DELPHI_LIB/lib$_.a"} @liblist;
map {PrintError("Cannot create \"$lib.exe\": no object $_") if not -f $_} ("$DELPHI_BLKD/anablkd.o","$DELPHI_LIB/fxsolv.o");
#
@@ -1181,7 +1176,7 @@ sub CreateDelana {
#
map {$_ = "-l$_"} @liblist; # prepend each library with "-l"
PrintInfo(@liblist);
- $dellib = "$DELPHI_LIB/fxsolv.o -L$DELPHI_LIB @liblist";
+ $dellib = "$DELPHI_LIB/fxsolv.o -L$DELPHI_LIB @liblist -lz";
}
#
# create and fix the cradle
@@ -1218,7 +1213,7 @@ sub CreateDelana {
#
# Compile and link the executable
#
- my $command = "$F77{$OS} $LDFLAGS $FFLAGS $ADDFOPT -o $lib.exe *.f $DELPHI_BLKD/anablkd.o $dellib $cernlib";
+ my $command = "$F77{$OS} -v $LDFLAGS $FFLAGS $ADDFOPT -o $lib.exe *.f $DELPHI_BLKD/anablkd.o $dellib $cernlib";
PrintInfo("running \"$command\"");
system($command);
PrintInfo("No executable \"$lib.exe\" created") if not -f "$lib.exe";
@@ -1245,13 +1240,13 @@ sub MakeXShorty {
# make sure all necessary libraries are available
#
symlink "libtanagra322.a","$DELPHI_LIB/libtanagraxx.a" if -f "$DELPHI_LIB/libtanagra322.a";
- symlink "libux26.a","$DELPHI_LIB/libuxxx.a" if -f "$DELPHI_LIB/libux26.a";
+# symlink "libux26.a","$DELPHI_LIB/libuxxx.a" if -f "$DELPHI_LIB/libux26.a";
symlink "libpxdst34.a","$DELPHI_LIB/libpxdstxx.a" if -f "$DELPHI_LIB/libpxdst34.a";
symlink "libpxtag25.a","$DELPHI_LIB/libpxtag2xx.a" if -f "$DELPHI_LIB/libpxtag25.a";
symlink "libufield.a","$DELPHI_LIB/libufieldxx.a" if -f "$DELPHI_LIB/libufield.a";
symlink "libtrigglib.a","$DELPHI_LIB/libtriggerxx.a" if -f "$DELPHI_LIB/libtrigglib.a";
symlink "libuhlib.a","$DELPHI_LIB/libuhlibxx.a" if -f "$DELPHI_LIB/libuhlib.a";
- my @liblist = qw(dstanaxx vdclapxx vfclapxx ufieldxx phdstxx);
+ my @liblist = qw(dstana vdclap vfclap ufield pxtag tanagra trigger uhlib ux);
map {PrintInfo("\"$lib.exe\": no library $DELPHI_LIB/lib$_.a") if not -f "$DELPHI_LIB/lib$_.a"} @liblist;
map {PrintError("Cannot create \"$lib.exe\": no object $_") if not -f $_} ("$DELPHI_BLKD/delblkd.o");
#
@@ -1274,13 +1269,12 @@ sub MakeXShorty {
#
# Delphi libraries
#
- chomp (my $dellib = "$libdir " . `$dellib @liblist`);
- if ($OS eq "Darwin") {
- $dellib .= " -lpxdstext"
- } else {
- $dellib .= " -lpxdst34"
- }
- PrintInfo("Final DELPHI libraries for $OS $dellib\n");
+ #chomp (my $dellib = "$libdir " . `$dellib @liblist`);
+ #$dellib .= ' -lpxdst34 -lphdstxx -ldelanagen -ldelanamod -ldeltask';
+ my $dellib = '-L$DELPHI_LIB -lphdstxx '; #phdst
+ $dellib .= '-ldstanaxx -lpxdst34 -lufield -lvdclapxx -lvfclapxx -lphdstxx -ldstanaxx -luxxx -ltanagra322 -lpxtag25 -ltrigglib -luhlib -ldelanagen -ldelanamod -ldeltask';
+ $dellib .= " $libdir -lz";
+PrintInfo("Final DELPHI libraries for $OS $dellib\n");
#
# Cern and system libraries
#
@@ -1318,13 +1312,12 @@ sub MakeShorty {
# make sure all necessary libraries are available
#
symlink "libtanagra322.a","$DELPHI_LIB/libtanagraxx.a" if -f "$DELPHI_LIB/libtanagra322.a";
- symlink "libux26.a","$DELPHI_LIB/libuxxx.a" if -f "$DELPHI_LIB/libux26.a";
symlink "libpxdst33.a","$DELPHI_LIB/libpxdstxx.a" if -f "$DELPHI_LIB/libpxdst33.a";
symlink "libpxtag25.a","$DELPHI_LIB/libpxtag2xx.a" if -f "$DELPHI_LIB/libpxtag25.a";
symlink "libufield.a","$DELPHI_LIB/libufieldxx.a" if -f "$DELPHI_LIB/libufield.a";
symlink "libtrigglib.a","$DELPHI_LIB/libtriggerxx.a" if -f "$DELPHI_LIB/libtrigglib.a";
symlink "libuhlib.a","$DELPHI_LIB/libuhlibxx.a" if -f "$DELPHI_LIB/libuhlib.a";
- my @liblist = qw(dstana10 ufield vdclap phdstxx pxdst33);
+ my @liblist = qw(dstana10 ufield vdclap phdstxx pxdst33 uxxx tanagra322);
map {PrintError("Cannot create \"$lib.exe\": no library $DELPHI_LIB/lib$_.a") if not -f "$DELPHI_LIB/lib$_.a"} @liblist;
map {PrintError("Cannot create \"$lib.exe\": no object $_") if not -f $_} ("$DELPHI_BLKD/delblkd.o");
#
@@ -1348,12 +1341,7 @@ sub MakeShorty {
# Delphi libraries
#
my $dellib = '-L$DELPHI_LIB -lphdstxx '; #phdst
- $dellib .= ' -ldstana10 -lufield -lvdclap -ldstana10 -lphdstxx';
- if ($OS eq "Darwin") {
- $dellib .= " -lpxdstext"
- } else {
- $dellib .= " -lpxdst33"
- }
+ $dellib .= '-ldstana10 -lpxdst33 -lufield -lvdclap -lphdstxx -ldstana10 -luxxx -ltanagra322 -lpxtag25 -ltrigglib -luhlib -ldelanagen -ldelanamod -ldeltask';
$dellib .= " $libdir -lz";
#
# Cern and system libraries
@@ -1362,7 +1350,7 @@ sub MakeShorty {
#
# Compile and link the executable
#
- my $command = "$F77{$OS} $FFLAGS $LDFLAGS $ADDFOPT -o $lib.exe *.f $DELPHI_BLKD/delblkd.o -v $dellib $cernlib";
+ my $command = "$F77{$OS} -v $LDFLAGS $FFLAGS $ADDFOPT -o $lib.exe *.f $DELPHI_BLKD/delblkd.o -v $dellib $cernlib";
PrintInfo("running \"$command\"");
system($command);
if (not -f "$lib.exe") {
@@ -1388,7 +1376,7 @@ sub MakeLongy {
# make sure all necessary libraries are available
#
symlink "libtanagra322.a","$DELPHI_LIB/libtanagraxx.a" if -f "$DELPHI_LIB/libtanagra322.a";
- symlink "libux26.a","$DELPHI_LIB/libuxxx.a" if -f "$DELPHI_LIB/libux26.a";
+# symlink "libux26.a","$DELPHI_LIB/libuxxx.a" if -f "$DELPHI_LIB/libux26.a";
symlink "libpxtag25.a","$DELPHI_LIB/libpxtag2xx.a" if -f "$DELPHI_LIB/libpxtag25.a";
symlink "libpxdst33.a","$DELPHI_LIB/libpxdstxx.a" if -f "$DELPHI_LIB/libpxdst33.a";
symlink "libufield.a","$DELPHI_LIB/libufieldxx.a" if -f "$DELPHI_LIB/libufield.a";
@@ -1418,12 +1406,7 @@ sub MakeLongy {
# Delphi libraries
#
my $dellib = '-L$DELPHI_LIB -lphdstxx '; #phdst
- $dellib .= ' -ldstana10 -lufield -lvdclap -ldstana10 -lphdstxx ';
- if ($OS eq "Darwin") {
- $dellib .= " -lpxdstext"
- } else {
- $dellib .= " -lpxdst33"
- }
+ $dellib .= '-ldstana10 -lpxdst33 -lufield -lvdclap -lphdstxx -ldstana10 -luxxx -ltanagra322 -lpxtag25 -ltrigglib -luhlib -ldelanagen -ldelanamod -ldeltask';
$dellib .= " $libdir -lz";
#
# Cern and system libraries
@@ -1432,7 +1415,7 @@ sub MakeLongy {
#
# Compile and link the executable
#
- my $command = "$F77{$OS} $FFLAGS $LDFLAGS $ADDFOPT -fbounds-check -o $lib.exe *.f $DELPHI_BLKD/delblkd.o -v $dellib $cernlib";
+ my $command = "$F77{$OS} -v $LDFLAGS $FFLAGS $ADDFOPT -fbounds-check -o $lib.exe *.f $DELPHI_BLKD/delblkd.o -v $dellib $cernlib";
PrintInfo("running \"$command\"");
system($command);
if (not -f "$lib.exe") {
diff --git a/scripts/phlib.csh b/scripts/phlib.csh
index 60d0e7d703eaf9b4e3850105c39317a3a7e3e27b..e0fe43b34b802f0b9568827bd2655bc03523ec08 100755
--- a/scripts/phlib.csh
+++ b/scripts/phlib.csh
@@ -52,6 +52,7 @@ switch ( $Machine )
set CompileC = "cc -c -O2 -I/usr/local/include "
set Library = "ar srl "
breaksw
+ case LINUX:
case Linux:
set Ppatch = "LINUX, SHIFT"
set CompileF = "gfortran $FOPT -c"
@@ -59,6 +60,7 @@ switch ( $Machine )
set Library = "ar sr "
breaksw
case Darwin:
+ case DARWIN:
set Ppatch = "DARWIN, SHIFT"
set CompileF = "gfortran $FOPT -c"
set CompileC = "gcc $COPT -c"