- General information
- Data readiness
- Grid
- Infrastructure
- Offline Software
- Production
Additional software components
Submitted by jeromel on Thu, 2007-12-27 16:25.
Under:
Scope & audience
Described in Setting up your computing environment, OPTSTAR is the environment variable pointing to an area which will supplement the operating system installation of libraries and program. This area is fundamental to the STAR software installation as it will contain needed libraries, approved software component version, shared files, configuration and so on.
The following path should contain all software components as sources for you to install a fresh copy on your cluster:
/afs/rhic.bnl.gov/star/common
Note that this path should allow anyuser to read so there is no need for an AFS token. The note below are sparse and ONLY indicate special instructions you need to follow if any. In the absence of special instructions, the "standard" instructions are to be followed. None of the explanations below are aimed to target a regular user but aimed to target system administrator or software infrastructure personnel.
General
The directory tree /afs/rhic.bnl.gov/star/common contains packages installed on our farm in addition of the default distribution software packages coming with the operating system. At BNL, all packages referred here are installed in the AFS tree
/opt/star -> /afs/rhic.bnl.gov/@sys/opt/star/
Be aware of the intent explained in Setting up your computing environment as per the difference between $XOPTSTAR and OPTSTAR.
OPTSTAR will either
- at BNL or to a remote site: be used to indicate and access the local software BUT may be supported through a soft-link to the same AFS area as showed above whereas @sys will expand to the operating system of interest (see Setting up your computing environment as well for a support matrix)
- at a remote site, will point to a LOCAL (that is, non-networked) installation of the software components. This space could be anywhere on your local cluster but obviously, will have to be shared and visible from all nodes in your cluster.
XOPTSTAR
The emergence of $XOPTSTAR started from 2003 to provide better support for software installation to remote institutions. Many add path information to their configuration (like the infamous .la files) and previously installed in $OPTSTAR, remote sites had problems loading libraries for a path reason. Hence, and unless specified otherwise below, $XOPTSTAR will be used preferably at BNL for installation the software so remote access to the AFS repository and copy will be made maximally transparent.
In 2005, we added an additional tree level reflecting the possibility of multiple compilers and possible mismatch between fs sysname setups and operating system versions. Hence, you may see path like OPTSTAR=/opt/star/sl44_gcc346 but this structure is a detail and if the additional layer does not exist for your site, later login will nonetheless succeed. This additional level is defined by the STAR login environment $STAR_HOST_SYS. In the next section, we explained how to set this up from a "blank" site (i.e. a site without the STAR environment and software installed).
On remote sites where you decide to install the software components locally, you should use $OPTSTAR in the configure or make statements.
Basic starting point
From a blank node on remote site, be sure to have $OPTSTAR defined. You can do this by hand for example like this
% setenv OPTSTAR /usr/local
or
% mkdir -p /opt/star % setenv OPTSTAR /opt/star
are two possibilities. The second, being the default location of the software layer, will be automatically recognized by the STAR group login scripts. From this point, a few pre-requisites are
- you have to have a system with "a" compiler - we support gcc but also icc on Linux
- you should have the STAR group login scripts at hand (it could be from AFS). The STAR login scripts will NOT redefine $OPTSTAR if already defined.
Execute the STAR login. This will define $STAR_HOST_SYS appropriately. Then
% cd $OPTSTAR % mkdir $STAR_HOST_SYS % stardev
the definition of $OPTSTAR will change to the version dependent structure, adding $STAR_HOST_SYS to the path definition (the simple presence of the layer made the login script redefine it).
Software repository directory layout
Note the following layout :
perl Perl specific directory tree. Should be installed
first really (so many things depends on perl
nowadays). Installation order was
perl-5.6.1.tar.gz -- Moved to 5.8.0 starting from RH8
perl-5.8.0.tar.gz -- Solaris and True64 upgraded 2003
perl-5.8.4.tar.gz -- 2004, Scientific Linux
All default arguments apart from install prefix which value is
the value of $OPTSTAR. One question is about /opt/star/$STAR_HOST_SYS/bin
which may not exist at first (answer y always). Other questions follows
Do you want to install perl as /usr/bin/perl? [y] n
What is your e-mail address? [jeromel@rplay18.rcf.bnl.gov] jeromel@bnl.gov
The modules are installed using a bundle script (install_perlmods
located in /afs/rhic.bnl.gov/star/common/bin/).
It needs some work to get it generalized but the idea is that it
contains the dependencies and installation order . To install,
you can do the following (we assume install_perlmods is in the path
for simplicity and clarity)
0 first chose a work place where you would unpack the needed
modules. Let's assume this is /home/xxx/myworkplace
1 Check things out by running install_perlmods with arguments 0 as
follow
% install_perlmods 0 /home/xxx/myworkplace
It will tell you the list of modules you need to unpack. If
they are already unpacked and /home/xxx/myworkplace contains
all needed package directories, skip to step 3.
2 You can unpack manually OR use the command
% install_perlmods 1 /home/xxx/myworkplace
to do this automatically. Note that you could have skipped step
1 and do that from the start (if confident enough).
3 The steps above should have created a file named
/home/xxx/myworkplace/perlm-install-XXX.csh where XXX is the OS
you are working on. Note that the same install directory may
therefore be used for ALL platform on your cluster. However,
versionning is not (yet) supported.
Execute this script after checking its content. It will run
(hopefully smoothly) the perl Makerfile.PL and make / make install
commands.
Note that you could have also used
% install_perlmods 2 /home/xxx/myworkplace
and skipp step 1 & 2. In this mode, it unpacks and proceeds with
compilation. To do only if you have absolute blind faith in the
process (I don't and have written those scripts ;-) ).
-- below for a very specific set of machines
for consistency however, we used to have them on the Linux
side as well.
GD-1.33
GD-2.35 (SL4.4+) [answer N for support of animated GIF]
GDTextUtil-0.80
GDGraph-1.33
GIFgraph-1.20
Image::Magick is usually installed from the ImageMagick directory
rather than the downloaded module (this way, module and package
match exactly ; other combo lead to disaster).
After you install perl, and your setup is local (in /opt/star) you may want to do the following
% cd /opt/star % ln -s $STAR_HOST_SYS/* . % % # prepare for later directories packages will create % ln -s $STAR_HOST_SYS/share . % ln -s $STAR_HOST_SYS/include . % ln -s $STAR_HOST_SYS/info . % ln -s $STAR_HOST_SYS/etc . % ln -s $STAR_HOST_SYS/libexec . % ln -s $STAR_HOST_SYS/qt . % ln -s $STAR_HOST_SYS/jed . %
While some of those directories will not yet exist, this will create a base set of directories (without the additional compiler / OS version) supporting future upgrades via the "default" set of directories. In other words, any future upgrade of compilers for example leading to a different $STAR_HOST_SYS will still lead as well to a functional environment as far as compatibility exists. Whenever compatibility will be broken, you will need of course to re-create a new $STAR_HOST_SYS tree.
At this stage, you should install as much of the libraries in $OPTSTAR and re-address the perl modules later as some depends on installed libraries necessary for the STAR environment to be functional.
Others/ [PLEASE READ, SOME PACKAGE MAY HAVE EXCEPTION NOTES]
Needed on Other platform (but there on Linux). Unless specified
otherwise, the packages were build with the default values.
make-3.80
tar-1.13
flex-2.5.4
xpm-3.4k
libpng-1.0.9
mysql-3.23.43 on Solaris
mysql-3.23.55 starting from True64 days (should be tried as
an upgraded version of teh API)
BEWARE mysql-4.0.17 was tried and is flawed.
We also use native distribution MySQL
mysql-4.1.22 *** IMPORTANT *** Actually this was an upgrade
on SL4.4 (not necessary but the default 4.1.20
has some bugs)
<gcc-2.95.2>
dejagnu-1.4.1
gdb-5.2
texinfo-4.3
emacs-20.7
findutils-4.1
fileutils-4.1
cvs-1.11 -- perl is needed before hand as it folds
it in generated scripts
grep-2.5.1a Started on Solaris 5.9 in 2005 as ROOT would complain
about too old version of egrep
This may be needed if not installed on your system. It is part of a needed
autoconf/automake deployement.
m4-1.4.1
autoconf-2.53
automake-1.6.3
libtool-1.5.8
Linux only
valgrind-2.2.0
valgrind-3.2.3 SL 4.4+
General/ The installed packages/sources for diverse
software layers. The order of installation was
ImageMagick-5.4.3-9.tar.gz On RedHat 8+, not needed for SL/RHE
slang-1.4.5 On RedHat 8+, not needed for SL/RHE
lynx2-8-2
lynx2-8-5 Starting from SL/RHE
xv-3.10a
nedit-5.2-src No need on SL/RHE
pythia5
pythia6
qt-x11-free-3.1.0
qt-x11-free-3.3.1 Starting with SL/RHE
text2c
icalc
dejagnu-1.4.1 Optional / Dropped from SL3.0.5
gdb-5.1.91 For RH lower versions - Not RedHat , 8+
gdb-6.2 (patched) Done for SL3
chtext
jed-0.99-16
doxygen-1.3.5
doxygen-1.3.7 Starting with SL/RHE
astyle_1.15.3 Started from SL3/RHE upon user request
astyle_1.19 SL4.4 and above
unixODBC-2.2.6 (depend on Qt) Linux only for now
MyODBC-3.51.06 Linux only for now
MyODBC-3.51.12 Started from SL4.4 (but really needed for mysql 4.1+)
mysql-connector-odbc-3.51.12 <-- new name under 51.12. BEWARE.
log4cxx 0.9.7 Linux only for now
Not necessary (installed but untested)
chksum
pine4.64 Added at SL4.4 as removed from base install at BNL
Retired
xemacs-21.5.15 << Linux only -- This was temporary and removed
Other directories are
WorkStation/ contains packages such as OpenAFS or OpenOffice Linux
WebServer/ mostly perl modules needed for our WebServer
Linux/ Linux specific utilities (does not fit in General) or
packages tested under Linux only.
Some notes about packages :
Most of them are pretty straight forward to install (like ./configure
make ; make install (changing the base path /usr/local to $OPTSTAR).
With configure, this is done using either
./configure --prefix=$OPTSTAR
./configure --prefix=$XOPTSTAR
Specific notes follows and include packages which are NOT yet official
but tried out.
- Beware that the Msql-Mysql-modules perl module requires a hack
I have not quite understood yet how to make automatic (the
advertized --blabla do not seem to work) on platforms supporting
the client in OPTSTAR
INC = ... -I$(XOPTSTAR)/include/mysql ...
H_FILES = $(XOPTSTAR)/include/mysql/mysql.h
OTHERLDFLAGS = -L$(XOPTSTAR)/lib/mysql
LDLOADLIBS = -lmysqlclient -lm -lz
- GD-2+
Do NOT select support for animated GIF. This will fail on standard
SL distributions (default gd lib has no support for that).
- ImageMagick : really easy to install but however, the PerlMagick
part should be installed separatly (the usual perl module way). I
used the distribution's module. Therefore, that perl-module is
not in perl/Installed/ as the other perl-modules.
The copy of PerlMagick to /bin/ by default will fail so you may
want to additionally do
% make install-info
% make install-data-html
which comes later depending on version.
- lynx2-8-2 / lynx2-8-5
Note: First, I tried lynx2-8-4 and the make file / configure
is a real disaster. For 2-8-2/2-8-5, follow the notes
below
General :
% ./configure --prefix=$XOPTSTAR {--with-screen=slang}
Do not forget to
% make install-help
% make install-doc
caveat 1 -- Linux (lynx 2-8-2 only, fixed at 2-8-5)
$OPTSTAR/lib/lynx.cfg was modified as follow
96,97c96,97
< #HELPFILE:http://www.crl.com/~subir/lynx/lynx_help/lynx_help_main.html
< HELPFILE:file://localhost/opt/star/lib/lynx_help/lynx_help_main.html
---HELPFILE:http://www.crl.com/~subir/lynx/lynx_help/lynx_help_main.html
#HELPFILE:file://localhost/PATH_TO/lynx_help/lynx_help_main.html
For using curses (needed under Linux, otherwise, the screen looks funny),
one has to do a few manipulation by hand i.e.
. start with ./configure --prefix=$XOPTSTAR --with-screen=slang
. edit the makefile and add -DUSE_SLANG to SITE_DEFS
. change CPPFLAGS from /usr/local/slang to $OPTSTAR/include [when slang is local]
Version 2-8-5 has this issue fixed.
. Change LIBS -lslang to -L$OPTSTAR/lib -lslang
. You are ready now
There is probably an easier way but as usual, I gave up after close
to 15mnts reading, as much struggle and complete flop at the end ..
caveta 2 -- Solaris/True64 :
We did not build with slang but native (slang screws colors up)
- xv-3.10a . Is distributed already patched. The patches were as
follow
% sed "s|/usr/local|$OPTSTAR|" MakeFile >Makefile.new
% mv Makefile.new Makefile
and in xv.h, line 119 becomes
# if !defined(__NetBSD__) && ! defined(__USE_BSD)
PLEASE : Note that xv is licensed so the usage as to remain stricly
for your users' amusement only. If you use this package for doing
any work, you are violating the law. Please, read the license agreement
at http://www.trilon.com/xv/pricing.html
caveat 1 -- SL/RHE
% make depend
Will generate some warnings. Ignore then. However, I had to go in the tiff/
directory and do
% make -f Makefile.gcc
to generate the mkg3states (itself creating the g3states.h file) as it did
not work.
% make install BINDIR=$OPTSTAR
- Nedit. There is no install provided. I did
% make linux
% cp source/nc source/nedit $OPTSTAR/bin/
% cp doc/nc.man $OPTSTAR/man/man1/nc.1
% cp doc/nedit.man $OPTSTAR/man/man1/nedit.1
% make dec
% make solaris
- Pythia libraries :
The unpacking is "raw". So, go in a working directory where the .tar.gz are,
and do the following
(for linux)
% mkdir Pythia && cd Pythia && tar -xzf ../pythia5.tar.gz
% ./makePythia.linux
% mv libPythia.so $OPTSTAR/lib/
% cd ..
%
% mkdir Pythia6 && cd Pythia6 && tar -xzf ../pythia6.tar.gz
% test -e main.c && rm -f main.c
% ./makePythia6.linux
% mv libPythia6.so $OPTSTAR/lib
%
% rm -fr Pythia Pythia6
Substitute linux with solaris for Solaris platform.
On Solaris, Pythia6 requires gcc to build/link.
True64
pythia5 --> chmod +x ./makePythia.alpha && ./makePythia.alpha
Pythia6 --> chmod +x ./makePythia6.alpha && ./makePythia6.alpha
The following script was used to split the code which was too big
#!/usr/bin/env perl
$filin = $ARGV[0];
open(FI,$filin);
$idx = $i = 0;
while( defined($line = <FI>) ){
chomp($line); $i++;
if ($i >= 500 && $line =~ /subroutine/){
$i = 0;
$idx++;
}
if ($i == 0){
close(FO);
open(FO,">$idx.$filin");
print "Opening $idx.$filin\n";
}
print FO "$line\n";
}
close(FO);
close(FI);
- Qt
Horribly packaged, the easiest is to unpack in $OPTSTAR, cd to
qt-x11-free-3.X.X (where X.X stands for the current sub-version
deployed on our node), run the configure script, make the package,
then make clean. Then, link
% cd $OPTSTAR && ln -s qt-x11-free-3.X.X qt
Later release can be build that way with changing the soft-link
without removing the preceeding version entirely.
Before building, do the following (if you had previous version
of Qt installed). This is not necessary if you install the
package the first time around. Please, close windows after
compilation to ensure STAR path sanity.
% cd $OPTSTAR/qt
% setenv QTDIR `pwd`
% setenv LD_LIBRARY_PATH `pwd`/lib:$LD_LIBRARY_PATH
% setenv PATH `pwd`/bin:$PATH
Linux gcc: ./configure --prefix=`pwd` -no-xft -thread
Linux icc: ./configure --prefix=`pwd` -no-xft -thread -platform linux-icc
True64 : ./configure --prefix=`pwd` -no-xft -thread
Solaris: ./configure --prefix=`pwd` -no-xft
In case of thread, the regular version is build first then the
threaded version (so far, they have different names and no Soft
links).
- Flex is usually not needed but some OS have pre-GNU flex
not adequate so I would recommend to deploy flex-2.5.4
anyway (the latest version since Linux 2001)
- Xpm (Solaris)
% xmkmf
% make Makefiles
% make includes
% make
I ran the install command by hand changing the path (cut and paste)
Had to
% cd lib
% installbsd -c -m 0644 libXpm.so $OPTSTAR/lib
% installbsd -c -m 0644 libXpm.a $OPTSTAR/lib
% cd ..
% cd sxpm/
% installbsd -c sxpm $OPTSTAR/bin
% cd ../cxpm/
% installbsd -c cxpm $OPTSTAR/bin
%
Onsolaris, the .a was not there, add to
% cd lib && ar -q libXpm.a *.o && cp libXpm.a $OPTSTAR/lib
% cd ..
Addiitionally needed
% if ( ! -e $OPTSTAR/include) mkdir $OPTSTAR/include
% cp lib/xpm.h $OPTSTAR/include/
- libpng
** Solaris **
% cat scripts/makefile.solaris | sed "s/-Wall //" > scripts/makefile.solaris2
% cat scripts/makefile.solaris2 | sed "s/gcc/cc/" > scripts/makefile.solaris3
% cat scripts/makefile.solaris3 | sed "s/-O3/-O/" > scripts/makefile.solaris2
% cat scripts/makefile.solaris2 | sed "s/-fPIC/-KPIC/" > scripts/makefile.solaris3
%
% make -f scripts/makefile.solaris3
will eventually fail related to libucb. No worry, this can be sorted
out (http://www.unixguide.net/sun/solaris2faq.shtml) by including
/usr/ucblib in the -L list
% cc -o pngtest -I/usr/local/include -O pngtest.o -L. -R. -L/usr/local/lib -L/usr/ucblib -R/usr/local/lib -lpng -lz -lm
% make -f scripts/makefile.solaris3 install prefix=$OPTSTAR
** True64 **
Copy the make file but most likely, a change like
ZLIBINC = $(OPTSTAR)/include
ZLIBLIB = $(OPTSTAR)/lib
in the makefile is neeed.
pngconf.h and png.h needed for installation and either .a or .a + .so
cp pngconf.h png.h $OPTSTAR/include/
cp libpng.* $OPTSTAR/lib
- mysql client (Solaris)
% ./configure --prefix=$XOPTSTAR --without-server {--enable-thread-safe-client}
(very smooth)
The latest option is needed to create the libmysqlclient_r needed by some
applications. While this so is build with early version of MySQL, version
4.1+ requires the configure option explicitly.
- dejagnu-1.4.1 [Solaris specific]
the install program was not found.
% cd doc/ && cp ./runtest.1 $OPTSTAR/man/man1/runtest.1
% chmod 644 $OPTSTAR/man/man1/runtest.1
- Jed
Note: the below tweak may not be needed on SL/RHE
% ./configure --prefix=$OPTSTAR
Edit the configure script and add $OPTSTAR (possibly /opt/star)
to it as follow.
JD_Search_Dirs="$JD_Search_Dirs \
$includedir,$libdir \
/opt/star/include,/opt/star/lib \
/usr/local/include,/usr/local/lib \
/usr/include,/usr/lib \
/usr/include/slang,/usr/lib \
/usr/include/slang,/usr/lib/slang"
All fine afterward
% make
% make xjed
% make install
I had to make some hack on AIX (well, who wants to run on AIX
in the first place right ?? but since AIX do not have any emacs
etc ...jed is great) as follow
* make a copy of unistd.h and comment the sleep() prototype
* modify file.c to include the local version (replace <> by "")
* modify main.c to include sys/io.h (and not io.h) and comment
out direct.h
Voila (works like a charm, don't ask).
64 bit issue. It tried to do something along the line of -L/usr/X11R6/lib64
-lX11 but did not find 64 bits X11 libs.
- emacs
Was repacked with leim package (instead of keeping both separatly)
in addition of having a patch in src/s/sol2.h for solaris as follow
#define HAVE_VFORK 1
#endif
+/* Newer versions of Solaris have bcopy etc. as functions, with
+ prototypes in strings.h. They lose if the defines from usg5-4.h
+ are visible, which happens when X headers are included. */
+#ifdef HAVE_BCOPY
+#undef bcopy
+#undef bzero
+#undef bcmp
+#ifndef NOT_C_CODE
+#include <strings.h>
+#endif
+#endif
+
Nothing to do differently here. This is just a note to keep track
of changes found from community mailing lists.
% ./configure --prefix=$OPTSTAR --without-gcc
- Xemacs (Solaris)
% ./configure --without-gcc --prefix=$OPTSTAR
Other solution, forcing Xpm
% ./configure --without-gcc --prefix=$OPTSTAR --with-xpm --site-prefixes=$OPTSTAR
Possible code problem :
/* #include <X11/xpm.h> */
#include <xpm.h>
- gcc-2.95 On Solaris was used as a base compiler
% ./configure --prefix=$OPTSTAR
% make bootstrap
o Additional gcc on Linux
Had to do it in multiple passes (you do not need to do the first pass
elsewhere ; this is just because we started without a valid node).
A gcc version < 2.95.2 had to be used. I used a 6.1 node to assemble
it and install in a specific AFS tree (cross version)
% cd /opt/star && ln -s /afs/rhic/i386_linux24/opt/star/alt .
Move to the gcc source directory
% ./configure --prefix=/opt/star/alt
% make bootstrap
% make install
install may fail in AFS land. Edit gcc/Makefile and remove "p" option
to the tar options TAROUTOPTS .
For it work under 7.2, go on a 7.2 node and
% cp /opt/star/alt/include/g++-3/streambuf.h /opt/star/alt/include/g++-3/streambuf.h-init
% cp -f /usr/include/g++-3/streambuf.h /opt/star/alt/include/g++-3/streambuf.h
... don't ask ...
o On Solaris, no problems
% ./configure --prefix=/opt/star/alt
etc ...
- Compress-Zlib-1.12 --> zlib-1.1.4
If installed in $OPTSTAR,
% setenv ZLIB_LIB $OPTSTAR/lib
% setenv ZLIB_INCLUDE $OPTSTAR/include
- findutil
Needed a patch in lib/fnmatch.h for True64
as follow :
+ addition of defined(__GNUC__) on line 49
+ do a chmod +rw lib/fnmatch.h first
#if !defined (_POSIX_C_SOURCE) || _POSIX_C_SOURCE < 2 || defined (_GNU_SOURCE) || defined(__GNUC__)
- unixODBC
./configure --prefix=$XOPTSTAR [CC=icc CXX=icc]
- MyODBC
Linux % ./configure --prefix=$XOPTSTAR --with-unixODBC=$XOPTSTAR [CC=icc CXX=icc]
Others % ./configure --prefix=$XOPTSTAR --with-unixODBC=$XOPTSTAR --with-mysql-libs=$XOPTSTAR/lib/mysql --with-mysql-includes=$XOPTSTAR/include/mysql --with-mysql-path=$XOPTSTAR
Note : Because of an unknown issue, I had to use --disable-gui on True64
as it would complain about not finding the X include ... GUI is
not important for ODBC client anyway but whenever time allows ...
Deploy instructions at http://www.mysql.com/products/myodbc/faq_toc.html
- doxygen
Installation sucks
% ./configure --prefix $OPTSTAR
% make
% make install
as usual but
% make docs
which will fail due to missing eps2pdf program. Will create however the
HTML files you will need to copy somewhere.
% cp -r html $WhereverTheyShouldGo
for example
% cp -r html /afs/rhic.bnl.gov/star/doc/www/comp/sofi/doxygen
* CLHEP1.8 *** Experimental only ***
printVersion.cc needs a correction #include <string> to <string.h>
for True64 which is a bit strict in terms of compilation.
On Solaris, 2 caveats
o gcc was used (claim that CC is used but do not have the include)
o install failed running a "kdir" command instead of mkdir so do a
% make install MKDIR='mkdir -p'
Using icc
- mysqlcc
./configure --prefix=$OPTSTAR --with-mysql-include=$OPTSTAR/include/mysql --with-mysql-lib=$OPTSTAR/lib/mysql
The excutable do not install itself so, one needs to
% cp -f mysqlcc $OPTSTAR/bin/
- gdb (patch)
in gdb/linux-nat.c
/*
fprintf_filtered (gdb_stdout,
"Detaching after fork from child process %d.\n",
child_pid);
*/
and go (no, I won't explain).
- astyle
+ All
Find where the code really unpacks. There are no configure for this
package.
% cd astyle_1.15.3 or cd astyle/src
% make
% cp astyle $OPTSTAR/bin/
A crummy man page was added (will make it better later if really
important). It was generted as follow and provided for convenience
in the packages for STAR
% lynx -dump astyle.html >astyle.pod
[... some massage ...]
% pod2man astyle.pod >astyle.man
And install
% cp astyle.man $OPTSTAR/man/man1/astyle.1
+ only for 1.15.3
Comes as a zip archive. Be aware that unpacking extracts files
in the current directory. So, the package was remade for
convenience.
Although written in C++, this executable will perform as expected
under icc environment.
On SL4, gcc 3.4.3, add -fpermissive to the Makefile CPPFLAGS.
* valgrind
MUST be installed using $XOPTSTAR because there is an explicit
reference to the install path. Copying to a local /opt/star would
therefore not work.
For icc, use the regular command as this is a self-contained program
without C++ crap and can be copied from gcc/icc directory. The command
is
% ./configure --prefix=$XOPTSTAR
Version 2.2
-----------
A few hacks were made on the package, a go-and-learn experience as
problems appeared
coregrind/vg_include.h
123c123
< #define VG_N_RWLOCKS 5000
---
#define VG_N_RWLOCKS 500
coregrind/vg_libpthread.vs 195a196
__pthread_clock_gettime; __pthread_clock_settime;
to solve problems encountered with large programs and pthread. - log4cxx 0.9.x log4cxx 0.9.5 ------------- There is a bug on Linux so, start with commenting all lines related to HAVE_LINUX_ATOMIC_OPERATIONS in configure.in before the below. Finally, two code had to be patched are now repacked - filewatchdog.cpp line 21: comment #ifdef WIN32 and the associated #endif - cocketimpl.cpp line 41: add #include <errno.h> For ODBC support, one needs % setenv CPPFLAGS "-I$XOPTSTAR/include" % setenv LDFLAGS "-L$XOPTSTAR/lib" log4cxx 0.9.7 ------------- Also need to do the below or it will not even find the libs at configure. % setenv CPPFLAGS "-I$XOPTSTAR/include" % setenv LDFLAGS "-L$XOPTSTAR/lib" Scientific Linux 4.4 aka Linux 2.6 #AC_CHECK_FUNCS(gettimeofday ftime setenv) AC_CHECK_FUNCS(setenv) Linux 7.3 distributions note ............................ On Version 7.3 of Linux, this is hard to install. You will need to upgrade m4, autoconf to at the least the versions specified for "other platforms". It won't compile easily with gcc 2.96 though. But it can using % ./configure --prefix=$OPTSTAR CC=/usr/bin/gcc3 CXX=/usr/bin/g++3 if you have all gcc 3 ready. Finally, if you install log4cxx from a new Linux version (especially one having a different version of autoconf tools), you better start from a fresh directory and not attempt to use the 'clean' target (it will fail). Linux gcc (general instructions, all log4cxx) .............................................. % ./autogen.sh % ./configure --prefix=$OPTSTAR [--with-ODBC=unixODBC] Linux icc ......... % setup icc % ./configure --prefix=$XOPTSTAR CC=icc CXX=icc [--with-ODBC=unixODBC] If icc is the second target, you should use 'make clean' before the configure. Solaris ....... Does not configure (need the autoconf tools) True64 ...... Not tried yet - libxml2 Platform: so far needed to update RH 8.0 only, add to propagate to other platform in 2006 due to a component dependence issue. % ./configure --without-python --prefix=$XOPTSTAR - pine Re-added at BNL since SL4.4 because it was removed from the base installation, this may not be needed for your site (install from RPM, it exists). Scientific Linux (don't get fooled by the targets) % ./build lrh % cp bin/pine bin/pico $OPTSTAR/bin/
