rc-tui/Makefile
2024-01-30 23:09:43 +01:00

41 lines
1.0 KiB
Makefile
Executable File

.PHONY: clean run gdb
ifeq (${DEBUG}, 1)
LFLAGS += --debug --trace
CXXFLAGS += -Wall -Wextra -Wpedantic
CXXFLAGS += -DDEBUG -O0 -ggdb -fno-inline
WRAP := valgrind --track-origins=yes --leak-check=full --show-leak-kinds=all
else
CXXFLAGS += -O3 -fno-stack-protector -fno-exceptions -fno-rtti
endif
LDLIBS += -lfl $$(pkgconf --cflags --libs menu) $$(pkgconf --cflags --libs ncurses) $$(pkgconf --cflags --libs readline)
CXXFLAGS += -std=gnu++20 -I./source/ -I./object/ -I./
OBJD:=object/
SRCD:=source/
SRC:=main.cpp tui.cpp
SRC:=$(addprefix ${SRCD},${SRC}) ${OBJD}/lex.cpp
OBJ:=$(subst .cpp,.o,$(subst ${SRCD},${OBJD},${SRC}))
OUTPUT:=rc-tui
main: object/lex.cpp ${OBJ}
${LINK.cpp} ${OBJ} -o ${OUTPUT} ${LDLIBS}
object/%.o: source/%.cpp
${COMPILE.cpp} $< -o $@
object/lex.cpp: source/rc_lexer.l
${LEX} ${LFLAGS} --header-file=${OBJD}/rc_lexer.h -o ${OBJD}/lex.cpp ${SRCD}/rc_lexer.l
clean:
-rm ${OBJD}/*
-rm ./${OUTPUT}
run:
./${OUTPUT}
gdb:
sudo gdb --directory=./source -p $(shell pgrep ${OUTPUT})