Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 18 additions & 4 deletions Makefile_all
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,14 @@ endif

MACHINE_NAME = $(shell uname -m)

ifndef GLOBAL_CXX_STANDARD
GLOBAL_CXX_STANDARD = 20
endif

ifndef GLOBAL_DEBUG_SYMBOLS
GLOBAL_DEBUG_SYMBOLS = OFF
endif

CERNLIB = ${ROOT_OF_ALL}/cernlib
CLHEP_TOP = ${ROOT_OF_ALL}/clhep
SIM-RECON = ${ROOT_OF_ALL}/sim-recon
Expand Down Expand Up @@ -45,6 +53,12 @@ ifdef NTHREADS
HALLD_AMP_SCONS_OPTIONS += -j$(NTHREADS)
endif

ifeq ($(GLOBAL_DEBUG_SYMBOLS),ON)
ROOT6_CMAKE_CONFIGURE_OPTIONS += -DCMAKE_BUILD_TYPE=RelWithDebInfo
JANA2_CMAKE_CONFIGURE_OPTIONS += -DCMAKE_BUILD_TYPE=RelWithDebInfo
HALLD_RECON_DEBUG_LEVEL = 1
endif

include $(BUILD_SCRIPTS)/gluex_targets.mk

all: gluex_pass2
Expand Down Expand Up @@ -86,7 +100,7 @@ xerces_make:
$(MAKE) -C${XERCES} -f${BUILD_SCRIPTS}/Makefile_xercesc_3 XERCES_MAKE_OPTIONS="$(XERCES_MAKE_OPTIONS)"

root_build: root_dir
$(MAKE) -C${ROOT} -f${BUILD_SCRIPTS}/Makefile_root ROOT6_BUILD_OPTIONS="$(ROOT6_BUILD_OPTIONS)"
$(MAKE) -C${ROOT} -f${BUILD_SCRIPTS}/Makefile_root ROOT6_CMAKE_CONFIGURE_OPTIONS="${ROOT6_CMAKE_CONFIGURE_OPTIONS}" ROOT6_BUILD_OPTIONS="$(ROOT6_BUILD_OPTIONS)" GLOBAL_CXX_STANDARD="${GLOBAL_CXX_STANDARD}"

root_dir:
test -d ${ROOT} || mkdir -pv ${ROOT}
Expand All @@ -97,7 +111,7 @@ jana_dir:
test -d ${JANA} || mkdir -pv ${JANA}

jana_make:
$(MAKE) -C${JANA} -f${BUILD_SCRIPTS}/Makefile_jana JANA_MAKE_OPTIONS="$(JANA_MAKE_OPTIONS)"
$(MAKE) -C${JANA} -f${BUILD_SCRIPTS}/Makefile_jana JANA_MAKE_OPTIONS="$(JANA_MAKE_OPTIONS)" JANA2_CMAKE_CONFIGURE_OPTIONS="${JANA2_CMAKE_CONFIGURE_OPTIONS}" GLOBAL_CXX_STANDARD="${GLOBAL_CXX_STANDARD}"

hdds_build: hdds_dir hdds_make

Expand Down Expand Up @@ -137,7 +151,7 @@ halld_recon_dir:
test -d ${HALLD_RECON} || mkdir -pv ${HALLD_RECON}

halld_recon_make:
$(MAKE) -C${HALLD_RECON} -f${BUILD_SCRIPTS}/Makefile_halld_recon HALLD_RECON_SCONS_OPTIONS="$(HALLD_RECON_SCONS_OPTIONS)"
$(MAKE) -C${HALLD_RECON} -f${BUILD_SCRIPTS}/Makefile_halld_recon HALLD_RECON_SCONS_OPTIONS="$(HALLD_RECON_SCONS_OPTIONS)" HALLD_RECON_DEBUG_LEVEL="$(HALLD_RECON_DEBUG_LEVEL)"

clhep_build: clhep_dir clhep_make

Expand Down Expand Up @@ -212,7 +226,7 @@ hdgeant4_dir:
test -d ${HDGEANT4} || mkdir -pv ${HDGEANT4}

