diff Makefile @ 21:887a8fd73d1e

cmake: add support
author David Demelier <markand@malikania.fr>
date Mon, 21 Mar 2022 09:18:14 +0100
parents 496cd52a50ec
children 4da5819148c6
line wrap: on
line diff
--- a/Makefile	Mon Mar 21 09:00:42 2022 +0100
+++ b/Makefile	Mon Mar 21 09:18:14 2022 +0100
@@ -18,18 +18,35 @@
 
 .POSIX:
 
-CC=     cc
-CFLAGS= -O3 -DNDEBUG
+CC=             cc
+
+PREFIX=         /usr/local
+INCDIR=         ${PREFIX}/include
+LIBDIR=         ${PREFIX}/lib
+MANDIR=         ${PREFIX}/share/man
 
-INCS=   -Iextern/librexo -I.
+VERSION=        1.0.0
+
+LIB_SRCS=       unicode.c
+LIB_OBJS=       ${LIB_SRCS:.c=.o}
+LIB_DEPS=       ${LIB_SRCS:.c=.d}
+LIB=            libunicode.a
+
+TESTS_SRCS=     tests/test-unicode.c
+TESTS_OBJS=     ${TESTS_SRCS:.c=}
 
 .SUFFIXES:
-.SUFFIXES: .c
+.SUFFIXES: .c .o
 
-all: unicode.c
+all: ${LIB}
+
+-include ${LIB_DEPS}
 
 .c:
-	${CC} ${CFLAGS} $< -o $@ ${LDFLAGS}
+	${CC} ${CFLAGS} -Iextern/librexo -I. $< -o $@ ${LIB} ${LDFLAGS}
+
+.c.o:
+	${CC} ${CFLAGS} -Iextern/librexo -I. -MMD -c $< -o $@ ${LDFLAGS}
 
 gen/UnicodeData.txt:
 	curl http://unicode.org/Public/UCD/latest/ucd/UnicodeData.txt -o $@
@@ -39,13 +56,23 @@
 	cat gen/UnicodeData.txt | awk -f gen/mkutf.awk >> unicode.c
 	cat gen/unicode-after.c >> unicode.c
 
-test/unicode: unicode.c unicode.h test/unicode.c
-	${CC} ${INCS} ${CFLAGS} -o test/unicode unicode.c test/unicode.c ${LDFLAGS}
+${LIB}: ${LIB_OBJS}
+	${AR} -rc $@ ${LIB_OBJS}
+
+${TESTS_OBJS}: ${LIB}
+
+tests: ${TESTS_OBJS}
+	for t in ${TESTS_OBJS}; do ./$$t; done
 
-tests: test/unicode
-	test/unicode
+install:
+	mkdir -p ${DESTDIR}${LIBDIR}
+	cp libunicode.a ${DESTDIR}${LIBDIR}
+	mkdir -p ${DESTDIR}${INCDIR}
+	cp unicode.h ${DESTDIR}${INCDIR}
+	mkdir -p ${DESTDIR}${MANDIR}/man3
+	cp libunicode.3 ${DESTDIR}${MANDIR}/man3
 
 clean:
-	rm -f test/unicode
+	rm -f ${LIB} ${LIB_DEPS} ${LIB_OBJS} ${TESTS_OBJS}
 
-.PHONY: all clean tests
+.PHONY: all clean install tests