|
- DEBUG:=0
-
- LIBS:=ncurses readline history
-
- CC:=gcc
- CFLAGS:=-Wall -Wextra -Wpedantic
- CFLAGS +=$(if $(DEBUG),-O0 -ggdb -Wall -Wpedantic,-O3 -flto=auto -fomit-frame-pointer)
- CFLAGS +=$(if $(SAN),-fsanitize=${SAN})
- CPPFLAGS:=-I config/ -I ${CHDRD} ${shell pkg-config --cflags ${LIBS}}
- LDLIBS=${shell pkg-config --libs ${LIBS}}
- LEX:=flex
-
- LEXD:=source/
- LEXF:=$(shell find ${LEXD} -iname '*.l')
- GENLEX:=$(subst .l,.c,${LEXF})
-
- SRCD:=source/
- OBJD:=object/
- source:=$(shell find ${SRCD} -iname '*.c') ${GENLEX}
- object:=$(subst .c,.o,$(subst ${SRCD},${OBJD},${source}))
-
- HDRD:=${SRCD}
- CONFD:=config/
- CHDRD:=${OBJD}
- HDR:=$(shell find ${HDRD} ${CONFD} -iname '*.h')
- CHDR:=$(addsuffix .gch,$(subst ${HDRD},${CHDRD},$(subst ${CONFD}, ${CHDRD}, ${HDR})))
-
- OUTPUT:=csope
-
- main: ${CHDR} ${object}
- ${LINK.c} ${object} -o ${OUTPUT} ${LDLIBS}
-
- object/%.o: source/%.c
- ${COMPILE.c} $< -o $@
-
- source/%.c: source/%.l
- ${LEX} -o $@ $<
-
- object/%.h.gch: source/%.h
- ${CC} $< -o $@
-
- object/%.h.gch: config/%.h
- ${CC} $< -o $@
-
- install: ${OUTPUT}
- cp ${OUTPUT} /usr/bin/
-
- clean:
- -rm ${CHDR}
- -rm ${GENLEX}
- -rm ${object}
- -rm ${OUTPUT}
|