logo

utils-std

Collection of commonly available Unix tools git clone https://anongit.hacktivis.me/git/utils-std.git

Makefile (8717B)


  1. # SPDX-FileCopyrightText: 2017 Haelwenn (lanodan) Monnier <contact+utils@hacktivis.me>
  2. # SPDX-License-Identifier: MPL-2.0
  3. include config.mk
  4. # Commands implemented as scripts
  5. SCRIPTS=
  6. # Commands linking to another executable
  7. SYMLINKS=cmd/'[' cmd/chgrp cmd/readlink
  8. RM=rm
  9. all: $(EXE) $(MAN1SO)
  10. .c:
  11. $(RM) -f ${<:=.gcov} ${@:=.gcda} ${@:=.gcno}
  12. $(CC) -std=c99 $(CFLAGS) -o $@ $< $(LDFLAGS) $(LDSTATIC)
  13. .c.o:
  14. $(RM) -f ${<:=.gcov} ${@:=.gcda} ${@:=.gcno}
  15. $(CC) -std=c99 $(CFLAGS) -c -o $@ $<
  16. # selfcheck: Check without extra dependencies
  17. .PHONY: selfcheck
  18. selfcheck: selfcheck-cmds selfcheck-libs
  19. .PHONY: selfcheck-cmds
  20. TEST_CMDS = test-cmd/pathchk-getlimits
  21. selfcheck-cmds: $(EXE) $(TEST_CMDS)
  22. LDSTATIC=$(LDSTATIC) ./check-cmds.sh
  23. .PHONY: selfcheck-libs
  24. TEST_LIBS = test-lib/mode test-lib/strtodur test-lib/symbolize_mode test-lib/truncation test-lib/sha1 test-lib/sha256 test-lib/sha512
  25. selfcheck-libs: $(TEST_LIBS)
  26. LDSTATIC=$(LDSTATIC) ./check-libs.sh $(TEST_LIBS)
  27. # Manpages with examples that cram/prysk can grok
  28. MAN_EXAMPLES = cmd/readlink.1
  29. .PHONY: check
  30. check: all check-man selfcheck-libs $(TEST_CMDS)
  31. LDSTATIC=$(LDSTATIC) kyua test || (kyua report --verbose --results-filter=broken,failed; false)
  32. MALLOC_CHECK_=3 POSIX_ME_HARDER=1 POSIXLY_CORRECT=1 LC_ALL=C.UTF-8 $(CRAM) test-cmd/*.t ${MAN_EXAMPLES}
  33. .PHONY: check_status
  34. check_status:
  35. grep EXE config.mk | sed -e 's;^EXE = ;;' -e 's;cmd/;;g' | tr ' ' '\n' | grep -v '^$$' | sed -e 's;^;^;' -e 's;$$;\\b;' | grep -f - *.txt | grep -iv done
  36. .PHONY: check-man
  37. check-man: $(MAN1SO)
  38. err=0; for i in $(EXE); do if test ! -f $$i.1 && test ! -f $$i.1.in; then echo "$$i: missing manpage"; err=1; fi; done; exit $$err
  39. for i in $(MAN1) ; do grep -q 'EXIT STATUS' $$i || echo "$i lacks EXIT STATUS"; grep -q 'STANDARDS' $$i || echo "$i lacks STANDARDS"; done
  40. .PHONY: lint
  41. lint: $(MAN1SO)
  42. $(MANDOC) -Tlint -Wunsupp,error,warning $(MAN1)
  43. $(REUSE) lint --quiet
  44. .PHONY: clean
  45. clean:
  46. $(RM) -fr $(EXE) ${EXE:=.c.gcov} ${EXE:=.gcda} ${EXE:=.gcno} cmd/expr.tab.c $(MAN1SO) $(TEST_LIBS)
  47. install: all
  48. mkdir -p ${DESTDIR}${BINDIR}/
  49. cp -pP ${EXE} ${SCRIPTS} ${SYMLINKS} ${DESTDIR}${BINDIR}/
  50. mkdir -p ${DESTDIR}${MANDIR}/man1
  51. cp -pP ${MAN1} ${DESTDIR}${MANDIR}/man1
  52. .PHONY: coverage
  53. coverage:
  54. $(GCOV) -b $(EXE)
  55. C_SOURCES = cmd/*.c lib/*.h lib/*.c test-lib/*.c configure.d/*.c
  56. format: $(C_SOURCES)
  57. clang-format -style=file -assume-filename=.clang-format -i $(C_SOURCES)
  58. lib/sys_signame.c: lib/sys_signame.sh
  59. lib/sys_signame.sh >|lib/sys_signame.c
  60. cmd/cat: cmd/cat.c config.mk Makefile
  61. cmd/date: cmd/date.c lib/iso_parse.c Makefile
  62. $(RM) -f ${<:=.gcov} ${@:=.gcda} ${@:=.gcno}
  63. $(CC) -std=c99 $(CFLAGS) -o $@ cmd/date.c lib/iso_parse.c $(LDFLAGS) $(LDSTATIC)
  64. build/cmd/date.1: cmd/date.1.in lib/iso_parse.mdoc Makefile
  65. $(M4) cmd/date.1.in > $@
  66. cmd/touch: cmd/touch.c lib/iso_parse.c Makefile
  67. $(RM) -f ${<:=.gcov} ${@:=.gcda} ${@:=.gcno}
  68. $(CC) -std=c99 $(CFLAGS) -o $@ cmd/touch.c lib/iso_parse.c $(LDFLAGS) $(LDSTATIC)
  69. build/cmd/touch.1: cmd/touch.1.in lib/iso_parse.mdoc Makefile
  70. $(M4) cmd/touch.1.in > $@
  71. cmd/sleep: cmd/sleep.c lib/strtodur.c Makefile
  72. $(RM) -f ${<:=.gcov} ${@:=.gcda} ${@:=.gcno}
  73. $(CC) -std=c99 $(CFLAGS) -o $@ cmd/sleep.c lib/strtodur.c $(LDFLAGS) $(LDSTATIC)
  74. cmd/timeout: cmd/timeout.c lib/strtodur.c lib/sys_signame.h lib/sys_signame.c Makefile
  75. $(RM) -f ${<:=.gcov} ${@:=.gcda} ${@:=.gcno}
  76. $(CC) -std=c99 $(CFLAGS) -o $@ cmd/timeout.c lib/strtodur.c lib/sys_signame.c $(LDFLAGS) $(LDSTATIC)
  77. test-lib/mode: test-lib/mode.c lib/mode.c Makefile
  78. $(CC) -std=c99 $(CFLAGS) -o $@ test-lib/mode.c lib/mode.c $(LDFLAGS) $(LDSTATIC)
  79. test-lib/strtodur: test-lib/strtodur.c lib/strtodur.c Makefile
  80. $(CC) -std=c99 $(CFLAGS) -o $@ test-lib/strtodur.c lib/strtodur.c $(LDFLAGS) $(LDSTATIC)
  81. test-lib/symbolize_mode: test-lib/symbolize_mode.c lib/symbolize_mode.c Makefile
  82. $(CC) -std=c99 $(CFLAGS) -o $@ test-lib/symbolize_mode.c lib/symbolize_mode.c $(LDFLAGS) $(LDSTATIC)
  83. test-lib/truncation: test-lib/truncation.c lib/truncation.c Makefile
  84. $(CC) -std=c99 $(CFLAGS) -o $@ test-lib/truncation.c lib/truncation.c $(LDFLAGS) $(LDSTATIC)
  85. test-lib/sha1: test-lib/sha1.c lib/sha1.c lib/sha1.h lib/bytes2hex.c lib/strconv.h Makefile
  86. $(CC) -std=c99 $(CFLAGS) -o $@ test-lib/sha1.c lib/sha1.c lib/bytes2hex.c $(LDFLAGS) $(LDSTATIC)
  87. test-lib/sha256: test-lib/sha256.c lib/sha256.c lib/sha256.h lib/bytes2hex.c lib/strconv.h Makefile
  88. $(CC) -std=c99 $(CFLAGS) -o $@ test-lib/sha256.c lib/sha256.c lib/bytes2hex.c $(LDFLAGS) $(LDSTATIC)
  89. test-lib/sha512: test-lib/sha512.c lib/sha512.c lib/sha512.h lib/bytes2hex.c lib/strconv.h Makefile
  90. $(CC) -std=c99 $(CFLAGS) -o $@ test-lib/sha512.c lib/sha512.c lib/bytes2hex.c $(LDFLAGS) $(LDSTATIC)
  91. cmd/df: cmd/df.c lib/humanize.c Makefile
  92. $(RM) -f ${<:=.gcov} ${@:=.gcda} ${@:=.gcno}
  93. $(CC) -std=c99 $(CFLAGS) -o $@ cmd/df.c lib/humanize.c $(LDFLAGS) $(LDSTATIC)
  94. cmd/chmod: cmd/chmod.c lib/mode.c lib/symbolize_mode.c Makefile
  95. $(RM) -f ${<:=.gcov} ${@:=.gcda} ${@:=.gcno}
  96. $(CC) -std=c99 $(CFLAGS) -o $@ cmd/chmod.c lib/mode.c lib/symbolize_mode.c $(LDFLAGS) $(LDSTATIC)
  97. cmd/mkdir: cmd/mkdir.c lib/mode.c lib/mode.h lib/mkdir.c lib/mkdir.h Makefile
  98. $(RM) -f ${<:=.gcov} ${@:=.gcda} ${@:=.gcno}
  99. $(CC) -std=c99 $(CFLAGS) -o $@ cmd/mkdir.c lib/mode.c lib/mkdir.c $(LDFLAGS) $(LDSTATIC)
  100. cmd/mknod: cmd/mknod.c lib/mode.c Makefile
  101. $(RM) -f ${<:=.gcov} ${@:=.gcda} ${@:=.gcno}
  102. $(CC) -std=c99 $(CFLAGS) -o $@ cmd/mknod.c lib/mode.c $(LDFLAGS) $(LDSTATIC)
  103. cmd/mkfifo: cmd/mkfifo.c lib/mode.c Makefile
  104. $(RM) -f ${<:=.gcov} ${@:=.gcda} ${@:=.gcno}
  105. $(CC) -std=c99 $(CFLAGS) -o $@ cmd/mkfifo.c lib/mode.c $(LDFLAGS) $(LDSTATIC)
  106. cmd/seq: cmd/seq.c Makefile
  107. $(RM) -f ${<:=.gcov} ${@:=.gcda} ${@:=.gcno}
  108. $(CC) -std=c99 $(CFLAGS) -o $@ cmd/seq.c -lm $(LDFLAGS) $(LDSTATIC)
  109. cmd/rm: cmd/rm.c lib/consent.c lib/consent.h Makefile
  110. $(RM) -f ${<:=.gcov} ${@:=.gcda} ${@:=.gcno}
  111. $(CC) -std=c99 $(CFLAGS) -o $@ cmd/rm.c lib/consent.c $(LDFLAGS) $(LDSTATIC)
  112. cmd/truncate: cmd/truncate.c lib/truncation.c lib/truncation.h Makefile
  113. $(RM) -f ${<:=.gcov} ${@:=.gcda} ${@:=.gcno}
  114. $(CC) -std=c99 $(CFLAGS) -o $@ cmd/truncate.c lib/truncation.c $(LDFLAGS) $(LDSTATIC)
  115. cmd/head: cmd/head.c lib/truncation.c lib/truncation.h Makefile
  116. $(RM) -f ${<:=.gcov} ${@:=.gcda} ${@:=.gcno}
  117. $(CC) -std=c99 $(CFLAGS) -o $@ cmd/head.c lib/truncation.c $(LDFLAGS) $(LDSTATIC)
  118. cmd/split: cmd/split.c lib/truncation.c lib/truncation.h lib/fs.c lib/fs.h Makefile
  119. $(RM) -f ${<:=.gcov} ${@:=.gcda} ${@:=.gcno}
  120. $(CC) -std=c99 $(CFLAGS) -o $@ cmd/split.c lib/truncation.c lib/fs.c $(LDFLAGS) $(LDSTATIC)
  121. cmd/tr: cmd/tr.c lib/tr_str.c lib/tr_str.h Makefile
  122. $(RM) -f ${<:=.gcov} ${@:=.gcda} ${@:=.gcno}
  123. $(CC) -std=c99 $(CFLAGS) -o $@ cmd/tr.c lib/tr_str.c $(LDFLAGS) $(LDSTATIC)
  124. cmd/chown: cmd/chown.c lib/fs.c lib/fs.h lib/user_group_parse.c lib/user_group_parse.h Makefile
  125. $(RM) -f ${<:=.gcov} ${@:=.gcda} ${@:=.gcno}
  126. $(CC) -std=c99 $(CFLAGS) -o $@ cmd/chown.c lib/fs.c lib/user_group_parse.c $(LDFLAGS) $(LDSTATIC)
  127. cmd/realpath: cmd/realpath.c lib/fs.c lib/fs.h Makefile
  128. $(RM) -f ${<:=.gcov} ${@:=.gcda} ${@:=.gcno}
  129. $(CC) -std=c99 $(CFLAGS) -o $@ cmd/realpath.c lib/fs.c $(LDFLAGS) $(LDSTATIC)
  130. cmd/expr.tab.c: cmd/expr.y Makefile
  131. $(YACC) -b cmd/expr cmd/expr.y
  132. cmd/expr: cmd/expr.tab.c Makefile
  133. $(RM) -f ${<:=.gcov} ${@:=.gcda} ${@:=.gcno}
  134. $(CC) -std=c99 $(CFLAGS) -D_POSIX_C_SOURCE=200809L -o $@ cmd/expr.tab.c $(LDFLAGS) $(LDSTATIC)
  135. cmd/install: cmd/install.c lib/mode.c lib/user_group_parse.c lib/user_group_parse.h lib/fs.c lib/fs.h lib/mkdir.c lib/mkdir.h Makefile config.mk
  136. $(RM) -f ${<:=.gcov} ${@:=.gcda} ${@:=.gcno}
  137. $(CC) -std=c99 $(CFLAGS) -o $@ cmd/install.c lib/mode.c lib/user_group_parse.c lib/fs.c lib/mkdir.c $(LDFLAGS) $(LDSTATIC)
  138. cmd/mv: cmd/mv.c lib/consent.c lib/consent.h lib/fs.c lib/fs.h Makefile config.mk
  139. $(RM) -f ${<:=.gcov} ${@:=.gcda} ${@:=.gcno}
  140. $(CC) -std=c99 $(CFLAGS) -o $@ cmd/mv.c lib/consent.c lib/fs.c $(LDFLAGS) $(LDSTATIC)
  141. cmd/sha1sum: cmd/sha1sum.c lib/sha1.c lib/sha1.h lib/bytes2hex.c lib/strconv.h Makefile
  142. $(CC) -std=c99 $(CFLAGS) -o $@ cmd/sha1sum.c lib/sha1.c lib/bytes2hex.c $(LDFLAGS) $(LDSTATIC)
  143. cmd/sha256sum: cmd/sha256sum.c lib/sha256.c lib/sha256.h lib/bytes2hex.c lib/strconv.h Makefile
  144. $(CC) -std=c99 $(CFLAGS) -o $@ cmd/sha256sum.c lib/sha256.c lib/bytes2hex.c $(LDFLAGS) $(LDSTATIC)
  145. cmd/sha512sum: cmd/sha512sum.c lib/sha512.c lib/sha512.h lib/bytes2hex.c lib/strconv.h Makefile
  146. $(CC) -std=c99 $(CFLAGS) -o $@ cmd/sha512sum.c lib/sha512.c lib/bytes2hex.c $(LDFLAGS) $(LDSTATIC)
  147. test-cmd/pathchk-getlimits: test-cmd/pathchk-getlimits.c Makefile
  148. $(CC) -std=c99 $(CFLAGS) -o $@ test-cmd/pathchk-getlimits.c $(LDFLAGS) $(LDSTATIC)