This is the mail archive of the libc-hacker@sourceware.cygnus.com mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Updated Makeconfig patch



This patch is an overhaul of Makeconfig and its interaction with
configure.  It removes much historical cruft and simplifies the user
interface.  It fixes the bug that you couldn't set some things in
configparms, such as the system names for cross compilation.  It also
fixes the bug that many of the standard command-line switches to
configure didn't work at all.  (For example, --bindir= was silently
ignored.)  There is a bit of infrastructure for later Makefile work.

With this patch configparms is read by configure, not Makeconfig.  It
is still a makefile fragment but the syntax is restricted: only
simple variable assignments and comments.  Instead of asking people to
dig through Makeconfig for settable parameters, I provide a sample
file.

Some of the more obscure switches to configure have been removed from
the --help output, such as --with-gettext.  They are still there
though.  Some of the more obscure installation directories are now
hardwired: for example, localedir is now always $(datadir)/locale.

You will need to regenerate sysdeps/unix/sysv/linux/configure as well
as the top level configure.

In the present CVS tree $(all-subdirs) is a clone of $(subdirs).  I
changed that in preparation for later work; it's now every source
directory we distribute, even the ones that don't get built.  That
breaks mapfile generation, so I changed mapfile generation to use
$(subdirs) instead of $(all-subdirs).  That patch chunk may be offset
due to other changes in my top-level Makefile.

To dangle a carrot:  with this change and several others I'm working
on, one-pass builds will be possible.

zw

1998-07-03 09:01 -0400  Zack Weinberg  <zack@rabi.phys.columbia.edu>

	* Makeconfig: Strip out all defaults; they will be set in
          config.make. Strip dead code.  Lay infrastructure for future
          work.  Don't read configparms.
	  (always-subdirs): New variable, directories built always.
	  (sometimes-subdirs): New variable, directories built in
          appropriate configurations.
	  (subdirs): Redefine in terms of always-subdirs,
          sysdep-subdirs, add-ons, etc.
	  (all-subdirs): Changed to list *all* subdirs, even those not
          built in the present configuration.
	  (all-sysd-dirs): New; list every sysdep subdirectory, even
          those not configured.

	* config.make.in: Add variables to be substituted for all the
          defaults removed from Makeconfig.
	* configure.in: Provide defaults and substitute all those
          variables.  Rename some switch settings for increased user
          friendliness; munge back to the internal form in config.make.
	  Read configparms for defaults (overrides command line: FIXME)
	* sysdeps/unix/sysv/linux/configure.in: Rename
          --disable-sanity-checks to --disable-thread-safety, which is
          clearer.
	* configparms: New file, sample for user to edit.

	* csu/Makefile: Build crt files during lib pass.
	* Makefile (sysd-versions): Use $(subdirs) in dependency list,
	  not $(all-subdirs).

============================================================
Index: Makeconfig
--- Makeconfig	1998/07/02 21:52:32	1.193
+++ Makeconfig	1998/07/03 12:59:04
@@ -33,31 +33,6 @@
 .. := ../
 endif
 
-# If config.make exists, the source directory was configured,
-# so don't try to be clever and find another directory to build in.
-ifneq (,$(wildcard $(..)config.make))
-ARCH =
-machine =
-else	# Not configured.
-ifndef ARCH
-ifdef machine
-ARCH = $(machine)
-endif # machine
-endif # ARCH
-endif # config.make
-
-# Directory for object files and libc.a.  If this is not defined, the
-# object files live in the subdirectories where their sources live, and
-# libc.a lives in the parent directory (this probably doesn't work any
-# more).
-ifdef ARCH
-ifeq ($(filter /%,$(ARCH)),)
-objdir := $(..)$(ARCH)
-else
-objdir = $(ARCH)
-endif
-endif
-
 # $(common-objdir) is the place to put objects and
 # such that are not specific to a single subdir.
 ifdef objdir
@@ -77,25 +52,13 @@
 endif
 
 # Root of the sysdeps tree.
-sysdep_dir := $(..)sysdeps
-export sysdep_dir := $(sysdep_dir)
+export sysdep_dir := $(..)sysdeps
 
 # Get the values defined by options to `configure'.
 include $(common-objpfx)config.make
 
-# We have a special subdir for each binary format.
-# For now, only ELF is fully supported.
-ifeq ($(elf),yes)
-binfmt-subdir = elf
-else
-# This is probably better than nothing.
-binfmt-subdir = aout
-endif
-
 # Complete path to sysdep dirs.
-full-config-sysdirs := $(filter /%, $(config-sysdirs)) \
-		       $(addprefix $(..), $(filter-out /%, $(config-sysdirs)))
-export full-config-sysdirs := $(full-config-sysdirs)
+export full-config-sysdirs := $(addprefix $(..), $(config-sysdirs))
 
 # Run config.status to update config.make and config.h.  We don't show the
 # dependence of config.h to Make, because it is only touched when it
@@ -109,6 +72,7 @@
 # Find all the sysdeps configure fragments, to make sure we re-run
 # configure when any of them changes.
 $(common-objpfx)config.status: $(..)version.h $(..)configure \
