about summary refs log tree commit diff
path: root/configure
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>2006-02-28 07:11:04 +0000
committerRoland McGrath <roland@gnu.org>2006-02-28 07:11:04 +0000
commite0a3ed4ff95ec2e422c1211b35ddf7bf6fbc0a5a (patch)
tree9ee2ada7a666b14f1e47aa183012ddf59de3fb73 /configure
parent0f284e58375992e42d7e9b3f1ea14963cfa4462b (diff)
downloadglibc-e0a3ed4ff95ec2e422c1211b35ddf7bf6fbc0a5a.tar.gz
glibc-e0a3ed4ff95ec2e422c1211b35ddf7bf6fbc0a5a.tar.xz
glibc-e0a3ed4ff95ec2e422c1211b35ddf7bf6fbc0a5a.zip
* Makefile (subdir-target-args): New variable.
	($(all-subdirs-targets)): Use it in place of -C option.
	* Rules: Use $(..) instead of ../ if it's already defined.
	* Makeconfig (subdir-srcdirs): New variable.
	* csu/Makefile (all-Banner-files): Use it.

	* configure.in (--enable-add-ons): Set to "yes" by default.
	Handle absolute add-on directory names when looking for configure
	fragments.  Also look for sysdeps/*/preconfigure fragments in add-ons.
	Require add-on configure to set $libc_add_on_canonical, use
	that in $add_ons_sfx.  Substitute add_on_subdirs with computed list
	of subdir names each add-on configure set in libc_add_on_subdirs.
	* configure: Regenerated.
	* Makefile (%/preconfigure: %/preconfigure.in): New pattern rule.
	* config.make.in (add-on-subdirs): New substituted variable.
	* Makeconfig (all-subdirs): Include $(add-on-subdirs).
	Remove $(add-ons), $(sysdep-subdirs).
	Don't filter out $(sysdep-inhibit-subdirs).
	($(common-objpfx)sysd-dirs): Target removed.  Don't include it.
	($(common-objpfx)sysd-sorted): Rewritten to feed Depend and Subdirs
	files together to gen-sorted.awk, and $(subdirs) via -v.
	(subdirs): Remove magic reordering for mach and hurd.
	* scripts/gen-sorted.awk: Use subdirs from command line.
	Process Subdirs and Depend files directly.
	Let Subdirs files use "first dir" and "inhibit dir".
	Always move elf to the end of the list.
	* hurd/Depend: New file.
	* sysdeps/mach/Subdirs: Use "first mach".

	* Makefile (dist-separate): Remove linuxthreads.
	(dist-separate-linuxthreads): Variable removed.
	(glibc-%.tar rule): Use $(sysdeps-add-ons).

	* Makerules ($(common-objpfx)Versions.v.i): Use $(subdirs),
	not $(all-subdirs).
	(sysdep-makefiles): Use $(sysdirs).
	(sysdirs): Remove export.
	($(+sysdir_pfx)sysd-rules): Handle absolute directory names in
	$(config-sysdirs).
	(+sysdir_pfx): Variable removed.
	(sysd-rules): Use $(common-objpfx) in place of it.
	(sysdirs): Variable moved to ...
	* Makeconfig (sysdirs): ... here.
	Handle absolute directory names in $(config-sysdirs).
	(full_config_sysdirs): Variable removed.
	* csu/Makefile: Use $(sysdirs) in vpath directive.
	* math/Makefile (ulps-file): Use $(sysdirs).
	* sysdeps/gnu/Makefile (errlist-c): Likewise.
	($(objpfx)errlist-compat.c): Likewise.
	* Makeconfig (all-Subdirs-files): Likewise.
	($(common-objpfx)config.status): Likewise.

	* configure.in (sysnames): Handle absolute add-on directory names.
	(sysdeps_add_ons): New variable, AC_SUBST it.
	Compute which add-ons contributed sysdeps directories.
	* configure: Regenerated.
	* config.make.in (sysdeps-add-ons): New substituted variable.
	* Makerules (+sysdep_dirs, +sysdep-includes): Variables moved ...
	* Makeconfig: ... to here.
	(+sysdep_dirs): Append $(sysdeps-add-ons) here.
	(+includes): Remove $(objpfx) include, already in $(+sysdep_dirs).
	Remove $(includes).
	(sysdep-makeconfigs): Use $(+sysdep_dirs).
	($(common-objpfx)shlib-versions.v.i): Likewise.

	* Makeconfig: Remove hair to set Makeconfig-add-on.

	* sysdeps/unix/Makefile (sysdirs): Remove export.
	(asm_CPP): Variable removed.
	($(common-objpfx)sysd-syscalls): Pass them directly for the script.

	* sysdeps/posix/Makefile: New file.
	* Makerules (L_tmpnam, TMP_MAX, L_ctermid, L_cuserid): Set non-posix
	values here with ?=.

	* stdlib/gen-mpn-copy: File removed.
	* stdlib/Makefile (distribute): Remove it.
	* configure.in: Don't grok --with-gmp.
	* configure: Regenerated.

	* configure.in (libc_cv_idn): Don't check it; libidn/configure does it.
	* configure: Regenerated.

	* bare: Directory removed, saved in ports repository.
Diffstat (limited to 'configure')
-rwxr-xr-xconfigure232
1 files changed, 166 insertions, 66 deletions
diff --git a/configure b/configure
index 57fc703459..e1f8ec36be 100755
--- a/configure
+++ b/configure
@@ -313,7 +313,7 @@ ac_includes_default="\
 # include <unistd.h>
 #endif"
 
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS with_fp with_cvs enable_check_abi oldest_abi bindnow force_install all_warnings build build_cpu build_vendor build_os host host_cpu host_vendor host_os subdirs add_ons base_machine submachine sysnames INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA LN_S CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC OBJEXT BUILD_CC cross_compiling CPP CXX CXXFLAGS ac_ct_CXX AR OBJDUMP RANLIB ac_ct_RANLIB MIG AS LD PWD_P MAKE MSGFMT MAKEINFO SED AUTOCONF SYSINCLUDES CXX_SYSINCLUDES libc_cv_gcc_static_libgcc BASH libc_cv_have_bash2 KSH libc_cv_have_ksh AWK PERL INSTALL_INFO BISON VERSIONING libc_cv_asm_protected_directive libc_cv_cc_with_libunwind libc_cv_z_nodelete libc_cv_z_nodlopen libc_cv_z_initfirst libc_cv_z_relro libc_cv_Bgroup libc_cv_libgcc_s_suffix libc_cv_as_needed ASFLAGS_config libc_cv_z_combreloc libc_cv_z_execstack libc_cv_fpie fno_unit_at_a_time libc_cv_ssp libc_cv_have_initfini no_whole_archive exceptions LIBGD have_libaudit have_selinux EGREP sizeof_long_double libc_cv_gcc_unwind_find_fde uname_sysname uname_release uname_version old_glibc_headers libc_cv_slibdir libc_cv_localedir libc_cv_sysconfdir libc_cv_rootsbindir libc_cv_forced_unwind use_ldconfig ldd_rewrite_script elf xcoff static shared pic_default profile omitfp bounded static_nss nopic_initfini DEFINES mach_interface_list VERSION RELEASE LIBOBJS LTLIBOBJS'
+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS with_fp with_cvs enable_check_abi oldest_abi bindnow force_install all_warnings build build_cpu build_vendor build_os host host_cpu host_vendor host_os subdirs add_ons add_on_subdirs base_machine submachine sysnames sysdeps_add_ons INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA LN_S CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC OBJEXT BUILD_CC cross_compiling CPP CXX CXXFLAGS ac_ct_CXX AR OBJDUMP RANLIB ac_ct_RANLIB MIG AS LD PWD_P MAKE MSGFMT MAKEINFO SED AUTOCONF SYSINCLUDES CXX_SYSINCLUDES libc_cv_gcc_static_libgcc BASH libc_cv_have_bash2 KSH libc_cv_have_ksh AWK PERL INSTALL_INFO BISON VERSIONING libc_cv_asm_protected_directive libc_cv_cc_with_libunwind libc_cv_z_nodelete libc_cv_z_nodlopen libc_cv_z_initfirst libc_cv_z_relro libc_cv_Bgroup libc_cv_libgcc_s_suffix libc_cv_as_needed ASFLAGS_config libc_cv_z_combreloc libc_cv_z_execstack libc_cv_fpie fno_unit_at_a_time libc_cv_ssp libc_cv_have_initfini no_whole_archive exceptions LIBGD have_libaudit have_selinux EGREP sizeof_long_double libc_cv_gcc_unwind_find_fde uname_sysname uname_release uname_version old_glibc_headers libc_cv_slibdir libc_cv_localedir libc_cv_sysconfdir libc_cv_rootsbindir libc_cv_forced_unwind use_ldconfig ldd_rewrite_script elf xcoff static shared pic_default profile omitfp bounded static_nss nopic_initfini DEFINES mach_interface_list VERSION RELEASE LIBOBJS LTLIBOBJS'
 ac_subst_files=''
 
 # Initialize some variables set by options.
@@ -891,7 +891,6 @@ Optional Features:
 Optional Packages:
   --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
   --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
-  --with-gmp=DIRECTORY    find GMP source code in DIRECTORY (not needed)
   --with-gd=DIR           find libgd include dir and library with prefix DIR
   --with-gd-include=DIR   find libgd include files in DIR
   --with-gd-lib=DIR       find libgd library files in DIR
@@ -1406,22 +1405,6 @@ fi
 # This will get text that should go into config.make.
 config_vars=
 
-# Check for a --with-gmp argument and set gmp-srcdir in config.make.
-
-# Check whether --with-gmp or --without-gmp was given.
-if test "${with_gmp+set}" = set; then
-  withval="$with_gmp"
-
-case "$with_gmp" in
-yes) { { echo "$as_me:$LINENO: error: --with-gmp requires an argument; use --with-gmp=DIRECTORY" >&5
-echo "$as_me: error: --with-gmp requires an argument; use --with-gmp=DIRECTORY" >&2;}
-   { (exit 1); exit 1; }; } ;;
-''|no) ;;
-*) config_vars="$config_vars
-gmp-srcdir = $withval" ;;
-esac
-
-fi;
 # Check for a --with-gd argument and set libgd-LDFLAGS in config.make.
 
 # Check whether --with-gd or --without-gd was given.
@@ -1618,15 +1601,9 @@ fi
 # Check whether --enable-add-ons or --disable-add-ons was given.
 if test "${enable_add_ons+set}" = set; then
   enableval="$enable_add_ons"
-  case "$enableval" in
-    yes) add_ons=`cd $srcdir && echo */configure | sed -e 's!/configure!!g'`
-	 add_ons_automatic=yes
-	 test "$add_ons" = "*" && add_ons= ;;
-    *) add_ons=`echo "$enableval" | sed 's/,/ /g'`
-       add_ons_automatic=no ;;
-   esac
+
 else
-  add_ons= add_ons_automatic=no
+  enable_add_ons=yes
 fi;
 
 
@@ -1844,7 +1821,7 @@ echo "$as_me: error: --with-cpu requires an argument" >&2;}
 fi;
 
 
-# An add-on can set this when it the tuple to disable the sanity check below.
+# An add-on can set this when it wants to disable the sanity check below.
 libc_config_ok=no
 
 
@@ -1852,6 +1829,18 @@ libc_config_ok=no
 subdirs="$subdirs "
 
 
+case "$enable_add_ons" in
+''|no) add_ons= ;;
+yes|'*')
+ add_ons=`cd $srcdir && ls -d 2> /dev/null */configure */sysdeps |
+	  sed 's@/[^/]*$@@' | sort | uniq`
+	 add_ons_automatic=yes
+	 ;;
+*) add_ons=`echo "$enable_add_ons" | sed 's/,/ /g'`
+       add_ons_automatic=no ;;
+esac
+
+configured_add_ons=
 add_ons_sfx=
 add_ons_pfx=
 if test x"$add_ons" != x; then
@@ -1885,13 +1874,6 @@ echo "$as_me: error:
    { (exit 1); exit 1; }; }
     ;;
     esac
-
-    # Test whether such a subdir really exists.
-    test -d $srcdir/$f || {
-      { { echo "$as_me:$LINENO: error: add-on directory \"$f\" does not exist" >&5
-echo "$as_me: error: add-on directory \"$f\" does not exist" >&2;}
-   { (exit 1); exit 1; }; }
-    }
   done
 
   # Now source each add-on's configure fragment.
@@ -1901,19 +1883,81 @@ echo "$as_me: error: add-on directory \"$f\" does not exist" >&2;}
   # whether it goes into the list to be actually used in the build.
   use_add_ons=
   for libc_add_on in $add_ons; do
-    libc_add_on_frag=$srcdir/$libc_add_on/configure
-    if test -r $libc_add_on_frag; then
-      echo "$as_me:$LINENO: result: running configure fragment for add-on $libc_add_on" >&5
-echo "${ECHO_T}running configure fragment for add-on $libc_add_on" >&6
-      . $libc_add_on_frag
-    else
-      { echo "$as_me:$LINENO: WARNING: add-on fragment $libc_add_on_frag missing" >&5
-echo "$as_me: WARNING: add-on fragment $libc_add_on_frag missing" >&2;}
+    # Test whether such a directory really exists.
+    # It can be absolute, or relative to $srcdir, or relative to the build dir.
+    case "$libc_add_on" in
+    /*)
+      libc_add_on_srcdir=$libc_add_on
+      ;;
+    *)
+      test -d "$srcdir/$libc_add_on" || {
+        if test -d "$libc_add_on"; then
+	  libc_add_on="`pwd`/$libc_add_on"
+	else
+	  { { echo "$as_me:$LINENO: error: add-on directory \"$libc_add_on\" does not exist" >&5
+echo "$as_me: error: add-on directory \"$libc_add_on\" does not exist" >&2;}
+   { (exit 1); exit 1; }; }
+	fi
+      }
+      libc_add_on_srcdir=$srcdir/$libc_add_on
+      ;;
+    esac
+
+    libc_add_on_frag=$libc_add_on_srcdir/configure
+    libc_add_on_canonical=
+    if test -r "$libc_add_on_frag"; then
+      { echo "$as_me:$LINENO: running configure fragment for add-on $libc_add_on" >&5
+echo "$as_me: running configure fragment for add-on $libc_add_on" >&6;}
+      libc_add_on_canonical=unknown
+      libc_add_on_subdirs=
+      . "$libc_add_on_frag"
+      test -z "$libc_add_on" || {
+        configured_add_ons="$configured_add_ons $libc_add_on"
+	if test "x$libc_add_on_canonical" = xunknown; then
+	  { { echo "$as_me:$LINENO: error: fragment must set \$libc_add_on_canonical" >&5
+echo "$as_me: error: fragment must set \$libc_add_on_canonical" >&2;}
+   { (exit 1); exit 1; }; }
+	fi
+	for d in $libc_add_on_subdirs; do
+	  case "$libc_add_on" in
+	  /*) subdir_srcdir="$libc_add_on" ;;
+	  *) subdir_srcdir="\$(..)$libc_add_on" ;;
+	  esac
+	  case "$d" in
+	  .)
+	    d="${libc_add_on_canonical:-$libc_add_on}"
+	    ;;
+	  /*)
+	    subdir_srcdir="$d"
+	    ;;
+	  *)
+	    subdir_srcdir="$subdir_srcdir/$d"
+	    ;;
+	  esac
+	  d=`echo "$d" | sed 's@/*$@@;s@^.*/@@'`
+	  add_on_subdirs="$add_on_subdirs $d"
+	  test "$subdir_srcdir" = "\$(..)$d" || config_vars="$config_vars
+$d-srcdir = $subdir_srcdir"
+	done
+      }
     fi
     if test -n "$libc_add_on"; then
+      if frags=`ls -d $libc_add_on_srcdir/sysdeps/*/preconfigure 2> /dev/null`
+      then
+	echo "$as_me:$LINENO: checking add-on $libc_add_on for preconfigure fragments" >&5
+echo $ECHO_N "checking add-on $libc_add_on for preconfigure fragments... $ECHO_C" >&6
+	for frag in $frags; do
+	  name=`echo "$frag" | sed 's@/[^/]*$@@;s@^.*/@@'`
+	  echo $ECHO_N "$name $ECHO_C" >&6
+	  . "$frag"
+	done
+	echo "$as_me:$LINENO: result: " >&5
+echo "${ECHO_T}" >&6
+      fi
       use_add_ons="$use_add_ons $libc_add_on"
       add_ons_pfx="$add_ons_pfx $libc_add_on/"
