summaryrefslogtreecommitdiffstats
path: root/m4/pdns_enable_lto.m4
blob: a4642312772809a17e158011cb49b4c2f2d34367 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
AC_DEFUN([PDNS_ENABLE_LTO],[
  AC_ARG_ENABLE([lto],
    AS_HELP_STRING([--enable-lto], [enable Link-Time Optimizations (LTO) support @<:@default=no@:>@]),
    [enable_lto=$enableval],
    [enable_lto=no]
  )

  AS_IF([test "x$enable_lto" != "xno"], [

    dnl If thin is not supported, we try to fallback to auto
    AS_IF([test "x$enable_lto" == "xthin"], [
      gl_COMPILER_OPTION_IF([-flto=thin], [
        CFLAGS="-flto=thin $CFLAGS"
        CXXFLAGS="-flto=thin $CXXFLAGS"
        LDFLAGS="-flto=thin $LDFLAGS"
      ], [enable_lto=auto])
    ])

    dnl If auto is not supported, we try to fallback -flto
    AS_IF([test "x$enable_lto" == "xauto"], [
      gl_COMPILER_OPTION_IF([-flto=auto], [
        CFLAGS="-flto=auto $CFLAGS"
        CXXFLAGS="-flto=auto $CXXFLAGS"
        LDFLAGS="-flto=auto $LDFLAGS"
      ], [enable_lto=yes])
    ])

    AS_IF([test "x$enable_lto" == "xyes"], [
      gl_COMPILER_OPTION_IF([-flto], [
        CFLAGS="-flto $CFLAGS"
        CXXFLAGS="-flto $CXXFLAGS"
        LDFLAGS="-flto $LDFLAGS"
      ], [enable_lto=no])
    ])
  ])

  AC_MSG_CHECKING([whether link-time optimization is supported])
  AC_MSG_RESULT([$enable_lto])
])