######################################################################## # Cross-platform Makefile (macOS + Linux) ######################################################################## UNAME_S := $(shell uname -s) ######################################################################## # Defaults ######################################################################## ifeq ($(UNAME_S),Darwin) ######################################################################## # macOS (Homebrew + Apple Clang) ######################################################################## SDKROOT := $(shell xcrun --show-sdk-path) CXX := clang++ ROOTCFLAGS := $(shell root-config --cflags | sed 's/-stdlib=libc++//g') ROOTLIBS := $(shell root-config --libs | sed 's/-stdlib=libc++//g') CXXFLAGS := -g -O0 -Wall -std=c++17 -fPIC CXXFLAGS += $(ROOTCFLAGS) CXXFLAGS += -isysroot $(SDKROOT) CXXFLAGS += -I$(SDKROOT)/usr/include/c++/v1 LDFLAGS := $(shell root-config --glibs) -lGeom -lEve -lGui else ######################################################################## # Linux (system g++) ######################################################################## CXX := g++ COPTS := -fPIC -DLINUX -g -O0 -Wall -std=c++17 -pthread ROOTCFLAGS := $(shell root-config --cflags) ROOTLIBS := $(shell root-config --libs) CXXFLAGS := $(COPTS) $(ROOTCFLAGS) LDFLAGS := $(ROOTLIBS) -lGeom -lEve -lGui endif ######################################################################## # Targets ######################################################################## ALL = Mapper EventBuilder AnasenMS all: $(ALL) clean: /bin/rm -f $(ALL) ######################################################################## # Build rules ######################################################################## Mapper: Mapper.cpp ../mapping.h ClassDet.h @echo "--------- making Mapper" $(CXX) $(CXXFLAGS) Mapper.cpp -o Mapper $(LDFLAGS) EventBuilder: EventBuilder.cpp ClassData.h fsuReader.h Hit.h @echo "--------- making EventBuilder" $(CXX) $(CXXFLAGS) EventBuilder.cpp -o EventBuilder $(LDFLAGS) AnasenMS: anasenMS.cpp constant.h Isotope.h ClassTransfer.h ClassSX3.h ClassPW.h ClassAnasen.h @echo "--------- making ANASEN Monte Carlo" $(CXX) $(CXXFLAGS) anasenMS.cpp -o AnasenMS $(LDFLAGS)