build_dll

This commit is contained in:
2022-03-21 23:20:24 +03:00
parent 20ce758528
commit 5bc866cf3e
7 changed files with 84 additions and 24 deletions

View File

@@ -1,33 +1,45 @@
SRC=$(wildcard [^tests]**/*.c)
TESTS=$(wildcard tests/*c) $(wildcard tests/**/*.c)
OUTDIR=.bin
OUTFILE=$(OUTDIR)/kerep_test.com
CMP=gcc
all: clear_c build test
all: clear_c clear_bin build_test build_dll
clear_c:
clear
clear_bin:
@echo -e '\e[96m--------------[clear_bin]--------------\e[0m'
touch $(OUTDIR)/_.com
rm $(OUTDIR)/*.com
rm -rf $(OUTDIR)
mkdir $(OUTDIR)
clang: CMP=clang
clang: all
CMPARGS= -Wall -Wno-discarded-qualifiers $(SRC) $(TESTS) -o $(OUTFILE)
build:
@echo -e '\n\e[96m----------------[build]----------------\e[0m'
@mkdir -p $(OUTDIR)
$(CMP) -O1 -flto $(CMPARGS)
build_dbg:
@echo -e '\n\e[96m--------------[build_dbg]--------------\e[0m'
@mkdir -p $(OUTDIR)
$(CMP) -O0 -g $(CMPARGS).dbg
TEST_FILE=$(OUTDIR)/kerep_test.com
TEST_ARGS= -Wall -Wno-discarded-qualifiers $(SRC) $(TESTS) -o $(TEST_FILE)
OPT_ARGS= -O1 -flto
build_test:
@echo -e '\n\e[96m----------------[build_test]----------------\e[0m'
$(CMP) $(OPT_ARGS) $(TEST_ARGS)
build_test_dbg:
@echo -e '\n\e[96m--------------[build_test_dbg]--------------\e[0m'
$(CMP) -O0 -g $(TEST_ARGS).dbg
test:
@echo -e '\n\e[96m----------------[test]-----------------\e[0m'
$(OUTFILE)
valgrind: clear_c build_dbg
$(TEST_FILE)
valgrind: clear_c build_test_dbg
@echo -e '\n\e[96m--------------[valgrind]---------------\e[0m'
valgrind -s --read-var-info=yes --track-origins=yes --fullpath-after=kerep/ \
--leak-check=full --show-leak-kinds=all $(OUTFILE).dbg
--leak-check=full --show-leak-kinds=all $(TEST_FILE).dbg
DLL_FILE=$(OUTDIR)/kerep.dll
DLL_ARGS= -Wall -Wno-discarded-qualifiers \
-fPIC -shared -Wl,-soname,kerep.dll \
$(SRC) $(TESTS) -o $(DLL_FILE)
build_dll:
@echo -e '\n\e[96m-------------[build_dll]---------------\e[0m'
$(CMP) $(OPT_ARGS) $(DLL_ARGS)