Update Makefile and .clangd

This commit is contained in:
Cory Balaton 2023-12-17 13:32:36 +01:00
parent 4458ff2d12
commit e02abe3ab7
Signed by: coryab
GPG Key ID: F7562F0EC4E4A61B
2 changed files with 35 additions and 12 deletions

View File

@ -1,2 +1,2 @@
CompileFlags: CompileFlags:
Add: [-I../include] Add: [-I../include, -std=c++11]

View File

@ -1,5 +1,5 @@
# The compiler # The compiler
CC=mpicxx CC=g++
# Flags # Flags
CFLAGS=-Wall -larmadillo -std=c++11 -O3 -fopenmp CFLAGS=-Wall -larmadillo -std=c++11 -O3 -fopenmp
@ -26,19 +26,26 @@ LATEXDIR=./latex
# Source directories # Source directories
SRC=./src SRC=./src
LIB=./lib
INCLUDE=./include INCLUDE=./include
# Source files and object file locations # Source files and object file locations
SRCFILES=utils.cpp testlib.cpp #SRCFILES=utils.cpp testlib.cpp
SRCS=$(addprefix $(SRC)/, $(SRCS)) #SRCS=$(addprefix $(SRC)/, $(SRCS))
BINOBJS=$(addprefix $(BINOBJDIR)/, $(SRCFILES:.cpp=.o)) #BINOBJS=$(addprefix $(BINOBJDIR)/, $(SRCFILES:.cpp=.o))
PROFOBJS=$(addprefix $(PROFOBJDIR)/, $(SRCFILES:.cpp=.o)) #PROFOBJS=$(addprefix $(PROFOBJDIR)/, $(SRCFILES:.cpp=.o))
DEBUGOBJS=$(addprefix $(DEBUGOBJDIR)/, $(SRCFILES:.cpp=.o)) #DEBUGOBJS=$(addprefix $(DEBUGOBJDIR)/, $(SRCFILES:.cpp=.o))
# Lib files
LIBSRCS=$(notdir $(shell find $(LIB) -type f))
LIBBINOBJS=$(addprefix $(BINOBJDIR)/, $(LIBSRCS:.cpp=.o))
LIBPROFOBJS=$(addprefix $(PROFOBJDIR)/, $(LIBSRCS:.cpp=.o))
LIBDEBUGOBJS=$(addprefix $(DEBUGOBJDIR)/, $(LIBSRCS:.cpp=.o))
# Location for Binaries # Location for Binaries
EXEC=main test_suite EXEC=$(basename $(notdir $(shell find $(SRC) -type f)))
BINS=$(addprefix $(BINDIR)/, $(EXEC)) BINS=$(addprefix $(BINDIR)/, $(EXEC))
PROFBINS=$(PROFDIR)/phase_transition_mpi PROFBINS=$(addprefix $(PROFDIR)/, $(EXEC))
DEBUGBINS=$(addprefix $(DEBUGDIR)/, $(EXEC)) DEBUGBINS=$(addprefix $(DEBUGDIR)/, $(EXEC))
# List phony targets # List phony targets
@ -56,23 +63,24 @@ latex:
$(MAKE) -C $(LATEXDIR) $(MAKE) -C $(LATEXDIR)
# Rule for binaries # Rule for binaries
$(BINDIR)/%: $(BINOBJDIR)/%.o $(BINOBJS) $(BINDIR)/%: $(BINOBJDIR)/%.o $(LIBBINOBJS)
$(MKDIR) $(BINDIR) $(MKDIR) $(BINDIR)
$(CC) $^ -o $@ $(CFLAGS) -I$(INCLUDE) $(CC) $^ -o $@ $(CFLAGS) -I$(INCLUDE)
# Rule for profiling binaries # Rule for profiling binaries
$(PROFDIR)/%: $(PROFOBJDIR)/%.o $(PROFOBJS) $(PROFDIR)/%: $(PROFOBJDIR)/%.o $(LIBPROFOBJS)
$(MKDIR) $(PROFDIR) $(MKDIR) $(PROFDIR)
$(INSTRUMENT) $(CC) $^ -o $@ $(CFLAGS) $(PROFFLAGS) -I$(INCLUDE) $(INSTRUMENT) $(CC) $^ -o $@ $(CFLAGS) $(PROFFLAGS) -I$(INCLUDE)
# Rule for debug binaries # Rule for debug binaries
$(DEBUGDIR)/%: $(DEBUGOBJDIR)/%.o $(DEBUGOBJS) $(DEBUGDIR)/%: $(DEBUGOBJDIR)/%.o $(LIBDEBUGOBJS)
$(MKDIR) $(DEBUGDIR) $(MKDIR) $(DEBUGDIR)
$(CC) $^ -o $@ $(CFLAGS) $(DBGFLAGS) -I$(INCLUDE) $(CC) $^ -o $@ $(CFLAGS) $(DBGFLAGS) -I$(INCLUDE)
# Rule for object files # Rule for object files
$(BINOBJDIR)/%.o: $(SRC)/%.cpp $(BINOBJDIR)/%.o: $(SRC)/%.cpp
$(MKDIR) $(BINOBJDIR) $(MKDIR) $(BINOBJDIR)
echo $(LIBBINOBJS)
$(CC) -c $^ -o $@ $(CFLAGS) -I$(INCLUDE) $(CC) -c $^ -o $@ $(CFLAGS) -I$(INCLUDE)
# Rule for instrumented object files # Rule for instrumented object files
@ -85,6 +93,21 @@ $(DEBUGOBJDIR)/%.o: $(SRC)/%.cpp
$(MKDIR) $(DEBUGOBJDIR) $(MKDIR) $(DEBUGOBJDIR)
$(CC) -c $^ -o $@ $(CFLAGS) $(DBGFLAGS) -I$(INCLUDE) $(CC) -c $^ -o $@ $(CFLAGS) $(DBGFLAGS) -I$(INCLUDE)
# Rule for object files
$(BINOBJDIR)/%.o: $(LIB)/%.cpp
$(MKDIR) $(BINOBJDIR)
$(CC) -c $^ -o $@ $(CFLAGS) -I$(INCLUDE)
# Rule for instrumented object files
$(PROFOBJDIR)/%.o: $(LIB)/%.cpp
$(MKDIR) $(PROFOBJDIR)
$(INSTRUMENT) $(CC) -c $^ -o $@ $(CFLAGS) $(PROFFLAGS) -I$(INCLUDE)
# Rule for debug object files
$(DEBUGOBJDIR)/%.o: $(LIB)/%.cpp
$(MKDIR) $(DEBUGOBJDIR)
$(CC) -c $^ -o $@ $(CFLAGS) $(DBGFLAGS) -I$(INCLUDE)
# Cleaning # Cleaning
clean: objclean binclean latexclean clean: objclean binclean latexclean