Makefile (1897B)
1 VERSION = 0.1.0 2 PREFIX = /usr/local 3 MANPREFIX = ${PREFIX}/share/man 4 CFLAGS = -std=c2x -pedantic -Wall -Wextra 5 LDFLAGS = -lpdfio -ltoml -lfontconfig -lgrapheme -lm 6 SRC = src/core.c src/config.c src/chordpro.c src/chord_diagram.c src/out_pdf.c src/lorid.c 7 OBJS = core.o config.o chordpro.o chord_diagram.o out_pdf.o lorid.o 8 9 # Control whether log messages are colored. 10 COLOR = 0 11 # Exact font family name, e.g. from `fc-list : family` 12 DEFAULT_FONT = "Open Sans" 13 VARS = -DDEFAULT_FONT=\"${DEFAULT_FONT}\" \ 14 -DVERSION=\"${VERSION}\" \ 15 -DCOLOR=${COLOR} \ 16 -DPREFIX=\"${PREFIX}\" 17 18 lorid: ${OBJS} 19 @echo Linking $@... 20 @$(CC) -o lorid ${OBJS} ${LDFLAGS} 21 @echo Stripping $@... 22 @strip $@ 23 %.o : src/%.c 24 @echo Compiling $<... 25 @$(CC) ${CFLAGS} ${VARS} -O2 -c $< 26 standalone: 27 $(CC) ${CFLAGS} ${VARS} -O2 ${SRC} -o lorid -Wl,-Bstatic -lpdfio -lgrapheme -ltoml -lz -Wl,-Bdynamic -lfontconfig -lpng16 -lm 28 debug: 29 $(CC) ${CFLAGS} ${VARS} -DENABLE_DEBUG -g ${SRC} -o lorid ${LDFLAGS} 30 clean: 31 rm *.o 32 rm lorid 33 test: 34 cd test/ && ./find-memory-leaks-in-case-of-error 35 install: lorid 36 mkdir -p ${PREFIX}/bin 37 cp lorid ${PREFIX}/bin 38 mkdir -p ${MANPREFIX}/man1 39 cp lorid.1 ${MANPREFIX}/man1/ 40 mkdir -p ${MANPREFIX}/man5 41 cp lorid_config.5 ${MANPREFIX}/man5/ 42 mkdir -p ${PREFIX}/share/lorid/ 43 cp ./misc/ChordProSymbols.ttf ${PREFIX}/share/lorid/ 44 uninstall: 45 rm ${PREFIX}/bin/lorid 46 rm ${MANPREFIX}/man1/lorid.1 47 rm ${MANPREFIX}/man5/lorid_config.5 48 rm ${PREFIX}/share/lorid/ChordProSymbols.ttf 49 dist: 50 mkdir -p lorid-v${VERSION}/ 51 cp -r src/ misc/ Makefile DEVELOPMENT_NOTES README.md lorid.1 lorid_config.5 lorid-v${VERSION}/ 52 tar czf lorid-v${VERSION}.tar.gz lorid-v${VERSION}/* 53 rm -rf lorid-v${VERSION}/ 54 html: 55 mkdir -p doc/ 56 groff -man -Thtml lorid.1 > doc/lorid.1.html 57 groff -man -Thtml lorid_config.5 > doc/lorid_config.5.html 58 .PHONY: standalone debug clean test install uninstall dist html