When building nmrpflash for Debian, there is no 'git' command available, and there is no '.git' directory either. This makes the build emit warnings from the $(shell) calls in VERSION variable in the Makefile and breaks the '-V' option. The change in this patch accounts for missing 'git' command and resorts to using a STANDALONE_VERSION environment variable which in turn is provided by the package build mechanics. This change has no effect when the git command is available and the '.git' directory is present.
52 lines
1.4 KiB
Makefile
52 lines
1.4 KiB
Makefile
CC ?= gcc
|
|
PREFIX ?= /usr/local
|
|
VERSION := $(shell if [ -d .git ] && which git 2>&1 > /dev/null; then git describe --always | tail -c +2; else echo $$STANDALONE_VERSION; fi)
|
|
LIBS = -lpcap
|
|
CFLAGS += -Wall -g -DNMRPFLASH_VERSION=\"$(VERSION)\"
|
|
LDFLAGS += $(LIBS)
|
|
|
|
ifeq ($(shell uname -s),Linux)
|
|
CFLAGS += $(shell pkg-config libnl-route-3.0 --cflags)
|
|
LIBS += $(shell pkg-config libnl-route-3.0 --libs)
|
|
endif
|
|
|
|
nmrpflash_OBJ = nmrp.o tftp.o ethsock.o main.o util.o
|
|
|
|
.PHONY: clean install release release/macos release/linux release/win32
|
|
|
|
nmrpflash: $(nmrpflash_OBJ)
|
|
$(CC) $(CFLAGS) -o nmrpflash $(nmrpflash_OBJ) $(LDFLAGS)
|
|
|
|
tftptest:
|
|
CFLAGS=-DNMRPFLASH_TFTP_TEST make clean nmrpflash
|
|
|
|
%.o: %.c nmrpd.h
|
|
$(CC) -c $(CFLAGS) $< -o $@
|
|
|
|
fuzz: clean
|
|
CC=afl-gcc CFLAGS=-DNMRPFLASH_FUZZ make nmrpflash
|
|
mv nmrpflash fuzz
|
|
|
|
dofuzz: fuzz
|
|
echo core | sudo tee /proc/sys/kernel/core_pattern
|
|
echo performance | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
|
|
afl-fuzz -i fuzzin -o fuzzout -- ./fuzz
|
|
echo powersave | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
|
|
clean:
|
|
rm -f $(nmrpflash_OBJ) nmrpflash
|
|
|
|
install: nmrpflash
|
|
install -m 755 nmrpflash $(PREFIX)/bin
|
|
|
|
release/macos:
|
|
CFLAGS="-mmacosx-version-min=10.6" make release
|
|
zip nmrpflash-$(VERSION)-macos.zip nmrpflash
|
|
|
|
release/linux: release
|
|
zip nmrpflash-$(VERSION)-linux.zip nmrpflash
|
|
|
|
release/win32:
|
|
zip nmrpflash-$(VERSION)-win32.zip nmrpflash.exe
|
|
|
|
release: clean nmrpflash
|
|
strip nmrpflash
|