depgra/Makefile
2024-08-23 21:29:39 +02:00

53 lines
1.1 KiB
Makefile

.PHONY: clean test bootstrap
.SUFFIXES:
# --- Paths / files
SOURCE.d := source
OBJECT.d := object
SOURCE := main.cpp
OBJECT := $(addprefix ${OBJECT.d}/,${SOURCE})
OBJECT := $(subst .cpp,.o,${OBJECT})
GENSOURCE := include_lexer.yy.cpp
GENSOURCE := $(addprefix ${OBJECT.d}/,${GENSOURCE})
GENOBJECT := $(subst .cpp,.o,${GENSOURCE})
# --- Tools/Flags
LDLIBS := -lgvc -lcgraph
CPPFLAGS := -Iobject/ -Isource/
ifeq (${DEBUG}, 1)
LFLAGS += --debug --trace
CFLAGS += -O0 -ggdb -fno-inline
CPPFLAGS += -DDEBUG
FLEXFLAGS += --trace --debug
else
CFLAGS += -O3 -flto=auto -fno-stack-protector
endif
OUT := depgra
# --- Rule Section ---
${OUT}: ${GENSOURCE} ${GENOBJECT} ${OBJECT}
${LINK.cpp} -o $@ ${OBJECT} ${GENOBJECT} ${LDLIBS}
${OBJECT.d}/%.yy.cpp: ${SOURCE.d}/%.l
flex ${FLEXFLAGS} --header-file=object/$(basename $(notdir $<)).yy.h -o $@ $<
${OBJECT.d}/%.yy.o: ${OBJECT.d}/%.yy.cpp
${COMPILE.cpp} -o $@ $<
${OBJECT.d}/%.o: ${SOURCE.d}/%.cpp
${COMPILE.cpp} -o $@ $<
clean:
-rm ${GENSOURCE}
-rm ${OBJECT}
-rm ${OUT}
test:
./bepgra debug/dummy_c_project/*.c
nomacs output.png