summaryrefslogtreecommitdiff
path: root/m4
diff options
context:
space:
mode:
authorMichael Steinert <mike.steinert@gmail.com>2012-05-15 17:25:09 -0600
committerMichael Steinert <mike.steinert@gmail.com>2012-05-17 11:44:45 -0600
commit3a39d63356c936e07539c648409d4c5d20e5e696 (patch)
treed0da7b40ade5e18f7467537cb6bd8d9aa896b676 /m4
parentb16e9f105e35b148383e27bd9ea60a1c7cacefe8 (diff)
downloadrabbitmq-c-github-ask-3a39d63356c936e07539c648409d4c5d20e5e696.tar.gz
Add -Wall, -Wextra & -pedantic by default
This change also adds a couple small autoconf macros to make it easier to deal with compiler options. Signed-off-by: Michael Steinert <mike.steinert@gmail.com>
Diffstat (limited to 'm4')
-rw-r--r--m4/cflags.m459
-rw-r--r--m4/ldflags.m458
2 files changed, 117 insertions, 0 deletions
diff --git a/m4/cflags.m4 b/m4/cflags.m4
new file mode 100644
index 0000000..015d07b
--- /dev/null
+++ b/m4/cflags.m4
@@ -0,0 +1,59 @@
+# cflags.m4 - Test and set compiler flags
+#
+# Copyright 2011, 2012 Michael Steinert
+#
+# Permission is hereby granted, free of charge, to any person obtaining
+# a copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice shall be
+# included in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
+# SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+# DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+# OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
+# THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+#serial 1
+
+# AX_TRY_CFLAGS(FLAG, [ACTION-IF-TRUE], [ACTION-IF-FALSE])
+# --------------------------------------------------------
+# Test a compiler flag is supported.
+# FLAG: a compiler flag to try
+# ACTION-IF-TRUE: commands to execute if FLAG is supported
+# ACTION-IF-FALSE: commands to execute if FLAG is not supported
+AC_DEFUN([AX_TRY_CFLAGS],
+[dnl
+AC_REQUIRE([AC_PROG_CC])
+_ax_cflags=$CFLAGS
+CFLAGS="$1 $CFLAGS"
+AC_MSG_CHECKING([if compiler accepts '$1'])
+AC_TRY_COMPILE([], [],
+ [AC_MSG_RESULT([yes])
+ CFLAGS=$_ax_cflags
+ $2],
+ [AC_MSG_RESULT([no])
+ CFLAGS=$_ax_cflags
+ $3])
+])dnl
+
+# AX_CFLAGS(FLAGS)
+# ----------------
+# Enable compiler flags.
+# FLAGS: a whitespace-separated list of compiler flags to set
+AC_DEFUN([AX_CFLAGS],
+[dnl
+m4_foreach_w([_ax_flag], [$1],
+ [AS_CASE([" $CFLAGS "],
+ [*[[\ \ ]]_ax_flag[[\ \ ]]*],
+ [],
+ [*],
+ [CFLAGS="$CFLAGS _ax_flag"])])
+])dnl
diff --git a/m4/ldflags.m4 b/m4/ldflags.m4
new file mode 100644
index 0000000..bc07c7b
--- /dev/null
+++ b/m4/ldflags.m4
@@ -0,0 +1,58 @@
+# ldflags.m4 - Test and set linker flags
+#
+# Copyright 2011, 2012 Michael Steinert
+#
+# Permission is hereby granted, free of charge, to any person obtaining
+# a copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice shall be
+# included in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
+# SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+# DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+# OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
+# THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+#serial 1
+
+# AX_TRY_LDFLAGS(FLAG, [ACTION-IF-TRUE], [ACTION-IF-FALSE])
+# ---------------------------------------------------------
+# Test if a linker flag is supported.
+# FLAG: a linker flag to try
+# ACTION-IF-TRUE: commands to execute if FLAG is supported
+# ACTION-IF-FALSE: commands to execute if FLAG is not supported
+AC_DEFUN([AX_TRY_LDFLAGS],
+[dnl
+_ax_ldflags=$LDFLAGS
+LDFLAGS="$1 $LDFLAGS"
+AC_MSG_CHECKING([if linker accepts '$1'])
+AC_TRY_LINK([], [],
+ [AC_MSG_RESULT([yes])
+ LDFLAGS=$_ax_ldflags
+ $2],
+ [AC_MSG_RESULT([no])
+ LDFLAGS=$_ax_ldflags
+ $3])
+])dnl
+
+# AX_LDFLAGS(flags)
+# -----------------
+# Enable linker flags.
+# FLAGS: a whitespace-separated list of linker flags to set
+AC_DEFUN([AX_LDFLAGS],
+[dnl
+m4_foreach_w([_ax_flag], [$1],
+ [AS_CASE([" $LDFLAGS "],
+ [*[[\ \ ]]_ax_flag[[\ \ ]]*],
+ [],
+ [*],
+ [LDFLAGS="$LDFLAGS _ax_flag"])])
+])dnl