#!/bin/bash # # Author: K. Read # # This script makes PAR files without requiring write access to # $ALICE_ROOT. It is not necessary to first make AliRoot after doing # an svn checkout or update. Execute this script in your local area # with write access. # # Usage: # parmaker JETAN # parmaker JETAN remote # parmaker JETAN remote patch # parmaker all remote # # So far only available for these par files: # ANALYSIS ANALYSISalice AOD EMCALUtils ESD FASTJETAN JETAN # PHOSUtils PWG4PartCorrBase PWG4PartCorrDep STEERBase # case $2 in "remote") case $1 in "all") ./parmaker ANALYSIS remote ./parmaker ANALYSISalice remote ./parmaker AOD remote ./parmaker EMCALUtils remote ./parmaker ESD remote ./parmaker FASTJETAN remote ./parmaker JETAN remote ./parmaker PHOSUtils remote ./parmaker PWG4PartCorrBase remote ./parmaker PWG4PartCorrDep remote ./parmaker STEERBase remote echo " " echo "finished making complete set of par files" exit ;; "ANALYSIS") parmaker_input_basedir="ANALYSIS" parmaker_input_dir_subdir="ANALYSIS" parmaker_output_dir_subdir="ANALYSIS" ;; "ANALYSISalice") parmaker_input_basedir="ANALYSIS" parmaker_input_dir_subdir="ANALYSIS" parmaker_output_dir_subdir="ANALYSISalice" ;; "AOD") parmaker_input_basedir="STEER" parmaker_input_dir_subdir="STEER" parmaker_output_dir_subdir="AOD" ;; "EMCALUtils") parmaker_input_basedir="EMCAL" parmaker_input_dir_subdir="EMCAL" parmaker_output_dir_subdir="EMCALUtils" ;; "ESD") parmaker_input_basedir="STEER" parmaker_input_dir_subdir="STEER" parmaker_output_dir_subdir="ESD" ;; "PHOSUtils") parmaker_input_basedir="PHOS" parmaker_input_dir_subdir="PHOS" parmaker_output_dir_subdir="PHOSUtils" ;; "PWG4PartCorrBase") parmaker_input_basedir="PWG4" parmaker_input_dir_subdir="PWG4/PartCorrBase" parmaker_output_dir_subdir="PWG4PartCorrBase/PartCorrBase" ;; "PWG4PartCorrDep") parmaker_input_basedir="PWG4" parmaker_input_dir_subdir="PWG4/PartCorrDep" parmaker_output_dir_subdir="PWG4PartCorrDep/PartCorrDep" ;; "STEERBase") parmaker_input_basedir="STEER" parmaker_input_dir_subdir="STEER" parmaker_output_dir_subdir="STEERBase" ;; "JETAN") parmaker_input_basedir="JETAN" parmaker_input_dir_subdir="JETAN" parmaker_output_dir_subdir="JETAN" ;; "FASTJETAN") parmaker_input_basedir="JETAN" parmaker_input_dir_subdir="JETAN" parmaker_output_dir_subdir="FASTJETAN" ;; *) echo "parmaker: I'm sorry Dave, I'm afraid I can't do that." exit esac echo " " echo "parmaker to use source $ALICE_ROOT/$parmaker_input_dir_subdir" if [ -e "$ALICE_ROOT/$parmaker_input_dir_subdir" ] then echo "parmaker creating $1.par" mkdir $1 if [ $parmaker_input_basedir != $parmaker_input_dir_subdir ] then mkdir $parmaker_output_dir_subdir fi list=`grep Ali ${ALICE_ROOT}/${parmaker_input_basedir}/lib${1}.pkg | sed -e '/EXPORT/d' -e '/EINCLUDE/d' -e 's:.cxx::g' -e 's:SRCS::' -e 's:=::' -e 's:+::' -e 's:\\\::'` for i in $list; do # echo "adding:" $i cp $ALICE_ROOT/$parmaker_input_basedir/$i.cxx $parmaker_output_dir_subdir cp $ALICE_ROOT/$parmaker_input_basedir/$i.h $parmaker_output_dir_subdir done mkdir $1/PROOF-INF cp -r $ALICE_ROOT/$parmaker_input_basedir/PROOF-INF.$1/* $1/PROOF-INF cp $ALICE_ROOT/$parmaker_input_basedir/${1}LinkDef.h $1 cp $ALICE_ROOT/$parmaker_input_basedir/lib${1}.pkg $1 cp $ROOTSYS/test/Makefile.arch $1 cp $ALICE_ROOT/$parmaker_input_basedir/Makefile $1/Makefiletemp sed -e 's:include \$(ROOTSYS)\/test\/Makefile.arch:include Makefile.arch:' -e "s:PACKAGE = .*:PACKAGE = ${1}:" $1/Makefiletemp > $1/Makefile /bin/rm $1/Makefiletemp # Apply temporary patches. if [ -z $3 ] then echo "no non-standard patches applied" else if [ $3 = "patch" ] then if [ -e "patches/$1" ] then echo "applying temporary $1 patch" cp patches/$1/* $parmaker_output_dir_subdir echo "completed temporary $1 patch" else echo "no patches found for $1" fi else echo "argument $3 not processed" fi fi # Apply further FASTJETAN tweaks. if [ $1 = "FASTJETAN" ] then echo "Making temporary adjustments to FASTJETAN.par." cp -r $ALICE_ROOT/JETAN/fastjet FASTJETAN sed -e "s:CXXFLAGS +:\nALICEINC += -I../JETAN -I./fastjet -I./fastjet/fastjet\n\n\nCXXFLAGS +:" FASTJETAN/Makefile > FASTJETAN/Makefile2 mv FASTJETAN/Makefile2 FASTJETAN/Makefile fi tar cfzh $1.par $1 /bin/rm -rf $1 fi ;; *) echo "parmaker to use local source $1" if [ -e "$1" ] then echo "parmaker creating $1.par" tar cfzh $1.par $1 else echo "local subdirectory $1 not found" fi esac