+			       $(wildcard $(common-objpfx)configparms) \
 			       $(foreach dir,$(full-config-sysdirs),\
 					 $(wildcard \
 					   $(dir)/Implies) \
@@ -124,129 +88,44 @@
 # We don't want CPPFLAGS to be exported to the command running configure.
 unexport CPPFLAGS
 
-# Get the user's configuration parameters.
-ifneq ($(wildcard $(..)configparms),)
-include $(..)configparms
-endif
-ifneq ($(objpfx),)
-ifneq ($(wildcard $(common-objpfx)configparms),)
-include $(common-objpfx)configparms
-endif
-endif
-
-####
-####	These are the configuration variables.  You can define values for
-####	the variables below in the file `configparms'.
-####	Do NOT edit this file.
-####
-
-
-# Set this to either `stdio' or `libio', to compile in either GNU stdio
-# or GNU libio.
-ifndef stdio
-stdio = stdio
-endif
-
-# Common prefix for machine-independent installation directories.
-ifeq ($(origin prefix),undefined) # ifndef would override explicit empty value.
-prefix = /usr/local
-endif
-
-# Decide whether we shall build the programs or not.  We always do this
-# unless the user tells us (in configparms) or we are building for a
-# standalone target.
-ifndef build-programs
-ifneq ($(config-os),none)
-build-programs=yes
-else
-build-programs=no
-endif
-endif
-
-# Common prefix for machine-dependent installation directories.
-ifeq ($(origin exec_prefix),undefined)
-exec_prefix = $(prefix)
-endif
-
 # Where to install the library and object files.
-ifndef libdir
-libdir = $(exec_prefix)/lib
-endif
 inst_libdir = $(install_root)$(libdir)
 
 # Where to install the shared library and dynamic linker.
-ifndef slibdir
-slibdir = $(exec_prefix)/lib
-endif
 inst_slibdir = $(install_root)$(slibdir)
 
-# Prefix to put on files installed in $(libdir).  For libraries `libNAME.a',
-# the prefix is spliced between `lib' and the name, so the linker switch
-# `-l$(libprefix)NAME' finds the library; for other files the prefix is
-# just prepended to the whole file name.
-ifeq ($(origin libprefix),undefined)
-libprefix =
-endif
-
 # Where to install the header files.
-ifndef includedir
-includedir = $(exec_prefix)/include
-endif
 inst_includedir = $(install_root)$(includedir)
 
 # Where to install machine-independent data files.
 # These are the timezone database, and the locale database.
-ifndef datadir
-datadir = $(prefix)/share
-endif
 inst_datadir = $(install_root)$(datadir)
 
 # Where to install the timezone data files (which are machine-independent).
-ifndef zonedir
 zonedir = $(datadir)/zoneinfo
-endif
 inst_zonedir = $(install_root)$(zonedir)
 
 # Where to install the locale and message catalog data files (which are
 # machine-independent).
-ifndef localedir
 localedir = $(datadir)/locale
-endif
 inst_localedir = $(install_root)$(localedir)
 
 # Where to install the locale charmap source files.
-ifndef i18ndir
 i18ndir = $(datadir)/i18n
-endif
 inst_i18ndir = $(install_root)$(i18ndir)
 
-# Where to install the shared object for charset transformation.
-ifndef gconvdir
+# Where to install the shared objects for charset transformation.
 gconvdir = $(libdir)/gconv
-endif
 inst_gconvdir = $(install_root)$(gconvdir)
 
 # Where to install programs.
-ifndef bindir
-bindir = $(exec_prefix)/bin
-endif
 inst_bindir = $(install_root)$(bindir)
 
 # Where to install internal programs.
-ifndef libexecdir
-libexecdir = $(exec_prefix)/libexec
-endif
 inst_libexecdir = $(install_root)$(libexecdir)
 
 # Where to install administrative programs.
-ifndef rootsbindir
-rootsbindir = $(exec_prefix)/sbin
-endif
 inst_rootsbindir = $(install_root)$(rootsbindir)
-
-ifndef sbindir
-sbindir = $(exec_prefix)/sbin
-endif
 inst_sbindir = $(install_root)$(sbindir)
 
 # Where to install the Info files.
@@ -257,106 +136,27 @@
 
 # Where to install default configuration files.  These include the local
 # timezone specification and network data base files.
-ifndef sysconfdir
-sysconfdir = $(prefix)/etc
-endif
 inst_sysconfdir = $(install_root)$(sysconfdir)
 
-# What timezone should be the installed default (e.g., US/Eastern).
-# Run `make -C time echo-zonenames' to see a list of available zone names.
-# The local timezone can be changed with `zic -l TIMEZONE' at any time.
-ifndef localtime
-localtime = Factory
-endif
-
 # Where to install the "localtime" timezone file; this is the file whose
-# contents $(localtime) specifies.  If this is a relative pathname, it is
-# relative to $(zonedir).  It is a good idea to put this somewhere
-# other than there, so the zoneinfo directory contains only universal data,
-# localizing the configuration data elsewhere.
-ifndef localtime-file
+# contents $(localtime) specifies.
 localtime-file = $(sysconfdir)/localtime
 inst_localtime-file = $(install_root)$(localtime-file)
-endif
 
-# What to use for leap second specifications in compiling the default
-# timezone files.  Set this to `/dev/null' for no leap second handling as
-# 1003.1 requires, or to `leapseconds' for proper leap second handling.
-# Both zone flavors are always available as `posix/ZONE' and `right/ZONE'.
-# This variable determines the default: if it's `/dev/null',
-# ZONE==posix/ZONE; if it's `leapseconds', ZONE==right/ZONE.
-ifndef leapseconds
-leapseconds = /dev/null
-endif
-
-# What timezone's DST rules should be used when a POSIX-style TZ
-# environment variable doesn't specify any rules.  For 1003.1 compliance
-# this timezone must use rules that are as U.S. federal law defines DST.
-# Run `make -C time echo-zonenames' to see a list of available zone names.
-# This setting can be changed with `zic -p TIMEZONE' at any time.
-# If you want POSIX.1 compatibility, use `America/New_York'.
-ifndef posixrules
-posixrules = America/New_York
-endif
-
 # Where to install the "posixrules" timezone file; this is file
 # whose contents $(posixrules) specifies.  If this is a relative
 # pathname, it is relative to $(zonedir).
-ifndef posixrules-file
 posixrules-file = posixrules
-endif
 
-
 # Directory where your system's native header files live.
 # This is used on Unix systems to generate some GNU libc header files.
 ifndef sysincludedir
 sysincludedir = /usr/include
 endif
 
-
-# Commands to install files.
-ifndef INSTALL_DATA
-INSTALL_DATA = $(INSTALL) -m 644
-endif
-ifndef INSTALL_PROGRAM
-INSTALL_PROGRAM = $(INSTALL)
-endif
-ifndef INSTALL
-INSTALL = install
-endif
-
-
-# The name of the C compiler.
-# If you've got GCC, and it works, use it.
-ifeq ($(origin CC),default)
-CC := gcc
-endif
-
-# The name of the C compiler to use for compilations of programs to run on
-# the host that is building the library.  If you set CC to a
-# cross-compiler, you must set this to the normal compiler.
-ifndef BUILD_CC
-BUILD_CC = $(CC)
-endif
-
 # Default flags to pass the C compiler.
-ifndef default_cflags
 default_cflags := -g -O
-endif
-
-# Flags to pass the C compiler when assembling preprocessed assembly code
-# (`.S' files).  On some systems the assembler doesn't understand the `#' line
-# directives the preprocessor produces.  If you have troubling compiling
-# assembly code, try using -P here to suppress these directives.
-ifndef asm-CPPFLAGS
-asm-CPPFLAGS =
-endif
 
-# ELF always supports init/fini sections
-ifeq ($(elf),yes)
-have-initfini = yes
-endif
-
 # Installed name of the startup code.
 ifneq ($(have-initfini),yes)
 # When not having init/fini, there is just one startfile, called crt0.o.
@@ -367,6 +167,10 @@
 start-installed-name = crt1.o
 endif
 
+# If binfmt is elf, different rules apply.
+ifeq ($(binfmt-subdir),elf)
+elf = yes
+endif
 
 # Command for linking programs with the C library.
 ifndef +link
@@ -480,10 +284,6 @@
 endef
 endif
 
-ifndef LD
-LD := ld -X
-endif
-
 ifndef	RANLIB
 RANLIB = ranlib
 endif
@@ -513,13 +313,6 @@
 +force =
 endif
 
-####
-#### End of configuration variables.
-####
-
-# This tells some versions of GNU make before 3.63 not to export all variables.
-.NOEXPORT:
-
 # We want to echo the commands we're running without
 # umpteen zillion filenames along with it (we use `...' instead)
 # but we don't want this echoing done when the user has said
@@ -743,6 +536,7 @@
 shared-thread-library = $(common-objpfx)linuxthreads/libpthread.so
 static-thread-library = $(common-objpfx)linuxthreads/libpthread.a
 have-thread-library = yes
+thread-subdirs = rt
 rpath-dirs += linuxthreads
 endif
 
@@ -756,14 +550,23 @@
 endif
 
 # These are the subdirectories containing the library source.
-all-subdirs = csu assert ctype db2 locale intl catgets math setjmp signal   \
-	      stdlib stdio-common $(stdio) malloc string wcsmbs time dirent \
-	      grp pwd posix io termios resource misc socket sysvipc gmon    \
-	      gnulib iconv iconvdata wctype manual shadow md5-crypt po argp \
-	      $(add-ons) nss localedata timezone rt debug $(sysdep-subdirs) \
-	      $(binfmt-subdir)
-subdirs = $(all-subdirs)
 
+always-subdirs = \
+	argp assert catgets csu ctype db2 debug dirent gmon gnulib grp	\
+	iconv iconvdata intl io locale localedata malloc manual math	\
+	md5-crypt misc nss po posix pwd resource setjmp shadow signal	\
+	socket stdio-common stdlib string sysvipc termios time timezone	\
+	wcsmbs wctype
+
+sometimes-subdirs = \
+	aout bare db elf hesiod hurd inet libio login mach nis nscd	\
+	resolv rt stdio streams sunrpc
+
+subdirs = $(always-subdirs) $(stdio) $(add-ons) $(thread-subdirs) \
+	  $(sysdep-subdirs) $(binfmt-subdir)
+
+all-subdirs = $(always-subdirs) $(sometimes-subdirs)
+
 # The mach and hurd subdirectories have many generated header files which
 # much of the rest of the library depends on, so it is best to build them
 # first (and mach before hurd, at that).  The before-compile additions in
@@ -779,5 +582,48 @@
 	 sed 's/#.*$$//' $(all-Subdirs-files) /dev/null;	\
 	 echo endef) > $@-tmp
 	mv -f $@-tmp $@