hdgeant4_make:
$(MAKE) -C${HDGEANT4} -f${BUILD_SCRIPTS}/Makefile_hdgeant4 HDGEANT4_MAKE_OPTIONS="$(HDGEANT4_MAKE_OPTIONS)"
$(MAKE) -C${HDGEANT4} -f${BUILD_SCRIPTS}/Makefile_hdgeant4 GLOBAL_CXX_STANDARD="$(GLOBAL_CXX_STANDARD)" HDGEANT4_MAKE_OPTIONS="$(HDGEANT4_MAKE_OPTIONS)"

gluex_root_analysis_build: gluex_root_analysis_dir gluex_root_analysis_make

Expand Down
1 change: 1 addition & 0 deletions Makefile_diracxx
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,7 @@ $(DIRACXX_HOME)/.cmake_done: $(SOURCE_CODE_TARGET)
$(CMAKE3) -DCMAKE_INSTALL_PREFIX=$(DIRACXX_HOME) \
-DCMAKE_INSTALL_LIBDIR=$(DIRACXX_HOME)/lib \
-DBoost_NO_BOOST_CMAKE=ON \
-DPython_EXECUTABLE=/usr/bin/python \
-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON ..
date > $@

Expand Down
11 changes: 9 additions & 2 deletions Makefile_hdgeant4
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,13 @@ ifneq ($(QTHOME_LOCATION), not_found)
QTHOME_DEF = QTHOME=$(QTHOME_LOCATION)
endif

# GLOBAL_CXX_STANDARD is defined in Makefile_all but this is a fallback
# if building from here directly.
CXX_STANDARD = 11
ifdef GLOBAL_CXX_STANDARD
CXX_STANDARD = $(GLOBAL_CXX_STANDARD)
endif

all: force_rebuild_action $(HDGEANT4_HOME)/hdgeant4_prereqs_version.xml

force_rebuild_action:
Expand Down Expand Up @@ -77,7 +84,7 @@ $(HDGEANT4_HOME)/.link_to_fixes_done: $(SOURCE_CODE_TARGET)

$(HDGEANT4_HOME)/.patch_done: $(HDGEANT4_HOME)/.link_to_fixes_done
cd $(HDGEANT4_HOME); \
patch -p1 < ${BUILD_SCRIPTS}/patches/hdgeant4/hdgeant4_c++11.patch
patch -p1 < ${BUILD_SCRIPTS}/patches/hdgeant4/hdgeant4_c++$(CXX_STANDARD).patch
date > $@

$(HDGEANT4_HOME)/.make_done: $(HDGEANT4_HOME)/.patch_done
Expand All @@ -86,7 +93,7 @@ $(HDGEANT4_HOME)/.make_done: $(HDGEANT4_HOME)/.patch_done
then echo Geant4 setup not complete, sourcing geant4make.sh ; \
. `find $(G4ROOT)/share/ -name geant4make.sh` ; \
fi ; \
make PYTHON_CONFIG=$(PYTHON_CONFIG) PYTHON_LIB_OPTION=$(PYTHON_LIB_OPTION) BOOST_PYTHON_LIB=-l$(PYTHON_BOOST) $(QTHOME_DEF) $(HDGEANT4_MAKE_OPTIONS) ; \
make PYTHON_CONFIG=$(PYTHON_CONFIG) PYTHON_LIB_OPTION=$(PYTHON_LIB_OPTION) BOOST_PYTHON_LIB=-l$(PYTHON_BOOST) $(QTHOME_DEF) $(HDGEANT4_MAKE_OPTIONS) && \
date > $@

$(HDGEANT4_HOME)/hdgeant4_prereqs_version.xml: $(HDGEANT4_HOME)/.make_done
Expand Down
10 changes: 9 additions & 1 deletion Makefile_jana_2_inc
Original file line number Diff line number Diff line change
@@ -1,3 +1,11 @@

# GLOBAL_CXX_STANDARD is defined in Makefile_all but this is a fallback
# if building from here directly.
CXX_STANDARD = 11
ifdef GLOBAL_CXX_STANDARD
CXX_STANDARD = $(GLOBAL_CXX_STANDARD)
endif

