Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

50 рядки
883B

  1. # CC=gcc
  2. CFLAGS:=-Wall -Wextra -Wpedantic
  3. CPPFLAGS:=-D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600
  4. LDLIBS=-I ${CHDRD} -lncurses -ltinfo -lreadline
  5. LEX:=flex
  6. LEXD:=src/
  7. LEXF:=$(shell find ${LEXD} -iname '*.l')
  8. GENLEX:=$(subst .l,.c,${LEXF})
  9. SRCD:=src/
  10. OBJD:=obj/
  11. SRC:=$(shell find ${SRCD} -iname '*.c') ${GENLEX}
  12. OBJ:=$(subst .c,.o,$(subst ${SRCD},${OBJD},${SRC}))
  13. HDRD:=${SRCD}
  14. CHDRD:=${OBJD}
  15. HDR:=$(shell find ${HDRD} -iname '*.h')
  16. CHDR:=$(addsuffix .gch,$(subst ${HDRD},${CHDRD},${HDR}))
  17. OUTPUT:=csope
  18. ifeq (${DEBUG},1)
  19. CFLAGS += -Og -ggdb
  20. else
  21. CFLAGS += -O3 -flto=auto -fomit-frame-pointer
  22. endif
  23. ifdef SAN
  24. CFLAGS += -fsanitize=${SAN}
  25. endif
  26. main: ${CHDR} ${OBJ}
  27. ${LINK.c} ${OBJ} -o ${OUTPUT} ${LDLIBS}
  28. obj/%.o: src/%.c
  29. ${COMPILE.c} $< -o $@
  30. src/%.c: src/%.l
  31. ${LEX} -o $@ $<
  32. obj/%.h.gch: src/%.h
  33. ${CC} $< -o $@
  34. clean:
  35. -rm ${CHDR}
  36. -rm ${GENLEX}
  37. -rm ${OBJ}
  38. -rm ${OUTPUT}