# library build -*- makefile -*- SHELL = /bin/sh # ------ FILES ------ SRC = ATC_HardyKernel.cpp \ ATC_Transfer.cpp \ ATC_TransferHardy.cpp \ ATC_TransferThermal.cpp \ ATC_TransferUtility.cpp \ AtomicRegulator.cpp \ ElasticTimeIntegrator.cpp \ ElectronFlux.cpp \ ElectronHeatCapacity.cpp \ ElectronHeatFlux.cpp \ ElectronPhononExchange.cpp \ ExtrinsicModel.cpp \ ExtrinsicModelTwoTemperature.cpp \ FE_Element.cpp \ FE_Engine.cpp \ FE_Mesh.cpp \ FieldEulerIntegrator.cpp \ ImplicitSolveOperator.cpp \ Kinetostat.cpp \ LammpsInterface.cpp \ Material.cpp \ Matrix.cpp \ OutputManager.cpp \ PhysicsModelThermal.cpp \ PhysicsModelTwoTemperature.cpp \ PrescribedDataManager.cpp \ Solver.cpp \ Thermostat.cpp \ TimeFilter.cpp \ TimeIntegrator.cpp \ Vector.cpp \ XT_Function.cpp INC = Array2D.h \ Array.h \ ATC_Error.h \ ATC_HardyKernel.h \ ATC_Transfer.h \ ATC_TransferHardy.h \ ATC_TransferThermal.h \ ATC_TypeDefs.h \ \ AtomicRegulator.h \ CG.h \ CloneVector.h \ DenseMatrix.h \ DenseVector.h \ DiagonalMatrix.h \ ElasticTimeIntegrator.h \ ElectronFlux.h \ ElectronHeatCapacity.h \ ElectronHeatFlux.h \ ElectronPhononExchange.h \ ExtrinsicModel.h \ ExtrinsicModelTwoTemperature.h \ FE_Element.h \ FE_Engine.h \ FE_Mesh.h \ FieldEulerIntegrator.h \ GMRES.h \ ImplicitSolveOperator.h \ Kinetostat.h \ LammpsInterface.h \ Material.h \ MatrixDef.h \ Matrix.h \ MatrixLibrary.h \ OutputManager.h \ PhysicsModel.h \ PhysicsModelThermal.h \ PhysicsModelTwoTemperature.h \ PrescribedDataManager.h \ Quadrature.h \ Solver.h \ SparseMatrix.h \ SparseMatrix-inl.h \ SparseVector.h \ SparseVector-inl.h \ StringManip.h \ Thermostat.h \ TimeFilter.h \ TimeIntegrator.h \ Utility.h \ Vector.h \ XT_Function.h # ------ DEFINITIONS ------ # which file will be copied to Makefile.lammps EXTRAMAKE = Makefile.lammps.linalg DIR = Obj_mingw64-mpi/ LIB = $(DIR)libatc.a OBJ = $(SRC:%.cpp=$(DIR)%.o) # ------ SETTINGS ------ # include any MPI settings needed for the ATC library to build with # the same MPI library that LAMMPS is built with CC = x86_64-w64-mingw32-g++ CCFLAGS = -I../../tools/mingw-cross/mpich2-win64/include/ \ -I../../src -I../../src/STUBS -DMPICH_IGNORE_CXX_SEEK \ -O3 -march=core2 -mtune=core2 -mpc64 -msse2 \ -ffast-math -funroll-loops -fstrict-aliasing \ -DLAMMPS_SMALLBIG -Wno-uninitialized ARCHIVE = x86_64-w64-mingw32-ar ARCHFLAG = -rcs DEPFLAGS = -M LINK = x86_64-w64-mingw32-g++ LINKFLAGS = -O USRLIB = SYSLIB = # ------ MAKE PROCEDURE ------ default: $(DIR) $(LIB) Makefile.lammps $(DIR): mkdir $(DIR) Makefile.lammps: @cp $(EXTRAMAKE) Makefile.lammps $(LIB): $(OBJ) $(ARCHIVE) $(ARFLAGS) $(LIB) $(OBJ) @cp $(EXTRAMAKE) Makefile.lammps # ------ COMPILE RULES ------ $(DIR)%.o:%.cpp $(CC) $(CCFLAGS) -c $< -o $@ $(DIR)%.d:%.cpp $(CC) $(CCFLAGS) $(DEPFLAGS) $< > $@ # ------ DEPENDENCIES ------ DEPENDS = $(OBJ:.o=.d) # ------ CLEAN ------ clean: rm $(DIR)*.o $(DIR)*.d *~ $(LIB) $(DEPENDS) : $(DIR) sinclude $(DEPENDS)