ifdef JANA_VERSION
SOURCE_CODE_TARGET = $(JANA_HOME)/.untar_done
ifdef JANA_DIRTAG
Expand Down Expand Up @@ -51,7 +59,7 @@ $(JANA_HOME)/.install_done: $(JANA_HOME)/.cmake_done
$(JANA_HOME)/.cmake_done: $(SOURCE_CODE_TARGET)
@echo Makefile_jana info: cmake3 = $(SCONS)
mkdir -p $(JANA_HOME)/$(BMS_OSNAME)
cd $(JANA_HOME)/$(BMS_OSNAME) ; $(CMAKE) $(JANA_HOME) -DUSE_XERCES=1 -DCMAKE_INSTALL_PREFIX=$(JANA_HOME)/$(BMS_OSNAME)
cd $(JANA_HOME)/$(BMS_OSNAME) ; $(CMAKE) $(JANA_HOME) -DUSE_XERCES=1 -DUSE_ROOT=1 -DCMAKE_INSTALL_PREFIX=$(JANA_HOME)/$(BMS_OSNAME) $(JANA2_CMAKE_CONFIGURE_OPTIONS) -DCMAKE_CXX_STANDARD=$(CXX_STANDARD)
date > $@

$(JANA_HOME)/.checkout_done:
Expand Down
17 changes: 15 additions & 2 deletions Makefile_root_6_inc
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,15 @@ ifdef DEBUG
CMAKE_VERBOSE_OPTION = -DCMAKE_VERBOSE_MAKEFILE=ON
endif

# GLOBAL_CXX_STANDARD is defined in Makefile_all but this is a fallback
# if building from here directly.
CXX_STANDARD = 11
ifdef GLOBAL_CXX_STANDARD
CXX_STANDARD = $(GLOBAL_CXX_STANDARD)
endif

# Note: if directory tags exist in LD_LIBRARY_PATH cmake seems to add
# extraneous double quotes in the build.make for hsimple, probably
# extraneous double quotes in the build.make for hsimple and idx, probably
# keying off the ^ character in the directory name. Those double
# quotes have to be removed. This is done by setting PREBUILD_TARGET
# so that removal only occurs when ^ is found in LD_LIBRARY_PATH.
Expand Down Expand Up @@ -38,6 +45,7 @@ else
endif
UNTAR_TEMP_DIR := untar_temp_dir_$(shell echo $$RANDOM)
buildmake = $(BUILD_DIR)/CMakeFiles/hsimple.dir/build.make
buildmake2 = $(BUILD_DIR)/CMakeFiles/modules_idx.dir/build.make

all: $(ROOTDIR)/.install_done

Expand All @@ -61,6 +69,8 @@ ifeq ($(ROOT_LE_6_08), true)
endif
ifeq ($(ROOT_EQ_6_24), true)
patch $(ROOTDIR)/cmake/scripts/ROOTConfig.cmake.in < $(BUILD_SCRIPTS)/patches/root/ROOTConfig.cmake.in.patch
else ifeq ($(ROOT_EQ_6_32), true)
patch $(ROOTDIR)/cmake/scripts/ROOTConfig.cmake.in < $(BUILD_SCRIPTS)/patches/root/ROOTConfig.cmake.in.patch
endif
date > $@

Expand All @@ -70,13 +80,16 @@ $(ROOTDIR)/.clone_done:

$(ROOTDIR)/.cmake_done: $(SOURCE_TARGET)
mkdir -p $(BUILD_DIR)
cd $(BUILD_DIR) ; $(CMAKE) .. -DCMAKE_INSTALL_PREFIX=.. $(CMAKE_VERBOSE_OPTION) -Dgdml=ON -Droofit=ON -Dmysql=OFF -Ddavix=OFF -Dbuiltin_tbb=ON -DCMAKE_CXX_STANDARD=11
cd $(BUILD_DIR) ; $(CMAKE) .. -DCMAKE_INSTALL_PREFIX=.. $(CMAKE_VERBOSE_OPTION) $(ROOT6_CMAKE_CONFIGURE_OPTIONS) -Dgdml=ON -Droofit=ON -Dmysql=OFF -Ddavix=OFF -Dbuiltin_tbb=ON -Dmathmore=ON -Dproof=ON -DCMAKE_CXX_STANDARD=$(CXX_STANDARD) -DPython3_EXECUTABLE=/usr/bin/python
date > $@

