Commit | Line | Data |
---|---|---|
5212e868 NN |
1 | # Autoconf M4 include file defining utility macros for complex Canadian |
2 | # cross builds. | |
3 | ||
dd12c3a8 NN |
4 | dnl #### |
5 | dnl # _GCC_TOPLEV_NONCANONICAL_BUILD | |
6 | dnl # $build_alias or canonical $build if blank. | |
7 | dnl # Used when we would use $build_alias, but empty is not OK. | |
8 | AC_DEFUN([_GCC_TOPLEV_NONCANONICAL_BUILD], | |
9 | [AC_REQUIRE([AC_CANONICAL_BUILD]) []dnl | |
10 | case ${build_alias} in | |
11 | "") build_noncanonical=${build} ;; | |
12 | *) build_noncanonical=${build_alias} ;; | |
13 | esac | |
14 | ]) []dnl # _GCC_TOPLEV_NONCANONICAL_BUILD | |
15 | ||
16 | dnl #### | |
17 | dnl # _GCC_TOPLEV_NONCANONICAL_HOST | |
18 | dnl # $host_alias, or $build_noncanonical if blank. | |
19 | dnl # Used when we would use $host_alias, but empty is not OK. | |
20 | AC_DEFUN([_GCC_TOPLEV_NONCANONICAL_HOST], | |
21 | [AC_REQUIRE([_GCC_TOPLEV_NONCANONICAL_BUILD]) []dnl | |
22 | case ${host_alias} in | |
23 | "") host_noncanonical=${build_noncanonical} ;; | |
24 | *) host_noncanonical=${host_alias} ;; | |
25 | esac | |
26 | ]) []dnl # _GCC_TOPLEV_NONCANONICAL_HOST | |
27 | ||
28 | dnl #### | |
29 | dnl # _GCC_TOPLEV_NONCANONICAL_TARGET | |
30 | dnl # $target_alias or $host_noncanonical if blank. | |
31 | dnl # Used when we would use $target_alias, but empty is not OK. | |
32 | AC_DEFUN([_GCC_TOPLEV_NONCANONICAL_TARGET], | |
33 | [AC_REQUIRE([_GCC_TOPLEV_NONCANONICAL_HOST]) []dnl | |
34 | case ${target_alias} in | |
35 | "") target_noncanonical=${host_noncanonical} ;; | |
36 | *) target_noncanonical=${target_alias} ;; | |
37 | esac | |
38 | ]) []dnl # _GCC_TOPLEV_NONCANONICAL_TARGET | |
39 | ||
40 | dnl #### | |
41 | dnl # GCC_TOPLEV_SUBDIRS | |
42 | dnl # GCC & friends build 'build', 'host', and 'target' tools. These must | |
43 | dnl # be separated into three well-known subdirectories of the build directory: | |
44 | dnl # build_subdir, host_subdir, and target_subdir. The values are determined | |
45 | dnl # here so that they can (theoretically) be changed in the future. They | |
46 | dnl # were previously reproduced across many different files. | |
47 | dnl # | |
48 | dnl # This logic really amounts to very little with autoconf 2.13; it will | |
49 | dnl # amount to a lot more with autoconf 2.5x. | |
50 | AC_DEFUN([GCC_TOPLEV_SUBDIRS], | |
51 | [AC_REQUIRE([_GCC_TOPLEV_NONCANONICAL_TARGET]) []dnl | |
52 | AC_REQUIRE([_GCC_TOPLEV_NONCANONICAL_BUILD]) []dnl | |
53 | # Prefix 'build-' so this never conflicts with target_subdir. | |
54 | build_subdir="build-${build_noncanonical}" | |
55 | # Not really a subdirectory, but here for completeness. | |
56 | host_subdir=. | |
57 | # No prefix. | |
58 | target_subdir=${target_noncanonical} | |
59 | AC_SUBST([build_subdir]) []dnl | |
60 | AC_SUBST([host_subdir]) []dnl | |
61 | AC_SUBST([target_subdir]) []dnl | |
62 | ]) []dnl # GCC_TOPLEV_SUBDIRS | |
63 | ||
64 | ||
5212e868 NN |
65 | #### |
66 | # _NCN_TOOL_PREFIXES: Some stuff that oughtta be done in AC_CANONICAL_SYSTEM | |
67 | # or AC_INIT. | |
68 | # These demand that AC_CANONICAL_SYSTEM be called beforehand. | |
69 | AC_DEFUN([_NCN_TOOL_PREFIXES], | |
70 | [ncn_tool_prefix= | |
71 | test -n "$host_alias" && ncn_tool_prefix=$host_alias- | |
72 | ncn_target_tool_prefix= | |
73 | test -n "$target_alias" && ncn_target_tool_prefix=$target_alias- | |
74 | ]) []dnl # _NCN_TOOL_PREFIXES | |
75 | ||
76 | #### | |
77 | # NCN_CHECK_TARGET_TOOL(variable, prog-to-check-for,[value-if-not-found],[path]) | |
78 | # Like AC_CHECK_TOOL, but tries a prefix of the target, not the host. | |
79 | # Code is pretty much lifted from autoconf2.53. | |
80 | ||
81 | AC_DEFUN([NCN_CHECK_TARGET_TOOL], | |
82 | [AC_REQUIRE([_NCN_TOOL_PREFIXES]) []dnl | |
83 | if test -n "$ncn_target_tool_prefix"; then | |
84 | AC_CHECK_PROG([$1], [${ncn_target_tool_prefix}$2], | |
85 | [${ncn_target_tool_prefix}$2], , [$4]) | |
86 | fi | |
87 | if test -z "$ac_cv_prog_$1" ; then | |
66e7a4d5 AO |
88 | ncn_cv_$1=$$1 |
89 | AC_CHECK_PROG([ncn_cv_$1], [$2], [$2], [$3], [$4]) | |
90 | $1=$ncn_cv_$1 | |
5212e868 NN |
91 | else |
92 | $1="$ac_cv_prog_$1" | |
93 | fi | |
94 | ]) []dnl # NCN_CHECK_TARGET_TOOL | |
95 | ||
96 | ||
97 | #### | |
98 | # NCN_STRICT_CHECK_TOOL(variable, prog-to-check-for,[value-if-not-found],[path]) | |
99 | # Like AC_CHECK_TOOL, but requires the prefix if build!=host. | |
100 | ||
101 | AC_DEFUN([NCN_STRICT_CHECK_TOOL], | |
102 | [AC_REQUIRE([_NCN_TOOL_PREFIXES]) []dnl | |
103 | if test -n "$ncn_tool_prefix"; then | |
104 | AC_CHECK_PROG([$1], [${ncn_tool_prefix}$2], | |
105 | [${ncn_tool_prefix}$2], , [$4]) | |
106 | fi | |
107 | if test -z "$ac_cv_prog_$1" ; then | |
108 | if test $build = $host ; then | |
66e7a4d5 AO |
109 | ncn_cv_$1=$$1 |
110 | AC_CHECK_PROG([ncn_cv_$1], [$2], [$2], [ifelse([$3],[],[$2],[$3])], [$4]) | |
111 | $1=$ncn_cv_$1 | |
5212e868 | 112 | else |
66e7a4d5 | 113 | $1="ifelse([$3],[],[${ncn_tool_prefix}$2],[$3])" |
5212e868 NN |
114 | fi |
115 | else | |
116 | $1="$ac_cv_prog_$1" | |
117 | fi | |
118 | ]) []dnl # NCN_STRICT_CHECK_TOOL | |
119 | ||
120 | ||
121 | #### | |
122 | # NCN_STRICT_CHECK_TARGET_TOOL(variable, prog-to-check-for,[value-if-not-found],[path]) | |
123 | # Like NCN_CHECK_TARGET_TOOL, but requires the prefix if build!=target. | |
124 | ||
125 | AC_DEFUN([NCN_STRICT_CHECK_TARGET_TOOL], | |
126 | [AC_REQUIRE([_NCN_TOOL_PREFIXES]) []dnl | |
127 | if test -n "$ncn_target_tool_prefix"; then | |
128 | AC_CHECK_PROG([$1], [${ncn_target_tool_prefix}$2], | |
129 | [${ncn_target_tool_prefix}$2], , [$4]) | |
130 | fi | |
131 | if test -z "$ac_cv_prog_$1" ; then | |
132 | if test $build = $target ; then | |
66e7a4d5 AO |
133 | ncn_cv_$1=$$1 |
134 | AC_CHECK_PROG([ncn_cv_$1], [$2], [$2], [ifelse([$3],[],[$2],[$3])], [$4]) | |
135 | $1=$ncn_cv_$1 | |
5212e868 | 136 | else |
66e7a4d5 | 137 | $1="ifelse([$3],[],[${ncn_target_tool_prefix}$2],[$3])" |
5212e868 NN |
138 | fi |
139 | else | |
140 | $1="$ac_cv_prog_$1" | |
141 | fi | |
142 | ]) []dnl # NCN_STRICT_CHECK_TARGET_TOOL |