Makefile 1.3 KB

12345678910111213141516171819202122232425262728293031323334
  1. # Сборка spec_server. На плате достаточно `make` — в RP OS gcc есть.
  2. #
  3. # make собрать на месте (на плате)
  4. # make CC=arm-linux-gnueabihf-gcc кросс-сборка с ПК
  5. # make deploy RP=root@rp-f0xxxx.local залить исходник и собрать на плате
  6. # make run RP=root@rp-f0xxxx.local запустить на плате в текущем терминале
  7. CC ?= gcc
  8. CFLAGS ?= -O2 -Wall -Wextra -std=c99
  9. LDLIBS := -lm
  10. TARGET := spec_server
  11. REMOTE ?= /root
  12. .PHONY: all clean deploy run
  13. all: $(TARGET)
  14. $(TARGET): spec_server.c
  15. $(CC) $(CFLAGS) -o $@ $< $(LDLIBS)
  16. clean:
  17. rm -f $(TARGET)
  18. # Сборка именно на плате, а не кросс-компиляция: так не надо тащить тулчейн и
  19. # гадать про версию libc в RP OS.
  20. deploy:
  21. @test -n "$(RP)" || (echo "укажите RP=root@адрес" && false)
  22. scp spec_server.c $(RP):$(REMOTE)/
  23. ssh $(RP) '$(CC) $(CFLAGS) -o $(REMOTE)/$(TARGET) $(REMOTE)/spec_server.c $(LDLIBS)'
  24. @echo "готово: $(RP):$(REMOTE)/$(TARGET)"
  25. run:
  26. @test -n "$(RP)" || (echo "укажите RP=root@адрес" && false)
  27. ssh -t $(RP) '$(REMOTE)/$(TARGET)'