25'ten fazla konu seçemezsiniz Konular bir harf veya rakamla başlamalı, kısa çizgiler ('-') içerebilir ve en fazla 35 karakter uzunluğunda olabilir.

53 satır
1.1KB

  1. DEBUG:=0
  2. LIBS:=ncurses readline history
  3. CC:=gcc
  4. CFLAGS:=-Wall -Wextra -Wpedantic
  5. CFLAGS +=$(if $(DEBUG),-O0 -ggdb -Wall -Wpedantic,-O3 -flto=auto -fomit-frame-pointer)
  6. CFLAGS +=$(if $(SAN),-fsanitize=${SAN})
  7. CPPFLAGS:=-I config/ -I ${CHDRD} ${shell pkg-config --cflags ${LIBS}}
  8. LDLIBS=${shell pkg-config --libs ${LIBS}}
  9. LEX:=flex
  10. LEXD:=source/
  11. LEXF:=$(shell find ${LEXD} -iname '*.l')
  12. GENLEX:=$(subst .l,.c,${LEXF})
  13. SRCD:=source/
  14. OBJD:=object/
  15. source:=$(shell find ${SRCD} -iname '*.c') ${GENLEX}
  16. object:=$(subst .c,.o,$(subst ${SRCD},${OBJD},${source}))
  17. HDRD:=${SRCD}
  18. CONFD:=config/
  19. CHDRD:=${OBJD}
  20. HDR:=$(shell find ${HDRD} ${CONFD} -iname '*.h')
  21. CHDR:=$(addsuffix .gch,$(subst ${HDRD},${CHDRD},$(subst ${CONFD}, ${CHDRD}, ${HDR})))
  22. OUTPUT:=csope
  23. main: ${CHDR} ${object}
  24. ${LINK.c} ${object} -o ${OUTPUT} ${LDLIBS}
  25. object/%.o: source/%.c
  26. ${COMPILE.c} $< -o $@
  27. source/%.c: source/%.l
  28. ${LEX} -o $@ $<
  29. object/%.h.gch: source/%.h
  30. ${CC} $< -o $@
  31. object/%.h.gch: config/%.h
  32. ${CC} $< -o $@
  33. install: ${OUTPUT}
  34. cp ${OUTPUT} /usr/bin/
  35. clean:
  36. -rm ${CHDR}
  37. -rm ${GENLEX}
  38. -rm ${object}
  39. -rm ${OUTPUT}