-      add_ons_sfx="$add_ons_sfx /$libc_add_on"
+      test -z "$libc_add_on_canonical" ||
+      add_ons_sfx="$add_ons_sfx /$libc_add_on_canonical"
     fi
   done
   # Use echo to strip excess whitespace.
@@ -1922,6 +1966,7 @@ fi
 
 
 
+
 ###
 ### I put this here to prevent those annoying emails from people who cannot
 ### read and try to compile glibc on unsupported platforms.  --drepper
@@ -2065,8 +2110,8 @@ done
 
 
 # Find what sysdep directories exist.
+sysnames_add_ons=
 sysnames=
-IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}:"
 for b in $base ''; do
   for m0 in $mach ''; do
     for v in /$vendor ''; do
@@ -2076,17 +2121,27 @@ for b in $base ''; do
 	for m in $mach ''; do
 	  for d in $add_ons_pfx ''; do
 	    for a in $add_ons_sfx ''; do
-	      if test "$m0$m0sub$b$v$o$m$msub"; then
+	      if test -n "$m0$m0sub$b$v$o$m$msub"; then
+	        try_srcdir="${srcdir}/"
+	        case "$d" in
+		/*) try_srcdir= ;;
+		esac
 		try="${d}sysdeps$m0$m0sub$b$v$o$m$msub$a"
 		test -n "$enable_debug_configure" &&
 		echo "$0 DEBUG: try $try" >&2
-		if test -d $srcdir/$try; then
+		if test -d "$try_srcdir$try"; then
 		  sysnames="$sysnames $try"
 		  { test -n "$o" || test -n "$b"; } && os_used=t
 		  { test -n "$m" || test -n "$m0"; } && machine_used=t
 		  case x${m0:-$m} in
 		  x*/$submachine) submachine_used=t ;;
 		  esac