+
+# This list must be updated when new sysdep dirs are added.  Create it
+# by running this command from sysdeps:
+# find . -type d | egrep -v '/(CVS|bits|sys|nfs|scsi|net[a-z0-9]*)$' | cut -c3-
+# Then edit out unix/sysv/linux/alpha/alpha and format to taste.
+# A better method would be appreciated -zw
+all-sysd-dirs = $(addprefix $(..)sysdeps/, \
+	alpha alpha/alphaev5 alpha/elf alpha/fpu am29k arm arm/elf	\
+	arm/fpu generic generic/elf gnu hppa hppa/hppa1.1 i370 i386	\
+	i386/elf i386/fpu i386/i486 i386/i586 i386/i686 i860 i960	\
+	ieee754 libm-i387 libm-i387/i686 libm-ieee754 m68k m68k/elf	\
+	m68k/fpu m68k/fpu/switch m68k/m68020 m88k m88k/m88100		\
+	m88k/m88110 mach mach/alpha mach/hppa mach/hurd			\
+	mach/hurd/alpha mach/hurd/hppa mach/hurd/i386 mach/hurd/mips	\
+	mach/i386 mach/mips mach/powerpc mips mips/dec mips/elf		\
+	mips/mips3 mips/mips64 mips/mipsel mips/p40 mvs posix powerpc	\
+	powerpc/elf rs6000 sparc sparc/fpu sparc/sparc32		\
+	sparc/sparc32/elf sparc/sparc32/fpu sparc/sparc32/sparcv8	\
+	sparc/sparc64 sparc/sparc64/elf sparc/sparc64/fpu standalone	\
+	standalone/arm standalone/i386 standalone/i386/force_cpu386	\
+	standalone/i960 standalone/i960/nindy960 standalone/m68k	\
+	standalone/m68k/m68020 standalone/m68k/m68020/mvme135		\
+	standalone/m68k/m68020/mvme136 tahoe unix unix/alpha unix/arm	\
+	unix/bsd unix/bsd/hp unix/bsd/hp/m68k unix/bsd/bsd4.4		\
+	unix/bsd/i386 unix/bsd/m68k unix/bsd/osf unix/bsd/osf/alpha	\
+	unix/bsd/sequent unix/bsd/sequent/i386 unix/bsd/sony		\
+	unix/bsd/sony/newsos unix/bsd/sony/newsos/m68k			\
+	unix/bsd/sony/newsos4 unix/bsd/sun unix/bsd/sun/m68k		\
+	unix/bsd/sun/sparc unix/bsd/sun/sunos4 unix/bsd/tahoe		\
+	unix/bsd/ultrix4 unix/bsd/ultrix4/mips unix/bsd/vax		\
+	unix/common unix/i386 unix/inet unix/mips unix/mman unix/sparc	\
+	unix/sysv unix/sysv/i386 unix/sysv/irix4 unix/sysv/isc2.2	\
+	unix/sysv/linux unix/sysv/linux/alpha unix/sysv/linux/arm	\
+	unix/sysv/linux/i386 unix/sysv/linux/i386/i686			\
+	unix/sysv/linux/m68k unix/sysv/linux/mips			\
+	unix/sysv/linux/powerpc unix/sysv/linux/sparc			\
+	unix/sysv/linux/sparc/sparc32 unix/sysv/linux/sparc/sparc64	\
+	unix/sysv/minix unix/sysv/sco3.2 unix/sysv/sco3.2.4		\
+	unix/sysv/sysv4 unix/sysv/sysv4/i386 unix/sysv/sysv4/solaris2	\
+	unix/sysv/sysv4/solaris2/sparc vax wordsize-32 wordsize-64	\
+	z8000)
+
+export SYSDIRS = $(all-sysd-dirs) # gen-distinfo picks it up from the environment
 
 endif # Makeconfig not yet included
