csope/Makefile

49 lines
993 B
Makefile
Raw Normal View History

2023-08-05 05:30:18 -04:00
DEBUG:=1
2023-08-08 14:34:15 -04:00
GCC:=0
2023-08-05 05:30:18 -04:00
2023-08-11 13:20:52 -04:00
CC:=gcc
2023-08-04 15:17:55 -04:00
CFLAGS:=-Wall -Wextra -Wpedantic
2023-08-11 13:20:52 -04:00
CFLAGS +=$(if $(DEBUG),-O0 -ggdb,-O3 -flto=auto -fomit-frame-pointer)
CFLAGS +=$(if $(SAN),-fsanitize=${SAN})
CPPFLAGS:=-I config/ -I ${CHDRD} ${shell pkg-config --cflags ncurses readline}
LDLIBS=${shell pkg-config --libs ncurses readline}
2023-07-27 14:04:50 -04:00
LEX:=flex
LEXD:=src/
LEXF:=$(shell find ${LEXD} -iname '*.l')
GENLEX:=$(subst .l,.c,${LEXF})
2023-07-27 14:04:50 -04:00
SRCD:=src/
OBJD:=obj/
SRC:=$(shell find ${SRCD} -iname '*.c') ${GENLEX}
OBJ:=$(subst .c,.o,$(subst ${SRCD},${OBJD},${SRC}))
HDRD:=${SRCD}
2023-08-11 13:20:52 -04:00
CONFD:=config/
2023-07-27 14:04:50 -04:00
CHDRD:=${OBJD}
2023-08-11 13:20:52 -04:00
HDR:=$(shell find ${HDRD} ${CONFD} -iname '*.h')
CHDR:=$(addsuffix .gch,$(subst ${HDRD},${CHDRD},$(subst ${CONFD}, ${CHDRD}, ${HDR})))
2023-07-27 14:04:50 -04:00
OUTPUT:=csope
main: ${CHDR} ${OBJ}
${LINK.c} ${OBJ} -o ${OUTPUT} ${LDLIBS}
2023-07-27 14:04:50 -04:00
obj/%.o: src/%.c
${COMPILE.c} $< -o $@
src/%.c: src/%.l
${LEX} -o $@ $<
obj/%.h.gch: src/%.h
${CC} $< -o $@
2023-08-11 13:20:52 -04:00
obj/%.h.gch: config/%.h
${CC} $< -o $@
2023-07-27 14:04:50 -04:00
clean:
-rm ${CHDR}
-rm ${GENLEX}
-rm ${OBJ}
-rm ${OUTPUT}