diff Makefile @ 16:621c815c9509

tools: implement basic molko-map stub, continue #2448
author David Demelier <markand@malikania.fr>
date Tue, 07 Jan 2020 21:45:03 +0100
parents 29b479760c05
children fc71221b7bee
line wrap: on
line diff
--- a/Makefile	Tue Jan 07 21:45:03 2020 +0100
+++ b/Makefile	Tue Jan 07 21:45:03 2020 +0100
@@ -19,8 +19,7 @@
 .POSIX:
 
 CC=             clang
-CFLAGS=         -O3 -DNDEBUG -D_XOPEN_SOURCE=700 -std=c99 -Wall -Wextra
-CPPFLAGS=       -MMD
+CFLAGS=         -MMD -O3 -DNDEBUG -D_XOPEN_SOURCE=700 -std=c99 -Wall -Wextra
 PROG=           molko
 LIB=            libmolko.a
 SRCS=           src/animation.c \
@@ -30,25 +29,37 @@
                 src/sprite.c \
                 src/texture.c \
                 src/window.c
-TESTS=          tests/test-color.c
 OBJS=           ${SRCS:.c=.o}
 DEPS=           ${SRCS:.c=.d}
 
 SDL_CFLAGS=     `pkg-config --cflags sdl2 SDL2_image SDL2_ttf`
 SDL_LDFLAGS=    `pkg-config --libs sdl2 SDL2_image SDL2_ttf`
 
+EXPAT_CFLAGS=   `pkg-config --cflags expat`
+EXPAT_LDFLAGS=  `pkg-config --libs expat`
+
+TESTS=          tests/test-color.c
+TESTS_INCS=     -I extern/libgreatest -I src ${SDL_CFLAGS}
+TESTS_LIBS=     ${LIB} ${SDL_LDFLAGS} ${LDFLAGS}
+TESTS_OBJS=     ${TESTS:.c=}
+TESTS_DEPS=     ${TESTS:.c=.d}
+
+TOOLS=          tools/molko-map.c
+TOOLS_OBJS=     ${TOOLS:.c=}
+TOOLS_DEPS=     ${TOOLS:.c=.d}
+
 .SUFFIXES:
 .SUFFIXES: .c .o
 
 all: ${PROG}
 
--include ${DEPS}
+-include ${DEPS} ${TESTS_DEPS} ${TOOLS_DEPS}
 
 .c.o:
-	${CC} ${SDL_CFLAGS} ${CPPFLAGS} ${CFLAGS} -c $< -o $@
+	${CC} ${SDL_CFLAGS} ${CFLAGS} -c $< -o $@
 
 .c:
-	${CC} -I extern/libgreatest -I src -o $@ ${CPPFLAGS} ${CFLAGS} $< ${LIB} ${SDL_LDFLAGS} ${LDFLAGS}
+	${CC} ${TESTS_INCS} -o $@ ${CFLAGS} $< ${TESTS_LIBS}
 
 ${LIB}: ${OBJS}
 	${AR} -rcs $@ ${OBJS}
@@ -56,10 +67,19 @@
 ${PROG}: ${LIB} src/main.o
 	${CC} -o $@ src/main.o ${LIB} ${SDL_LDFLAGS} ${LDFLAGS}
 
-clean:
-	rm -f molko ${OBJS} ${DEPS}
+${TESTS_OBJS}: ${LIB}
 
-tests: ${TESTS:.c=}
+tests: ${TESTS_OBJS}
 	for t in $?; do ./$$t; done
 
-.PHONY: clean
+tools: ${TOOLS_OBJS}
+
+tools/molko-map: tools/molko-map.c
+	${CC} -o $@ $< ${CFLAGS} ${EXPAT_CFLAGS} ${EXPAT_LDFLAGS}
+
+clean:
+	rm -f molko ${LIB} ${OBJS} ${DEPS}
+	rm -f ${TESTS_OBJS} ${TESTS_DEPS}
+	rm -f ${TOOLS_OBJS} ${TOOLS_DEPS}
+
+.PHONY: clean tests tools