Makefile 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. TARGET = cpulatency
  2. SRCEXT = .c
  3. SVC = .service
  4. CC = clang
  5. CP = cp -f
  6. RM = rm -f
  7. STRIP = strip
  8. SUDO = sudo
  9. CFLAGS = -s \
  10. -std=gnu99 \
  11. -Oz \
  12. -Wall -Wextra -Werror \
  13. -pedantic \
  14. -fomit-frame-pointer
  15. .PHONY: all clean strip install
  16. all: $(TARGET)
  17. clean:
  18. @printf '%s\n' "Cleaning up ..."
  19. @$(RM) $(TARGET)
  20. $(TARGET):
  21. @printf '%s\n' "Compile $(TARGET) ..."
  22. @$(CC) $(CFLAGS) -o $(TARGET) $(TARGET)$(SRCEXT) && \
  23. printf '%s\n' "Compile successful!"
  24. strip: $(TARGET)
  25. @printf '%s\n' "Stripping $(TARGET) ..."
  26. @$(STRIP) --strip-all \
  27. -R .gnu.build.attributes \
  28. -R .note.gnu.build-id \
  29. -R .gnu.hash \
  30. -R .comment \
  31. -R .note.ABI-tag \
  32. -R .gnu.version \
  33. -R .eh_frame_hdr \
  34. -R .eh_frame \
  35. -R .shatrtab $(TARGET) && \
  36. printf '%s\n' "Stripping successful!"
  37. install: strip
  38. @printf '%s\n' "Installing $(TARGET) ..."
  39. @$(SUDO) $(CP) $(TARGET) /usr/local/sbin/$(TARGET)
  40. @printf '%s\n' "Installing $(TARGET)$(SVC) ..."
  41. @$(SUDO) $(CP) $(TARGET)$(SVC) /usr/lib/systemd/system/$(TARGET)$(SVC)
  42. @printf '%s\n' "Starting $(TARGET)$(SVC) ..."
  43. @$(SUDO) systemctl daemon-reload && \
  44. $(SUDO) systemctl enable $(TARGET)$(SVC) && \
  45. $(SUDO) systemctl start $(TARGET)$(SVC) && \
  46. systemctl is-active $(TARGET)$(SVC) > /dev/null 2>&1 && \
  47. printf '%s\n' "$(TARGET)$(SVC) successfully installed!"