+		  if test -n "$d"; then
+		    case "$sysnames_add_ons" in
+		    *" $d "*) ;;
+		    *|'') sysnames_add_ons="$sysnames_add_ons $d" ;;
+		    esac
+		  fi
 		fi
 	      fi
 	    done
@@ -2096,19 +2151,6 @@ for b in $base ''; do
     done
   done
 done
-for d in $add_ons_pfx ''; do
-  for a in $add_ons_sfx ''; do
-    if test -n "$d" && test "$d" != "$a"; then
-      try="${d}sysdeps/generic${a}"
-      test -n "$enable_debug_configure" &&
-      echo "$0 DEBUG: try $try" >&2
-      if test -d $srcdir/$try; then
-	sysnames="$sysnames $try"
-      fi
-    fi
-  done
-done
-IFS="$ac_save_ifs"
 
 if test -z "$os_used" && test "$os" != none; then
   { { echo "$as_me:$LINENO: error: Operating system $os is not supported." >&5
@@ -2195,6 +2237,10 @@ while test $# -gt 0; do
 	then
 	  implied="$implied $try"
 	  found=yes
+	  case "$sysnames_add_ons" in
+	  *" $d "*) ;;
+	  *|'') sysnames_add_ons="$sysnames_add_ons $d" ;;
+	  esac
 	fi
       done
       if test $found = no; then
