| 12345678910111213141516171819202122232425262728293031323334 |
- # Сборка spec_server. На плате достаточно `make` — в RP OS gcc есть.
- #
- # make собрать на месте (на плате)
- # make CC=arm-linux-gnueabihf-gcc кросс-сборка с ПК
- # make deploy RP=root@rp-f0xxxx.local залить исходник и собрать на плате
- # make run RP=root@rp-f0xxxx.local запустить на плате в текущем терминале
- CC ?= gcc
- CFLAGS ?= -O2 -Wall -Wextra -std=c99
- LDLIBS := -lm
- TARGET := spec_server
- REMOTE ?= /root
- .PHONY: all clean deploy run
- all: $(TARGET)
- $(TARGET): spec_server.c
- $(CC) $(CFLAGS) -o $@ $< $(LDLIBS)
- clean:
- rm -f $(TARGET)
- # Сборка именно на плате, а не кросс-компиляция: так не надо тащить тулчейн и
- # гадать про версию libc в RP OS.
- deploy:
- @test -n "$(RP)" || (echo "укажите RP=root@адрес" && false)
- scp spec_server.c $(RP):$(REMOTE)/
- ssh $(RP) '$(CC) $(CFLAGS) -o $(REMOTE)/$(TARGET) $(REMOTE)/spec_server.c $(LDLIBS)'
- @echo "готово: $(RP):$(REMOTE)/$(TARGET)"
- run:
- @test -n "$(RP)" || (echo "укажите RP=root@адрес" && false)
- ssh -t $(RP) '$(REMOTE)/$(TARGET)'
|