$(ROOTDIR)/.sed_makefile_done: $(ROOTDIR)/.cmake_done
@echo buildmake = $(buildmake)
mv -v $(buildmake) $(buildmake).orginal
sed -e /LD_LIBRARY_PATH/s/\ \"/\ /g < $(buildmake).orginal | sed -e /LD_LIBRARY_PATH/s/\"\ /\ /g > $(buildmake)
@echo buildmake2 = $(buildmake2)
mv -v $(buildmake2) $(buildmake2).orginal
sed -e /LD_LIBRARY_PATH/s/\ \"/\ /g < $(buildmake2).orginal | sed -e /LD_LIBRARY_PATH/s/\"\ /\ /g > $(buildmake2)
date > $@

$(ROOTDIR)/.build_done: $(PREBUILD_TARGET)
Expand Down
1 change: 1 addition & 0 deletions gluex_env_clean.csh
Original file line number Diff line number Diff line change
Expand Up @@ -137,6 +137,7 @@ unsetenv HALLD_RECON_VERSION
unsetenv HALLD_SIM_VERSION
unsetenv JANA_VERSION
unsetenv HDDS_VERSION
unsetenv HDDM_VERSION
unsetenv CERNLIB_VERSION
unsetenv XERCES_C_VERSION
unsetenv CLHEP_VERSION
Expand Down
1 change: 1 addition & 0 deletions gluex_env_clean.sh
Original file line number Diff line number Diff line change
Expand Up @@ -142,6 +142,7 @@ unset HALLD_RECON_VERSION
unset HALLD_SIM_VERSION
unset JANA_VERSION
unset HDDS_VERSION
unset HDDM_VERSION
unset CERNLIB_VERSION
unset XERCES_C_VERSION
unset CLHEP_VERSION
Expand Down
21 changes: 21 additions & 0 deletions patches/hdgeant4/hdgeant4_c++20.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
--- hdgeant4-2.37.0/GNUmakefile 2023-11-30 12:27:16.000000000 -0500
+++ hdgeant4-2.37.0_patched/GNUmakefile 2023-12-20 12:19:31.476302070 -0500
@@ -143,16 +143,8 @@ g4fixes: $(G4TMPDIR)/libG4fixes.so
CXXFLAGS = -g -O4 -fPIC -W -Wall -pedantic -Wno-non-virtual-dtor -Wno-long-long

GCCVERSION = $(shell gcc --version | awk -F'[. ]*' '/gcc/{print $$3}')
-ifeq ($(shell test $(GCCVERSION) -ge 8; echo $$?),0)
- CPPFLAGS += -std=c++17
- CXXFLAGS += -std=c++17
-else ifeq ($(shell test $(GCCVERSION) -ge 5; echo $$?),0)
- CPPFLAGS += -std=c++14
- CXXFLAGS += -std=c++14
-else
- CPPFLAGS += -std=c++11
- CXXFLAGS += -std=c++11
-endif
+CPPFLAGS += -std=c++20
+CXXFLAGS += -std=c++20

HDDSDIR := $(G4TMPDIR)/hdds
G4FIXESDIR := $(G4TMPDIR)/G4fixes
1 change: 1 addition & 0 deletions root_version.mk
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ ifdef ROOT_VERSION
ROOT_SUBMINOR_VERSION := $(shell echo $(ROOT_VERSION) | awk -F. '{print $$3}' | bc)
ROOT_LE_6_08 := $(shell if [[ $(ROOT_MAJOR_VERSION) -lt 6 || $(ROOT_MAJOR_VERSION) -eq 6 && $(ROOT_MINOR_VERSION) -le 8 ]]; then echo true; else echo false; fi)
ROOT_EQ_6_24 := $(shell if [[ $(ROOT_MAJOR_VERSION) -eq 6 && $(ROOT_MINOR_VERSION) -eq 24 ]]; then echo true; else echo false; fi)
ROOT_EQ_6_32 := $(shell if [[ $(ROOT_MAJOR_VERSION) -eq 6 && $(ROOT_MINOR_VERSION) -eq 32 ]]; then echo true; else echo false; fi)
else
ROOT_MAJOR_VERSION := 6
endif