summaryrefslogtreecommitdiff
path: root/m4
diff options
context:
space:
mode:
authorErik de Castro Lopo <erikd@mega-nerd.com>2013-03-05 21:53:18 +1100
committerErik de Castro Lopo <erikd@mega-nerd.com>2013-03-06 07:39:24 +1100
commit05609d5b4b02e87c17c01a0ebb9fc2e05b799d90 (patch)
treee932b29586bf90f3a2c940ac0bae25b84d6f3be7 /m4
parent9d057c7179b1a4acb26ea28972038cfcf0be17fe (diff)
downloadflac-05609d5b4b02e87c17c01a0ebb9fc2e05b799d90.tar.gz
configure.ac : Add hardening compile options.
Extra compile options are detected at configure time with new XIPH_ADD_*FLAGS m4 macros. Options enabled include -Wextra, -D_FORTIFY_SOURCE=2 and stack protection.
Diffstat (limited to 'm4')
-rw-r--r--m4/add_cflags.m418
-rw-r--r--m4/add_cxxflags.m419
2 files changed, 37 insertions, 0 deletions
diff --git a/m4/add_cflags.m4 b/m4/add_cflags.m4
new file mode 100644
index 00000000..08f4a409
--- /dev/null
+++ b/m4/add_cflags.m4
@@ -0,0 +1,18 @@
+dnl @synopsis XIPH_ADD_CFLAGS
+dnl
+dnl Add the given option to CFLAGS, if it doesn't break the compiler
+
+AC_DEFUN([XIPH_ADD_CFLAGS],
+[AC_MSG_CHECKING([if $CC accepts $1])
+ ac_add_cflags__old_cflags="$CFLAGS"
+ CFLAGS="$1"
+ AC_TRY_LINK([
+ #include <stdio.h>
+ ],
+ [puts("Hello, World!"); return 0;],
+ AC_MSG_RESULT([yes])
+ CFLAGS="$ac_add_cflags__old_cflags $1",
+ AC_MSG_RESULT([no])
+ CFLAGS="$ac_add_cflags__old_cflags"
+ )
+])# XIPH_ADD_CFLAGS
diff --git a/m4/add_cxxflags.m4 b/m4/add_cxxflags.m4
new file mode 100644
index 00000000..8197dc2d
--- /dev/null
+++ b/m4/add_cxxflags.m4
@@ -0,0 +1,19 @@
+dnl @synopsis XIPH_ADD_CXXFLAGS
+dnl
+dnl Add the given option to CXXFLAGS, if it doesn't break the compiler
+
+AC_DEFUN([XIPH_ADD_CXXFLAGS],
+[AC_MSG_CHECKING([if $CXX accepts $1])
+ AC_LANG_ASSERT([C++])
+ ac_add_cxxflags__old_cxxflags="$CXXFLAGS"
+ CXXFLAGS="$1"
+ AC_TRY_LINK([
+ #include <cstdio>
+ ],
+ [puts("Hello, World!"); return 0;],
+ AC_MSG_RESULT([yes])
+ CXXFLAGS="$ac_add_cxxflags__old_cxxflags $1",
+ AC_MSG_RESULT([no])
+ CXXFLAGS="$ac_add_cxxflags__old_cxxflags"
+ )
+])# XIPH_ADD_CXXFLAGS