Skip to content

Commit 1e96b67

Browse files
committed
Improve MinGW building
1 parent 67a67c2 commit 1e96b67

File tree

4 files changed

+68
-6
lines changed

4 files changed

+68
-6
lines changed

.cirrus.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,6 @@ task:
146146
env:
147147
EXEC_CMD: wine
148148
HOST: x86_64-w64-mingw32
149-
CXXFLAGS: -O2 -static -static-libgcc -static-libstdc++
150149
BUILD:
151150
<< : *MERGE_BASE
152151
test_script:

Makefile.am

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -65,19 +65,17 @@ endif
6565
bench_SOURCES = $(MINISKETCH_BENCH_SOURCES_INT)
6666
bench_CPPFLAGS = $(AM_CPPFLAGS) $(RELEASE_DEFINES)
6767
bench_LDADD = $(LIBMINISKETCH)
68-
bench_LDFLAGS = $(AM_LDFLAGS) -static
68+
bench_LDFLAGS = $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
6969

7070
test_SOURCES = $(MINISKETCH_TEST_SOURCES_INT)
7171
test_CPPFLAGS = $(AM_CPPFLAGS) $(RELEASE_DEFINES)
72-
test_CXXFLAGS = $(AM_CXXFLAGS)
7372
test_LDADD = $(LIBMINISKETCH)
74-
test_LDFLAGS = $(AM_LDFLAGS) -static
73+
test_LDFLAGS = $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
7574

7675
test_verify_SOURCES = $(MINISKETCH_TEST_SOURCES_INT)
7776
test_verify_CPPFLAGS = $(AM_CPPFLAGS) $(VERIFY_DEFINES)
78-
test_verify_CXXFLAGS = $(AM_CXXFLAGS)
7977
test_verify_LDADD = $(LIBMINISKETCH_VERIFY)
80-
test_verify_LDFLAGS = $(AM_LDFLAGS) -static
78+
test_verify_LDFLAGS = $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
8179

8280
EXTRA_DIST=
8381
EXTRA_DIST += LICENSE

build-aux/m4/ax_check_link_flag.m4

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
# ===========================================================================
2+
# https://www.gnu.org/software/autoconf-archive/ax_check_link_flag.html
3+
# ===========================================================================
4+
#
5+
# SYNOPSIS
6+
#
7+
# AX_CHECK_LINK_FLAG(FLAG, [ACTION-SUCCESS], [ACTION-FAILURE], [EXTRA-FLAGS], [INPUT])
8+
#
9+
# DESCRIPTION
10+
#
11+
# Check whether the given FLAG works with the linker or gives an error.
12+
# (Warnings, however, are ignored)
13+
#
14+
# ACTION-SUCCESS/ACTION-FAILURE are shell commands to execute on
15+
# success/failure.
16+
#
17+
# If EXTRA-FLAGS is defined, it is added to the linker's default flags
18+
# when the check is done. The check is thus made with the flags: "LDFLAGS
19+
# EXTRA-FLAGS FLAG". This can for example be used to force the linker to
20+
# issue an error when a bad flag is given.
21+
#
22+
# INPUT gives an alternative input source to AC_LINK_IFELSE.
23+
#
24+
# NOTE: Implementation based on AX_CFLAGS_GCC_OPTION. Please keep this
25+
# macro in sync with AX_CHECK_{PREPROC,COMPILE}_FLAG.
26+
#
27+
# LICENSE
28+
#
29+
# Copyright (c) 2008 Guido U. Draheim <[email protected]>
30+
# Copyright (c) 2011 Maarten Bosmans <[email protected]>
31+
#
32+
# Copying and distribution of this file, with or without modification, are
33+
# permitted in any medium without royalty provided the copyright notice
34+
# and this notice are preserved. This file is offered as-is, without any
35+
# warranty.
36+
37+
#serial 6
38+
39+
AC_DEFUN([AX_CHECK_LINK_FLAG],
40+
[AC_PREREQ(2.64)dnl for _AC_LANG_PREFIX and AS_VAR_IF
41+
AS_VAR_PUSHDEF([CACHEVAR],[ax_cv_check_ldflags_$4_$1])dnl
42+
AC_CACHE_CHECK([whether the linker accepts $1], CACHEVAR, [
43+
ax_check_save_flags=$LDFLAGS
44+
LDFLAGS="$LDFLAGS $4 $1"
45+
AC_LINK_IFELSE([m4_default([$5],[AC_LANG_PROGRAM()])],
46+
[AS_VAR_SET(CACHEVAR,[yes])],
47+
[AS_VAR_SET(CACHEVAR,[no])])
48+
LDFLAGS=$ax_check_save_flags])
49+
AS_VAR_IF(CACHEVAR,yes,
50+
[m4_default([$2], :)],
51+
[m4_default([$3], :)])
52+
AS_VAR_POPDEF([CACHEVAR])dnl
53+
])dnl AX_CHECK_LINK_FLAGS

configure.ac

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,17 @@ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [
9999

100100
AX_CHECK_LINK_FLAG([[-Wl,--exclude-libs,ALL]],[LDFLAGS="-Wl,--exclude-libs,ALL $LDFLAGS"])
101101

102+
case $host in
103+
*mingw*)
104+
dnl -static is interpreted by libtool, where it has a different meaning.
105+
dnl In libtool-speak, it's -all-static.
106+
AX_CHECK_LINK_FLAG([[-static]],[LIBTOOL_APP_LDFLAGS="$LIBTOOL_APP_LDFLAGS -all-static"])
107+
;;
108+
*)
109+
AX_CHECK_LINK_FLAG([[-static]],[LIBTOOL_APP_LDFLAGS="-static"])
110+
;;
111+
esac
112+
102113
AX_CHECK_COMPILE_FLAG([-Wall],[WARN_CXXFLAGS="$WARN_CXXFLAGS -Wall"],,[[$CXXFLAG_WERROR]])
103114
## Some compilers (gcc) ignore unknown -Wno-* options, but warn about all
104115
## unknown options if any other warning is produced. Test the -Wfoo case, and
@@ -136,6 +147,7 @@ AC_SUBST(WARN_CXXFLAGS)
136147
AC_SUBST(NOWARN_CXXFLAGS)
137148
AC_SUBST(VERIFY_DEFINES)
138149
AC_SUBST(RELEASE_DEFINES)
150+
AC_SUBST(LIBTOOL_APP_LDFLAGS)
139151
AM_CONDITIONAL([ENABLE_CLMUL],[test x$enable_clmul = xyes])
140152
AM_CONDITIONAL([USE_BENCHMARK], [test x"$use_benchmark" = x"yes"])
141153
AM_CONDITIONAL([USE_TESTS], [test x"$use_tests" != x"no"])

0 commit comments

Comments
 (0)