update README.txt
[mkp224o.git] / configure.ac
blob827b70d6def914c1c0428e4edb482a512a91eb08
1 AC_INIT(mkp224o)
2 # sanity check
3 AC_CONFIG_SRCDIR([main.c])
4 # C compiler
5 oldcflags="$CFLAGS"
6 AC_PROG_CC
8 if test "x$oldcflags" != "x$CFLAGS"
9 then
10         oldcflags="-O3"
11         CFLAGS="-march=native"
12         AC_MSG_CHECKING([whether CC supports -march=native])
13         AC_COMPILE_IFELSE([AC_LANG_PROGRAM([])],
14                 [AC_MSG_RESULT([yes])]
15                 [oldcflags="$oldcflags -march=native"],
16                 [AC_MSG_RESULT([no])]
17         )
18         CFLAGS="-fomit-frame-pointer"
19         AC_MSG_CHECKING([whether CC supports -fomit-frame-pointer])
20         AC_COMPILE_IFELSE([AC_LANG_PROGRAM([])],
21                 [AC_MSG_RESULT([yes])]
22                 [oldcflags="$oldcflags -fomit-frame-pointer"],
23                 [AC_MSG_RESULT([no])]
24         )
25         CFLAGS="$oldcflags"
28 cstd=""
29 oldcflags="$CFLAGS"
30 CFLAGS="-std=c99"
31 AC_MSG_CHECKING([whether CC supports -std=c99])
32 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([])],
33     [AC_MSG_RESULT([yes])]
34     [cstd="-std=c99"],
35     [AC_MSG_RESULT([no])]
37 CFLAGS="$oldcflags"
39 nopie=""
41 oldcflags="$CFLAGS"
42 CFLAGS="-nopie"
43 AC_MSG_CHECKING([whether CC supports -nopie])
44 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([])],
45     [AC_MSG_RESULT([yes])]
46     [nopie="-nopie"],
47     [AC_MSG_RESULT([no])]
49 CFLAGS="$oldcflags"
51 if test "x$nopie" = "x"
52 then
53         oldcflags="$CFLAGS"
54         CFLAGS="-no-pie"
55         AC_MSG_CHECKING([whether CC supports -no-pie])
56         AC_COMPILE_IFELSE([AC_LANG_PROGRAM([])],
57                 [AC_MSG_RESULT([yes])]
58                 [nopie="-no-pie"],
59                 [AC_MSG_RESULT([no])]
60         )
61         CFLAGS="$oldcflags"
64 MYDEFS=""
66 ed25519impl=""
67 AC_ARG_ENABLE([ref10],
68         [AS_HELP_STRING([--enable-ref10],
69                 [use SUPERCOP ref10 ed25519 implementation @<:@default=yes@:>@])],
70         [
71                 AS_IF([test "x$ed25519impl" != "x" -a "$ed25519impl" != "ref10"],
72                         [AC_ERROR([only one ed25519 implementation can be defined])])
73                 ed25519impl="ref10"
74         ],
75         []
78 AC_ARG_ENABLE([amd64-51-30k],
79         [AS_HELP_STRING([--enable-amd64-51-30k],
80                 [use SUPERCOP amd64-51-30k ed25519 implementation @<:@default=no@:>@])],
81         [
82                 AS_IF([test "x$ed25519impl" != "x" -a "$ed25519impl" != "amd64_51_30k"],
83                         [AC_ERROR([only one ed25519 implementation can be defined])])
84                 ed25519impl="amd64_51_30k"
85         ],
86         []
89 AC_ARG_ENABLE([amd64-64-24k],
90         [AS_HELP_STRING([--enable-amd64-64-24k],
91                 [use SUPERCOP amd64-64-24k ed25519 implementation @<:@default=no@:>@])],
92         [
93                 AS_IF([test "x$ed25519impl" != "x" -a "$ed25519impl" != "amd64_64_24k"],
94                         [AC_ERROR([only one ed25519 implementation can be defined])])
95                 ed25519impl="amd64_64_24k"
96         ],
97         []
100 AC_ARG_ENABLE([donna],
101         [AS_HELP_STRING([--enable-donna],
102                 [use ed25519-donna implementation @<:@default=no@:>@])],
103         [
104                 AS_IF([test "x$ed25519impl" != "x" -a "$ed25519impl" != "donna"],
105                         [AC_ERROR([only one ed25519 implementation can be defined])])
106                 ed25519impl="donna"
107         ],
108         []
111 AC_ARG_ENABLE([donna-sse2],
112         [AS_HELP_STRING([--enable-donna-sse2],
113                 [use ed25519-donna SSE2 implementation @<:@default=no@:>@])],
114         [
115                 AS_IF([test "x$ed25519impl" != "x" -a "$ed25519impl" != "donna-sse2"],
116                         [AC_ERROR([only one ed25519 implementation can be defined])])
117                 ed25519impl="donna-sse2"
118         ],
119         []
122 AS_IF([test "x$ed25519impl" == "x"],[ed25519impl=ref10])
124 if test "$ed25519impl" = "donna-sse2"
125 then
126         ed25519impl="donna"
127         MYDEFS="$MYDEFS -DED25519_SSE2"
128         CFLAGS="$CFLAGS -msse2"
131 AC_ARG_ENABLE([intfilter],
132         [AS_HELP_STRING([--enable-intfilter],
133                 [use 64bit integers for filtering. faster but limits filter length @<:@default=no@:>@])],
134         [], [enable_intfilter=no]
136 if test "x$enable_intfilter" = "xyes"
137 then
138         MYDEFS="$MYDEFS -DINTFILTER"
141 AC_ARG_ENABLE([statistics],
142         [AS_HELP_STRING([--enable-statistics],
143                 [collect statistics @<:@default=yes@:>@])],
144         [], [enable_statistics=yes]
146 if test "x$enable_statistics" = "xyes"
147 then
148         MYDEFS="$MYDEFS -DSTATISTICS"
151 AC_SUBST(CSTD,["$cstd"])
152 AC_SUBST(ED25519IMPL,["$ed25519impl"])
153 AC_SUBST(MYDEFS,["$MYDEFS"])
154 AC_SUBST(NOPIE,["$nopie"])
155 AC_OUTPUT(Makefile)