Skip to content
Snippets Groups Projects
Commit 1cfccaf5 authored by Holger Obermaier's avatar Holger Obermaier
Browse files

Add makefile rules to compile and link c++ sources

parent 31f2afd9
No related branches found
No related tags found
1 merge request!2Develop porting from c to cpp
......@@ -59,14 +59,16 @@ REF := ifos3D_reference.pdf
###############################################################################
### GNU compiler with OpenMPI
CC := export OMPI_CC=gcc-13 ; mpicc
CXX := export OMPI_CXX=gcc-13 ; mpicxx
CPPFLAGS = -D_GNU_SOURCE -DLOG_COLOR -DKISSFFT_DATATYPE=float
EXTRA_CPPFLAGS := -DUSE_MPI
CFLAGS = -O3 -Wall -Wextra -g -std=c99 -fopenmp-simd -flto -march=znver4
CXXFLAGS := -O3 -Wall -Wextra -g -std=c++23 -fopenmp-simd -flto -march=znver4
# -fopt-info-optimized-vec -fopt-info-optimized-loop
# -fopenmp-simd -pthread -fopt-info-optimized-omp
# -fopt-info-missed-vec -fopt-info-missed-loop
CDEPEND = -MMD -MP -MF .dep-$(subst /,-,$@)
LD := $(CC)
LD := $(CXX)
LDFLAGS = -lm
EXTRA_LDFLAGS :=
......@@ -176,7 +178,7 @@ MERGE_FILES := json_parser.cpp \
merge.cpp \
readdsk.cpp \
read_par_json.cpp \
snapmerge.cpppp \
snapmerge.cpp \
util.cpp \
writedsk.cpp
......@@ -268,9 +270,9 @@ IFOS_FILES := absorb.cpp \
splitsrc.cpp \
steplength.cpp \
stfi.cpp \
stfi.cppalc.cpp \
stfi_calc.cpp \
stfi_apply.cpp \
stfi_merge.cpppp \
stfi_merge.cpp \
su_gather.cpp \
su_struct.cpp \
surface_ssg_elastic.cpp \
......@@ -296,8 +298,8 @@ IFOS_FILES := absorb.cpp \
zero_wavefield.cpp\
zero_wavefield_acoustic.cpp
MERGE_OBJ := $(addprefix $(MERGE_O)/, $(patsubst %.c, %.o, $(MERGE_FILES)))
IFOS_OBJ := $(addprefix $(IFOS_O)/, $(patsubst %.c, %.o, $(IFOS_FILES)))
MERGE_OBJ := $(addprefix $(MERGE_O)/, $(patsubst %.cpp, %.o, $(MERGE_FILES)))
IFOS_OBJ := $(addprefix $(IFOS_O)/, $(patsubst %.cpp, %.o, $(IFOS_FILES)))
SEIFE_OBJ := $(addprefix $(SEIFE_O)/, $(patsubst %.c, %.o, $(SEIFE_FILES)))
KISS_OBJ := $(addprefix $(KISS_O)/, $(patsubst %.c, %.o, $(KISS_FILES)))
......@@ -340,6 +342,7 @@ help:
@echo " $(strip $(INSTDIR))"
@echo -e "Compiler / linker and flags:"
@echo " CC: $(CC)"
@echo " CXX: $(CXX)"
@echo " CPPFLAGS: $(CPPFLAGS) [$(EXTRA_CPPFLAGS)]"
@echo " CFLAGS: $(CFLAGS)"
@echo " LD: $(LD)"
......@@ -411,8 +414,8 @@ $(MERGE_EXE): $(MERGE_OBJ)
$(call cmd,link)
$(MERGE_O)/%.o: CPPFLAGS += -I$(SRCTREE)/../libkissfft/
$(MERGE_O)/%.o: $(SRCTREE)/%.c
$(call cmd,compile_cc)
$(MERGE_O)/%.o: $(SRCTREE)/%.cpp
$(call cmd,compile_cxx)
$(SEIFE_O)/%.o: CPPFLAGS += -I$(SRCTREE)/../libcseife/
$(SEIFE_O)/%.o: $(SRCTREE)/../libcseife/%.c
......@@ -429,14 +432,17 @@ $(IFOS_EXE): $(IFOS_OBJ)
$(call cmd,link)
$(IFOS_O)/%.o: CPPFLAGS += -I$(SRCTREE)/../libcseife/ -I$(SRCTREE)/../libkissfft/ $(EXTRA_CPPFLAGS)
$(IFOS_O)/%.o: $(SRCTREE)/%.c
$(call cmd,compile_cc)
$(IFOS_O)/%.o: $(MODTREE)/%.c
$(call cmd,compile_cc)
$(IFOS_O)/%.o: $(SRCTREE)/%.cpp
$(call cmd,compile_cxx)
$(IFOS_O)/%.o: $(MODTREE)/%.cpp
$(call cmd,compile_cxx)
quiet_cmd_compile_cc = \e[32m[CC]\e[0m $@
cmd_compile_cc = $(CC) -o$@ $(CDEPEND) $(CFLAGS.$@) $(CPPFLAGS) -I$(SRCTREE) $(CFLAGS) -c $<
quiet_cmd_compile_cxx = \e[32m[CC]\e[0m $@
cmd_compile_cxx = $(CXX) -o$@ $(CDEPEND) $(CXXFLAGS.$@) $(CPPFLAGS) -I$(SRCTREE) $(CXXFLAGS) -c $<
quiet_cmd_link = \e[94m[LD]\e[0m $@
cmd_link = $(LD) $(CFLAGS) -o$@ $^ $(LDFLAGS.$@) $(LDFLAGS)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment