You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

41 line
973B

  1. .PHONY: clean run
  2. ifeq (${DEBUG}, 1)
  3. LFLAGS += --debug --trace
  4. CXXFLAGS += -Wall -Wextra -Wpedantic
  5. CXXFLAGS += -DDEBUG -O0 -ggdb -fno-inline
  6. WRAP := valgrind --track-origins=yes --leak-check=full --show-leak-kinds=all
  7. else
  8. CXXFLAGS += -O3 -fno-stack-protector -fno-exceptions -fno-rtti
  9. endif
  10. LDLIBS += $$(pkgconf --cflags --libs ncurses) $$(pkgconf --cflags --libs readline)
  11. CXXFLAGS += -std=gnu++20 -I./source/ -I./object/ -I./
  12. OBJECT.d:=object/
  13. SOURCE.d:=source/
  14. SOURCE:=main.cpp tui.cpp db.cpp config.l
  15. SOURCE:=$(addprefix ${SOURCE.d},${SOURCE})
  16. OBJECT:=$(addprefix ${OBJECT.d},$(subst ${SOURCE.d},,$(addsuffix .o,$(basename ${SOURCE}))))
  17. OUTPUT:=histui
  18. ${OUTPUT}: ${OBJECT}
  19. ${LINK.cpp} ${OBJECT} -o ${OUTPUT} ${LDLIBS}
  20. object/%.l.cpp: source/%.l
  21. ${LEX} ${LFLAGS} -o $@ $<
  22. object/%.o: object/%.l.cpp
  23. ${COMPILE.cpp} $< -o $@
  24. object/%.o: source/%.cpp
  25. ${COMPILE.cpp} $< -o $@
  26. clean:
  27. -rm ${OBJECT.d}/*
  28. -rm ./${OUTPUT}
  29. run:
  30. ./${OUTPUT}