############################################################################### # compile.mk ############################################################################### EX_ = $(notdir $(basename $(SRC))) OS = $(shell pwd | sed 's/.*\/\([^\/]*\)\/.*$$/\1/g') SRC = $(wildcard ../*.c* ../../*.c*) vpath %.c .. ../.. vpath %.cc .. ../.. CFLAGS = -g -I$(dir $<) -Og -Wall # -fno-omit-frame-pointer CXXFLAGS = $(CFLAGS) ############################################################################### ifeq ($(OS),linux) ATT = $(EXE:=.att) CFLAGS += -m$(notdir $(CURDIR)) EXE = $(EX_) %.att: % objdump -Cd $< > $@ endif ############################################################################### ifeq ($(OS),windows) ATT = $(EXE:.exe=.att) CC = $(notdir $(CURDIR))-w64-mingw32-gcc CFLAGS += -mwindows -static -static-libgcc -static-libstdc++ CXX = $(notdir $(CURDIR))-w64-mingw32-g++ EXE = $(EX_:=.exe) %.att: %.exe objdump -Cd $< > $@ %.exe: %.c $(CC) $(CFLAGS) $< -o $@ %.exe: %.cc $(CXX) $(CXXFLAGS) $< -o $@ endif ############################################################################### all: exe att: $(ATT) clean: -rm -frv $(ATT) $(EXE) .vscode {,vg}core.* *~ exe: $(EXE) src: $(SRC) ############################################################################### concept concept.exe: CXXFLAGS += -fconcepts %.leak: % # valgrind --leak-check=full -s --leak-resolution=high --show-error-list=yes --show-leak-kinds=all --track-origins=yes --verbose ./$< valgrind --leak-check=summary --show-leak-kinds=all --track-origins=yes ./$< ############################################################################### .PHONY: all att clean exe src .NOEXPORT: ###############################################################################