histui/Makefile

47 lines
1.2 KiB
Makefile

.PHONY: clean run
ifeq (${DEBUG}, 1)
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
LIBFLAGS := $$(pkgconf --cflags ncurses readline sqlite3)
CXXFLAGS += -std=gnu++20 -I./source/ -I./object/ -I./ ${LIBFLAGS}
CXXFLAGS += -Wall -Wextra -Wpedantic
LINKasd += $$(pkgconf --libs ncurses readline sqlite3)
OBJECT.d:=object/
SOURCE.d:=source/
SOURCE:=argument_yy.tab.cpp bash_history.yy.cpp main.cpp cli.cpp tui.cpp storage.cpp damerau_levenshtein.cpp
OBJECT:=$(addprefix ${OBJECT.d},$(addsuffix .o,$(basename ${SOURCE})))
SOURCE:=$(addprefix ${SOURCE.d},${SOURCE})
OUTPUT:=histui
${OUTPUT}: ${OBJECT}
${LINK.cpp} ${OBJECT} ${LINKasd} -o ${OUTPUT}
object/%.yy.cpp: source/%.l
flex --prefix=$*_ --header-file=$(basename $@).hpp -o $@ $<
object/%.tab.cpp: source/%.y
bison --name-prefix=$*_ --header=$(basename $@).hpp -o $@ $<
object/%.o: object/%.l.cpp
${COMPILE.cpp} $< -o $@
object/%.o: source/%.cpp
${COMPILE.cpp} $< -o $@
clean:
-rm ${OBJECT.d}/*
-rm ./${OUTPUT}
test:
${WRAP} ./${OUTPUT}
install:
cp ${OUTPUT} ~/bin/