Merge branch 'micro' into maint
[platform/upstream/automake.git] / m4 / init.m4
1 # Do all the work for Automake.                             -*- Autoconf -*-
2
3 # Copyright (C) 1996-2013 Free Software Foundation, Inc.
4 #
5 # This file is free software; the Free Software Foundation
6 # gives unlimited permission to copy and/or distribute it,
7 # with or without modifications, as long as this notice is preserved.
8
9 # This macro actually does too much.  Some checks are only needed if
10 # your package does certain things.  But this isn't really a big deal.
11
12 # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
13 # AM_INIT_AUTOMAKE([OPTIONS])
14 # -----------------------------------------------
15 # The call with PACKAGE and VERSION arguments is the old style
16 # call (pre autoconf-2.50), which is being phased out.  PACKAGE
17 # and VERSION should now be passed to AC_INIT and removed from
18 # the call to AM_INIT_AUTOMAKE.
19 # We support both call styles for the transition.  After
20 # the next Automake release, Autoconf can make the AC_INIT
21 # arguments mandatory, and then we can depend on a new Autoconf
22 # release and drop the old call support.
23 AC_DEFUN([AM_INIT_AUTOMAKE],
24 [AC_PREREQ([2.65])dnl
25 dnl Autoconf wants to disallow AM_ names.  We explicitly allow
26 dnl the ones we care about.
27 m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
28 AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
29 AC_REQUIRE([AC_PROG_INSTALL])dnl
30 if test "`cd $srcdir && pwd`" != "`pwd`"; then
31   # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
32   # is not polluted with repeated "-I."
33   AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl
34   # test to see if srcdir already configured
35   if test -f $srcdir/config.status; then
36     AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
37   fi
38 fi
39
40 # test whether we have cygpath
41 if test -z "$CYGPATH_W"; then
42   if (cygpath --version) >/dev/null 2>/dev/null; then
43     CYGPATH_W='cygpath -w'
44   else
45     CYGPATH_W=echo
46   fi
47 fi
48 AC_SUBST([CYGPATH_W])
49
50 # Define the identity of the package.
51 dnl Distinguish between old-style and new-style calls.
52 m4_ifval([$2],
53 [AC_DIAGNOSE([obsolete],
54              [$0: two- and three-arguments forms are deprecated.])
55 m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
56  AC_SUBST([PACKAGE], [$1])dnl
57  AC_SUBST([VERSION], [$2])],
58 [_AM_SET_OPTIONS([$1])dnl
59 dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT.
60 m4_if(
61   m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]),
62   [ok:ok],,
63   [m4_fatal([AC_INIT should be called with package and version arguments])])dnl
64  AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
65  AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
66
67 _AM_IF_OPTION([no-define],,
68 [AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package])
69  AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl
70
71 # Some tools Automake needs.
72 AC_REQUIRE([AM_SANITY_CHECK])dnl
73 AC_REQUIRE([AC_ARG_PROGRAM])dnl
74 AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}])
75 AM_MISSING_PROG([AUTOCONF], [autoconf])
76 AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}])
77 AM_MISSING_PROG([AUTOHEADER], [autoheader])
78 AM_MISSING_PROG([MAKEINFO], [makeinfo])
79 AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
80 AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl
81 AC_REQUIRE([AC_PROG_MKDIR_P])dnl
82 # For better backward compatibility.  To be removed once Automake 1.9.x
83 # dies out for good.  For more background, see:
84 # <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
85 # <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
86 AC_SUBST([mkdir_p], ['$(MKDIR_P)'])
87 # We need awk for the "check" target.  The system "awk" is bad on
88 # some platforms.
89 AC_REQUIRE([AC_PROG_AWK])dnl
90 AC_REQUIRE([AC_PROG_MAKE_SET])dnl
91 AC_REQUIRE([AM_SET_LEADING_DOT])dnl
92 _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
93               [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
94                              [_AM_PROG_TAR([v7])])])
95 _AM_IF_OPTION([no-dependencies],,
96 [AC_PROVIDE_IFELSE([AC_PROG_CC],
97                   [_AM_DEPENDENCIES([CC])],
98                   [m4_define([AC_PROG_CC],
99                              m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl
100 AC_PROVIDE_IFELSE([AC_PROG_CXX],
101                   [_AM_DEPENDENCIES([CXX])],
102                   [m4_define([AC_PROG_CXX],
103                              m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl
104 AC_PROVIDE_IFELSE([AC_PROG_OBJC],
105                   [_AM_DEPENDENCIES([OBJC])],
106                   [m4_define([AC_PROG_OBJC],
107                              m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl
108 AC_PROVIDE_IFELSE([AC_PROG_OBJCXX],
109                   [_AM_DEPENDENCIES([OBJCXX])],
110                   [m4_define([AC_PROG_OBJCXX],
111                              m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl
112 ])
113 dnl Automatically invoke AM_PROG_CC_C_O as necessary.  Since AC_PROG_CC is
114 dnl usually called after AM_INIT_AUTOMAKE, we arrange for the test to be
115 dnl done later by AC_CONFIG_COMMANDS_PRE.
116 AC_CONFIG_COMMANDS_PRE([AC_PROVIDE_IFELSE(
117     [AC_PROG_CC],
118     [AC_LANG_PUSH([C]) AM_PROG_CC_C_O AC_LANG_POP([C])])])dnl
119 AC_REQUIRE([AM_SILENT_RULES])dnl
120 dnl The testsuite driver may need to know about EXEEXT, so add the
121 dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen.  This
122 dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below.
123 AC_CONFIG_COMMANDS_PRE(dnl
124 [m4_provide_if([_AM_COMPILER_EXEEXT],
125   [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
126
127 # POSIX will say in a future version that running "rm -f" with no argument
128 # is OK; and we want to be able to make that assumption in our Makefile
129 # recipes.  So use an aggressive probe to check that the usage we want is
130 # actually supported "in the wild" to an acceptable degree.
131 # See automake bug#10828.
132 # To make any issue more visible, cause the running configure to be aborted
133 # by default if the 'rm' program in use doesn't match our expectations; the
134 # user can still override this though.
135 if rm -f && rm -fr && rm -rf; then : OK; else
136   cat >&2 <<'END'
137 Oops!
138
139 Your 'rm' program seems unable to run without file operands specified
140 on the command line, even when the '-f' option is present.  This is contrary
141 to the behaviour of most rm programs out there, and not conforming with
142 the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542>
143
144 Please tell bug-automake@gnu.org about your system, including the value
145 of your $PATH and any error possibly output before this message.  This
146 can help us improve future automake versions.
147
148 END
149   if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then
150     echo 'Configuration will proceed anyway, since you have set the' >&2
151     echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2
152     echo >&2
153   else
154     cat >&2 <<'END'
155 Aborting the configuration process, to ensure you take notice of the issue.
156
157 You can download and install GNU coreutils to get an 'rm' implementation
158 that behaves properly: <http://www.gnu.org/software/coreutils/>.
159
160 If you want to complete the configuration process using your problematic
161 'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
162 to "yes", and re-run configure.
163
164 END
165     AC_MSG_ERROR([Your 'rm' program is bad, sorry.])
166   fi
167 fi])
168
169 dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion.  Do not
170 dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further
171 dnl mangled by Autoconf and run in a shell conditional statement.
172 m4_define([_AC_COMPILER_EXEEXT],
173 m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])])
174
175 # When config.status generates a header, we must update the stamp-h file.
176 # This file resides in the same directory as the config header
177 # that is generated.  The stamp files are numbered to have different names.
178
179 # Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the
180 # loop where config.status creates the headers, so we can generate
181 # our stamp files there.
182 AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
183 [# Compute $1's index in $config_headers.
184 _am_arg=$1
185 _am_stamp_count=1
186 for _am_header in $config_headers :; do
187   case $_am_header in
188     $_am_arg | $_am_arg:* )
189       break ;;
190     * )
191       _am_stamp_count=`expr $_am_stamp_count + 1` ;;
192   esac
193 done
194 echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])