============================================================
Index: configure.in
--- configure.in	1998/06/26 14:42:16	1.222
+++ configure.in	1998/07/03 12:59:04
@@ -8,103 +8,154 @@
 # 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.
-AC_ARG_WITH(gmp, dnl
-  --with-gmp=DIRECTORY	  find GMP source code in DIRECTORY (not needed),
-	    [dnl
-case "$with_gmp" in
-yes) AC_MSG_ERROR(--with-gmp requires an argument; use --with-gmp=DIRECTORY) ;;
-''|no) ;;
-*) config_vars="$config_vars
-gmp-srcdir = $withval" ;;
-esac
-])
-# Check for a --with-gettext argument and set gettext-srcdir in config.make.
-AC_ARG_WITH(gettext, dnl
-  --with-gettext=DIR	  find GNU gettext source code in DIR (not needed),
-	    [dnl
-case "$with_gettext" in
-yes)
-  AC_MSG_ERROR(--with-gettext requires an argument; use --with-gettext=DIR) ;;
-''|no) ;;
-*)
-  config_vars="$config_vars
-gettext-srcdir = $withval" ;;
-esac
-])
-
 dnl Arguments to specify presence of other packages/features.
 AC_ARG_WITH(fp, dnl
-[  --with-fp		  if using floating-point hardware [default=yes]],
-	    with_fp=$withval, with_fp=yes)
+[  --with-fp		  if using floating-point hardware [default=yes]],,
+with_fp=yes)
 AC_ARG_WITH(binutils, dnl
-  --with-binutils=PATH	  specify location of binutils (as and ld),
-	    path_binutils=$withval, path_binutils='')
+  --with-binutils=PATH	  specify location of binutils (as and ld))
 AC_ARG_WITH(elf, dnl
-  --with-elf		  if using the ELF object format,
-	    elf=$withval, elf=no)
+  --with-elf		  if using the ELF object format,,with_elf=no)
 AC_ARG_WITH(cvs, dnl
-[  --without-cvs	  if CVS should not be used],
-	    with_cvs=$withval, with_cvs=yes)
+[  --without-cvs	  if CVS should not be used],,with_cvs=yes)
 AC_SUBST(with_cvs)
