[a0ea6f1] | 1 | ## All directories belong in one of 3 categories. |
---|
[ba748523] | 2 | ## ${HOST_CONFIGDIRS_LIST} is directories we build using the host tools. |
---|
| 3 | ## ${TARGET_CONFIGDIRS_LIST} is directories we build using the target tools. |
---|
| 4 | ## ${BUILD_CONFIGDIRS_LIST} is directories we build using the build tools |
---|
| 5 | |
---|
| 6 | |
---|
| 7 | dnl RTEMS_ARG_VAR(VAR,HELP-STRING) |
---|
| 8 | dnl An internal macros to have help strings pretty |
---|
| 9 | dnl printed with configure --help, without letting autoconf spoil config subdir |
---|
| 10 | dnl environments by trying to propagate them |
---|
| 11 | dnl Stripped down version of autoconf-2.52's AC_ARG_VAR. |
---|
| 12 | |
---|
| 13 | AC_DEFUN([_RTEMS_ARG_VAR], |
---|
| 14 | [ |
---|
| 15 | m4_expand_once([m4_divert_once([HELP_VAR], |
---|
| 16 | [AC_HELP_STRING([$1], [$2], [ ])])], |
---|
| 17 | [$0($1)])dnl |
---|
| 18 | ]) |
---|
| 19 | |
---|
| 20 | AC_DEFUN([_RTEMS_SUBST_IFNOT], |
---|
| 21 | [AS_IF([`echo " [$]$1 " | grep " $2 " > /dev/null`], |
---|
| 22 | [], |
---|
| 23 | [AC_SUBST([$1],["[$]$1 $2"])]) |
---|
| 24 | ]) |
---|
| 25 | |
---|
| 26 | AC_DEFUN([_RTEMS_COMMANDS_POST_CONFIG_SUBDIRS], |
---|
| 27 | [ |
---|
| 28 | AC_CONFIG_COMMANDS_PRE([ |
---|
| 29 | _RTEMS_BUILD_CONFIG_PREPARE |
---|
| 30 | _RTEMS_HOST_CONFIG_PREPARE |
---|
| 31 | _RTEMS_TARGET_CONFIG_PREPARE |
---|
| 32 | |
---|
[a0ea6f1] | 33 | AS_IF([test $build = $host], |
---|
| 34 | [ |
---|
| 35 | AS_IF([test $host = $target], |
---|
| 36 | [dnl b=h, h=t, t=b |
---|
[ba748523] | 37 | BUILD_SUBDIRS="${build_configdirs}" |
---|
| 38 | build_configdirs="${build_configdirs}" |
---|
| 39 | HOST_SUBDIRS="" |
---|
| 40 | host_configdirs="" |
---|
| 41 | TARGET_SUBDIRS="" |
---|
[a0ea6f1] | 42 | target_configdirs=""], |
---|
| 43 | [dnl b=h, h!=t, t!=b |
---|
[ba748523] | 44 | BUILD_SUBDIRS="${build_configdirs}" |
---|
| 45 | build_configdirs="${build_configdirs}" |
---|
| 46 | HOST_SUBDIRS="" |
---|
| 47 | host_configdirs="" |
---|
| 48 | TARGET_SUBDIRS=`echo "${target_configdirs}" | \ |
---|
| 49 | sed -e "s%\([[^ ]][[^ ]]*\)%$target_alias/\1%g"` |
---|
| 50 | target_configdirs="${target_configdirs}" |
---|
[a0ea6f1] | 51 | ]) |
---|
| 52 | ],[ |
---|
| 53 | AS_IF([test $host = $target], |
---|
| 54 | [ dnl b!=h, h=t, b!=t |
---|
[ba748523] | 55 | BUILD_SUBDIRS="${build_configdirs}" |
---|
| 56 | build_configdirs="${build_configdirs}" |
---|
| 57 | HOST_SUBDIRS=`echo "${host_configdirs}" | \ |
---|
| 58 | sed -e "s%\([[^ ]][[^ ]]*\)%$host_alias/\1%g"` |
---|
| 59 | host_configdirs="${host_configdirs}" |
---|
| 60 | TARGET_SUBDIRS="" |
---|
[a0ea6f1] | 61 | target_configdirs=""], |
---|
| 62 | [ |
---|
| 63 | AS_IF([test $build = $target], |
---|
| 64 | [dnl b!=h, h!=t, b=t |
---|
[ba748523] | 65 | BUILD_SUBDIRS="${build_configdirs}" |
---|
| 66 | build_configdirs="${build_configdirs}" |
---|
| 67 | HOST_SUBDIRS=`echo "${host_configdirs}" | \ |
---|
| 68 | sed -e "s%\([[^ ]][[^ ]]*\)%$host_alias/\1%g"` |
---|
| 69 | host_configdirs="${host_configdirs}" |
---|
| 70 | TARGET_SUBDIRS="" |
---|
[a0ea6f1] | 71 | target_configdirs=""], |
---|
| 72 | [dnl b!=h, h!=t, b!=t |
---|
[ba748523] | 73 | BUILD_SUBDIRS="${build_configdirs}" |
---|
| 74 | build_configdirs="${build_configdirs}" |
---|
| 75 | HOST_SUBDIRS=`echo "${host_configdirs}" | \ |
---|
| 76 | sed -e "s%\([[^ ]][[^ ]]*\)%$host_alias/\1%g"` |
---|
| 77 | host_configdirs="${host_configdirs}" |
---|
| 78 | TARGET_SUBDIRS=`echo "${target_configdirs}" | \ |
---|
| 79 | sed -e "s%\([[^ ]][[^ ]]*\)%$target_alias/\1%g"` |
---|
| 80 | target_configdirs="${target_configdirs}" |
---|
[a0ea6f1] | 81 | ]) |
---|
| 82 | ]) |
---|
| 83 | ]) |
---|
[ba748523] | 84 | |
---|
| 85 | AC_SUBST(HOST_SUBDIRS) |
---|
| 86 | AC_SUBST(TARGET_SUBDIRS) |
---|
| 87 | AC_SUBST(BUILD_SUBDIRS) |
---|
| 88 | ]) |
---|
| 89 | |
---|
| 90 | AC_CONFIG_COMMANDS_POST([ |
---|
| 91 | _RTEMS_OUTPUT_SUBDIRS([build],[BUILD]) |
---|
| 92 | _RTEMS_OUTPUT_SUBDIRS([host],[HOST]) |
---|
| 93 | _RTEMS_OUTPUT_SUBDIRS([target],[TARGET]) |
---|
| 94 | ]) |
---|
| 95 | ]) |
---|
| 96 | |
---|
| 97 | dnl _RTEMS_SRCPATHS(BUILD-DIR-NAME) |
---|
| 98 | dnl ---------------------------- |
---|
| 99 | dnl Inputs: |
---|
| 100 | dnl - BUILD-DIR-NAME is `top-build -> build' and `top-src -> src' |
---|
| 101 | dnl - `$srcdir' is `top-build -> top-src' |
---|
| 102 | dnl |
---|
| 103 | dnl Outputs: |
---|
| 104 | dnl - `ac_builddir' is `.', for symmetry only. |
---|
| 105 | dnl - `ac_top_builddir' is `build -> top_build'. |
---|
| 106 | dnl If not empty, has a trailing slash. |
---|
| 107 | dnl - `ac_srcdir' is `build -> src'. |
---|
| 108 | dnl - `ac_top_srcdir' is `build -> top-src'. |
---|
| 109 | dnl |
---|
| 110 | dnl and `ac_buildpath' etc., the absolute paths. |
---|
| 111 | m4_define([_RTEMS_SRCPATHS], |
---|
| 112 | [ |
---|
| 113 | m4_if([$2],, |
---|
| 114 | [dstdir=$1], |
---|
| 115 | [case "$2" in |
---|
| 116 | "." | "" ) # No subdir was given |
---|
| 117 | dstdir=$1;; |
---|
| 118 | * ) # A subdir was given |
---|
| 119 | dstdir=$2/$1;; |
---|
| 120 | esac]) |
---|
| 121 | ac_builddir=. |
---|
| 122 | |
---|
[a0ea6f1] | 123 | AS_IF([test $dstdir != .], |
---|
| 124 | [ # Strip off leading ./ |
---|
[ba748523] | 125 | ac_builddir_suffix=/`echo $dstdir | sed 's,^\.[[\\/]],,'` |
---|
| 126 | ac_srcdir_suffix=/`echo $1 | sed 's,^\.[[\\/]],,'` |
---|
| 127 | # A "../" for each directory in $ac_dir_suffix. |
---|
| 128 | ac_top_builddir=`echo "$ac_builddir_suffix" | sed 's,/[[^\\/]]*,../,g'` |
---|
[a0ea6f1] | 129 | ],[ |
---|
[ba748523] | 130 | ac_dir_suffix= ac_top_builddir= |
---|
[a0ea6f1] | 131 | ]) |
---|
[ba748523] | 132 | |
---|
| 133 | case $srcdir in |
---|
| 134 | .) # No --srcdir option. We are building in place. |
---|
| 135 | ac_srcdir=. |
---|
| 136 | if test -z "$ac_top_builddir"; then |
---|
| 137 | ac_top_srcdir=. |
---|
| 138 | else |
---|
| 139 | ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` |
---|
| 140 | fi ;; |
---|
| 141 | [[\\/]]* | ?:[[\\/]]* ) # Absolute path. |
---|
| 142 | ac_srcdir=$srcdir$ac_srcdir_suffix; |
---|
| 143 | ac_top_srcdir=$srcdir; |
---|
| 144 | ;; |
---|
| 145 | *) # Relative path. |
---|
| 146 | ac_srcdir=$ac_top_builddir$srcdir$ac_srcdir_suffix; |
---|
| 147 | ac_top_srcdir=$ac_top_builddir$srcdir; |
---|
| 148 | ;; |
---|
| 149 | esac |
---|
| 150 | dnl Don't blindly perform a `cd $1/$ac_foo && pwd` since $ac_foo can be |
---|
| 151 | dnl absolute. |
---|
| 152 | |
---|
| 153 | ac_buildpath=`cd $dstdir && cd $ac_builddir && pwd` |
---|
| 154 | ac_top_buildpath=`cd $dstdir && cd $ac_top_builddir && pwd` |
---|
| 155 | ac_srcpath=`cd $dstdir && cd $ac_srcdir && pwd` |
---|
| 156 | ac_top_srcpath=`cd $dstdir && cd $ac_top_srcdir && pwd` |
---|
| 157 | ])# _AC_SRCPATHS |
---|
| 158 | |
---|
| 159 | dnl _RTEMS_OUTPUT_SUBDIRS([host|target|build],[HOST|TARGET|BUILD]) |
---|
| 160 | AC_DEFUN([_RTEMS_OUTPUT_SUBDIRS],[ |
---|
| 161 | m4_ifdef([_RTEMS_$2_CONFIGDIRS_LIST], |
---|
| 162 | [ |
---|
| 163 | _RTEMS_ARG_VAR([CC_FOR_$2], |
---|
| 164 | [c-compiler to be used for $1 subdirs (default: auto-detected)]) |
---|
[b4cde04] | 165 | _RTEMS_ARG_VAR([CFLAGS_FOR_$2], |
---|
| 166 | [c-flags to be used for $1 subdirs (default: provided by autoconf)]) |
---|
[ba748523] | 167 | if test "$no_recursion" != yes; then |
---|
| 168 | |
---|
| 169 | if test -n "${$2_SUBDIRS}"; then |
---|
[59d28b7] | 170 | RTEMS_CONFIGURE_ARGS_QUOTE([ac_sub_configure_args],[ |
---|
| 171 | -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) |
---|
| 172 | ac_prev=prefix ;; |
---|
| 173 | -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) |
---|
| 174 | ;; |
---|
| 175 | ],[$1args]) |
---|
[ba748523] | 176 | |
---|
[9b11632] | 177 | # Always prepend --prefix to ensure using the same prefix |
---|
| 178 | # in subdir configurations. |
---|
| 179 | ac_sub_configure_args="--prefix=$prefix $ac_sub_configure_args" |
---|
| 180 | |
---|
[ba748523] | 181 | case "$$1_subdir" in |
---|
| 182 | "." ) ;; |
---|
| 183 | * ) |
---|
[9b11632] | 184 | ac_sub_configure_args="$ac_sub_configure_args --with-target-subdir=$$1_subdir --exec-prefix=${prefix}/$$1_subdir" |
---|
[ba748523] | 185 | ;; |
---|
| 186 | esac |
---|
| 187 | |
---|
| 188 | # make sure that $1_subdir is not empty |
---|
| 189 | test -n "$$1_subdir" || $1_subdir="." |
---|
| 190 | |
---|
| 191 | ac_popdir=`pwd` |
---|
| 192 | for ac_dir in $$1_configdirs; do |
---|
| 193 | |
---|
| 194 | # Do not complain, so a configure script can configure whichever |
---|
| 195 | # parts of a large source tree are present. |
---|
| 196 | test -d $srcdir/$ac_dir || continue |
---|
| 197 | |
---|
| 198 | AC_MSG_NOTICE([configuring in $$1_subdir/$ac_dir]) |
---|
| 199 | AS_MKDIR_P(["$$1_subdir/$ac_dir"]) |
---|
| 200 | _RTEMS_SRCPATHS(["$ac_dir"],["$$1_subdir"]) |
---|
| 201 | |
---|
| 202 | cd $$1_subdir/$ac_dir |
---|
| 203 | |
---|
| 204 | # Check for guested configure; otherwise get Cygnus style configure. |
---|
| 205 | if test -f $ac_srcdir/configure.gnu; then |
---|
| 206 | ac_sub_configure="$SHELL '$ac_srcdir/configure.gnu'" |
---|
| 207 | elif test -f $ac_srcdir/configure; then |
---|
| 208 | ac_sub_configure="$SHELL '$ac_srcdir/configure'" |
---|
| 209 | elif test -f $ac_srcdir/configure.in; then |
---|
| 210 | ac_sub_configure=$ac_configure |
---|
| 211 | else |
---|
| 212 | AC_MSG_WARN([no configuration information is in $ac_dir]) |
---|
| 213 | ac_sub_configure= |
---|
| 214 | fi |
---|
| 215 | |
---|
| 216 | # The recursion is here. |
---|
| 217 | if test -n "$ac_sub_configure"; then |
---|
| 218 | # Make the cache file name correct relative to the subdirectory. |
---|
| 219 | case $cache_file in |
---|
| 220 | [[\\/]]* | ?:[[\\/]]* ) ac_sub_cache_file=$cache_file ;; |
---|
| 221 | *) # Relative path. |
---|
| 222 | ac_sub_cache_file=$ac_top_builddir$cache_file ;; |
---|
| 223 | esac |
---|
| 224 | |
---|
| 225 | AC_MSG_NOTICE([running $ac_sub_configure $ac_sub_configure_args \ |
---|
| 226 | --cache-file=$ac_sub_cache_file --srcdir=$ac_srcdir]) |
---|
| 227 | # The eval makes quoting arguments work. |
---|
[b4cde04] | 228 | ac_sub_configure_vars= |
---|
| 229 | test -n "[$]CC_FOR_$2" && \ |
---|
| 230 | ac_sub_configure_vars="CC='[$]CC_FOR_$2'" |
---|
| 231 | test -n "[$]CFLAGS_FOR_$2" && \ |
---|
| 232 | ac_sub_configure_vars="$ac_sub_configure_vars CFLAGS='[$]CFLAGS_FOR_$2'" |
---|
| 233 | eval $ac_sub_configure_vars \ |
---|
[ba748523] | 234 | $ac_sub_configure $ac_sub_configure_args \ |
---|
| 235 | --cache-file=$ac_sub_cache_file --srcdir=$ac_srcdir || |
---|
| 236 | AC_MSG_ERROR([$ac_sub_configure failed for $ac_dir]) |
---|
| 237 | fi |
---|
| 238 | |
---|
| 239 | cd $ac_popdir |
---|
| 240 | done |
---|
| 241 | fi |
---|
| 242 | fi |
---|
| 243 | ]) |
---|
| 244 | ]) |
---|
| 245 | |
---|
| 246 | ## PUBLIC: RTEMS_BUILD_CONFIG_SUBDIRS(build_subdir) |
---|
[a0ea6f1] | 247 | # subdirs to be built for the build environment |
---|
[ba748523] | 248 | AC_DEFUN([RTEMS_BUILD_CONFIG_SUBDIRS],[ |
---|
| 249 | m4_append([_RTEMS_BUILD_CONFIGDIRS_LIST],[ $1]) |
---|
| 250 | dnl Always append to build_configdirs |
---|
| 251 | AC_SUBST(build_configdirs,"$build_configdirs $1") |
---|
| 252 | |
---|
| 253 | m4_divert_text([DEFAULTS], |
---|
| 254 | [ac_subdirs_all="$ac_subdirs_all m4_normalize([$1])"]) |
---|
| 255 | m4_expand_once([_RTEMS_COMMANDS_POST_CONFIG_SUBDIRS]) |
---|
| 256 | ]) |
---|
| 257 | |
---|
| 258 | AC_DEFUN(_RTEMS_BUILD_CONFIG_PREPARE,[ |
---|
| 259 | # Record the configure arguments in Makefile. |
---|
| 260 | m4_ifdef([_RTEMS_BUILD_CONFIGDIRS_LIST], |
---|
| 261 | [ |
---|
| 262 | buildargs=`echo "${ac_configure_args}" | \ |
---|
| 263 | sed -e 's/--no[[^ ]]*//' \ |
---|
| 264 | -e 's/--cache[[a-z-]]*=[[^ ]]*//' \ |
---|
| 265 | -e 's/--ho[[a-z-]]*=[[^ ]]*//' \ |
---|
| 266 | -e 's/--bu[[a-z-]]*=[[^ ]]*//' \ |
---|
| 267 | -e 's/--ta[[a-z-]]*=[[^ ]]*//' \ |
---|
| 268 | -e 's/[[^ ]]*alias=[[^ ]]*//g'` ; |
---|
| 269 | |
---|
| 270 | buildargs="--host=${build} --build=${build} --target=${target_alias} ${buildargs}" |
---|
| 271 | AC_SUBST(buildargs) |
---|
| 272 | |
---|
| 273 | build_subdir="." |
---|
| 274 | ],[]) |
---|
| 275 | ]) |
---|
| 276 | |
---|
[a0ea6f1] | 277 | ## PUBLIC: RTEMS_HOST_CONFIG_SUBDIRS(host_subdir) |
---|
| 278 | # subdirs to be build for the host environment |
---|
[ba748523] | 279 | AC_DEFUN([RTEMS_HOST_CONFIG_SUBDIRS],[ |
---|
| 280 | m4_append([_RTEMS_HOST_CONFIGDIRS_LIST],[ $1])dnl |
---|
| 281 | |
---|
| 282 | if test $build = $host; |
---|
| 283 | then |
---|
| 284 | if test $host = $target; |
---|
| 285 | then |
---|
| 286 | _RTEMS_SUBST_IFNOT([build_configdirs],[$1]) |
---|
| 287 | else |
---|
| 288 | _RTEMS_SUBST_IFNOT([build_configdirs],[$1]) |
---|
| 289 | fi |
---|
| 290 | else |
---|
| 291 | if test $host = $target; |
---|
| 292 | then |
---|
| 293 | _RTEMS_SUBST_IFNOT([host_configdirs],[$1]) |
---|
| 294 | else |
---|
| 295 | if test $build = $target; |
---|
| 296 | then |
---|
| 297 | _RTEMS_SUBST_IFNOT([host_configdirs],[$1]) |
---|
| 298 | else |
---|
| 299 | _RTEMS_SUBST_IFNOT([host_configdirs],[$1]) |
---|
| 300 | fi |
---|
| 301 | fi |
---|
| 302 | fi |
---|
| 303 | |
---|
| 304 | m4_divert_text([DEFAULTS], |
---|
| 305 | [ac_subdirs_all="$ac_subdirs_all m4_normalize([$1])"]) |
---|
| 306 | m4_expand_once([_RTEMS_COMMANDS_POST_CONFIG_SUBDIRS]) |
---|
| 307 | ]) |
---|
| 308 | |
---|
| 309 | AC_DEFUN(_RTEMS_HOST_CONFIG_PREPARE,[ |
---|
| 310 | m4_ifdef([_RTEMS_HOST_CONFIGDIRS_LIST], |
---|
| 311 | [ |
---|
| 312 | # Record configure arguments in Makefile. |
---|
| 313 | hostargs=`echo "${ac_configure_args}" | \ |
---|
| 314 | sed -e 's/--no[[^ ]]*//' \ |
---|
| 315 | -e 's/--cache[[a-z-]]*=[[^ ]]*//' \ |
---|
| 316 | -e 's/--ho[[a-z-]]*=[[^ ]]*//' \ |
---|
| 317 | -e 's/--bu[[a-z-]]*=[[^ ]]*//' \ |
---|
| 318 | -e 's/--ta[[a-z-]]*=[[^ ]]*//' \ |
---|
| 319 | -e 's/[[^ ]]*alias=[[^ ]]*//g'` ; |
---|
| 320 | |
---|
| 321 | hostargs="--host=${host_alias} --build=${build} --target=${target_alias} ${hostargs}" |
---|
| 322 | AC_SUBST(hostargs) |
---|
| 323 | |
---|
| 324 | host_subdir="${host_alias}" |
---|
| 325 | ],[]) |
---|
| 326 | ]) |
---|
| 327 | |
---|
[a0ea6f1] | 328 | ## PUBLIC: RTEMS_TARGET_CONFIG_SUBDIRS(target_subdir) |
---|
| 329 | # subdirs to be build for the target environment |
---|
[ba748523] | 330 | AC_DEFUN([RTEMS_TARGET_CONFIG_SUBDIRS],[ |
---|
| 331 | m4_append([_RTEMS_TARGET_CONFIGDIRS_LIST],[ $1]) |
---|
| 332 | |
---|
| 333 | if test $build = $host; |
---|
| 334 | then |
---|
| 335 | if test $host = $target; |
---|
| 336 | then |
---|
| 337 | _RTEMS_SUBST_IFNOT([build_configdirs],[$1]) |
---|
| 338 | else |
---|
| 339 | _RTEMS_SUBST_IFNOT([target_configdirs],[$1]) |
---|
| 340 | fi |
---|
| 341 | else |
---|
| 342 | if test $host = $target; |
---|
| 343 | then |
---|
| 344 | _RTEMS_SUBST_IFNOT([host_configdirs],[$1]) |
---|
| 345 | else |
---|
| 346 | if test $build = $target; |
---|
| 347 | then |
---|
| 348 | _RTEMS_SUBST_IFNOT([build_configdirs],[$1]) |
---|
| 349 | else |
---|
| 350 | _RTEMS_SUBST_IFNOT([target_configdirs],[$1]) |
---|
| 351 | fi |
---|
| 352 | fi |
---|
| 353 | fi |
---|
| 354 | |
---|
| 355 | m4_divert_text([DEFAULTS], |
---|
| 356 | [ac_subdirs_all="$ac_subdirs_all m4_normalize([$1])"]) |
---|
| 357 | m4_expand_once([_RTEMS_COMMANDS_POST_CONFIG_SUBDIRS]) |
---|
| 358 | ]) |
---|
| 359 | |
---|
| 360 | AC_DEFUN(_RTEMS_TARGET_CONFIG_PREPARE,[ |
---|
| 361 | m4_ifdef([_RTEMS_TARGET_CONFIGDIRS_LIST], |
---|
| 362 | [ |
---|
| 363 | # Record the configure arguments in Makefile. |
---|
| 364 | targetargs=`echo "${ac_configure_args}" | \ |
---|
| 365 | sed -e 's/--no[[^ ]]*//' \ |
---|
| 366 | -e 's/--cache[[a-z-]]*=[[^ ]]*//' \ |
---|
| 367 | -e 's/--ho[[a-z-]]*=[[^ ]]*//' \ |
---|
| 368 | -e 's/--bu[[a-z-]]*=[[^ ]]*//' \ |
---|
| 369 | -e 's/--ta[[a-z-]]*=[[^ ]]*//' \ |
---|
| 370 | -e 's/[[^ ]]*alias=[[^ ]]*//g'` ; |
---|
| 371 | |
---|
| 372 | targetargs="--host=${target_alias} --build=${build} --target=${target_alias} ${targetargs}" |
---|
| 373 | AC_SUBST(targetargs) |
---|
| 374 | |
---|
| 375 | target_subdir="${target_alias}" |
---|
| 376 | ],[]) |
---|
| 377 | ]) |
---|