n2n/tools/Makefile
Hamish Coleman 183e0c969a Hack around the "helpful" exe file suffix
If there is a way to turn off the mingw insistence that it will rewrite
the filename it was given in the "-o" options, I have not been able to
find it.  I could easily handle all the moves or renames at the end of
the build process if I could turn off this feature.  Especially since it
means that make often thinks that the file has not been built (the
filename that make knows about is not the file that actually gets built
by the mingw gcc, so the if-newer tests that make applies will always
fail)
2023-07-03 02:51:20 +08:00

66 lines
1.5 KiB
Makefile

#
# This is not a standalone makefile, it must be called from the toplevel
# makefile to inherit the correct environment
DEBUG?=-g3
HEADERS=$(wildcard include/*.h)
CFLAGS+=-I../include
ifneq (,$(findstring mingw,$(CONFIG_HOST_OS)))
CFLAGS+=-I../win32
endif
CFLAGS+=$(DEBUG)
LDFLAGS+=-L..
N2N_LIB=../libn2n.a
TOOLS+=n2n-benchmark$(EXE)
TOOLS+=n2n-keygen$(EXE)
TOOLS+=n2n-route$(EXE)
TOOLS+=n2n-portfwd$(EXE)
TOOLS+=n2n-decode$(EXE)
TESTS=tests-compress$(EXE)
TESTS+=tests-elliptic$(EXE)
TESTS+=tests-hashing$(EXE)
TESTS+=tests-transform$(EXE)
TESTS+=tests-wire$(EXE)
TESTS+=tests-auth$(EXE)
.PHONY: all clean install
all: $(TOOLS) $(TESTS)
n2n-benchmark.o: $(N2N_LIB) $(HEADERS) ../config.mak
n2n-keygen.o: $(N2N_LIB) $(HEADERS) ../config.mak
n2n-route.o: $(N2N_LIB) $(HEADERS) ../config.mak
n2n-portfwd.o: $(N2N_LIB) $(HEADERS) ../config.mak
n2n-decode.o: $(N2N_LIB) $(HEADERS) ../config.mak
ifneq (,$(findstring mingw,$(CONFIG_HOST_OS)))
# HACK for windows.
n2n-benchmark.exe: n2n-benchmark
n2n-keygen.exe: n2n-keygen
n2n-route.exe: n2n-route
n2n-portfwd.exe: n2n-portfwd
n2n-decode.exe: n2n-decode
tests-compress.exe: tests-compress
tests-elliptic.exe: tests-elliptic
tests-hashing.exe: tests-hashing
tests-transform.exe: tests-transform
tests-wire.exe: tests-wire
tests-auth.exe: tests-auth
endif
# See comments in the topdir Makefile about how to generate coverage
# data.
gcov:
gcov $(TOOLS) $(TESTS)
clean:
rm -rf $(TOOLS) *.o *.dSYM *~
rm -f $(TESTS) *.gcno *.gcda
install: $(TOOLS)
$(INSTALL_PROG) $(TOOLS) $(SBINDIR)/