53 lines
1.1 KiB
Makefile
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
|