From 5cfc8dd5c544eabe1bf2256d3ea02513b4efbe8b Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Wed, 17 Apr 2024 19:29:12 -0400 Subject: [PATCH 01/17] move more build scripts to Makefile --- Makefile | 152 +++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 97 insertions(+), 55 deletions(-) diff --git a/Makefile b/Makefile index aa7e6bd..54cd681 100644 --- a/Makefile +++ b/Makefile @@ -1,82 +1,45 @@ TOP = $(shell pwd) -SUBDIRS = clasdis claspyth dvcsgen inclusive-dis-rad TCSGen genKYandOnePion JPsiGen twopeg MCEGENpiN_radcorr deep-pipi-gen genepi gibuu onepigen genie - -build: gibuu - mkdir -p bin lib - $(MAKE) -C clasdis - $(MAKE) -C claspyth - $(MAKE) -C dvcsgen - $(MAKE) -C genKYandOnePion - $(MAKE) -C inclusive-dis-rad - $(MAKE) -C JPsiGen - $(MAKE) -C TCSGen - $(MAKE) -C MCEGENpiN_radcorr - $(MAKE) -C deep-pipi-gen - $(MAKE) -C genepi - $(MAKE) -C onepigen - $(MAKE) -C genie - # twopeg needs c++17 support: - sed -i 's/\(^CXX .*= g++ \)/\1 -std=c++17 /' twopeg/Makefile - # seems twopeg has a non-standard(?) Makefile and requires this instead: - cd twopeg ; $(MAKE) nobos ; cd -- - # clas12-elSpectro uses cmake: - + mkdir build && cd build && cmake -DCMAKE_CXX_COMPILER=`which g++` -DCMAKE_C_COMPILER=`which gcc` ../ && cmake --build . --target install && cd .. - install clas12-elSpectro/elSpectro/jpacPhoto/lib/* lib - install clasdis/clasdis bin - install claspyth/claspyth bin - install dvcsgen/dvcsgen bin - install genKYandOnePion/genKYandOnePion bin - install inclusive-dis-rad/inclusive-dis-rad bin - install JPsiGen/JPsiGen.exe bin - install JPsiGen/JPsiGen bin - install twopeg/twopeg bin - install JPsiGen/lib/libJPsiGen.so lib - install TCSGen/TCSGen.exe bin - install TCSGen/TCSGen bin - install TCSGen/lib/libTCSGen.so lib - install MCEGENpiN_radcorr/MCEGENpiN_radcorr bin - install deep-pipi-gen/deep-pipi-gen bin - install genepi/genepi bin - install generate-seeds.py bin - install onepigen/onepigen bin - install onepigen/onepigen_lund bin - rm -rf build +SUBDIRS = clasdis claspyth dvcsgen inclusive-dis-rad TCSGen genKYandOnePion JPsiGen MCEGENpiN_radcorr deep-pipi-gen genepi onepigen -clean: prune - rm -rf bin lib lib64 build share include etc +all: gibuu genie twopeg elspectro for dir in $(SUBDIRS); do\ - $(MAKE) -C $$dir clean; \ + $(MAKE) -C $$dir; \ done -prune: - rm -rf LHAPDF* log4cpp* pythia6* +elspectro: + rm -rf build && mkdir build + + cd build && cmake -DCMAKE_CXX_COMPILER=`which g++` -DCMAKE_C_COMPILER=`which gcc` ../ + + cd build && cmake --build . --target install && cd .. + +twopeg: + sed -i 's/\(^CXX .*= g++ \)/\1 -std=c++17 /' twopeg/Makefile + cd twopeg && $(MAKE) nobos gibuu: lhapdf $(MAKE) -C gibuu - install -D gibuu/gibuu bin - install -D gibuu/release/objects/GiBUU.x bin - install -D gibuu/gibuu2lund bin -lhapdf: +lhapdf: lib/libLHAPDF.so +log4cpp: lib/liblog4cpp.so +pythia6: lib/libPythia6.so + +lib/libLHAPDF.so: $(eval V := 6.5.4) wget https://lhapdf.hepforge.org/downloads/?f=LHAPDF-${V}.tar.gz -O LHAPDF-${V}.tar.gz tar -xzvf LHAPDF-${V}.tar.gz cd LHAPDF-${V} && ./configure --prefix=${TOP} $(MAKE) -C LHAPDF-${V} $(MAKE) -C LHAPDF-${V} install - rm -rf LHAPDF* -log4cpp: +lib/liblog4cpp.so: wget https://sourceforge.net/projects/log4cpp/files/log4cpp-1.1.x%20%28new%29/log4cpp-1.1/log4cpp-1.1.4.tar.gz tar -xzvf log4cpp-1.1.4.tar.gz cd log4cpp && ./configure --prefix=${TOP} $(MAKE) -C log4cpp $(MAKE) -C log4cpp install - rm -rf log4cpp* -pythia6: +lib/libPythia6.so: wget https://root.cern/download/pythia6.tar.gz tar -xzvf pythia6.tar.gz sed -i 's/^char /extern char /' ./pythia6/pythia6_common_address.c @@ -85,3 +48,82 @@ pythia6: cd pythia6 && ./makePythia6.linuxx8664 install -D pythia6/libPythia6.so lib +lib/libgsl.so: + wget https://ftp.gnu.org/gnu/gsl/gsl-2.7.tar.gz + tar -xzvf gsl-2.7.tar.gz + cd gsl-2.7 && ./configure --prefix=${TOP} + $(MAKE) -C gsl-2.7 + $(MAKE) -C gsl-2.7 install + +lib/libxml2.so: + wget http://mirror.umd.edu/gnome/sources/libxml2/2.11/libxml2-2.11.0.tar.xz + tar -xJvf libxml2-2.11.0.tar.xz + cd libxml2-2.11.0 && ./configure --prefix=${TOP} --without-python + $(MAKE) -C libxml2-2.11.0 + $(MAKE) -C libxml2-2.11.0 install + +root: pythia6 + $(eval V := 6.30.04) + wget https://root.cern/download/root_v${V}.source.tar.gz + tar xzf root_v${V}.source.tar.gz + mv root-${V} ${SOURCE_DIR} + + cmake -S ${SOURCE_DIR} -B ${BUILD_DIR} \ + -DCMAKE_CXX_STANDARD=17 \ + -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} \ + -Dbuiltin_glew=ON \ + -Dmathmore=ON \ + -Dfftw3=ON \ + -Dpythia6=ON \ + -DPYTHIA6_LIBRARY=${PYTHIA_LIB} + + cmake --build ${BUILD_DIR} --target install -- -j${NTHREADS} + cp -f ${PYTHIA_LIB} ${INSTALL_DIR/lib} + +genie: pythia6 lhapdf + git clone -b R-3_04_00 --depth 1 https://github.com/GENIE-MC/Generator.git genie + cd genie && ./configure \ + --prefix=${TOP} --disable-profiler --disable-validation-tools \ + --disable-doxygen --disable-cernlib --disable-lhapdf5 --enable-lhapdf6 \ + --enable-flux-drivers --enable-geom-drivers --enable-dylibversion --enable-nucleon-decay \ + --enable-test --enable-mueloss --enable-t2k --enable-fnal --enable-atmo \ + --disable-masterclass --disable-debug --with-optimiz-level=O2 \ + --with-pythia6-lib=${TOP}/lib --with-lhapdf6-inc=${TOP}/include --with-lhapdf6-lib=${TOP}/lib \ + --with-log4cpp-inc=${TOP}/include --with-log4cpp-lib=${TOP}/lib + $(MAKE) -C genie + $(MAKE) -C genie install + +install: + install -D clas12-elSpectro/elSpectro/jpacPhoto/lib/* lib + install -D clasdis/clasdis bin + install -D claspyth/claspyth bin + install -D dvcsgen/dvcsgen bin + install -D genKYandOnePion/genKYandOnePion bin + install -D inclusive-dis-rad/inclusive-dis-rad bin + install -D JPsiGen/JPsiGen.exe bin + install -D JPsiGen/JPsiGen bin + install -D twopeg/twopeg bin + install -D JPsiGen/lib/libJPsiGen.so lib + install -D TCSGen/TCSGen.exe bin + install -D TCSGen/TCSGen bin + install -D TCSGen/lib/libTCSGen.so lib + install -D MCEGENpiN_radcorr/MCEGENpiN_radcorr bin + install -D deep-pipi-gen/deep-pipi-gen bin + install -D genepi/genepi bin + install -D generate-seeds.py bin + install -D onepigen/onepigen bin + install -D onepigen/onepigen_lund bin + install -D gibuu/gibuu bin + install -D gibuu/release/objects/GiBUU.x bin + install -D gibuu/gibuu2lund bin + +clean: prune + rm -rf bin lib lib64 build share include etc + for dir in $(SUBDIRS); do\ + $(MAKE) -C $$dir clean; \ + done + $(MAKE) -C twopeg clean +#$(MAKE) -C gibuu clean +#$(MAKE) -C genie clean + +prune: + rm -rf LHAPDF* log4cpp* pythia6* gsl* build + From 42ac0327e91e2b4022ef07a22c5da8f7a9c47322 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Wed, 17 Apr 2024 19:30:51 -0400 Subject: [PATCH 02/17] cleanup --- .gitignore | 3 +++ Makefile | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index f277edf..1f09899 100644 --- a/.gitignore +++ b/.gitignore @@ -18,3 +18,6 @@ errors.txt .lesshst RNDMSTATUS LHAPDF* +genie +log4cpp +pythia6 diff --git a/Makefile b/Makefile index 54cd681..61f5e23 100644 --- a/Makefile +++ b/Makefile @@ -125,5 +125,5 @@ clean: prune #$(MAKE) -C genie clean prune: - rm -rf LHAPDF* log4cpp* pythia6* gsl* build + rm -rf LHAPDF* log4cpp* pythia6* gsl* libxml* build From bf1996d8f6dc5d277fc6aced4ea0ca79e3f931d4 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Wed, 17 Apr 2024 19:41:09 -0400 Subject: [PATCH 03/17] simplify options, use experiment=17 --- gibuu/gibuu | 26 +++++++++++--------------- 1 file changed, 11 insertions(+), 15 deletions(-) diff --git a/gibuu/gibuu b/gibuu/gibuu index 780144a..b03476d 100755 --- a/gibuu/gibuu +++ b/gibuu/gibuu @@ -5,8 +5,6 @@ config_template = os.path.abspath(os.getenv('GIBUU','.')+'/gibuu_template.opt') gibuu_executable = os.path.abspath(os.getenv('GIBUU','.')+'/release/objects/GiBUU.x') gibuu_converter = os.path.abspath(os.getenv('GIBUU','.')+'/gibuu2lund') buu_directory = os.path.abspath('./buuinput') -if not os.getenv('GIBUU') is None and not os.path.exists('./buuinput'): - os.symlink(os.getenv('GIBUU')+'/buuinput','./buuinput') from argparse import Namespace target_choices = { @@ -31,17 +29,13 @@ target_choices = { import sys from argparse import ArgumentParser cli = ArgumentParser() -cli.add_argument('--trig', default=0, type=int) -cli.add_argument('--ebeam', required='--test' not in sys.argv, help='beam energy (GeV)', type=float) -cli.add_argument('--targ', required='--test' not in sys.argv, help='target nucleus', choices=target_choices.keys()) -cli.add_argument('--tgzpos', required='--test' not in sys.argv, help='target z-position (cm)', type=float) -cli.add_argument('--tgzlen', required='--test' not in sys.argv, help='target z-length (cm)', type=float) -cli.add_argument('--tgrad', required='--test' not in sys.argv, help='target radius (cm)', type=float) -cli.add_argument('--kt', required='--test' not in sys.argv, help='kt value (?)', type=float) -cli.add_argument('--seed', default=0, help='RNG seed', type=int) +cli.add_argument('--targ', required=True, help='target nucleus', choices=target_choices.keys()) +cli.add_argument('--ebeam', required=True, help='beam energy (GeV)', type=float) +cli.add_argument('--kt', required=True, help='kt value (GeV)', type=float) +cli.add_argument('--trig', default=0, help='number of events', type=int) +cli.add_argument('--seed', default=0, help='random number generator seed', type=int) cli.add_argument('--docker', default=False, action='store_true') cli.add_argument('--dryrun', default=False, action='store_true') -cli.add_argument('--test', default=False, action='store_true') if not os.path.isfile(config_template): cli.error('Could not find gibuu_template.opt at $GIBUU or .') @@ -51,12 +45,14 @@ if not os.path.isfile(gibuu_executable): cli.error('Could not find GiBUU.x executable at $GIBUU or .') if not os.path.isfile(gibuu_converter): cli.error('Could not find gibuu2lund executable at $GIBUU or .') +if os.getenv('GIBUU') is not None: + if os.path.exists('./buuinput'): + print('WARNING: Using existing local ./buuinput') + else: + os.symlink(os.getenv('GIBUU')+'/buuinput','./buuinput') args = cli.parse_args(sys.argv[1:]) -if args.test: - args = Namespace(trig=0,ebeam=11,targ='He',tgzpos=0,tgzlen=1,tgrad=1,kt=1,seed=1234567,docker=False,dryrun=args.dryrun,test=True) - if args.seed==0: import time args.seed = int(int(time.time()*1e6)%1e9) @@ -78,7 +74,7 @@ substitutions = { 'PARP(91)' : str(args.kt), 'PARP(92)' : str(args.kt), 'Ebeam' : str(args.ebeam), - 'iExperiment' : '4' + 'iExperiment' : '17' } def generate_config(template, substitutions): From 88ec8a71a02c2c181b96e236a3411840d07c3697 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Thu, 18 Apr 2024 09:34:43 -0400 Subject: [PATCH 04/17] readme --- gibuu/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gibuu/README.md b/gibuu/README.md index 0f58450..d0fd913 100644 --- a/gibuu/README.md +++ b/gibuu/README.md @@ -2,7 +2,7 @@ A recipe for building GiBUU with LHAPDF support and other cleanups, plus a clas12 wrapper script. ## Prerequisites -1. gcc 17 +1. c++17 1. wget 1. LHAPDF 1. ROOT From b72f4fefac32e0cc250ea7350b5437f2ff8a34e9 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Thu, 18 Apr 2024 10:59:10 -0400 Subject: [PATCH 05/17] move install --- gibuu/Makefile | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/gibuu/Makefile b/gibuu/Makefile index 33935bc..aae0da2 100644 --- a/gibuu/Makefile +++ b/gibuu/Makefile @@ -4,10 +4,15 @@ PATCH = 03 SYMLINKS = release buuinput libraries PACKAGES = release$(RELEASE) buuinput$(RELEASE) libraries$(RELEASE)_RootTuple -all: $(PACKAGES) gibuu2lund patch +build: $(PACKAGES) gibuu2lund patch + $(MAKE) -C release buildRootTuple + $(MAKE) withROOT=1 -C release PDF=LHAPDF +install: build + install -D gibuu ../bin + install -D release/objects/GiBUU.x ../bin + install -D gibuu2lund ../bin + prep: $(PACKAGES) download: $(addsuffix .tar.gz,$(PACKAGES)) @@ -40,6 +45,6 @@ clean: rm -rf $(SYMLINKS) $(PACKAGES) libraries${RELEASE} rm -rf GiBUU.x gibuu2lund -purge: clean +prune: rm -rf $(addsuffix .tar.gz,$(PACKAGES)) From 085cb551b5e656a4c9d11e54213c5581ad1c08cd Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Thu, 18 Apr 2024 10:59:36 -0400 Subject: [PATCH 06/17] cleanup genie --- .gitignore | 4 +- Makefile | 55 ++++++++++++-------- genie-util/.gitignore | 1 + genie-util/Makefile | 11 ++++ {genie => genie-util}/README.md | 0 {genie => genie-util}/build-genie.sh | 0 genie/genie.py => genie-util/genie | 0 {genie => genie-util}/genie2lund.cxx | 0 genie/.gitignore | 6 --- genie/Makefile | 25 --------- genie/build-deps.sh | 72 ------------------------- genie/build-root.sh | 78 ---------------------------- genie/env.sh | 7 --- 13 files changed, 46 insertions(+), 213 deletions(-) create mode 100644 genie-util/.gitignore create mode 100644 genie-util/Makefile rename {genie => genie-util}/README.md (100%) rename {genie => genie-util}/build-genie.sh (100%) rename genie/genie.py => genie-util/genie (100%) rename {genie => genie-util}/genie2lund.cxx (100%) delete mode 100644 genie/.gitignore delete mode 100644 genie/Makefile delete mode 100755 genie/build-deps.sh delete mode 100755 genie/build-root.sh delete mode 100644 genie/env.sh diff --git a/.gitignore b/.gitignore index 1f09899..b6fdbf5 100644 --- a/.gitignore +++ b/.gitignore @@ -19,5 +19,5 @@ errors.txt RNDMSTATUS LHAPDF* genie -log4cpp -pythia6 +log4cpp* +pythia6* diff --git a/Makefile b/Makefile index 61f5e23..f0de3e5 100644 --- a/Makefile +++ b/Makefile @@ -1,10 +1,19 @@ -TOP = $(shell pwd) +MAKEDIRS := $(shell find . -maxdepth 2 -mindepth 2 -name Makefile | awk -F/ '{print$$2}') +SUBMODULES := $(shell grep ^\\[submodule .gitmodules | awk -F\" '{print$$2}') +CLEANDIRS := $(MAKEDIRS) +MAKEDIRS := $(filter-out gibuu,$(MAKEDIRS)) +MAKEDIRS := $(filter-out genie,$(MAKEDIRS)) +MAKEDIRS := $(filter-out twopeg,$(MAKEDIRS)) -SUBDIRS = clasdis claspyth dvcsgen inclusive-dis-rad TCSGen genKYandOnePion JPsiGen MCEGENpiN_radcorr deep-pipi-gen genepi onepigen +TOP := $(shell pwd) -all: gibuu genie twopeg elspectro - for dir in $(SUBDIRS); do\ +export GENIE := $(TOP)/genie + +all: gibuu genie twopeg elspectro makedirs + +makedirs: + for dir in $(MAKEDIRS); do\ $(MAKE) -C $$dir; \ done @@ -17,13 +26,14 @@ twopeg: sed -i 's/\(^CXX .*= g++ \)/\1 -std=c++17 /' twopeg/Makefile cd twopeg && $(MAKE) nobos -gibuu: lhapdf - $(MAKE) -C gibuu - +gibuu: bin/GiBUU.x lhapdf: lib/libLHAPDF.so log4cpp: lib/liblog4cpp.so pythia6: lib/libPythia6.so +bin/GiBUU.x: lhapdf + $(MAKE) -C gibuu install + lib/libLHAPDF.so: $(eval V := 6.5.4) wget https://lhapdf.hepforge.org/downloads/?f=LHAPDF-${V}.tar.gz -O LHAPDF-${V}.tar.gz @@ -66,19 +76,18 @@ root: pythia6 $(eval V := 6.30.04) wget https://root.cern/download/root_v${V}.source.tar.gz tar xzf root_v${V}.source.tar.gz - mv root-${V} ${SOURCE_DIR} - + cmake -S ${SOURCE_DIR} -B ${BUILD_DIR} \ + + cmake -S root-${V} -B root-${V}-build \ -DCMAKE_CXX_STANDARD=17 \ - -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} \ + -DCMAKE_INSTALL_PREFIX=${TOP}/root \ -Dbuiltin_glew=ON \ -Dmathmore=ON \ -Dfftw3=ON \ -Dpythia6=ON \ - -DPYTHIA6_LIBRARY=${PYTHIA_LIB} - + cmake --build ${BUILD_DIR} --target install -- -j${NTHREADS} - cp -f ${PYTHIA_LIB} ${INSTALL_DIR/lib} + -DPYTHIA6_LIBRARY=${TOP}/lib/libPythia6.so + + cmake --build root-${V}-build --target install -genie: pythia6 lhapdf +genie: pythia6 lhapdf log4cpp + rm -rf genie git clone -b R-3_04_00 --depth 1 https://github.com/GENIE-MC/Generator.git genie cd genie && ./configure \ --prefix=${TOP} --disable-profiler --disable-validation-tools \ @@ -111,19 +120,19 @@ install: install -D generate-seeds.py bin install -D onepigen/onepigen bin install -D onepigen/onepigen_lund bin - install -D gibuu/gibuu bin - install -D gibuu/release/objects/GiBUU.x bin - install -D gibuu/gibuu2lund bin -clean: prune +clean: rm -rf bin lib lib64 build share include etc - for dir in $(SUBDIRS); do\ + for dir in $(CLEANDIRS); do\ $(MAKE) -C $$dir clean; \ done - $(MAKE) -C twopeg clean -#$(MAKE) -C gibuu clean -#$(MAKE) -C genie clean + rm -rf LHAPDF* log4cpp* pythia6* libxml* root-* build prune: - rm -rf LHAPDF* log4cpp* pythia6* gsl* libxml* build + rm -rf LHAPDF* log4cpp* pythia6* libxml* root-* build + +debug: + @ echo SUBMODULES: $(SUBMODULES) + @ echo CLEANDIRS: $(CLEANDIRS) + @ echo MAKEDIRS: $(MAKEDIRS) diff --git a/genie-util/.gitignore b/genie-util/.gitignore new file mode 100644 index 0000000..eea0b1f --- /dev/null +++ b/genie-util/.gitignore @@ -0,0 +1 @@ +genie2lund diff --git a/genie-util/Makefile b/genie-util/Makefile new file mode 100644 index 0000000..6018a7c --- /dev/null +++ b/genie-util/Makefile @@ -0,0 +1,11 @@ + +ROOT_CFLAGS := $(shell root-config --cflags) +ROOT_LIBS := $(shell root-config --libs) + +install: build + install -D genie2lund ../bin + install -D genie ../bin + +build: + $(CXX) $(ROOT_CFLAGS) -o genie2lund genie2lund.cxx $(ROOT_LIBS) + diff --git a/genie/README.md b/genie-util/README.md similarity index 100% rename from genie/README.md rename to genie-util/README.md diff --git a/genie/build-genie.sh b/genie-util/build-genie.sh similarity index 100% rename from genie/build-genie.sh rename to genie-util/build-genie.sh diff --git a/genie/genie.py b/genie-util/genie similarity index 100% rename from genie/genie.py rename to genie-util/genie diff --git a/genie/genie2lund.cxx b/genie-util/genie2lund.cxx similarity index 100% rename from genie/genie2lund.cxx rename to genie-util/genie2lund.cxx diff --git a/genie/.gitignore b/genie/.gitignore deleted file mode 100644 index aea0839..0000000 --- a/genie/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -genie -include -share -build -*~ -*.swp diff --git a/genie/Makefile b/genie/Makefile deleted file mode 100644 index 2061b7d..0000000 --- a/genie/Makefile +++ /dev/null @@ -1,25 +0,0 @@ - -ROOT_CFLAGS := $(shell root-config --cflags) -ROOT_LIBS := $(shell root-config --libs) - -all: genie genie2lund - -deps: - mkdir -p build && cd build && ../build-deps.sh - -root: - mkdir -p build && cd build && ../build-root.sh -v 6.26.10 -p $(ROOTSYS) - -genie: deps - ./build-genie.sh - -prune: - rm -rf build LHAPDF* libxml* log4cpp* pythia* root* - -clean: prune - rm -rf bin lib share include clean genie *.src *.build *.log - -genie2lund: - mkdir -p bin - $(CXX) $(ROOT_CFLAGS) -o bin/genie2lund genie2lund.cxx $(ROOT_LIBS) - diff --git a/genie/build-deps.sh b/genie/build-deps.sh deleted file mode 100755 index 83db27d..0000000 --- a/genie/build-deps.sh +++ /dev/null @@ -1,72 +0,0 @@ -#!/bin/bash - -d=$(dirname $(realpath ${BASH_SOURCE[0]})) -n=32 - -if [ "$1" == "-h" ] -then - echo "build-deps.sh [log4cpp/lhapdf/gsl/libxml2/pythia6]" - exit -fi - -if [ "$#" -eq 0 ] || [ "$1" == "log4cpp" ] -then - # LOG4CPP :::::::::::::::::::::::::::::::::::::::::::: - wget https://sourceforge.net/projects/log4cpp/files/log4cpp-1.1.x%20%28new%29/log4cpp-1.1/log4cpp-1.1.4.tar.gz - tar -xzvf log4cpp-1.1.4.tar.gz - cd log4cpp - ./configure --prefix=$d || exit 1 - make -j $n || exit 1 - make -j $n install || exit 1 - cd - -fi -if [ "$#" -eq 0 ] || [ "$1" == "lhapdf" ] -then - # LHAPDF ::::::::::::::::::::::::::::::::::::::::::::: - wget 'https://lhapdf.hepforge.org/downloads/?f=LHAPDF-6.5.4.tar.gz' -O LHAPDF-6.5.4.tar.gz - tar -xzvf LHAPDF-6.5.4.tar.gz - cd LHAPDF-6.5.4 - ./configure --prefix=$d --disable-python || exit 1 - make -j $n || exit 1 - make -j $n install || exit 1 - cd - -fi -#if [ "$#" -eq 0 ] || [ "$1" == "gsl" ] -#then - # GSL :::::::::::::::::::::::::::::::::::::::::::::::: - # seems very standard on linux distributions, use system install instead - #wget https://ftp.gnu.org/gnu/gsl/gsl-2.7.tar.gz - #tar -xzvf gsl-2.7.tar.gz - #cd gsl-2.7 - #./configure --prefix=$d - #make -j $n || exit 1 - #make -j $n install || exit 1 - #cd - -#fi -#if [ "$#" -eq 0 ] || [ "$1" == "libxml2" ] -#then -# # LIBXML2 :::::::::::::::::::::::::::::::::::::::::::: -# # the standard URL finds bad mirrors, so we use a particular mirror: -# wget http://mirror.umd.edu/gnome/sources/libxml2/2.11/libxml2-2.11.0.tar.xz -# tar -xJvf libxml2-2.11.0.tar.xz -# cd libxml2-2.11.0 -# ./configure --prefix=$d --without-python || exit 1 -# make -j $n || exit 1 -# make -j $n install || exit 1 -# cd - -#fi -if [ "$#" -eq 0 ] || [ "$1" == "pythia6" ] -then - # PYTHIA ::::::::::::::::::::::::::::::::::::::::::::: - wget https://root.cern/download/pythia6.tar.gz - tar -xzvf pythia6.tar.gz - cd pythia6 - sed -i 's/^char /extern char /' ./pythia6_common_address.c - sed -i 's/^int /extern int /' ./pythia6_common_address.c - sed -i 's/^extern int pyuppr/int pyuppr /' ./pythia6_common_address.c - ./makePythia6.linuxx8664 || exit 1 - mkdir -p $d/lib - cp libPythia6.so $d/lib - cd - -fi - diff --git a/genie/build-root.sh b/genie/build-root.sh deleted file mode 100755 index 5e24bbb..0000000 --- a/genie/build-root.sh +++ /dev/null @@ -1,78 +0,0 @@ -#!/bin/bash -# -# NAB: Modified from /apps/root/6.26.10 -# - -export CXX=`which g++` -export CC=`which gcc` - -GCC_VERSION=$(gcc --version | head -1 | awk '{print$3}') -ROOT_VERSION=6.30.04 -NTHREADS=16 -DRYRUN=0 -INSTALL_DIR= - -while getopts "v:p:j:dh" opt -do - case $opt in - v) ROOT_VERSION=$OPTARG ;; - p) INSTALL_DIR=$OPTARG ;; - j) NTHREADS=$OPTARG ;; - d) DRYRUN=1 ;; - h) echo "Usage: build-root.sh [-d] [-v version] [-p prefix] [-j threads]" && exit 0 ;; - ?) echo "Usage: build-root.sh [-d] [-v version] [-p prefix] [-j threads]" && exit 1 ;; - esac -done - -# Choose output locations: -STUB=$ROOT_VERSION-$GCC_VERSION -LOG_FILE=./$STUB.log -SOURCE_DIR=./$STUB.src -BUILD_DIR=./$STUB.build -[ "$INSTALL_DIR" = "" ] && INSTALL_DIR=./$STUB -echo "ROOT_VERSION: $ROOT_VERSION" -echo "SOURCE DIR: $SOURCE_DIR" -echo "BUILD DIR: $BUILD_DIR" -echo "INSTALL DIR: $INSTALL_DIR" - -# Pythia library location (as created by build-deps.sh): -PYTHIA_LIB=$(dirname $(realpath ${BASH_SOURCE[0]}))/lib/libPythia6.so - -# Check stuff and abort: -[ $DRYRUN -ne 0 ] && exit -[ -e $SOURCE_DIR ] && echo ERROR: source directory already exists: root-$SOURCE_DIR.src && exit 1 -[ -e $BUILD_DIR ] && echo ERROR: build directory already exists: $BUILD_DIR && exit 2 -[ -e $INSTALL_DIR ] && echo ERROR: install directory already exists: $INSTALL_DIR && exit 3 -[ -e $LOG_FILE ] && echo ERROR: log file already exists: $LOG_FILE && exit 4 -! [ -e $PYTHIA_LIB ] && echo ERROR: pythia6 library does not exist: $PYTHIA_LIB && exit 5 - -# Echo all commands and abort if any return non-zero exit code: -set -x -e -touch $LOG_FILE - -# Download: -wget https://root.cern/download/root_v$ROOT_VERSION.source.tar.gz |& tee -a $LOG_FILE || exit 96 -tar xzf root_v$ROOT_VERSION.source.tar.gz |& tee -a $LOG_FILE -mv root-$ROOT_VERSION $SOURCE_DIR |& tee -a $LOG_FILE || exit 97 - -# Configure: -cmake -S $SOURCE_DIR -B $BUILD_DIR \ - -DCMAKE_CXX_STANDARD=17 \ - -DCMAKE_INSTALL_PREFIX=$INSTALL_DIR \ - -Dbuiltin_glew=ON \ - -Dmathmore=ON \ - -Dfftw3=ON \ - -Dpythia6=ON \ - -DPYTHIA6_LIBRARY=$PYTHIA_LIB \ - |& tee -a $LOG_FILE || exit 98 - -# Build: -cmake --build $BUILD_DIR --target install -- -j$NTHREADS |& tee -a $LOG_FILE || exit 99 - -# Install Pythia in ROOT's lib: -cp -f $PYTHIA_LIB $INSTALL_DIR/lib - -echo '\n\n###############################################' -echo "SUCCESS - INSTALL DIR: $INSTALL_DIR" -echo '###############################################' - diff --git a/genie/env.sh b/genie/env.sh deleted file mode 100644 index d54bb71..0000000 --- a/genie/env.sh +++ /dev/null @@ -1,7 +0,0 @@ - -d=$(dirname $(realpath ${BASH_SOURCE[0]})) - -export GENIE=$d/genie -export PATH=$d/bin:${PATH} -export LD_LIBRARY_PATH=$d/lib:${LD_LIBRARY_PATH} - From 7959a570ef1fb1d30bcdf306efd2173e3a8f4ba6 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Thu, 18 Apr 2024 12:00:25 -0400 Subject: [PATCH 07/17] more proper --- gibuu/Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gibuu/Makefile b/gibuu/Makefile index aae0da2..b656cbf 100644 --- a/gibuu/Makefile +++ b/gibuu/Makefile @@ -9,9 +9,9 @@ build: $(PACKAGES) gibuu2lund patch + $(MAKE) withROOT=1 -C release PDF=LHAPDF install: build - install -D gibuu ../bin - install -D release/objects/GiBUU.x ../bin - install -D gibuu2lund ../bin + install -D gibuu ../bin/gibuu + install -D release/objects/GiBUU.x ../bin/GiBUU.x + install -D gibuu2lund ../bin/gibuu2lund prep: $(PACKAGES) From ce703f609546e6990a1f3ab36df81d9b71817000 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Thu, 18 Apr 2024 12:14:39 -0400 Subject: [PATCH 08/17] genie/root build cleanup --- .gitignore | 1 + Makefile | 3 +-- genie-util/Makefile | 3 +++ genie-util/build-genie.sh | 28 ---------------------------- 4 files changed, 5 insertions(+), 30 deletions(-) delete mode 100755 genie-util/build-genie.sh diff --git a/.gitignore b/.gitignore index b6fdbf5..a761e36 100644 --- a/.gitignore +++ b/.gitignore @@ -21,3 +21,4 @@ LHAPDF* genie log4cpp* pythia6* +root* diff --git a/Makefile b/Makefile index f0de3e5..b4be646 100644 --- a/Makefile +++ b/Makefile @@ -56,7 +56,7 @@ lib/libPythia6.so: sed -i 's/^int /extern int /' ./pythia6/pythia6_common_address.c sed -i 's/^extern int pyuppr/int pyuppr /' ./pythia6/pythia6_common_address.c cd pythia6 && ./makePythia6.linuxx8664 - install -D pythia6/libPythia6.so lib + install -D pythia6/libPythia6.so lib/libPythia6.so lib/libgsl.so: wget https://ftp.gnu.org/gnu/gsl/gsl-2.7.tar.gz @@ -87,7 +87,6 @@ root: pythia6 + cmake --build root-${V}-build --target install genie: pythia6 lhapdf log4cpp - rm -rf genie git clone -b R-3_04_00 --depth 1 https://github.com/GENIE-MC/Generator.git genie cd genie && ./configure \ --prefix=${TOP} --disable-profiler --disable-validation-tools \ diff --git a/genie-util/Makefile b/genie-util/Makefile index 6018a7c..7c7b260 100644 --- a/genie-util/Makefile +++ b/genie-util/Makefile @@ -9,3 +9,6 @@ install: build build: $(CXX) $(ROOT_CFLAGS) -o genie2lund genie2lund.cxx $(ROOT_LIBS) +clean: + rm -f genie2lund + diff --git a/genie-util/build-genie.sh b/genie-util/build-genie.sh deleted file mode 100755 index b59bb0b..0000000 --- a/genie-util/build-genie.sh +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/bash - -d=$(dirname $(realpath ${BASH_SOURCE[0]})) -n=16 - -# echo commands and abort if anything gives not-zero exit code: -set -x -e - -git clone -b R-3_04_00 --depth 1 https://github.com/GENIE-MC/Generator.git genie - -export GENIE=$(realpath genie) - -cd $GENIE - -./configure \ - --prefix=$d --disable-profiler --disable-validation-tools \ - --disable-doxygen --disable-cernlib --disable-lhapdf5 --enable-lhapdf6 \ - --enable-flux-drivers --enable-geom-drivers --enable-dylibversion --enable-nucleon-decay \ - --enable-test --enable-mueloss --enable-t2k --enable-fnal --enable-atmo \ - --disable-masterclass --disable-debug --with-optimiz-level=O2 \ - --with-pythia6-lib=$d/lib --with-lhapdf6-inc=$d/include --with-lhapdf6-lib=$d/lib \ - --with-libxml2-inc=$d/include/libxml2 --with-libxml2-lib=$d/lib \ - --with-log4cpp-inc=$d/include --with-log4cpp-lib=$d/lib - -make -j $n - -make -j $n install - From 990b44e2b790322b10109e295d8617f48510b681 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Thu, 18 Apr 2024 12:25:46 -0400 Subject: [PATCH 09/17] rename executable --- Makefile | 37 +++++++++++++++++++------------------ genie-util/genie | 2 +- 2 files changed, 20 insertions(+), 19 deletions(-) diff --git a/Makefile b/Makefile index b4be646..87a847b 100644 --- a/Makefile +++ b/Makefile @@ -98,27 +98,28 @@ genie: pythia6 lhapdf log4cpp --with-log4cpp-inc=${TOP}/include --with-log4cpp-lib=${TOP}/lib $(MAKE) -C genie $(MAKE) -C genie install + mv -f bin/genie bin/genie.exe install: + install -D clasdis/clasdis bin/clasdis + install -D claspyth/claspyth bin/claspyth + install -D dvcsgen/dvcsgen bin/dvcsgen + install -D genKYandOnePion/genKYandOnePion bin/genKYandOnePion + install -D inclusive-dis-rad/inclusive-dis-rad bin/inclusive-dis-rad + install -D JPsiGen/JPsiGen.exe bin/JPsiGen.exe + install -D JPsiGen/JPsiGen bin/JPsiGen + install -D twopeg/twopeg bin/twopeg + install -D JPsiGen/lib/libJPsiGen.so lib/libJPsiGen.so + install -D TCSGen/TCSGen.exe bin/TCSGen.exe + install -D TCSGen/TCSGen bin/TCSGen + install -D TCSGen/lib/libTCSGen.so lib/libTCSGen.so + install -D MCEGENpiN_radcorr/MCEGENpiN_radcorr bin/MCEGENpiN_radcorr + install -D deep-pipi-gen/deep-pipi-gen bin/deep-pipi-gen + install -D genepi/genepi bin/genepi + install -D generate-seeds.py bin/generate-seeds.py + install -D onepigen/onepigen bin/onepigen + install -D onepigen/onepigen_lund bin/onepigen_lund install -D clas12-elSpectro/elSpectro/jpacPhoto/lib/* lib - install -D clasdis/clasdis bin - install -D claspyth/claspyth bin - install -D dvcsgen/dvcsgen bin - install -D genKYandOnePion/genKYandOnePion bin - install -D inclusive-dis-rad/inclusive-dis-rad bin - install -D JPsiGen/JPsiGen.exe bin - install -D JPsiGen/JPsiGen bin - install -D twopeg/twopeg bin - install -D JPsiGen/lib/libJPsiGen.so lib - install -D TCSGen/TCSGen.exe bin - install -D TCSGen/TCSGen bin - install -D TCSGen/lib/libTCSGen.so lib - install -D MCEGENpiN_radcorr/MCEGENpiN_radcorr bin - install -D deep-pipi-gen/deep-pipi-gen bin - install -D genepi/genepi bin - install -D generate-seeds.py bin - install -D onepigen/onepigen bin - install -D onepigen/onepigen_lund bin clean: rm -rf bin lib lib64 build share include etc diff --git a/genie-util/genie b/genie-util/genie index cee459d..5a20907 100755 --- a/genie-util/genie +++ b/genie-util/genie @@ -36,7 +36,7 @@ def convert_to_lund(opt): cmd = 'genie2lund %s %s'%(opt.gntp,opt.lund) return run_command(cmd.split(), opt.dryrun) -example = 'genie.py --trig 125 --probe 11 --target 1000010020 --energy 11.1' +example = 'genie --trig 125 --probe 11 --target 1000010020 --energy 11.1' cli = argparse.ArgumentParser(description='Run all genie event generator steps, ending with LUND output.',epilog='For example, \"%s\"'%example) cli.add_argument('--trig',metavar='#',help='number of events',type=int,required=True) From c8a6bd15ef347946a85f491fa2b28db20d69df22 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Thu, 18 Apr 2024 12:27:45 -0400 Subject: [PATCH 10/17] sync env and module files --- modulefile | 3 +++ 1 file changed, 3 insertions(+) diff --git a/modulefile b/modulefile index bf4ed59..4b2f39a 100644 --- a/modulefile +++ b/modulefile @@ -11,6 +11,7 @@ set top $env(JLAB_ROOT)/$env(OSRELEASE)/clas12-mcgen/$version prepend-path PATH $top/bin prepend-path LD_LIBRARY_PATH $top/lib +prepend-path PYTHONPATH $top/lib64/python3.9/site-packages setenv TCSGEN_DIR $top/TCSGen setenv CLASDIS_PDF $top/clasdis/pdf/ @@ -29,3 +30,5 @@ setenv GENIE $top/genie/genie set el $top/clas12-elSpectro/elSpectro prepend-path ROOT_INCLUDE_PATH $el/core:$el/jpacPhoto/include:$el/jpacPhoto/include/amplitudes +prepend-path LHAPDF_DATA_PATH=/cvmfs/sft.cern.ch/lcg/external/lhapdfsets/current + From 34d11c8762b7670ac7325968f0ecfc574a40ad0e Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Thu, 18 Apr 2024 12:31:24 -0400 Subject: [PATCH 11/17] readmes --- README.md | 6 ++++-- genie-util/README.md | 6 +++++- gibuu/README.md | 2 +- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index a2c4949..8f09bb0 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ name | description [genepi] | Photon and meson electroproduction | Noémie Pilleuxi [onepigen] | Single charged pion production based on AO/Daresbury/MAID | Nick Tyler [GiBUU] | | -[GENIE] | not supported on OSG yet, pending configuration wrapper script and LUND output | +[GENIE] | | # Adding or Modifying a Generator @@ -74,6 +74,8 @@ clas12-elSpectro | :white_check_mark: | :white_check_mark: | :white_check_mark: MCEGENpiN_radcorr | :white_check_mark: | :white_check_mark: | :white_check_mark: | deep-pipi-gen | :white_check_mark: | :white_check_mark: | :white_check_mark: | genepi | :white_check_mark: | :white_check_mark: | :white_check_mark: | +gibuu | :white_check_mark: | :white_check_mark: | :white_check_mark: | +genie | :white_check_mark: | :white_check_mark: | :white_check_mark: | # Maintanance @@ -168,6 +170,6 @@ git rm -f path/to/submodule [deep-pipi-gen]: https://github.com/jeffersonlab/deep-pipi-gen [genepi]: https://github.com/N-Plx/genepi [onepigen]: https://github.com/tylern4/onepigen -[GENIE]: https://github.com/GENIE-MC/Generator +[GENIE]: https://github.com/jeffersonlab/clas12-mcgen/genie-util [GiBUU]: https://github.com/jeffersonlab/clas12-mcgen/gibuu diff --git a/genie-util/README.md b/genie-util/README.md index 1905e1d..d3cd1e2 100644 --- a/genie-util/README.md +++ b/genie-util/README.md @@ -1,4 +1,8 @@ -# Just a recipe for building GENIE. +A recipe for building genie (moved to Makefile one up) plus a clas12 wrapper script and LUND converter. + +See https://github.com/GENIE-MC/Generator + +# A recipe for building GENIE. ## Prerequesites 1. GSL, not included because it seems to be standard in package managers, e.g., `yum install gsl-devel`, and a local install caused issues with ROOT's XRootD build diff --git a/gibuu/README.md b/gibuu/README.md index d0fd913..0c83933 100644 --- a/gibuu/README.md +++ b/gibuu/README.md @@ -1,5 +1,5 @@ # clas12 GiBUU -A recipe for building GiBUU with LHAPDF support and other cleanups, plus a clas12 wrapper script. +A recipe for building GiBUU with LHAPDF support and other cleanups, plus a clas12 wrapper script and LUND converter. ## Prerequisites 1. c++17 From 28b7b949d93aa1c7eca287b9e56f95b68414d0ce Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Thu, 18 Apr 2024 13:28:30 -0400 Subject: [PATCH 12/17] more build cleanup --- Makefile | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Makefile b/Makefile index 87a847b..016c13f 100644 --- a/Makefile +++ b/Makefile @@ -10,12 +10,12 @@ TOP := $(shell pwd) export GENIE := $(TOP)/genie -all: gibuu genie twopeg elspectro makedirs +all: gibuu genie twopeg elspectro $(MAKEDIRS) -makedirs: - for dir in $(MAKEDIRS); do\ - $(MAKE) -C $$dir; \ - done +$(MAKEDIRS): + echo $(MAKE) -C $@ + +.PHONY: $(MAKEDIRS) elspectro: rm -rf build && mkdir build From d6d2e018cfc5159720a55ecc9e34528dbc9b1578 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Thu, 18 Apr 2024 13:31:59 -0400 Subject: [PATCH 13/17] add missing install --- Makefile | 1 + 1 file changed, 1 insertion(+) diff --git a/Makefile b/Makefile index 016c13f..279cd4b 100644 --- a/Makefile +++ b/Makefile @@ -99,6 +99,7 @@ genie: pythia6 lhapdf log4cpp $(MAKE) -C genie $(MAKE) -C genie install mv -f bin/genie bin/genie.exe + $(MAKE) -C genie-util install install: install -D clasdis/clasdis bin/clasdis From bc2a7f04cc921acaf307e4f52d39c84b9d5629b2 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Thu, 18 Apr 2024 13:32:09 -0400 Subject: [PATCH 14/17] add maintainer --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 8f09bb0..56e0270 100644 --- a/README.md +++ b/README.md @@ -17,8 +17,8 @@ name | description [deep-pipi-gen] | Deep double pion production | Dilini Bulumulla [genepi] | Photon and meson electroproduction | Noémie Pilleuxi [onepigen] | Single charged pion production based on AO/Daresbury/MAID | Nick Tyler -[GiBUU] | | -[GENIE] | | +[GiBUU] | | Ahmed El Alaoui +[GENIE] | Not ready for OSG | # Adding or Modifying a Generator From 4bcf6c61c9c6b34127edab9bdcba48183db83837 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Thu, 18 Apr 2024 13:38:12 -0400 Subject: [PATCH 15/17] drop cython requirement --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 279cd4b..c1f95b1 100644 --- a/Makefile +++ b/Makefile @@ -38,7 +38,7 @@ lib/libLHAPDF.so: $(eval V := 6.5.4) wget https://lhapdf.hepforge.org/downloads/?f=LHAPDF-${V}.tar.gz -O LHAPDF-${V}.tar.gz tar -xzvf LHAPDF-${V}.tar.gz - cd LHAPDF-${V} && ./configure --prefix=${TOP} + cd LHAPDF-${V} && ./configure --prefix=${TOP} --disable-python $(MAKE) -C LHAPDF-${V} $(MAKE) -C LHAPDF-${V} install From c86a0afcf82a5516ec86e0260aa90d75b3bbaa40 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Thu, 18 Apr 2024 14:29:39 -0400 Subject: [PATCH 16/17] fix oops --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index c1f95b1..bce334a 100644 --- a/Makefile +++ b/Makefile @@ -13,7 +13,7 @@ export GENIE := $(TOP)/genie all: gibuu genie twopeg elspectro $(MAKEDIRS) $(MAKEDIRS): - echo $(MAKE) -C $@ + $(MAKE) -C $@ .PHONY: $(MAKEDIRS) From 92190b30d93f9bfc20ffa18692a2708d91edb33a Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Thu, 18 Apr 2024 14:55:36 -0400 Subject: [PATCH 17/17] add phonies --- Makefile | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index bce334a..76cdcf9 100644 --- a/Makefile +++ b/Makefile @@ -14,17 +14,18 @@ all: gibuu genie twopeg elspectro $(MAKEDIRS) $(MAKEDIRS): $(MAKE) -C $@ - .PHONY: $(MAKEDIRS) elspectro: rm -rf build && mkdir build + cd build && cmake -DCMAKE_CXX_COMPILER=`which g++` -DCMAKE_C_COMPILER=`which gcc` ../ - + cd build && cmake --build . --target install && cd .. + + cd build && cmake --build . --target install +.PHONY: elspectro twopeg: sed -i 's/\(^CXX .*= g++ \)/\1 -std=c++17 /' twopeg/Makefile cd twopeg && $(MAKE) nobos +.PHONY: twopeg gibuu: bin/GiBUU.x lhapdf: lib/libLHAPDF.so