-
 AC_ARG_WITH(headers, dnl
 [  --with-headers=PATH     location of system headers to use
                           [e.g. /usr/src/linux/include]
-                          [default=compiler default]],
-	    sysheaders=$withval, sysheaders='')
+                          [default=compiler default]])
 
 AC_ARG_ENABLE(libio, dnl
-[  --enable-libio          build in GNU libio instead of GNU stdio],
- 	      [if test $enableval = yes; then
-	         stdio=libio
-	       else
-	         stdio=stdio
-	       fi],
-	      stdio=default)
-
-AC_ARG_ENABLE(sanity-checks, dnl
-[  --disable-sanity-checks really do not use threads (should not be used
-			  except in special situations) [default=yes]],
-              enable_sanity=$enableval, enable_sanity=yes)
+[  --enable-libio          build in GNU libio instead of GNU stdio],,
+enable_libio=default)
+
+AC_ARG_ENABLE(threads, dnl
+[  --disable-threads	  really do not use threads (should not be used
+			  except in special situations)],,
+enable_threads=yes)
 
 dnl Arguments to enable or disable building the static, shared, profiled,
 dnl and -fomit-frame-pointer libraries.
 AC_ARG_ENABLE(static, dnl
-[  --enable-static         build static library [default=yes]],
-	      static=$enableval, static=yes)
+[  --enable-static         build static library [default=yes]],,
+enable_static=yes)
 AC_ARG_ENABLE(shared, dnl
-[  --enable-shared         build shared library [default=yes if GNU ld & ELF]],
-	      shared=$enableval, shared=default)
+[  --enable-shared         build shared library [default=yes if possible]],,
+enable_shared=default)
 AC_ARG_ENABLE(profile, dnl
-[  --enable-profile        build profiled library [default=yes]],
-	      profile=$enableval, profile=yes)
+[  --enable-profile        build profiled library [default=yes]],,
+enable_profile=yes)
 AC_ARG_ENABLE(omitfp, dnl
-[  --enable-omitfp         build undebuggable optimized library [default=no]],
-	      omitfp=$enableval, omitfp=no)
+[  --enable-omitfp         build undebuggable optimized library [default=no]],,
+enable_omitfp=no)
 AC_ARG_ENABLE(bounded, dnl
-[  --enable-bounded        build with runtime bounds checking [default=no]],
-	      bounded=$enableval, bounded=no)
+[  --enable-bounded        build with runtime bounds checking [default=no]],,
+enable_bounded=no)
 AC_ARG_ENABLE(versioning, dnl
 [  --disable-versioning    do not include versioning information in the
-                          library objects [default=yes if supported]],
-             enable_versioning=$enableval, enable_versioning=yes)
+                          library objects [default=yes if supported]],,
+enable_versioning=yes)
+AC_ARG_ENABLE(programs, dnl
+[  --disable-programs      do not build auxiliary programs provided with
+			   libc [default=yes unless standalone]],,
+enable_programs=yes)
 
 dnl Generic infrastructure for drop-in additions to libc.
 AC_ARG_ENABLE(add-ons, dnl
 [  --enable-add-ons[=DIR1,DIR2]...
 			  configure and build add-ons in DIR1,DIR2,...
-                          search for add-ons if no parameter given],
-  [case "$enableval" in
+                          search for add-ons if no parameter given])
+
+dnl On some platforms we cannot use dynamic loading.  We must provide
+dnl static NSS modules.
+AC_ARG_ENABLE(static-nss, dnl
+[  --enable-static-nss     build static NSS modules [default=no]],,
+enable_static_nss=no)
+
+AC_ARG_ENABLE(force-install,
+[  --disable-force-install don't force installation of files from this package,
+			  even if they are older than the installed files],,
+enable_force_install=yes)
+
+# These are settable only in configparms.  Give defaults.
+slibdir='${exec_prefix}/lib'	AC_SUBST(slibdir)
+rootsbindir=$sbindir		AC_SUBST(rootsbindir)
+localtime=Factory		AC_SUBST(localtime)
+leapseconds=no			AC_SUBST(leapseconds)
+posixrules=America/New_York	AC_SUBST(posixrules)
+install_root=			AC_SUBST(install_root)
+libprefix=			AC_SUBST(libprefix)
+
+# Read configparms for overrides.  Configparms is only honored if it's
+# in the build directory.
+# FIXME: command line switches should win.  (Would require major changes to
+# the guts of autoconf.)
+changequote(,)dnl
+if test -f configparms; then
+  # Convert Make variable syntax to sh variable syntax.
+  sed	-e 's/[ 	]*#.*$//' -e '/^$/d' \
+	-e ':bs; /\\$/{; N; s/\\\n//; bbs; }' \
+	-e 's/[ 	][ 	]*/ /g' \
+	-e 's/\([a-zA-Z0-9_]*\) *= *\(.*\)$/'"\\1='\\2'/" \
+	configparms >conftemp.$$
+  . ./conftemp.$$
+  rm -f conftemp.$$
+fi
+changequote([,])dnl
+
+# These options are only of use to maintainers, therefore undocumented.
+
+# Check for a --with-gmp argument and set gmp-srcdir in config.make.
+case "$with_gmp" in
+yes) AC_MSG_ERROR(--with-gmp requires an argument; use --with-gmp=DIRECTORY) ;;
+''|no) ;;
+*) config_vars="$config_vars
+gmp-srcdir = $with_gmp" ;;
+esac
+
+# Check for a --with-gettext argument and set gettext-srcdir in config.make.
+case "$with_gettext" in
+yes)
+  AC_MSG_ERROR(--with-gettext requires an argument; use --with-gettext=DIR) ;;
+''|no) ;;
+*)
+  config_vars="$config_vars
+gettext-srcdir = $with_gettext" ;;
+esac
+
+# Munge some options into the form config.make wants.
+
+path_binutils=$with_binutils
+elf=$with_elf
+sysheaders=$with_headers
+
+case $enable_libio in
+ yes)	  stdio=libio;;
+ no)	  stdio=stdio;;
+ default) stdio=default;;
+ *) AC_MSG_ERROR(["--enable-libio takes no arguments"]);;
+esac
+
+case $leapseconds in
+ yes)	leapseconds=leapseconds;;
+ no)	leapseconds=/dev/null;;
+ *) AC_MSG_ERROR(["leapseconds should be set to \`yes' or \`no'"]);;
+esac
+
+static=$enable_static	AC_SUBST(static)
+shared=$enable_shared	AC_SUBST(shared)
+profile=$enable_profile	AC_SUBST(profile)
+omitfp=$enable_omitfp	AC_SUBST(omitfp)
+bounded=$enable_bounded	AC_SUBST(bounded)
+
+case "$enable_add_ons" in
     yes) if test "$srcdir" = "."; then
 	   add_ons=`echo */configure | sed -e 's!/configure!!g'`
 	 else
 	   add_ons=`echo $srcdir/*/configure | \
 		    sed -e 's!/configure!!g' -e "s!$srcdir/!!g"`
 	 fi;;
