1# ============================================================================= 2# http://www.gnu.org/software/autoconf-archive/ax_compiler_flags_ldflags.html 3# ============================================================================= 4# 5# SYNOPSIS 6# 7# AX_COMPILER_FLAGS_LDFLAGS([VARIABLE], [IS-RELEASE], [EXTRA-BASE-FLAGS], [EXTRA-YES-FLAGS]) 8# 9# DESCRIPTION 10# 11# Add warning flags for the linker to VARIABLE, which defaults to 12# WARN_LDFLAGS. VARIABLE is AC_SUBST-ed by this macro, but must be 13# manually added to the LDFLAGS variable for each target in the code base. 14# 15# This macro depends on the environment set up by AX_COMPILER_FLAGS. 16# Specifically, it uses the value of $ax_enable_compile_warnings to decide 17# which flags to enable. 18# 19# LICENSE 20# 21# Copyright (c) 2014, 2015 Philip Withnall <philip@tecnocode.co.uk> 22# 23# Copying and distribution of this file, with or without modification, are 24# permitted in any medium without royalty provided the copyright notice 25# and this notice are preserved. This file is offered as-is, without any 26# warranty. 27 28#serial 5 29 30AC_DEFUN([AX_COMPILER_FLAGS_LDFLAGS],[ 31 AX_REQUIRE_DEFINED([AX_APPEND_LINK_FLAGS]) 32 AX_REQUIRE_DEFINED([AX_APPEND_FLAG]) 33 AX_REQUIRE_DEFINED([AX_CHECK_COMPILE_FLAG]) 34 35 # Variable names 36 m4_define(ax_warn_ldflags_variable, 37 [m4_normalize(ifelse([$1],,[WARN_LDFLAGS],[$1]))]) 38 39 # Always pass -Werror=unknown-warning-option to get Clang to fail on bad 40 # flags, otherwise they are always appended to the warn_ldflags variable, 41 # and Clang warns on them for every compilation unit. 42 # If this is passed to GCC, it will explode, so the flag must be enabled 43 # conditionally. 44 AX_CHECK_COMPILE_FLAG([-Werror=unknown-warning-option],[ 45 ax_compiler_flags_test="-Werror=unknown-warning-option" 46 ],[ 47 ax_compiler_flags_test="" 48 ]) 49 50 # Base flags 51 AX_APPEND_LINK_FLAGS([ dnl 52 -Wl,--no-as-needed dnl 53 $3 dnl 54 ],ax_warn_ldflags_variable,[$ax_compiler_flags_test]) 55 56 AS_IF([test "$ax_enable_compile_warnings" != "no"],[ 57 # "yes" flags 58 AX_APPEND_LINK_FLAGS([$4 $5 $6 $7], 59 ax_warn_ldflags_variable, 60 [$ax_compiler_flags_test]) 61 ]) 62 AS_IF([test "$ax_enable_compile_warnings" = "error"],[ 63 # "error" flags; -Werror has to be appended unconditionally because 64 # it's not possible to test for 65 # 66 # suggest-attribute=format is disabled because it gives too many false 67 # positives 68 AX_APPEND_LINK_FLAGS([ dnl 69 -Wl,--fatal-warnings dnl 70 ],ax_warn_ldflags_variable,[$ax_compiler_flags_test]) 71 ]) 72 73 # Substitute the variables 74 AC_SUBST(ax_warn_ldflags_variable) 75])dnl AX_COMPILER_FLAGS 76