|
| 1 | +include make.inc |
| 2 | + |
| 3 | +F90 = gfortran |
| 4 | + |
| 5 | +CXXFLAGS += $(opt) -Wall -pedantic -fopenmp -std=c++11 -I$(SIQK) -I$(PWD) -I$(KOKKOS)/include -DSIQK_TIME -Wno-unused-function -fPIC |
| 6 | +LDFLAGS += -fopenmp -L$(KOKKOS)/lib -lkokkos -ldl |
| 7 | + |
| 8 | +OS_NAME := $(shell uname -s) |
| 9 | + |
| 10 | +ifdef NETCDF |
| 11 | + CXXFLAGS+=-isystem$(NETCDF)/include -DSLMM_HAVE_NETCDF |
| 12 | + LDFLAGS+=-L$(NETCDF)/lib -lnetcdf_c++4 -lnetcdf |
| 13 | + ifeq ($(OS_NAME), Linux) |
| 14 | + LDFLAGS+=-Wl,-rpath=$(NETCDF)/lib |
| 15 | + endif |
| 16 | +endif |
| 17 | + |
| 18 | +ifdef BUILD_DIAG |
| 19 | + LDFLAGS += -lgfortran |
| 20 | + CXXFLAGS += -DSLMMIR_LAURITZEN_DIAG |
| 21 | +endif |
| 22 | + |
| 23 | +SLMM_SOURCES=slmm_mesh.cpp slmm_io.cpp slmm_time_int.cpp slmm_gallery.cpp slmm_util.cpp slmm_nla.cpp slmm_spf.cpp slmm_fit_extremum.cpp slmm_basis.cpp slmm_islet_string.cpp slmm_islet.cpp slmm_basis_reduced.cpp slmm_accum.cpp slmm_array_tree.cpp slmm_spf_lqlt.cpp slmm_vis.cpp |
| 24 | + |
| 25 | +SLMM_OBJECTS=$(SLMM_SOURCES:.cpp=.o) |
| 26 | + |
| 27 | +SLMMIR_SRC=slmmir_time_int.cpp slmmir_time_int_exp.cpp slmmir_remap_data.cpp slmmir_mono_data.cpp slmmir_remapper.cpp slmmir_remapper_isl.cpp slmmir_util.cpp slmmir_p_refine.cpp slmmir_lauritzen_diag.cpp slmmir_d2c.cpp slmmir_physgrid.cpp slmmir_snapshot.cpp |
| 28 | + |
| 29 | +ifdef BUILD_DIAG |
| 30 | + SLMMIR_F90_SRC=slmmir_lauritzen_diag_f90.f90 |
| 31 | +else |
| 32 | + SLMMIR_F90_SRC= |
| 33 | +endif |
| 34 | + |
| 35 | +SLMMIR_OBJ=$(SLMMIR_SRC:.cpp=.o) $(SLMMIR_F90_SRC:.f90=.o) |
| 36 | + |
| 37 | +.SUFFIXES: .cpp .f90 .o |
| 38 | + |
| 39 | +.cpp.o: |
| 40 | + $(CXX) $(CFLAGS) $(CXXFLAGS) -c $< -o $@ |
| 41 | + |
| 42 | +.f90.o: |
| 43 | + $(F90) -c $< -o $@ |
| 44 | + |
| 45 | +all: slmm_test slmmir physgrid |
| 46 | + |
| 47 | +slmm_test: $(SLMM_OBJECTS) slmm_test.o |
| 48 | + $(CXX) $(SLMM_OBJECTS) slmm_test.o $(LDFLAGS) $(LINK_LAPACK_BLAS) -o slmm_test |
| 49 | + |
| 50 | +slmmir: $(SLMMIR_OBJ) $(SLMM_OBJECTS) slmmir.o |
| 51 | + $(CXX) slmmir.o $(SLMMIR_OBJ) $(SLMM_OBJECTS) $(LDFLAGS) $(LINK_LAPACK_BLAS) -o slmmir |
| 52 | + |
| 53 | +physgrid: $(SLMMIR_OBJ) $(SLMM_OBJECTS) physgrid.o |
| 54 | + $(CXX) physgrid.o $(SLMMIR_OBJ) $(SLMM_OBJECTS) $(LDFLAGS) $(LINK_LAPACK_BLAS) -o physgrid |
| 55 | + |
| 56 | +libslmm: $(SLMM_OBJECTS) slmm_c_compat.o |
| 57 | + $(CXX) $(SLMM_OBJECTS) slmm_c_compat.o $(LDFLAGS) -shared $(LINK_LAPACK_BLAS) -o libslmm.so |
| 58 | + |
| 59 | +clean: |
| 60 | + rm -f *.o *.mod slmm_test slmmir libslmm.so *.gcov *.gcda *.gcno |
| 61 | + |
| 62 | +slmm_test.o: slmm_defs.hpp slmm_mesh.hpp slmm_gll.hpp slmm_io.hpp slmm_time_int.hpp slmm_gallery.hpp slmm_islet.hpp $(SIQK)/siqk.hpp $(SIQK)/siqk_sqr.hpp |
| 63 | +slmmir.o: slmm_defs.hpp slmm_util.hpp slmm_mesh.hpp slmm_gll.hpp slmm_io.hpp slmm_time_int.hpp slmm_gallery.hpp slmm_nla.hpp slmm_spf.hpp slmm_fit_extremum.hpp slmmir_time_int.hpp $(SIQK)/siqk.hpp $(SIQK)/siqk_quadrature.hpp $(SIQK)/siqk_sqr.hpp slmmir_remapper.hpp slmmir_remap_data.hpp slmmir_mono_data.hpp slmm_islet.hpp slmm_accum.hpp slmm_vis.hpp slmmir_time_int.hpp |
| 64 | +slmmir_time_int.o: slmm_gallery.hpp slmm_time_int.hpp slmmir_p_refine.hpp slmmir_time_int.hpp |
| 65 | +slmmir_time_int_exp.o: slmm_gallery.hpp slmm_time_int.hpp |
| 66 | +slmm_test.o: slmm_defs.hpp slmm_util.hpp slmm_mesh.hpp slmm_gll.hpp slmm_io.hpp slmm_time_int.hpp slmm_gallery.hpp slmm_nla.hpp slmm_spf.hpp $(SIQK)/siqk.hpp $(SIQK)/siqk_sqr.hpp |
| 67 | +slmm_mesh.o: slmm_mesh.hpp $(SIQK)/siqk.hpp slmm_array.hpp |
| 68 | +slmm_spf.o: slmm_spf.hpp $(SIQK)/siqk.hpp |
| 69 | +slmm_io.o: slmm_io.hpp |
| 70 | +slmm_nla.o: slmm_nla.hpp |
| 71 | +slmm_time_int.o: slmm_time_int.hpp |
| 72 | +slmm_gallery.o: slmm_gallery.hpp |
| 73 | +slmm_util.o: slmm_util.hpp |
| 74 | +slmmir_remap_data.o: slmmir_remap_data.hpp |
| 75 | +slmmir_p_refine.o: slmmir_p_refine.hpp |
| 76 | +slmmir_mono_data.o: slmmir_mono_data.hpp |
| 77 | +slmmir_remapper.o: slmmir_remapper.hpp slmmir_remap_data.hpp slmmir_mono_data.hpp slmmir_util.hpp slmmir.hpp slmmir_physgrid.hpp |
| 78 | +slmmir_remapper_isl.o: slmmir_remapper.hpp slmmir_remap_data.hpp slmmir_mono_data.hpp slmmir_p_refine.hpp slmm_islet.hpp slmmir.hpp slmmir_physgrid.hpp slmm_accum.hpp |
| 79 | +slmmir_util.o: slmmir_util.hpp |
| 80 | +slmmir_p_refine.o: slmmir_p_refine.hpp slmm_islet.hpp |
| 81 | +slmm_islet.o: slmm_islet.hpp |
| 82 | +slmm_islet_string.o: slmm_islet.hpp |
| 83 | +slmm_accum.o: slmm_accum.hpp |
| 84 | +slmm_vis.o: slmm_vis.hpp |
| 85 | +slmmir_physgrid.o: slmmir_physgrid.hpp |
| 86 | +physgrid.o: slmmir_physgrid.hpp |
| 87 | +slmm_basis.o: slmm_basis.hpp |
| 88 | +slmm_basis_reduced.o: slmm_islet.hpp slmm_basis_reduced.hpp |
0 commit comments