script-linux/Makefile

65 lines
1.3 KiB
Makefile
Raw Normal View History

2023-07-07 12:48:50 +02:00
PROJECTNAME=OMTRTA
BIN=build/$(PROJECTNAME)
2023-07-06 18:45:15 +02:00
CC=g++
EXT=cpp
INCDIRS=include lib
# make mode=release
2023-07-07 12:48:50 +02:00
ifeq ($(mode), release)
2023-07-06 18:45:15 +02:00
OPT=-O3
2023-07-07 12:48:50 +02:00
else
OPT=-Og -g
2023-07-06 18:45:15 +02:00
endif
DEPFLAGS=-MP -MD
2023-07-07 12:48:50 +02:00
FLAGS=-Wall -Wextra $(foreach F,$(INCDIRS),-I$(F)) $(OPT) $(DEPFLAGS)
2023-07-06 18:45:15 +02:00
SRC=$(shell find . -name "*.$(EXT)" -path "./src/*")
OBJ=$(subst ./src/,./build/,$(SRC:.$(EXT)=.o))
DEP=$(OBJ:.o=.d)
2023-07-07 12:48:50 +02:00
TEST=$(shell find . -name "*.$(EXT)" -path "./test/*")
2023-07-06 18:45:15 +02:00
$(shell mkdir -p build)
all : $(BIN)
$(BIN) : $(OBJ)
$(CC) $(FLAGS) -o $@ $^
-include $(DEP)
2023-07-07 12:48:50 +02:00
build/%.o : src/%.$(EXT)
2023-07-06 18:45:15 +02:00
@mkdir -p $(@D)
$(CC) $(FLAGS) -o $@ -c $<
run : all
2023-07-08 18:55:31 +02:00
./$(BIN) $(input)
2023-07-06 18:45:15 +02:00
clean :
rm -rf build/*
# make test file=testGenID.cpp
2023-07-07 12:48:50 +02:00
test : $(OBJ)
2023-07-06 18:45:15 +02:00
$(CC) $(FLAGS) -o build/$(file:.$(EXT)=) test/$(file)
./build/$(file:.$(EXT)=)
2023-07-07 12:48:50 +02:00
alltest :
2023-07-08 18:55:31 +02:00
@for f in $(subst ./test/,,$(TEST)); do \
$(CC) $(FLAGS) -o build/$${f%.$(EXT)} test/$$f && ./build/$${f%.$(EXT)};\
done
2023-07-06 18:45:15 +02:00
check :
cppcheck --enable=all --suppress=missingIncludeSystem $(foreach I,$(INCDIRS),-I$(I)) .
flawfinder .
info :
$(info put what ever)
@echo you want
2023-07-08 18:55:31 +02:00
# unzip : tar -xvf exemple.tgz
dist : clean
$(info /!\ project folder has to be named $(PROJECTNAME) /!\ )
cd .. && tar zcvf $(PROJECTNAME)/build/$(PROJECTNAME).tgz $(PROJECTNAME) >/dev/null
.PHONY : all run clean test alltest check info dist