Makefile (3081B)
1 .POSIX: 2 3 NAME = ledit 4 VERSION = -999-prealpha0 5 6 PREFIX = /usr/local 7 MANPREFIX = ${PREFIX}/man 8 9 BIN = ${NAME} 10 MAN1 = ${BIN:=.1} 11 MAN5 = leditrc.5 12 MISCFILES = Makefile README LICENSE IDEAS NOTES TODO 13 14 DEBUG=0 15 TEST=0 16 SANITIZE=0 17 ENABLE_UTF8PROC=1 18 19 OBJ = \ 20 assert.o \ 21 buffer.o \ 22 view.o \ 23 cache.o \ 24 keys.o \ 25 configparser.o \ 26 keys_basic.o \ 27 keys_command.o \ 28 ledit.o \ 29 memory.o \ 30 search.o \ 31 txtbuf.o \ 32 undo.o \ 33 util.o \ 34 draw_util.o \ 35 window.o \ 36 clipboard.o \ 37 pango-compat.o \ 38 ctrlsel.o 39 40 SRC = ${OBJ:.o=.c} 41 42 HDR = \ 43 assert.h \ 44 buffer.h \ 45 view.h \ 46 cache.h \ 47 common.h \ 48 keys.h \ 49 configparser.h \ 50 keys_basic.h \ 51 keys_command.h \ 52 memory.h \ 53 search.h \ 54 txtbuf.h \ 55 undo.h \ 56 util.h \ 57 draw_util.h \ 58 window.h \ 59 cleanup.h \ 60 macros.h \ 61 pango-compat.h \ 62 clipboard.h \ 63 uglycrap.h \ 64 ctrlsel.h 65 66 CONFIGHDR = \ 67 config.h \ 68 theme_config.h \ 69 keys_config.h 70 71 EXTRA_CFLAGS_DEBUG0 = ${CFLAGS} 72 EXTRA_LDFLAGS_DEBUG0 = ${LDFLAGS} 73 EXTRA_CFLAGS_DEBUG1 = -DLEDIT_DEBUG -g 74 EXTRA_FLAGS_SANITIZE1 = -fsanitize=address 75 EXTRA_CFLAGS_UTF8PROC0 = -DENABLE_UTF8PROC=0 76 EXTRA_CFLAGS_UTF8PROC1 = `pkg-config --cflags libutf8proc` -DENABLE_UTF8PROC=1 77 EXTRA_LDFLAGS_UTF8PROC1 = `pkg-config --libs libutf8proc` 78 79 # Xcursor isn't actually needed right now since I'm not using the drag 'n drop functionality 80 # of ctrlsel yet, but since it's moderately likely that I will use that in the future, I 81 # decided to just leave it in. 82 CFLAGS_LEDIT = -DTEST=${TEST} ${EXTRA_FLAGS_SANITIZE${SANITIZE}} ${EXTRA_CFLAGS_DEBUG${DEBUG}} ${EXTRA_CFLAGS_UTF8PROC${ENABLE_UTF8PROC}} -Wall -Wextra -pedantic -D_POSIX_C_SOURCE=200809L -std=c99 `pkg-config --cflags x11 xkbfile pangoxft xext xcursor` 83 LDFLAGS_LEDIT = ${EXTRA_FLAGS_SANITIZE${SANITIZE}} ${EXTRA_LDFLAGS_DEBUG${DEBUG}} ${EXTRA_LDFLAGS_UTF8PROC${ENABLE_UTF8PROC}} `pkg-config --libs x11 xkbfile pangoxft xext xcursor` -lm 84 85 all: ${BIN} 86 87 # FIXME: make this nicer 88 ledit.o window.o : config.h 89 configparser.o : keys_config.h theme_config.h 90 91 ${OBJ} : ${HDR} 92 93 .c.o: 94 ${CC} -c -o $@ $< ${CFLAGS_LEDIT} 95 96 ${BIN}: ${OBJ} 97 ${CC} -o $@ ${OBJ} ${LDFLAGS_LEDIT} 98 99 install: all 100 mkdir -p "${DESTDIR}${PREFIX}/bin" 101 cp -f ${BIN} "${DESTDIR}${PREFIX}/bin" 102 for f in ${BIN}; do chmod 755 "${DESTDIR}${PREFIX}/bin/$$f"; done 103 mkdir -p "${DESTDIR}${MANPREFIX}/man1" 104 mkdir -p "${DESTDIR}${MANPREFIX}/man5" 105 cp -f ${MAN1} "${DESTDIR}${MANPREFIX}/man1" 106 cp -f ${MAN5} "${DESTDIR}${MANPREFIX}/man5" 107 for m in ${MAN1}; do chmod 644 "${DESTDIR}${MANPREFIX}/man1/$$m"; done 108 for m in ${MAN5}; do chmod 644 "${DESTDIR}${MANPREFIX}/man5/$$m"; done 109 110 uninstall: 111 for f in ${BIN}; do rm -f "${DESTDIR}${PREFIX}/bin/$$f"; done 112 for m in ${MAN1}; do rm -f "${DESTDIR}${MANPREFIX}/man1/$$m"; done 113 for m in ${MAN5}; do rm -f "${DESTDIR}${MANPREFIX}/man5/$$m"; done 114 115 clean: 116 rm -f ${BIN} ${OBJ} 117 118 dist: 119 rm -rf "${NAME}-${VERSION}" 120 mkdir -p "${NAME}-${VERSION}" 121 cp -f ${MAN1} ${MAN5} ${SRC} ${HDR} ${CONFIGHDR} ${MISCFILES} "${NAME}-${VERSION}" 122 tar cf - "${NAME}-${VERSION}" | gzip -c > "${NAME}-${VERSION}.tar.gz" 123 rm -rf "${NAME}-${VERSION}" 124 125 .PHONY: all clean install uninstall dist