proper extensions for windows executables

This commit is contained in:
cathugger
2019-03-31 23:16:58 +03:00
parent 4fb82c8902
commit ff238e224d
2 changed files with 30 additions and 11 deletions

View File

@@ -68,32 +68,33 @@ CLEANO= $(filter %.o,$(ALLO))
MAINLIB= -lpthread -lsodium @MAINLIB@ MAINLIB= -lpthread -lsodium @MAINLIB@
TEST_ED25519LIB= -lsodium TEST_ED25519LIB= -lsodium
EXE= mkp224o test_base64 test_base32 test_base16 test_ed25519 ALLTGTS= mkp224o test_base64 test_base32 test_base16 test_ed25519
ALLEXE= $(patsubst %,%@EXESFX@,$(ALLTGTS))
.PHONY: default all clean distclean depend .PHONY: default all clean distclean depend
default: mkp224o default: mkp224o
all: $(EXE) all: $(ALLEXE)
mkp224o: $(MAINOBJ) mkp224o@EXESFX@: $(MAINOBJ)
$(CC) $(LDFLAGS) $(CFLAGS) -o $@.tmp $^ $(MAINLIB) && $(MV) $@.tmp $@ $(CC) $(LDFLAGS) $(CFLAGS) -o $@.tmp $^ $(MAINLIB) && $(MV) $@.tmp $@
test_base64: $(TEST_BASE64OBJ) test_base64@EXESFX@: $(TEST_BASE64OBJ)
$(CC) $(LDFLAGS) $(CFLAGS) -o $@.tmp $^ && $(MV) $@.tmp $@ $(CC) $(LDFLAGS) $(CFLAGS) -o $@.tmp $^ && $(MV) $@.tmp $@
test_base32: $(TEST_BASE32OBJ) test_base32@EXESFX@: $(TEST_BASE32OBJ)
$(CC) $(LDFLAGS) $(CFLAGS) -o $@.tmp $^ && $(MV) $@.tmp $@ $(CC) $(LDFLAGS) $(CFLAGS) -o $@.tmp $^ && $(MV) $@.tmp $@
test_base16: $(TEST_BASE16OBJ) test_base16@EXESFX@: $(TEST_BASE16OBJ)
$(CC) $(LDFLAGS) $(CFLAGS) -o $@.tmp $^ && $(MV) $@.tmp $@ $(CC) $(LDFLAGS) $(CFLAGS) -o $@.tmp $^ && $(MV) $@.tmp $@
test_ed25519: $(TEST_ED25519OBJ) test_ed25519@EXESFX@: $(TEST_ED25519OBJ)
$(CC) $(LDFLAGS) $(CFLAGS) -o $@.tmp $^ $(TEST_ED25519LIB) && $(MV) $@.tmp $@ $(CC) $(LDFLAGS) $(CFLAGS) -o $@.tmp $^ $(TEST_ED25519LIB) && $(MV) $@.tmp $@
clean: clean:
$(RM) $(CLEANO) $(RM) $(CLEANO)
$(RM) $(EXE) $(RM) $(ALLEXE)
distclean: clean distclean: clean
$(RM) -r autom4te.cache $(RM) -r autom4te.cache

View File

@@ -209,16 +209,27 @@ then
) )
fi fi
CFLAGS="$cstd -Wno-pedantic-ms-format -Werror" WIN=0
AC_MSG_CHECKING([whether CC supports and needs -Wno-pedantic-ms-format]) AC_MSG_CHECKING([whether CC compiles for Windows API])
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#ifndef _WIN32 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#ifndef _WIN32
#error wants windows #error wants windows
#endif]], [])], #endif]], [])],
[AC_MSG_RESULT([yes])] [AC_MSG_RESULT([yes])]
[cstd="$cstd -Wno-pedantic-ms-format"], [WIN=1],
[AC_MSG_RESULT([no])] [AC_MSG_RESULT([no])]
) )
if test "$WIN" -eq 1
then
CFLAGS="$cstd -Wno-pedantic-ms-format -Werror"
AC_MSG_CHECKING([whether CC supports and needs -Wno-pedantic-ms-format])
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([])],
[AC_MSG_RESULT([yes])]
[cstd="$cstd -Wno-pedantic-ms-format"],
[AC_MSG_RESULT([no])]
)
fi
if test "x$ed25519impl" = "xdonna" if test "x$ed25519impl" = "xdonna"
then then
CFLAGS="$cstd -Wno-unused-function -Werror" CFLAGS="$cstd -Wno-unused-function -Werror"
@@ -309,6 +320,12 @@ yes|pcre2)
;; ;;
esac esac
EXESFX=''
if test "$WIN" -eq 1
then
EXESFX='.exe'
fi
# recreate dir tree, because otherwise gcc will fuck up # recreate dir tree, because otherwise gcc will fuck up
(cd "$srcdir" && find ed25519 -type d) | xargs mkdir -p (cd "$srcdir" && find ed25519 -type d) | xargs mkdir -p
@@ -318,4 +335,5 @@ AC_SUBST(MYDEFS,["$MYDEFS"])
AC_SUBST(MAINLIB,["$MAINLIB"]) AC_SUBST(MAINLIB,["$MAINLIB"])
AC_SUBST(NOPIE,["$nopie"]) AC_SUBST(NOPIE,["$nopie"])
AC_SUBST(SRCDIR,["$srcdir"]) AC_SUBST(SRCDIR,["$srcdir"])
AC_SUBST(EXESFX,["$EXESFX"])
AC_OUTPUT(Makefile) AC_OUTPUT(Makefile)