-    *) add_ons=`echo "$enableval" | sed 's/,/ /g'`;;
-   esac],
-  [add_ons=])
+    *) add_ons=`echo "$enable_add_ons" | sed 's/,/ /g'`;;
+esac
 
 AC_CONFIG_SUBDIRS($add_ons)
 add_ons_pfx=
@@ -119,20 +170,12 @@
   done
 fi
 
-dnl On some platforms we cannot use dynamic loading.  We must provide
-dnl static NSS modules.
-AC_ARG_ENABLE(static-nss, dnl
-[  --enable-static-nss     build static NSS modules [default=no]],
-	      static_nss=$enableval, static_nss=no)
+static_nss=$enable_static_nss  AC_SUBST(static_nss)
 if test x"$static_nss" = xyes; then
   AC_DEFINE(DO_STATIC_NSS)
 fi
 
-AC_ARG_ENABLE(force-install,
-[  --disable-force-install don't force installation of files from this package,
-			  even if they are older than the installed files],
-	      force_install=$enableval, force_install=yes)
-AC_SUBST(force_install)
+force_install=$enable_force_install  AC_SUBST(force_install)
 
 AC_CANONICAL_HOST
 
@@ -454,6 +497,14 @@
   [version \([egcst0-9.-]*\)],
   [egcs-2.91.*|egcs-2.90.2[789]|egcs-2.90.[3-9][0-9]|*2.8.[1-9]*|*2.9.[0-9]*],
   critic_missing=t)
+if test -n "$ac_tool_prefix"; then
+AC_CHECK_PROG_VER(BUILD_CC, gcc cc, -v,
+  [version \([egcst0-9.-]*\)],
+  [egcs-2.91.*|egcs-2.90.2[789]|egcs-2.90.[3-9][0-9]|*2.8.[1-9]*|*2.9.[0-9]*],
+  critic_missing=t)
+else
+  BUILD_CC=$CC
+fi
 AC_CHECK_PROG_VER(MAKE, make gmake, --version,
   [version \([0-9][0-9.]*\), by],
   [3.75 | 3.76.[1-9]* | 3.7[789]* | 3.[89]*], critic_missing=t)
@@ -476,6 +527,10 @@
 *** some features will be disabled.
 *** Check the INSTALL file for required versions.])
 
+if test "$MSGFMT" != ":"; then
+  AC_CHECK_PROG(XGETTEXT, xgettext, xgettext, :)
+fi
+
 AC_PROG_CC_LOCAL
 AC_CANONICAL_BUILD
 if test $host != $build; then
@@ -573,6 +628,23 @@
 AC_PATH_PROGS(PERL, perl, no)
 AC_SUBST(PERL)
 
