This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Remove relics of support for configuring in the source directory
- From: "Joseph S. Myers" <joseph at codesourcery dot com>
- To: <libc-alpha at sourceware dot org>
- Date: Fri, 19 Oct 2012 15:24:46 +0000
- Subject: Remove relics of support for configuring in the source directory
glibc has not supported configuring in the source directory since:
commit c72637d4cf7699a4f65f0357a3a32b4fd4c60735
Author: Roland McGrath <roland@gnu.org>
Date: Wed Jan 29 08:34:58 2003 +0000
2003-01-29 Roland McGrath <roland@redhat.com>
* configure.in: Barf if configured in $srcdir.
* configure: Regenerated.
However, there are some relics left of that support. In particular,
Makeconfig contains code involving variables $(ARCH) and $(machine) -
that nothing ever ends up setting - and considering a case of objdir
not being defined (because builds must be in a separate directory,
objdir must always be defined when using the source-directory
makefiles, so it's appropriate just to give an error if it isn't).
Similarly, the code in configure.in regarding a config_makefile
variable (depending on whether configured in the source directory) is
no longer needed.
This patch removes these relics of configuring in the source
directory. The immediate motivation is to make it clear that
variables such as $(common-objpfx) are always absolute paths, not
relative, so the special makefile logic for io/ftwtest-sh (calling pwd
to determine absolute paths, because the working directory is changed
at various points in that script) is no longer needed, and that script
can safely change to having $(built-program-cmd) or
$(run-program-prefix) passed to it in the usual way, so facilitating
cross testing.
Tested x86_64.
2012-10-19 Joseph Myers <joseph@codesourcery.com>
* Makeconfig (ARCH): Remove all definitions.
(machine): Likewise.
[ARCH]: Remove conditional code.
[!objdir]: Give error.
[!objdir] (objpfx): Remove.
[!objdir] (common-objpfx): Likewise.
[!objdir] (common-objdir): Likewise.
* configure.in (config_makefile): Remove. Hardcode Makefile in
AC_CONFIG_FILES call.
* configure: Regenerated.
diff --git a/Makeconfig b/Makeconfig
index f451ec2..9dadc3f 100644
--- a/Makeconfig
+++ b/Makeconfig
@@ -33,31 +33,6 @@ ifdef subdir
.. := ../
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
@@ -65,15 +40,7 @@ objpfx := $(patsubst %//,%/,$(objdir)/$(subdir)/)
common-objpfx = $(objdir)/
common-objdir = $(objdir)
else
-objpfx :=
-ifdef ..
-common-objpfx = $(..)
-common-objdir = ..
-else
-# This is a kludge. make wizards might grok.
-common-objpfx = sysdeps/../
-common-objdir = .
-endif
+objdir must be defined by the build-directory Makefile.
endif
# Root of the sysdeps tree.
diff --git a/configure b/configure
index 74ff690..ed5df88 100755
--- a/configure
+++ b/configure
@@ -7529,18 +7529,12 @@ $as_echo "$libc_cv_pic_default" >&6; }
-if test "`(cd $srcdir; pwd)`" = "`pwd`"; then
- config_makefile=
-else
- config_makefile=Makefile
-fi
-
VERSION=`sed -n -e 's/^#define VERSION "\([^"]*\)"/\1/p' < $srcdir/version.h`
RELEASE=`sed -n -e 's/^#define RELEASE "\([^"]*\)"/\1/p' < $srcdir/version.h`
-ac_config_files="$ac_config_files config.make ${config_makefile}"
+ac_config_files="$ac_config_files config.make Makefile"
ac_config_commands="$ac_config_commands default"
@@ -8259,7 +8253,7 @@ do
case $ac_config_target in
"config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
"config.make") CONFIG_FILES="$CONFIG_FILES config.make" ;;
- "${config_makefile}") CONFIG_FILES="$CONFIG_FILES ${config_makefile}" ;;
+ "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
"default") CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;;
*) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
diff --git a/configure.in b/configure.in
index facde5e..3af030a 100644
--- a/configure.in
+++ b/configure.in
@@ -2185,18 +2185,12 @@ AC_SUBST(DEFINES)
dnl See sysdeps/mach/configure.in for this variable.
AC_SUBST(mach_interface_list)
-if test "`(cd $srcdir; pwd)`" = "`pwd`"; then
- config_makefile=
-else
- config_makefile=Makefile
-fi
-
VERSION=`sed -n -e 's/^#define VERSION "\([^"]*\)"/\1/p' < $srcdir/version.h`
RELEASE=`sed -n -e 's/^#define RELEASE "\([^"]*\)"/\1/p' < $srcdir/version.h`
AC_SUBST(VERSION)
AC_SUBST(RELEASE)
-AC_CONFIG_FILES([config.make ${config_makefile}])
+AC_CONFIG_FILES([config.make Makefile])
AC_CONFIG_COMMANDS([default],[[
case $CONFIG_FILES in *config.make*)
echo "$config_vars" >> config.make;;
--
Joseph S. Myers
joseph@codesourcery.com