Makefile 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. .POSIX:
  2. NAME = stagit
  3. VERSION = 1.2
  4. # paths
  5. PREFIX = /usr/local
  6. MANPREFIX = ${PREFIX}/man
  7. DOCPREFIX = ${PREFIX}/share/doc/${NAME}
  8. LIBGIT_INC = -I/usr/local/include
  9. LIBGIT_LIB = -L/usr/local/lib -lgit2
  10. # use system flags.
  11. STAGIT_CFLAGS = ${LIBGIT_INC} ${CFLAGS}
  12. STAGIT_LDFLAGS = ${LIBGIT_LIB} ${LDFLAGS}
  13. STAGIT_CPPFLAGS = -D_XOPEN_SOURCE=700 -D_DEFAULT_SOURCE -D_BSD_SOURCE
  14. # Uncomment to enable workaround for older libgit2 which don't support this
  15. # option. This workaround will be removed in the future *pinky promise*.
  16. #STAGIT_CFLAGS += -DGIT_OPT_SET_OWNER_VALIDATION=-1
  17. SRC = \
  18. stagit.c\
  19. stagit-index.c
  20. COMPATSRC = \
  21. reallocarray.c\
  22. strlcat.c\
  23. strlcpy.c
  24. BIN = \
  25. stagit\
  26. stagit-index
  27. MAN1 = \
  28. stagit.1\
  29. stagit-index.1
  30. DOC = \
  31. LICENSE\
  32. README
  33. HDR = compat.h
  34. COMPATOBJ = \
  35. reallocarray.o\
  36. strlcat.o\
  37. strlcpy.o
  38. OBJ = ${SRC:.c=.o} ${COMPATOBJ}
  39. all: ${BIN}
  40. .o:
  41. ${CC} -o $@ ${LDFLAGS}
  42. .c.o:
  43. ${CC} -o $@ -c $< ${STAGIT_CFLAGS} ${STAGIT_CPPFLAGS}
  44. dist:
  45. rm -rf ${NAME}-${VERSION}
  46. mkdir -p ${NAME}-${VERSION}
  47. cp -f ${MAN1} ${HDR} ${SRC} ${COMPATSRC} ${DOC} \
  48. Makefile favicon.png logo.png style.css \
  49. example_create.sh example_post-receive.sh \
  50. ${NAME}-${VERSION}
  51. # make tarball
  52. tar -cf - ${NAME}-${VERSION} | \
  53. gzip -c > ${NAME}-${VERSION}.tar.gz
  54. rm -rf ${NAME}-${VERSION}
  55. ${OBJ}: ${HDR}
  56. stagit: stagit.o ${COMPATOBJ}
  57. ${CC} -o $@ stagit.o ${COMPATOBJ} ${STAGIT_LDFLAGS}
  58. stagit-index: stagit-index.o ${COMPATOBJ}
  59. ${CC} -o $@ stagit-index.o ${COMPATOBJ} ${STAGIT_LDFLAGS}
  60. clean:
  61. rm -f ${BIN} ${OBJ} ${NAME}-${VERSION}.tar.gz
  62. install: all
  63. # installing executable files.
  64. mkdir -p ${DESTDIR}${PREFIX}/bin
  65. cp -f ${BIN} ${DESTDIR}${PREFIX}/bin
  66. for f in ${BIN}; do chmod 755 ${DESTDIR}${PREFIX}/bin/$$f; done
  67. # installing example files.
  68. mkdir -p ${DESTDIR}${DOCPREFIX}
  69. cp -f style.css\
  70. favicon.png\
  71. logo.png\
  72. example_create.sh\
  73. example_post-receive.sh\
  74. README\
  75. ${DESTDIR}${DOCPREFIX}
  76. # installing manual pages.
  77. mkdir -p ${DESTDIR}${MANPREFIX}/man1
  78. cp -f ${MAN1} ${DESTDIR}${MANPREFIX}/man1
  79. for m in ${MAN1}; do chmod 644 ${DESTDIR}${MANPREFIX}/man1/$$m; done
  80. uninstall:
  81. # removing executable files.
  82. for f in ${BIN}; do rm -f ${DESTDIR}${PREFIX}/bin/$$f; done
  83. # removing example files.
  84. rm -f \
  85. ${DESTDIR}${DOCPREFIX}/style.css\
  86. ${DESTDIR}${DOCPREFIX}/favicon.png\
  87. ${DESTDIR}${DOCPREFIX}/logo.png\
  88. ${DESTDIR}${DOCPREFIX}/example_create.sh\
  89. ${DESTDIR}${DOCPREFIX}/example_post-receive.sh\
  90. ${DESTDIR}${DOCPREFIX}/README
  91. -rmdir ${DESTDIR}${DOCPREFIX}
  92. # removing manual pages.
  93. for m in ${MAN1}; do rm -f ${DESTDIR}${MANPREFIX}/man1/$$m; done
  94. .PHONY: all clean dist install uninstall