#DualSPHysics CPU v5.0.164 21-11-2020 #=============== Compilation Options (YES/NO) =============== USE_GCC5=YES USE_DEBUG=NO USE_FAST_MATH=YES USE_NATIVE_CPU_OPTIMIZATIONS=NO COMPILE_VTKLIB=YES COMPILE_NUMEXLIB=YES COMPILE_CHRONO=YES COMPILE_WAVEGEN=YES COMPILE_MOORDYN=YES LIBS_DIRECTORIES=-L./ LIBS_DIRECTORIES:=$(LIBS_DIRECTORIES) -L../lib/linux_gcc EXECNAME=DualSPHysics5.0CPU_linux64 EXECS_DIRECTORY=../../bin/linux # -std=c++0x ---> Used to avoid errors for calls to enums ifeq ($(USE_DEBUG), YES) CCFLAGS=-c -O0 -g -Wall -fopenmp -std=c++0x else CCFLAGS=-c -O3 -fopenmp -std=c++0x ifeq ($(USE_FAST_MATH), YES) CCFLAGS+= -ffast-math endif ifeq ($(USE_NATIVE_CPU_OPTIMIZATIONS), YES) CCFLAGS+= -march=native endif endif CC=g++-6 CCLINKFLAGS=-fopenmp -lgomp #Required for GCC versions >=5.0 ifeq ($(USE_GCC5), YES) CCFLAGS+=-D_GLIBCXX_USE_CXX11_ABI=0 CCLINKFLAGS+=-D_GLIBCXX_USE_CXX11_ABI=0 endif ifeq ($(COMPILE_VTKLIB), NO) CCFLAGS:=$(CCFLAGS) -DDISABLE_VTKLIB endif ifeq ($(COMPILE_NUMEXLIB), NO) CCMOREFLAGS:=$(CCMOREFLAGS) -DDISABLE_NUMEXLIB endif ifeq ($(COMPILE_CHRONO), NO) CCFLAGS:=$(CCFLAGS) -DDISABLE_CHRONO endif ifeq ($(COMPILE_WAVEGEN), NO) CCFLAGS:=$(CCFLAGS) -DDISABLE_WAVEGEN endif ifeq ($(COMPILE_MOORDYN), NO) CCFLAGS:=$(CCFLAGS) -DDISABLE_MOORDYN endif #=============== Files to compile =============== OBJXML=JXml.o tinystr.o tinyxml.o tinyxmlerror.o tinyxmlparser.o OBJSPHMOTION=JMotion.o JMotionList.o JMotionMov.o JMotionObj.o JMotionPos.o JDsMotion.o OBCOMMON=Functions.o FunGeo3d.o FunSphKernelsCfg.o JAppInfo.o JBinaryData.o JCfgRunBase.o JDataArrays.o JException.o JLinearValue.o JLog2.o JObject.o JOutputCsv.o JRadixSort.o JRangeFilter.o JReadDatafile.o JSaveCsv2.o JTimeControl.o randomc.o OBCOMMONDSPH=JDsphConfig.o JDsPips.o JPartDataBi4.o JPartDataHead.o JPartFloatBi4.o JPartOutBi4Save.o JCaseCtes.o JCaseEParms.o JCaseParts.o JCaseProperties.o JCaseUserVars.o JCaseVtkOut.o OBSPH=JArraysCpu.o JCellDivCpu.o JSphCfgRun.o JComputeMotionRef.o JDsDamping.o JDsGaugeItem.o JDsGaugeSystem.o JDsPartsOut.o JDsSaveDt.o JSphShifting.o JSph.o JDsAccInput.o JSphCpu.o JDsInitialize.o JFtMotionSave.o JSphMk.o JDsPartsInit.o JDsFixedDt.o JDsViscoInput.o JDsOutputTime.o JWaveAwasZsurf.o JWaveSpectrumGpu.o main.o OBSPHSINGLE=JCellDivCpuSingle.o JPartsLoad4.o JSphCpuSingle.o OBWAVERZ=JMLPistonsGpu.o JRelaxZonesGpu.o OBCHRONO=JChronoObjects.o OBMOORDYN=JDsMooredFloatings.o JDsFtForcePoints.o OBINOUT=JSphCpu_InOut.o JSphCpuSingle_InOut.o JSphBoundCorr.o JSphInOut.o JSphInOutZone.o JSphInOutGridData.o JSphInOutPoints.o JSphInOutVel.o JSphInOutVelAwas.o JSphInOutZsurf.o JSimpleNeigs.o OBMDBC=JPartNormalData.o JNormalsMarrone.o OBJECTS=$(OBJXML) $(OBJSPHMOTION) $(OBCOMMON) $(OBCOMMONDSPH) $(OBSPH) $(OBSPHSINGLE) OBJECTS:=$(OBJECTS) $(OBWAVERZ) $(OBCHRONO) $(OBMOORDYN) $(OBINOUT) $(OBMDBC) #=============== DualSPHysics libs to be included =============== JLIBS=${LIBS_DIRECTORIES} ifeq ($(COMPILE_VTKLIB), YES) JLIBS:=$(JLIBS) -ljvtklib_64 endif ifeq ($(COMPILE_NUMEXLIB), YES) JLIBS:=$(JLIBS) -ljnumexlib_64 endif ifeq ($(COMPILE_CHRONO), YES) JLIBS:=$(JLIBS) -ldsphchrono -lChronoEngine endif ifeq ($(COMPILE_WAVEGEN), YES) JLIBS:=$(JLIBS) -ljwavegen_64 endif ifeq ($(COMPILE_MOORDYN), YES) JLIBS:=$(JLIBS) -ldsphmoordyn_64 endif #=============== CPU Code Compilation =============== all:$(EXECS_DIRECTORY)/$(EXECNAME) rm -rf *.o ifeq ($(USE_DEBUG), NO) @echo " --- Compiled Release CPU version ---" else @echo " --- Compiled Debug CPU version ---" mv $(EXECS_DIRECTORY)/$(EXECNAME) $(EXECNAME)_debug endif $(EXECS_DIRECTORY)/$(EXECNAME): $(OBJECTS) $(CC) $(OBJECTS) $(CCLINKFLAGS) -o $@ $(JLIBS) .cpp.o: $(CC) $(CCFLAGS) $< clean: rm -rf *.o $(EXECNAME) $(EXECNAME)_debug