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)
This commit is contained in:
Hamish Coleman 2023-07-02 18:03:27 +01:00
parent 84dac6220b
commit 183e0c969a
2 changed files with 22 additions and 5 deletions

View File

@ -7,6 +7,7 @@ export EXE
export CFLAGS
export LDFLAGS
export LDLIBS
export CONFIG_HOST_OS
-include config.mak
@ -208,6 +209,11 @@ src/example_edge_embed: $(N2N_LIB)
ifneq (,$(findstring mingw,$(CONFIG_HOST_OS)))
src/edge: win32/edge_rc.o
src/edge.exe: src/edge
src/supernode.exe: src/supernode
src/example_edge_embed_quick_edge_init.exe: src/example_edge_embed_quick_edge_init
src/example_sn_embed.exe: src/example_sn_embed
src/example_edge_embed.exe: src/example_edge_embed
endif
%: src/%
@ -300,11 +306,11 @@ distclean:
rm -f $(addprefix src/,$(APPS))
.PHONY: install
install: edge supernode edge.8.gz supernode.1.gz n2n.7.gz
install: edge$(EXE) supernode$(EXE) edge.8.gz supernode.1.gz n2n.7.gz
echo "MANDIR=$(MANDIR)"
$(MKDIR) $(SBINDIR) $(MAN1DIR) $(MAN7DIR) $(MAN8DIR)
$(INSTALL_PROG) supernode $(SBINDIR)/
$(INSTALL_PROG) edge $(SBINDIR)/
$(INSTALL_PROG) supernode$(EXE) $(SBINDIR)/
$(INSTALL_PROG) edge$(EXE) $(SBINDIR)/
$(INSTALL_DOC) edge.8.gz $(MAN8DIR)/
$(INSTALL_DOC) supernode.1.gz $(MAN1DIR)/
$(INSTALL_DOC) n2n.7.gz $(MAN7DIR)/

View File

@ -37,9 +37,20 @@ 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.
%.exe: %
cp $< $@
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.