Highlight things
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.

54 lines
894B

  1. TARGET:=hl
  2. CFLAGS := -std=c99
  3. CPPFLAGS := -Iinclude -D_GNU_SOURCE
  4. DEBUG=1
  5. ifeq (${DEBUG},1)
  6. CFLAGS += -Og -ggdb -pg -fno-inline -Wall -Wextra -Wpedantic -Wshadow -Wundef
  7. else
  8. CFLAGS += -O2 -flto=auto -D_FORTIFY_SOURCE=2
  9. endif
  10. PREFIX:=/usr/bin
  11. USER=$(shell whoami)
  12. include chad.mk
  13. SRC.dir := source
  14. OBJ.dir := object
  15. SRC:=$(addprefix $(SRC.dir)/,hl.c jeger.c main.c terminal.c vector.c)
  16. HDR:=chad.h hl.h jeger.h terminal.h vector.h
  17. OBJ:=$(subst $(SRC.dir),$(OBJ.dir),$(SRC:.c=.o))
  18. VPATH=${SRC.dir} ${OBJ.dir}
  19. ${OBJ.dir}/%.o: ${SRC.dir}/%.c
  20. ${COMPILE.c} $< -o $@
  21. ${TARGET}: ${OBJ} | ${HDR}
  22. ${LINK.c} $+ -o $@
  23. ${SRC} ${HDR}:
  24. install: ${PREFIX}
  25. install -v -g ${USER} -o ${USER} -m 744 ${TARGET} ${PREFIX}/
  26. uninstall:
  27. -rm ${PREFIX}/bin/${TARGET}
  28. clean:
  29. -rm ${OBJ} ${TARGET}
  30. test: chad_test
  31. run:
  32. hl < source/main.c
  33. .PHONY: test clean install run
  34. .DEFAULT_GOAL:=${TARGET}