+AC_CHECK_PROGS(TAR, tar gtar)
+if test -n "$TAR"; then
+  AC_CACHE_CHECK(whether $TAR supports --name-prefix,
+  libc_cv_prog_tar_nameprefix, [dnl
+    cp /dev/null conftest
+    if $TAR -c --name-prefix foo conftest >/dev/null 2>&1; then
+      libc_cv_prog_tar_nameprefix=yes
+    else
+      libc_cv_prog_tar_nameprefix=no
+    fi
+    rm -f conftest])
+  have_tar_nameprefix=$libc_cv_prog_tar_nameprefix 
+else
+  have_tar_nameprefix=no
+fi
+AC_SUBST(have_tar_nameprefix)
+
 AC_CACHE_CHECK(for signed size_t type, libc_cv_signed_size_t, [dnl
 echo '#include <stddef.h>
 FOOBAR __SIZE_TYPE__ FOOBAR' > conftest.c
@@ -767,18 +839,22 @@
   fi
 fi
 
-if test $elf != yes; then
+if test $elf = yes; then
+ # ELF automatically has .init and .fini.
+ libc_cv_have_initfini=yes
+ AC_DEFINE(HAVE_INITFINI)
+else
   AC_CACHE_CHECK(for .init and .fini sections, libc_cv_have_initfini,
 		 [AC_TRY_COMPILE(, [asm (".section .init");
 				    asm (".section .fini");
 				    asm (".text");],
 				 libc_cv_have_initfini=yes,
 				 libc_cv_have_initfini=no)])
-  AC_SUBST(libc_cv_have_initfini)dnl
   if test $libc_cv_have_initfini = yes; then
     AC_DEFINE(HAVE_INITFINI)
   fi
 fi
+AC_SUBST(libc_cv_have_initfini)
 
 dnl AC_CHECK_ASM_UNDERSCORE([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
 AC_DEFUN(AC_CHECK_ASM_UNDERSCORE,
@@ -1117,14 +1193,10 @@
 fi
 AC_SUBST(old_glibc_headers)
 
-AC_SUBST(libc_cv_slibdir)
-AC_SUBST(libc_cv_sysconfdir)
-AC_SUBST(libc_cv_rootsbindir)
-
 AC_SUBST(has_ldconfig)
 AC_SUBST(ldd_rewrite_script)
 
-AC_SUBST(gnu_ld) AC_SUBST(gnu_as) AC_SUBST(elf)
+AC_SUBST(gnu_ld) AC_SUBST(gnu_as)
 if test $gnu_ld = yes; then
   AC_DEFINE(HAVE_GNU_LD)
 fi
@@ -1132,11 +1204,14 @@
   AC_DEFINE(HAVE_GNU_AS)
 fi
 if test $elf = yes; then
+  binfmt=elf
   AC_DEFINE(HAVE_ELF)
+else
+  # Default.
+  binfmt=aout
 fi
+AC_SUBST(binfmt)
 
-AC_SUBST(static)
-AC_SUBST(shared)
 if test $shared = default; then
   if test $gnu_ld = yes; then
     shared=$elf
@@ -1159,11 +1234,13 @@
 fi
 rm -f conftest.*])
 AC_SUBST(pic_default)
+
+if test $config_os = none
+then build_programs=no
+else build_programs=$enable_programs
+fi
+AC_SUBST(build_programs)
 
-AC_SUBST(profile)
-AC_SUBST(omitfp)
-AC_SUBST(bounded)
-AC_SUBST(static_nss)
 AC_SUBST(nopic_initfini)
 
 AC_SUBST(DEFINES)
============================================================
Index: config.make.in
--- config.make.in	1998/06/26 14:41:45	1.58
+++ config.make.in	1998/07/03 12:59:04
@@ -1,19 +1,32 @@
 # @configure_input@
-# From $Id: config.make.in,v 1.57 1998/06/23 09:06:18 drepper Exp $.
+# From $Id: config.make.in,v 1.54 1998/05/12 11:33:07 drepper Exp $.
 # Don't edit this file.  Put configuration parameters in configparms instead.
 
 version = @VERSION@
 release = @RELEASE@
 
 # Installation prefixes.
-install_root =
+install_root = @install_root@
 prefix = @prefix@
 exec_prefix = @exec_prefix@
-slibdir = @libc_cv_slibdir@
-sysconfdir = @libc_cv_sysconfdir@
+libprefix = @libprefix@
+libdir = @libdir@
+slibdir = @slibdir@
+includedir = @includedir@
+datadir = @datadir@
+bindir = @bindir@
+sysconfdir = @sysconfdir@
 libexecdir = @libexecdir@
-rootsbindir = @libc_cv_rootsbindir@
+rootsbindir = @rootsbindir@
+sbindir = @sbindir@
+infodir = @infodir@
+
+# Time zone tuning parameters.
+localtime = @localtime@
+leapseconds = @leapseconds@
+posixrules = @posixrules@
 
+
 # If ldconfig exists.  This will go away as soon as `ldconfig' is available
 # in GNU libc.
 has-ldconfig = @has_ldconfig@
@@ -31,7 +44,6 @@
 defines = @DEFINES@
 sysincludes = @SYSINCLUDES@
 
-elf = @elf@
 have-initfini = @libc_cv_have_initfini@
 need-nopic-initfini = @nopic_initfini@
 with-cvs = @with_cvs@
@@ -54,7 +66,9 @@
 build-omitfp = @omitfp@
 build-bounded = @bounded@
 build-static-nss = @static_nss@
+build-programs = @build_programs@
 stdio = @stdio@
+binfmt-subdir = @binfmt@
 add-ons = @subdirs@
 cross-compiling = @cross_compiling@
 force-install = @force_install@
@@ -68,6 +82,10 @@
 MAKEINFO = @MAKEINFO@
 AS = $(CC) -c
 MIG = @MIG@
+
+TAR = @TAR@
+have-tar-nameprefix = @have_tar_nameprefix@
+XGETTEXT = @XGETTEXT@
 
 # Installation tools.
 INSTALL = @INSTALL@
============================================================
Index: csu/Makefile
--- csu/Makefile	1998/05/25 09:08:12	1.34
+++ csu/Makefile	1998/07/03 12:59:04
@@ -114,6 +114,9 @@
 
 include ../Rules
 
+# Make these in the lib pass so they're available in time to link things with.
+subdir_lib: $(extra-objs:%=$(objpfx)%)
+
 define link-relocatable
 $(CC) -nostdlib -nostartfiles -r -o $@ $^
 endef
============================================================
Index: sysdeps/unix/sysv/linux/configure.in
--- sysdeps/unix/sysv/linux/configure.in	1998/04/01 06:45:43	1.15
+++ sysdeps/unix/sysv/linux/configure.in	1998/07/03 12:59:04
@@ -35,9 +35,9 @@
 # shared library objects and the configuration files on the root partition
 # in /lib and /etc.
 if test "$prefix" = "/usr"; then
-  libc_cv_slibdir="/lib"
-  libc_cv_sysconfdir="/etc"
-  libc_cv_rootsbindir="/sbin"
+  slibdir="/lib"
+  sysconfdir="/etc"
+  rootsbindir="/sbin"
 fi
 
 # Under Linux the LinuxThreads and crypt add-on should be available.
@@ -54,7 +54,7 @@
   *crypt*)
     message="\
 *** WARNING:
-*** Are you sure you do not want to use the \`linuxthread' add-on?"
+*** Are you sure you do not want to use the \`linuxthreads' add-on?"
     ;;
   *)
     message="\
@@ -64,14 +64,14 @@
 esac
 
 if test "$message"; then
-  if test $enable_sanity = yes; then
+  if test $enable_threads = yes; then
     echo "\
 *** You should not compile the GNU libc without the \`linuxthreads' and
 *** \`crypt' add-on.  Not using them risks to be incompatible with the
 *** libraries of other systems.  Consider getting the add-ons and restart
 *** the configuration.
 *** If you really mean to avoid those add-ons run configure again, now
-*** using the extra parameter \`--disable-sanity-checks'."
+*** using the extra parameter \`--disable-threads'."
     exit 1
   else
     echo "$message"
============================================================
Index: configparms
--- configparms	Wed Dec 31 19:00:00 1969
+++ configparms	Thu Jul  2 22:50:14 1998	1.1
@@ -0,0 +1,110 @@
+# This is a template file.  You can set configuration parameters for
+# GNU libc in this file, by copying it into the build directory and
+# editing it as you see fit.
+# It is parsed as if it were a Makefile fragment, but it isn't.  The
+# only thing you can put in it is variable settings.
+#
+# Note: settings in this file will override command line switches 
+# to autoconf.
+
+# Switches to pass to C compiler.  This can only be used to tweak
+# optimizations -- in other words, only put -O,-g,-f,-m switches here.
+#CFLAGS = -O -g
+
+# Commonly needed configuration options:
+#enable_static   = yes	# compile static libc?
+#enable_shared   = yes	# shared?
+#enable_profile  = yes	# profiling?
+#enable_omitfp   = no	# hyperoptimized and undebuggable?
+#enable_bounded  = no	# with bounds checking (needs special compiler)?
+#enable_programs = yes	# compile auxiliary programs?
+
+#enable_add_ons  =	# list add on dirs to use, or `yes' for all of them
+#with_headers	 =	# location of kernel headers to use
+			# (eg. /usr/src/linux/include)
+
+
+# Installation directories:
+
+# This is prepended to all paths at install time.  It's for installing
+# libc somewhere other than where it thinks it will live.  You might
+# need this if you use AFS.
+#install_root =
+
+# Base directory, for non-executables and executables.
+# Set to /usr to make glibc the primary C library (careful!)
+#prefix		= /usr/local
+#exec_prefix	= ${prefix}
+
+# Specific installation dirs:
+#libdir		= ${exec_prefix}/lib	 # libraries
+#bindir		= ${exec_prefix}/bin	 # user programs
+#sbindir 	= ${exec_prefix}/sbin	 # admin programs
+#libexecdir	= ${exec_prefix}/libexec # internal programs
+
+#slibdir	= ${libdir}		 # libraries needed at boot
+#rootsbindir	= ${sbindir}		 # programs needed at boot
+
+#includedir	= ${prefix}/include	 # header files
+#datadir	= ${prefix}/share	 # data files (timezone, i18n, locale)
+#sysconfdir	= ${prefix}/etc		 # config files
+
+# This string is prepended to executable names and library -l names.
+# It's only needed in odd cases.
+#libprefix =
+
+# Less commonly needed configuration options.
+
+# To cross compile libc, set build to the system name of the machine
+# you are compiling on, and host to the system name you're compiling
+# for.  If Autoconf doesn't correctly guess which compilers to use,
+# set CC to the cross-compiler, and BUILD_CC to the native compiler.
+# Both must be recent versions of gcc.  You may also need to set AR,
+# RANLIB, and MIG in that case.
+#
+#build	  =
+#host	  =
+#CC	  =
+#BUILD_CC =
+#AR	  =
+#RANLIB	  =
+#MIG	  =
+
+# This is useful mostly when cross-compiling but may also help if you
+# have an old assembler or linker in your PATH.
+#
+#with_binutils =	# path to as and ld, if they're somewhere strange
+
+# Don't change these unless you know what you're doing.
+#
+#with_fp		= yes	# does your machine have an FPU or emulator?
+#with_elf		=	# force use of ELF object files?
+#with_cvs		= yes	# enable automatic CVS checkins of some files?
+#enable_libio		=	# force use of the new stdio?
+#enable_threads		= yes	# thread safe libc?
+#enable_versioning	= yes	# use symbol versioning?
+#enable_static_nss	= no	# build static NSS modules?
+#enable_force_install	= yes	# install over apparently newer files?
+
+# Tuning parameters for timezone.  We default to strict POSIX
+# conformance.  All these can be changed at runtime, so don't worry
+# about it.
+#
+#localtime   = Factory		# default time zone
+#posixrules  = America/New_York # default DST rules
+#leapseconds = no		# handle leap seconds by default?
+
+# Other programs used in the build.  Set these if Autoconf doesn't
+# pick the right ones.  You will be told if you are missing a program
+# you must have in order to build libc.
+#
+#MAKEINFO	 = makeinfo
+#INSTALL  	 = install
+#INSTALL_PROGRAM = $(INSTALL) -m 755
+#INSTALL_DATA    = $(INSTALL) -m 644
+#LN_S	  	 = ln -s
+#MSGFMT	  	 = msgfmt
+#BASH	  	 = bash
+#KSH	  	 = ksh
+#AWK	  	 = awk
+#PERL	  	 = perl
============================================================
Index: Makefile
--- Makefile    1998/07/02 21:54:13     1.169
+++ Makefile    1998/07/03 13:26:58
@@ -319,7 +419,7 @@
 # Generate version maps.
 ifeq ($(versioning),yes)
 $(common-objpfx)sysd-versions: versions.awk \
-                              $(wildcard $(all-subdirs:%=%/Versions)) \
+                              $(wildcard $(subdirs:%=%/Versions)) \
                               $(wildcard $(+sysdep_dirs:%=%/Versions))
        $(AWK) -v 'buildroot=$(common-objpfx)' -f $^
        rm -f $@


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]