logo

skeud

Simple and portable utilities to deal with user accounts (su, login)

Makefile (1459B)


  1. # SPDX-FileCopyrightText: 2022 Haelwenn (lanodan) Monnier <contact+skeud@hacktivis.me>
  2. # SPDX-License-Identifier: MPL-2.0
  3. CC ?= cc
  4. CFLAGS ?= -O2 -g -Wall -Wextra -Werror=implicit-function-declaration
  5. PREFIX ?= /usr
  6. SYS_BINDIR ?= /bin
  7. BINDIR ?= $(PREFIX)/bin
  8. MANDIR ?= $(PREFIX)/share/man
  9. SYS_EXE = login su
  10. TEST_EXE = common_test
  11. MAN1 = login.1
  12. all: $(SYS_EXE)
  13. .c:
  14. $(CC) -std=c11 $(CFLAGS) -o $@ $< $(LDFLAGS)
  15. common.c: common.h
  16. login_SRC = login.c common.c
  17. login: $(login_SRC) Makefile
  18. $(CC) -std=c11 $(CFLAGS) -o $@ $(login_SRC) -lcrypt $(LDFLAGS)
  19. su_SRC = su.c common.c
  20. su: $(su_SRC) Makefile
  21. $(CC) -std=c11 $(CFLAGS) -o $@ $(su_SRC) -lcrypt $(LDFLAGS)
  22. common_test: common_test.c common.c Makefile
  23. $(CC) -std=c11 $(CFLAGS) `pkg-config --cflags atf-c` -o $@ common_test.c common.c `pkg-config --libs atf-c` -lcrypt $(LDFLAGS)
  24. .PHONY: test
  25. test: $(TEST_EXE)
  26. kyua test || (kyua report --verbose; false)
  27. .PHONY: install
  28. install: all
  29. mkdir -p $(DESTDIR)$(SYS_BINDIR)/
  30. cp $(SYS_EXE) $(DESTDIR)$(SYS_BINDIR)/
  31. chmod 0755 $(DESTDIR)$(SYS_BINDIR)/login
  32. chmod 4755 $(DESTDIR)$(SYS_BINDIR)/su
  33. mkdir -p $(DESTDIR)$(MANDIR)/man1/
  34. cp $(MAN1) $(DESTDIR)$(MANDIR)/man1/
  35. C_SOURCES = *.c *.h
  36. .PHONY: format
  37. format:
  38. clang-format -style=file -assume-filename=.clang-format -i $(C_SOURCES)
  39. .PHONY: clean
  40. clean:
  41. rm -f $(SYS_EXE) $(TEST_EXE)
  42. .PHONY: lint
  43. lint:
  44. reuse lint
  45. mandoc -Tlint -Wunsupp,error,warning $(MAN1)
  46. flawfinder -DQ --error-level=4 .