Makefile (3077B)
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 DEV=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_DEV0 = 72 EXTRA_CFLAGS_DEV1 = -DLEDIT_DEBUG -g 73 EXTRA_FLAGS_SANITIZE0 = 74 EXTRA_FLAGS_SANITIZE1 = -fsanitize=address,undefined 75 EXTRA_CFLAGS_UTF8PROC0 = -DENABLE_UTF8PROC=0 76 EXTRA_CFLAGS_UTF8PROC1 = `pkg-config --cflags libutf8proc` -DENABLE_UTF8PROC=1 77 EXTRA_LDFLAGS_UTF8PROC0 = 78 EXTRA_LDFLAGS_UTF8PROC1 = `pkg-config --libs libutf8proc` 79 80 # Xcursor isn't actually needed right now since I'm not using the drag 'n drop functionality 81 # of ctrlsel yet, but since it's moderately likely that I will use that in the future, I 82 # decided to just leave it in. 83 CFLAGS_LEDIT = ${CFLAGS} -DTEST=${TEST} ${EXTRA_FLAGS_SANITIZE${SANITIZE}} ${EXTRA_CFLAGS_DEV${DEV}} ${EXTRA_CFLAGS_UTF8PROC${ENABLE_UTF8PROC}} -Wall -Wextra -pedantic -D_POSIX_C_SOURCE=200809L -std=c99 `pkg-config --cflags x11 xkbfile pangoxft xext xcursor` 84 LDFLAGS_LEDIT = ${LDFLAGS} ${EXTRA_FLAGS_SANITIZE${SANITIZE}} ${EXTRA_LDFLAGS_UTF8PROC${ENABLE_UTF8PROC}} `pkg-config --libs x11 xkbfile pangoxft xext xcursor` -lm 85 86 all: ${BIN} 87 88 # FIXME: make this nicer 89 ledit.o window.o : config.h 90 configparser.o : keys_config.h theme_config.h 91 92 ${OBJ} : ${HDR} 93 94 .c.o: 95 ${CC} -c -o $@ $< ${CFLAGS_LEDIT} 96 97 ${BIN}: ${OBJ} 98 ${CC} -o $@ ${OBJ} ${LDFLAGS_LEDIT} 99 100 install: all 101 mkdir -p "${DESTDIR}${PREFIX}/bin" 102 cp -f ${BIN} "${DESTDIR}${PREFIX}/bin" 103 for f in ${BIN}; do chmod 755 "${DESTDIR}${PREFIX}/bin/$$f"; done 104 mkdir -p "${DESTDIR}${MANPREFIX}/man1" 105 mkdir -p "${DESTDIR}${MANPREFIX}/man5" 106 cp -f ${MAN1} "${DESTDIR}${MANPREFIX}/man1" 107 cp -f ${MAN5} "${DESTDIR}${MANPREFIX}/man5" 108 for m in ${MAN1}; do chmod 644 "${DESTDIR}${MANPREFIX}/man1/$$m"; done 109 for m in ${MAN5}; do chmod 644 "${DESTDIR}${MANPREFIX}/man5/$$m"; done 110 111 uninstall: 112 for f in ${BIN}; do rm -f "${DESTDIR}${PREFIX}/bin/$$f"; done 113 for m in ${MAN1}; do rm -f "${DESTDIR}${MANPREFIX}/man1/$$m"; done 114 for m in ${MAN5}; do rm -f "${DESTDIR}${MANPREFIX}/man5/$$m"; done 115 116 clean: 117 rm -f ${BIN} ${OBJ} 118 119 dist: 120 rm -rf "${NAME}-${VERSION}" 121 mkdir -p "${NAME}-${VERSION}" 122 cp -f ${MAN1} ${MAN5} ${SRC} ${HDR} ${CONFIGHDR} ${MISCFILES} "${NAME}-${VERSION}" 123 tar cf - "${NAME}-${VERSION}" | gzip -c > "${NAME}-${VERSION}.tar.gz" 124 rm -rf "${NAME}-${VERSION}" 125 126 .PHONY: all clean install uninstall dist