nmrpflash/Makefile
Damyan Ivanov 9f1a6027b4 support compiling outside git checkout
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.
2020-04-19 06:07:13 +00:00

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