@@ -2234,6 +2280,65 @@ sysnames="$names $default_sysnames"
 echo "$as_me:$LINENO: result: $default_sysnames" >&5
 echo "${ECHO_T}$default_sysnames" >&6
 
+# Collect the list of add-ons that supply partial sysdeps trees.
+sysdeps_add_ons=
+for add_on in $add_ons; do
+  case "$add_on" in
+  /*) xsrcdir= ;;
+  *) xsrcdir="$srcdir/" ;;
+  esac
+
+  test -d "$xsrcdir$add_on/sysdeps" || {
+    case "$configured_add_ons " in
+    *" $add_on "*) ;;
+    *|'')
+      { { echo "$as_me:$LINENO: error: add-on $add_on has no configure fragment or sysdeps tree" >&5
+echo "$as_me: error: add-on $add_on has no configure fragment or sysdeps tree" >&2;}
+   { (exit 1); exit 1; }; }
+      ;;
+    esac
+    continue
+  }
+
+  sysdeps_add_ons="$sysdeps_add_ons $add_on"
+  case "$sysnames_add_ons" in
+  *" $add_on/ "*) ;;
+  *|'')
+    { echo "$as_me:$LINENO: WARNING: add-on $add_on contributed no sysdeps directories" >&5
+echo "$as_me: WARNING: add-on $add_on contributed no sysdeps directories" >&2;}
+    continue ;;
+  esac
+
+  found=no
+  for d in $sysnames; do
+    case "$d" in
+    $add_on/sysdeps/*) ;;
+    *) continue ;;
+    esac
+    (cd "$xsrcdir$d" && for f in *[!~]; do
+       case "$f" in
+       sys|bits)
+	 for ff in $f/*.h; do
+	   test -d "$ff" || { test -e "$ff" && exit 88; }
+	 done
+	 ;;
+       *)
+         test -d "$f" || { test -e "$f" && exit 88; }
+	 ;;
+       esac
+     done)
+    if test $? -eq 88; then
+      found=yes
+      break
+    fi
+  done
+  if test $found = no; then
+    { echo "$as_me:$LINENO: WARNING: add-on $add_on contributed no useful sysdeps directories" >&5
+echo "$as_me: WARNING: add-on $add_on contributed no useful sysdeps directories" >&2;}
+  fi
+done
+
+
 
 ### Locate tools.
 
@@ -7565,13 +7670,6 @@ if test $shared = default; then
   shared=$elf
 fi
 
-if test x"$libc_cv_idn" = xyes; then
-  cat >>confdefs.h <<\_ACEOF
-#define HAVE_LIBIDN 1
-_ACEOF
-
-fi
-
 echo "$as_me:$LINENO: checking whether -fPIC is default" >&5
 echo $ECHO_N "checking whether -fPIC is default... $ECHO_C" >&6
 if test "${pic_default+set}" = set; then
@@ -8259,9 +8357,11 @@ s,@host_vendor@,$host_vendor,;t t
 s,@host_os@,$host_os,;t t
 s,@subdirs@,$subdirs,;t t
 s,@add_ons@,$add_ons,;t t
+s,@add_on_subdirs@,$add_on_subdirs,;t t
 s,@base_machine@,$base_machine,;t t
 s,@submachine@,$submachine,;t t
 s,@sysnames@,$sysnames,;t t
+s,@sysdeps_add_ons@,$sysdeps_add_ons,;t t
 s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t
 s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t
 s,@INSTALL_DATA@,$INSTALL_DATA,;t t