87 lines
2.1 KiB
Makefile
87 lines
2.1 KiB
Makefile
include config.mk
|
|
|
|
PREFIX = /usr/local
|
|
MANPREFIX = ${PREFIX}/man
|
|
|
|
LUADIR = external/lua
|
|
|
|
CLANG_FORMAT = clang-format
|
|
|
|
CC = ${_CC}
|
|
CFLAGS = ${_CFLAGS} -Iexternal -pedantic -Wall -Wextra
|
|
CPPFLAGS = -D_DEFAULT_SOURCE ${_CPPFLAGS}
|
|
LDFLAGS = ${_LDFLAGS}
|
|
|
|
OBJS = callisto.o lcl.o lenviron.o lextra.o lfs.o ljson.o \
|
|
lprocess.o util.o
|
|
HEADERS = callisto.h \
|
|
${LUADIR}/lua.h \
|
|
${LUADIR}/luaconf.h \
|
|
${LUADIR}/lualib.h \
|
|
${LUADIR}/lauxlib.h
|
|
|
|
CJSON_SRC = external/json
|
|
CJSON_OBJS = fpconv.o lua_cjson.o strbuf.o
|
|
CJSON_CFLAGS = ${_CFLAGS} -I${LUADIR}
|
|
|
|
all: csto libcallisto.a
|
|
|
|
csto: libcallisto.a csto.o
|
|
${CC} -o $@ csto.o libcallisto.a ${LDFLAGS}
|
|
libcallisto.a: lua ${CJSON_OBJS} ${OBJS}
|
|
ar cr $@ ${OBJS} ${CJSON_OBJS} ${_LUAOBJS}
|
|
|
|
.SUFFIXES: .o
|
|
|
|
.c.o:
|
|
${CC} ${CFLAGS} ${CPPFLAGS} -c $<
|
|
|
|
csto.o: csto.c callisto.h
|
|
callisto.o: callisto.c callisto.h
|
|
lcl.o: lcl.c callisto.h util.h
|
|
lextra.o: lextra.c callisto.h util.h
|
|
lenviron.o: lenviron.c callisto.h
|
|
lfs.o: lfs.c callisto.h util.h
|
|
ljson.o: ljson.c callisto.h
|
|
lprocess.o: lprocess.c callisto.h util.h
|
|
${CC} ${CFLAGS} -Wno-override-init ${CPPFLAGS} -c lprocess.c
|
|
util.o: util.c
|
|
|
|
# cjson
|
|
fpconv.o: ${CJSON_SRC}/fpconv.c
|
|
${CC} ${CJSON_CFLAGS} -c $<
|
|
lua_cjson.o: ${CJSON_SRC}/lua_cjson.c
|
|
${CC} ${CJSON_CFLAGS} -c $<
|
|
strbuf.o: ${CJSON_SRC}/strbuf.c
|
|
${CC} ${CJSON_CFLAGS} -c $<
|
|
|
|
lua:
|
|
${MAKE} -C${LUADIR}
|
|
|
|
clean:
|
|
rm -f csto libcallisto.a csto.o ${OBJS} ${CJSON_OBJS}
|
|
rm -fr include doc/*.html doc/modules
|
|
${MAKE} -s -C${LUADIR} clean
|
|
|
|
doc:
|
|
ldoc -s . -q . >/dev/null
|
|
|
|
format:
|
|
find . -maxdepth 1 -iname '*.c' -o -iname '*.h' \
|
|
| xargs ${CLANG_FORMAT} -i
|
|
|
|
gitconfig:
|
|
git config format.subjectPrefix "PATCH callisto"
|
|
git config sendemail.to '~jeremy/public-inbox@lists.sr.ht'
|
|
|
|
install:
|
|
mkdir -p "${DESTDIR}${PREFIX}"/bin
|
|
mkdir -p "${DESTDIR}${PREFIX}"/include/callisto
|
|
mkdir -p "${DESTDIR}${PREFIX}"/lib
|
|
mkdir -p "${DESTDIR}${PREFIX}"/share/man/man1
|
|
cp -f ${HEADERS} "${DESTDIR}${PREFIX}"/include/callisto/
|
|
cp -f csto "${DESTDIR}${PREFIX}"/bin/
|
|
cp -f libcallisto.a "${DESTDIR}${PREFIX}"/lib/
|
|
cp -f man/csto.1 "${DESTDIR}${PREFIX}"/share/man/man1/
|
|
|
|
.PHONY: all clean doc format gitconfig install lua
|