1996-01-17 02:11:06 +00:00
|
|
|
|
# Copyright (C) 1991, 92, 93, 94, 95, 96 Free Software Foundation, Inc.
|
1995-02-18 01:27:10 +00:00
|
|
|
|
# This file is part of the GNU C Library.
|
|
|
|
|
|
|
|
|
|
# The GNU C Library is free software; you can redistribute it and/or
|
|
|
|
|
# modify it under the terms of the GNU Library General Public License as
|
|
|
|
|
# published by the Free Software Foundation; either version 2 of the
|
|
|
|
|
# License, or (at your option) any later version.
|
|
|
|
|
|
|
|
|
|
# The GNU C Library is distributed in the hope that it will be useful,
|
|
|
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
|
|
|
# Library General Public License for more details.
|
|
|
|
|
|
|
|
|
|
# You should have received a copy of the GNU Library General Public
|
|
|
|
|
# License along with the GNU C Library; see the file COPYING.LIB. If
|
|
|
|
|
# not, write to the Free Software Foundation, Inc., 675 Mass Ave,
|
|
|
|
|
# Cambridge, MA 02139, USA.
|
|
|
|
|
|
|
|
|
|
#
|
|
|
|
|
# Makefile configuration options for the GNU C library.
|
|
|
|
|
#
|
|
|
|
|
ifneq (,)
|
|
|
|
|
This makefile requires GNU Make.
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
ifneq "$(origin +included-Makeconfig)" "file"
|
|
|
|
|
|
|
|
|
|
+included-Makeconfig := yes
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
1995-11-08 02:28:15 +00:00
|
|
|
|
# $(common-objdir) is the place to put objects and
|
1995-02-18 01:27:10 +00:00
|
|
|
|
# such that are not specific to a single subdir.
|
|
|
|
|
ifdef objdir
|
|
|
|
|
objpfx = $(objdir)/
|
|
|
|
|
common-objpfx = $(objpfx)
|
|
|
|
|
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
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Get the values defined by options to `configure'.
|
|
|
|
|
include $(common-objpfx)config.make
|
|
|
|
|
|
1995-05-09 07:03:38 +00:00
|
|
|
|
# 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
|
|
|
|
|
# changes and so config.status would be run every time; the dependence of
|
|
|
|
|
# config.make should suffice to force regeneration and re-exec, and the new
|
|
|
|
|
# image will notice if config.h changed.
|
1996-03-05 16:23:22 +00:00
|
|
|
|
$(common-objpfx)config.make: $(common-objpfx)config.status $(..)config.h.in
|
1995-05-09 07:03:38 +00:00
|
|
|
|
cd $(<D); $(SHELL) $(<F)
|
|
|
|
|
|
1995-02-18 01:27:10 +00:00
|
|
|
|
# Force the user to configure before making.
|
1995-05-09 07:03:38 +00:00
|
|
|
|
$(common-objpfx)config.status: $(..)configure
|
|
|
|
|
@cd $(@D); if test -f $(@F); then exec $(SHELL) $(@F) --recheck; else \
|
|
|
|
|
echo The GNU C library has not been configured. >&2; \
|
|
|
|
|
echo Run \`configure\' to configure it before building. >&2; \
|
|
|
|
|
echo Try \`configure --help\' for more details. >&2; \
|
|
|
|
|
exit 1; fi
|
1995-02-18 01:27:10 +00:00
|
|
|
|
|
|
|
|
|
# Get the user's configuration parameters.
|
|
|
|
|
ifneq ($(wildcard $(..)configparms),)
|
|
|
|
|
include $(..)configparms
|
|
|
|
|
endif
|
|
|
|
|
ifneq ($(objpfx),)
|
|
|
|
|
ifneq ($(wildcard $(objpfx)configparms),)
|
|
|
|
|
include $(objpfx)configparms
|
|
|
|
|
endif
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
sysdep_dir := $(..)sysdeps
|
|
|
|
|
export sysdep_dir := $(sysdep_dir)
|
|
|
|
|
|
|
|
|
|
####
|
|
|
|
|
#### These are the configuration variables. You can define values for
|
|
|
|
|
#### the variables below in the file `configparms'.
|
|
|
|
|
#### Do NOT edit this file.
|
|
|
|
|
####
|
|
|
|
|
|
|
|
|
|
|
1995-10-17 00:41:39 +00:00
|
|
|
|
# Set this to either `stdio' or `libio', to compile in either GNU stdio
|
|
|
|
|
# or GNU libio.
|
|
|
|
|
ifndef stdio
|
|
|
|
|
stdio = stdio
|
|
|
|
|
endif
|
|
|
|
|
|
1995-02-18 01:27:10 +00:00
|
|
|
|
# Common prefix for machine-independent installation directories.
|
1995-06-22 09:00:11 +00:00
|
|
|
|
ifeq ($(origin prefix),undefined) # ifndef would override explicit empty value.
|
1995-02-18 01:27:10 +00:00
|
|
|
|
prefix = /usr/local
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
# Common prefix for machine-dependent installation directories.
|
1995-06-22 09:00:11 +00:00
|
|
|
|
ifeq ($(origin exec_prefix),undefined)
|
1995-02-18 01:27:10 +00:00
|
|
|
|
exec_prefix = $(prefix)
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
# Where to install the library and object files.
|
|
|
|
|
ifndef libdir
|
|
|
|
|
libdir = $(exec_prefix)/lib
|
|
|
|
|
endif
|
|
|
|
|
|
1995-11-08 02:28:15 +00:00
|
|
|
|
# Where to install the shared library and dynamic linker.
|
|
|
|
|
ifndef slibdir
|
|
|
|
|
slibdir = $(exec_prefix)/lib
|
|
|
|
|
endif
|
|
|
|
|
|
1995-02-18 01:27:10 +00:00
|
|
|
|
# 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.
|
1995-06-22 09:00:11 +00:00
|
|
|
|
ifeq ($(origin libprefix),undefined)
|
1995-02-18 01:27:10 +00:00
|
|
|
|
libprefix =
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
# Where to install the header files.
|
|
|
|
|
ifndef includedir
|
|
|
|
|
includedir = $(exec_prefix)/include
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
# Where to install machine-independent data files.
|
1995-05-20 00:13:43 +00:00
|
|
|
|
# These are the timezone database, and the locale database.
|
1995-02-18 01:27:10 +00:00
|
|
|
|
ifndef datadir
|
|
|
|
|
datadir = $(prefix)/share
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
# Where to install the timezone data files (which are machine-independent).
|
|
|
|
|
ifndef zonedir
|
|
|
|
|
zonedir = $(datadir)/zoneinfo
|
|
|
|
|
endif
|
|
|
|
|
|
1995-09-28 09:00:19 +00:00
|
|
|
|
# Where to install the locale and message catalog data files (which are
|
|
|
|
|
# machine-independent).
|
1995-05-20 00:13:43 +00:00
|
|
|
|
ifndef localedir
|
|
|
|
|
localedir = $(datadir)/locale
|
|
|
|
|
endif
|
|
|
|
|
|
1995-09-28 09:00:19 +00:00
|
|
|
|
# Where to install the locale charmap source files.
|
Thu Mar 28 03:25:10 1996 Roland McGrath <roland@charlie-brown.gnu.ai.mit.edu>
* intl/Makefile (copysrc): Add missing > in sed cmd.
Sat Mar 23 17:52:49 1996 Ulrich Drepper <drepper@gnu.ai.mit.edu>
* Makeconfig: Rename Makefile variable nlsdir to i18ndir and
change value to $(datadir)/i18n. `nls' is not an appropriate
name.
* Makefile (subdirs): Add new subdir wctype.
* ctype/ctype-info.c: Add new global variable __ctype_names
and initialize from _nl_C_LC_CTYPE.
* ctype/ctype.h: In P1003.3b/D11 `alnum' is a separate character
class. Use bit 11.
[_ISbit]: Protect definition of bitmasks because they are also
used in wctype.h.
* libio/genops.c (_IO_sputbackc, _IO_sungetc): Clear EOF flag
after successfully pushing back a character.
Fundamental changes in locale implementation. Almost nothing
from the old code is used anymore.
* locale/charmap.c, locale/collate.c, locale/config.h,
locale/ctypedump.c, locale/hash.h, locale/keyword.gperf,
locale/keyword.h, locale/loadlocale.c, locale/locale-ctype.c,
locale/locale.c locale/localeconv.c, locale/localedef.c,
locale/localedef.h, locale/locfile-hash.c, locale/locfile-lex.c,
locale/locfile-parse.c, locale/messages.c, locale/monetary.c,
locale/numeric.c, locale/setlocale.c, locale/token.h,
locale/xmalloc.c: Removed.
* locale/Makefile: Update for new locale implementation with
program source code distributed in subdir.
* locale/categories.def, locale/iso-4217.def: Updated file
for new locale implementation.
* locale/langinfo.h: Updated for new locale implementation.
(ERA_D_T_FMT, ERA_T_FMT): New official values according to
P1003.2b/D11.
(_NL_COLLATE_NRULES, _NL_COLLATE_RULES, _NL_COLLATE_HASH_SIZE,
_NL_COLLATE_HASH_LAYERS, _NL_COLLATE_TABLE_EB,
_NL_COLLATE_TABLE_EL, _NL_COLLATE_UNDEFINED, _NL_COLLATE_EXTRA_EB,
_NL_COLLATE_EXTRA_EL, _NL_CTYPE_NAMES_EB, _NL_CTYPE_NAMES_EL,
_NL_CTYPE_HASH_SIZE, _NL_CTYPE_HASH_LAYERS, _NL_CTYPE_CLASS_NAMES,
_NL_CTYPE_MAP_NAMES, _NL_CTYPE_WIDTH): New internal values for
extended LC_CTYPE and LC_COLLATE implementation.
* locale/simple-hash.c, locale/simple-hash.h, locale/xmalloc.c,
locale/xstrdup.c: Helper functions for locale related programs.
* locale/C-collate.c, locale/C-ctype.c,
locale/C-messages.c, locale/C-monetary.c,
locale/C-numeric.c, locale/C-time.c,
locale/lc-collate.c, locale/lc-ctype.c,
locale/lc-messages.c, locale/lc-monetary.c,
locale/lc-numeric.c, locale/lc-time.c: New implementation of locale
functions, and new generated "C" locale data.
* locale/loadlocale.c: Now handles word fields in locale binary
automatically by changing the endianess if necessary.
* locale/localeinfo.h (LIMAGIC): Changed magic number because
of incompatible changes.
(locale_data): Changed definition to allow word as a value type.
(coll_sort_rule): Values for collation sorting mode.
(_NL_CURRENT_WORD): New macro to access word value of locale entry.
(__collate_table, __collate_extra): Declare new global variables
for collation tables.
* locale/programs/charmap-kw.gperf, locale/programs/charmap-kw.h,
locale/programs/charmap.c, locale/programs/charset.c,
locale/programs/charset.h, locale/programs/config.h,
locale/programs/ctypedump.c, locale/programs/ld-collate.c,
locale/programs/ld-ctype.c, locale/programs/ld-messages.c,
locale/programs/ld-monetary.c, locale/programs/ld-numeric.c,
locale/programs/ld-time.c, locale/programs/linereader.c,
locale/programs/linereader.h, locale/programs/locale.c,
locale/programs/localedef.c, locale/programs/locales.h,
locale/programs/locfile-kw.gperf, locale/programs/locfile-kw.h,
locale/programs/locfile-token.h, locale/programs/locfile.c,
locale/programs/locfile.h, locale/programs/stringtrans.c,
locale/programs/stringtrans.h: Implementation of locale related
programs.
* locale/weight.h: Functions to access collation tables.
* posix/unistd.h: Define _POSIX2_LOCALEDEF.
* stdio-common/printf_fp.c: Fix bug with printing certain numbers
< 10^-1. Reported by Bill Metzenthen.
* stdio-common/tfformat.c: Add new test for above bug.
* string/strcoll.c, string/strxfrm.c: Real implementation of
string collation according to ISO C.
* wctype/Makefile, wctype/cname-lookup.h, wctype/iswctype.c,
wctype/test_wctype.c, wctype/towctrans.c, wctype/wcfuncs.c,
wctype/wctrans.c, wctype/wctype.c, wctype/wctype.h: New files.
Implementation of wide character classes and mapping.
1996-03-28 08:30:38 +00:00
|
|
|
|
ifndef i18ndir
|
|
|
|
|
i18ndir = $(datadir)/i18n
|
1995-05-20 00:13:43 +00:00
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
|
1995-02-18 01:27:10 +00:00
|
|
|
|
# Where to install programs.
|
|
|
|
|
ifndef bindir
|
|
|
|
|
bindir = $(exec_prefix)/bin
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
# Where to install administrative programs.
|
|
|
|
|
ifndef sbindir
|
|
|
|
|
sbindir = $(exec_prefix)/sbin
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
# Where to install the Info files.
|
|
|
|
|
ifndef infodir
|
|
|
|
|
infodir = $(prefix)/info
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
# Where to install default configuration files. These include the local
|
|
|
|
|
# timezone specification and network data base files.
|
|
|
|
|
ifndef sysconfdir
|
|
|
|
|
sysconfdir = $(prefix)/etc
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
# 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
|
|
|
|
|
localtime-file = $(sysconfdir)/localtime
|
|
|
|
|
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
|
|
|
|
|
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
|
|
|
|
|
|
|
|
|
|
# Command for linking programs with the C library.
|
|
|
|
|
ifndef +link
|
1995-10-11 03:34:46 +00:00
|
|
|
|
+link = $(CC) -nostdlib -nostartfiles -o $@ \
|
|
|
|
|
$(sysdep-LDFLAGS) $(config-LDFLAGS) $(LDFLAGS) \
|
|
|
|
|
$(addprefix $(csu-objpfx),start.o $(+preinit)) \
|
1996-02-12 10:23:47 +00:00
|
|
|
|
$(filter-out $(common-objpfx)libc%,$^) $(link-libc) \
|
1995-10-11 03:34:46 +00:00
|
|
|
|
$(addprefix $(csu-objpfx),$(+postinit))
|
1995-02-18 01:27:10 +00:00
|
|
|
|
endif
|
1995-10-09 07:06:29 +00:00
|
|
|
|
ifndef config-LDFLAGS
|
|
|
|
|
ifeq (yes,$(build-shared))
|
1995-11-08 02:28:15 +00:00
|
|
|
|
config-LDFLAGS = -Wl,-dynamic-linker=$(slibdir)/$(rtld-installed-name)
|
1995-10-09 07:06:29 +00:00
|
|
|
|
endif
|
|
|
|
|
endif
|
1995-08-17 22:55:22 +00:00
|
|
|
|
ifndef link-libc
|
|
|
|
|
ifeq (yes,$(build-shared))
|
Wed Feb 21 02:25:07 1996 Roland McGrath <roland@charlie-brown.gnu.ai.mit.edu>
* Rules (others): Depend on $(extra-objs), $(install-lib),
$(install-bin), $(install-sbin), in object directory.
* Makeconfig (link-libc): Don't pass -rpath option with default
path, since ld.so should use the same default.
* Makerules (build-shlib): Likewise.
* Makerules (make-target-directory): Use mkinstalldirs.
* sysdeps/mach/i386/sysdep.h: Include unix/i386/sysdep.h to
redefine ENTRY et al.
* sysdeps/unix/sysv/linux/i386/sysdep.h (NO_UNDERSCORES, ENTRY):
Macros removed. The code in unix/i386/sysdep.h should now suffice.
* sysdeps/unix/i386/sysdep.h (ALIGNARG): New macro, defns for
[HAVE_ELF] and not.
(ENTRY): Use it in .align directive.
(CALL_MCOUNT): New macro, empty unless [PROF].
(ENTRY): Do CALL_MCOUNT just after the label.
* Makeconfig (CPPFLAGS-.po): New variable, use -DPROF so assembly
code can call mcount.
Tue Feb 20 23:05:16 1996 Roland McGrath <roland@charlie-brown.gnu.ai.mit.edu>
* time/private.h, time/zdump.c, time/zic.c: Updated verbatim from ADO;
translation markings are now integrated in his distribution.
* stdlib/strtod.c (round_and_return): Add missing (mp_limb) 1 cast.
* po: New directory where `LANG.po' files for message translations
will reside.
* po/SYS_libc.pot: New file, template of message strings as in source.
* MakeTAGS: New rules to build po/SYS_libc.pot automatically from
the source using xgettext.
* Makerules ($(..)po/%.pot): New rule.
* manual/Makefile (../po/manual.pot): New target, make it empty.
* sysdeps/unix/bsd/alarm.c: Moved to sysdeps/unix/alarm.c.
* sysdeps/unix/bsd/nice.c: Moved to sysdeps/unix/nice.c.
* sysdeps/unix/bsd/stime.c: Moved to sysdeps/unix/stime.c.
* sysdeps/unix/bsd/time.c: Moved to sysdeps/unix/time.c.
* sysdeps/unix/bsd/utime.c: Moved to sysdeps/unix/utime.c.
1996-02-22 15:52:20 +00:00
|
|
|
|
link-libc = -Wl,-rpath-link=$(common-objdir) \
|
1995-12-06 00:14:32 +00:00
|
|
|
|
$(common-objpfx)libc.so$(libc.so-version) $(gnulib)
|
1995-11-17 02:33:47 +00:00
|
|
|
|
# Choose the default search path for the dynamic linker based on
|
|
|
|
|
# where we will install libraries.
|
|
|
|
|
ifneq ($(libdir),$(slibdir))
|
|
|
|
|
default-rpath = $(slibdir):$(libdir)
|
|
|
|
|
else
|
|
|
|
|
default-rpath = $(libdir)
|
|
|
|
|
endif
|
1995-08-17 22:55:22 +00:00
|
|
|
|
else
|
|
|
|
|
link-libc = $(common-objpfx)libc.a $(gnulib) $(common-objpfx)libc.a
|
|
|
|
|
endif
|
|
|
|
|
endif
|
1995-02-18 01:27:10 +00:00
|
|
|
|
ifndef gnulib
|
|
|
|
|
gnulib := -lgcc
|
|
|
|
|
endif
|
1995-02-20 10:23:07 +00:00
|
|
|
|
ifeq ($(elf),yes)
|
|
|
|
|
+preinit = crti.o
|
|
|
|
|
+postinit = crtn.o
|
|
|
|
|
endif
|
|
|
|
|
ifdef objpfx
|
|
|
|
|
csu-objpfx = $(objpfx)
|
1995-10-25 02:19:39 +00:00
|
|
|
|
elf-objpfx = $(objpfx)
|
1995-02-20 10:23:07 +00:00
|
|
|
|
else
|
1995-04-08 19:09:39 +00:00
|
|
|
|
csu-objpfx = $(..)csu/
|
1995-10-25 02:19:39 +00:00
|
|
|
|
elf-objpfx = $(..)elf/
|
1995-02-20 10:23:07 +00:00
|
|
|
|
endif
|
1995-02-18 01:27:10 +00:00
|
|
|
|
|
1995-10-09 07:06:29 +00:00
|
|
|
|
ifeq (yes,$(build-shared))
|
|
|
|
|
ifndef rtld-installed-name
|
|
|
|
|
rtld-installed-name = ld.so
|
|
|
|
|
endif
|
|
|
|
|
endif
|
|
|
|
|
|
1995-10-25 02:19:39 +00:00
|
|
|
|
# How to run a program we just linked with our library.
|
|
|
|
|
# The program binary is assumed to be $(word 2,$^).
|
|
|
|
|
built-program-file = $(dir $(word 2,$^))$(notdir $(word 2,$^))
|
|
|
|
|
ifneq (yes,$(build-shared))
|
|
|
|
|
built-program-cmd = $(built-program-file)
|
|
|
|
|
else
|
1995-12-06 00:14:32 +00:00
|
|
|
|
comma = ,
|
1995-10-25 02:19:39 +00:00
|
|
|
|
define built-program-cmd
|
1995-12-06 00:14:32 +00:00
|
|
|
|
LD_LIBRARY_PATH=$(common-objdir)$(patsubst -Wl$(comma)-rpath-link=%,:%,\
|
|
|
|
|
$(filter -Wl$(comma)-rpath-link=%,\
|
1995-10-25 02:19:39 +00:00
|
|
|
|
$(sysdep-LDFLAGS))) \
|
|
|
|
|
$(elf-objpfx)ld.so $(built-program-file)
|
|
|
|
|
endef
|
|
|
|
|
endif
|
|
|
|
|
|
1995-02-18 01:27:10 +00:00
|
|
|
|
ifndef LD
|
|
|
|
|
LD := ld -X
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
ifndef RANLIB
|
|
|
|
|
RANLIB = ranlib
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
# Extra flags to pass to GCC.
|
1996-01-19 18:43:03 +00:00
|
|
|
|
+gccwarn := -Wall -Wwrite-strings -Wno-parentheses -Winline -Wstrict-prototypes
|
1995-02-18 01:27:10 +00:00
|
|
|
|
|
|
|
|
|
# This is the program that generates makefile
|
|
|
|
|
# dependencies from C source files.
|
|
|
|
|
ifndef +mkdep
|
|
|
|
|
+mkdep = $(CC) -M
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
# The program that makes Emacs-style TAGS files.
|
|
|
|
|
ETAGS := etags -T
|
|
|
|
|
|
|
|
|
|
# The `m4' macro processor; this is used by sysdeps/sparc/Makefile (and
|
|
|
|
|
# perhaps others) to preprocess assembly code in some cases.
|
|
|
|
|
M4 = m4
|
|
|
|
|
|
|
|
|
|
####
|
|
|
|
|
#### 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
|
|
|
|
|
# umpteem zillion filenames along with it (we use `...' instead)
|
|
|
|
|
# but we don't want this echoing done when the user has said
|
|
|
|
|
# he doesn't want to see commands echoed by using -s.
|
|
|
|
|
ifneq "$(findstring s,$(MAKEFLAGS))" "" # if -s
|
|
|
|
|
+cmdecho := echo >/dev/null
|
|
|
|
|
else # not -s
|
|
|
|
|
+cmdecho := echo
|
|
|
|
|
endif # -s
|
|
|
|
|
|
|
|
|
|
# These are the flags given to the compiler to tell
|
|
|
|
|
# it what sort of optimization and/or debugging output to do.
|
|
|
|
|
ifndef +cflags
|
|
|
|
|
# If `CFLAGS' was defined, use that.
|
|
|
|
|
ifdef CFLAGS
|
|
|
|
|
+cflags := $(filter-out -I%,$(CFLAGS))
|
|
|
|
|
endif # CFLAGS
|
|
|
|
|
endif # +cflags
|
|
|
|
|
|
|
|
|
|
# If none of the above worked, default to "-g".
|
|
|
|
|
ifeq "$(strip $(+cflags))" ""
|
|
|
|
|
+cflags := $(default_cflags)
|
|
|
|
|
endif # $(+cflags) == ""
|
|
|
|
|
|
|
|
|
|
+cflags := $(+cflags) $(+gccwarn)
|
|
|
|
|
+gcc-nowarn := -w
|
|
|
|
|
|
|
|
|
|
# Don't duplicate options if we inherited variables from the parent.
|
|
|
|
|
+cflags := $(sort $(+cflags))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# These are flags given to the C compiler to tell it to look for include
|
|
|
|
|
# files (including ones given in angle brackets) in the current directory
|
|
|
|
|
# and in the parent library source directory.
|
|
|
|
|
# `+sysdep-includes' will be defined by Makerules.
|
Sat Nov 18 16:46:01 1995 Ulrich Drepper <drepper@gnu.ai.mit.edu>
* libio/Makefile, libio/cleanup.c, libio/clearerr.c, libio/feof.c,
libio/ferror.c, libio/fgetc.c, libio/filedoalloc.c, libio/fileno.c,
libio/fileops.c, libio/fputc.c, libio/freopen.c, libio/fseek.c,
libio/genops.c, libio/getc.c, libio/getchar.c, libio/iofclose.c,
libio/iofdopen.c, libio/iofflush.c, libio/iofgetpos.c, libio/iofgets.c,
libio/iofopen.c, libio/iofprintf.c, libio/iofputs.c, libio/iofread.c,
libio/iofscanf.c, libio/iofsetpos.c, libio/ioftell.c, libio/iofwrite.c,
libio/iogetdelim.c, libio/iogetline.c, libio/iogets.c, libio/iolibio.h,
libio/iopadn.c, libio/ioprims.c, libio/ioputs.c, libio/ioseekoff.c,
libio/ioseekpos.c, libio/iosetbuffer.c, libio/iosetvbuf.c,
libio/iosprintf.c, libio/ioungetc.c, libio/iovsprintf.c,
libio/iovsscanf.c, libio/libio.h, libio/libioP.h, libio/putc.c,
libio/putchar.c, libio/rewind.c, libio/setbuf.c, libio/setlinebuf.c,
libio/stdfiles.c, libio/stdio.c, libio/stdio.h, libio/strfile.h,
libio/strops.c, libio/vasprintf.c, libio/vscanf.c, libio/vsnprintf.c:
New files. Slightly modified version from Linux libc.
* libio/memstream.c, libio/vdprintf.c: New files for functions not
(yet) part of GNU libio.
* libio/iofopncook.c: Implementation of `fopencookie', mainly written
by Per Bothner.
* stdio-common/getline.c: Adapted to libio.
* stdio-common/snprintf.c: Adapted to libio.
* stdio-common/vfprintf.c: Adapted to libio.
* stdio-common/vfscanf.c: Adapted to libio.
* sysdeps/posix/tempname.c: Adapted to libio.
1995-11-20 03:48:11 +00:00
|
|
|
|
+includes = -I. $(filter-out -I,-I$(patsubst %/,%,$(..))) $($(stdio)-include) \
|
1995-02-18 01:27:10 +00:00
|
|
|
|
$(includes) $(+sysdep-includes) $(last-includes)
|
|
|
|
|
|
Sat Nov 18 16:46:01 1995 Ulrich Drepper <drepper@gnu.ai.mit.edu>
* libio/Makefile, libio/cleanup.c, libio/clearerr.c, libio/feof.c,
libio/ferror.c, libio/fgetc.c, libio/filedoalloc.c, libio/fileno.c,
libio/fileops.c, libio/fputc.c, libio/freopen.c, libio/fseek.c,
libio/genops.c, libio/getc.c, libio/getchar.c, libio/iofclose.c,
libio/iofdopen.c, libio/iofflush.c, libio/iofgetpos.c, libio/iofgets.c,
libio/iofopen.c, libio/iofprintf.c, libio/iofputs.c, libio/iofread.c,
libio/iofscanf.c, libio/iofsetpos.c, libio/ioftell.c, libio/iofwrite.c,
libio/iogetdelim.c, libio/iogetline.c, libio/iogets.c, libio/iolibio.h,
libio/iopadn.c, libio/ioprims.c, libio/ioputs.c, libio/ioseekoff.c,
libio/ioseekpos.c, libio/iosetbuffer.c, libio/iosetvbuf.c,
libio/iosprintf.c, libio/ioungetc.c, libio/iovsprintf.c,
libio/iovsscanf.c, libio/libio.h, libio/libioP.h, libio/putc.c,
libio/putchar.c, libio/rewind.c, libio/setbuf.c, libio/setlinebuf.c,
libio/stdfiles.c, libio/stdio.c, libio/stdio.h, libio/strfile.h,
libio/strops.c, libio/vasprintf.c, libio/vscanf.c, libio/vsnprintf.c:
New files. Slightly modified version from Linux libc.
* libio/memstream.c, libio/vdprintf.c: New files for functions not
(yet) part of GNU libio.
* libio/iofopncook.c: Implementation of `fopencookie', mainly written
by Per Bothner.
* stdio-common/getline.c: Adapted to libio.
* stdio-common/snprintf.c: Adapted to libio.
* stdio-common/vfprintf.c: Adapted to libio.
* stdio-common/vfscanf.c: Adapted to libio.
* sysdeps/posix/tempname.c: Adapted to libio.
1995-11-20 03:48:11 +00:00
|
|
|
|
# Since libio has several internal header files, we use a -I instead
|
|
|
|
|
# of many little headers in the top level source directory.
|
|
|
|
|
libio-include = -I$(..)libio
|
1995-02-18 01:27:10 +00:00
|
|
|
|
|
|
|
|
|
# These are the variables that the implicit compilation rules use.
|
|
|
|
|
CPPFLAGS = $(+includes) $(defines) -include $(..)libc-symbols.h \
|
1995-04-12 01:03:38 +00:00
|
|
|
|
$(sysdep-CPPFLAGS) $(CPPFLAGS-$(suffix $@))
|
1996-01-17 02:11:06 +00:00
|
|
|
|
override CFLAGS = $(+cflags) $(sysdep-CFLAGS) $(CFLAGS-$(suffix $@)) \
|
|
|
|
|
$(CFLAGS-$(<F))
|
1995-02-18 01:27:10 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# This is the macro that the implicit linking rules use.
|
|
|
|
|
ifneq "$(filter -g,$(+cflags))" "" # -g is in $(+cflags)
|
|
|
|
|
LDFLAGS := -g
|
|
|
|
|
endif
|
|
|
|
|
|
Thu Mar 16 00:04:41 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
* locale/C-ctype.c: New correct data generated by drepper.
* Rules: Don't use $(libc.a).
Parsing of grouped numbers contributed by Ulrich Drepper.
* stdlib/strtol.c (__strtol_internal): Renamed from strtol. Take
new flag arg; if nonzero, parse locale-dependent thousands
grouping and interpret only the prefix that is correctly grouped.
(strtol): Define this to call _strtol_internal with zero for the flag.
Use a weak symbol for the definition.
* stdlib/strtod.c (strtod, __strtod_internal): Likewise.
Check for the exponent of the number overflowing the float format.
* stdlib/stdlib.h (__strtof, __strtold): Declarations removed.
(__strto{f,d,ld,l,ul,q,uq}_internal): Declare these functions.
[__OPTIMIZE__]: Define inline functions calling those.
* stdlib/grouping.h: New file, written by drepper.
* stdlib/Makefile (distribute): Add grouping.h.
* stdio/vfscanf.c: Grok %' modifier to numeric conversions. Call
__strtoX_internal with the grouping flag set iff the modifier is
present.
Wed Mar 15 00:40:54 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
* sysdeps/generic/memchr.c: Fix typos: limit.h -> limits.h.
* mach/Machrules: Produce static deps for all object flavors.
[interface-library]: Remove all these variables and rules.
($(interface-library)-routines): Define this variable.
(extra-libs): Append $(interface-library) to this.
* mach/Makefile (interface-library): Omit .a suffix.
* hurd/Makefile: Likewise.
Tue Mar 14 23:40:31 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
* stdio/internals.c (flushbuf): If !FLUSH_ONLY, don't skip out
early if no new data in buffer after priming.
* Makerules (object-suffixes, libtypes): Move all these variables
to Makeconfig.
* Makeconfig (object-suffixes, libtypes): Moved here from Makerules.
* Makerules (build-extra-lib): New canned sequence.
* sysdeps/mach/hurd/euidaccess.c: Include fcntl.h. Declare ERR;
fix uses of FILE and PORT. Remove bogus weak alias for `access'.
* sysdeps/mach/hurd/dirfd.c: Include hurd/fd.h and errno.h.
Add missing semicolon.
* sysdeps/mach/hurd/opendir.c: Include hurd/fd.h. Use a `struct
hurd_fd *' temp var, since DIRP->__fd is a `void *'.
* sysdeps/mach/hurd/readdir.c: Include hurd/fd.h.
* stdlib/wcstombs.c: #if 0 out code for non-ASCII chars until the
locale data format is implemented.
* sysdeps/mach/hurd/i386/trampoline.c (_hurd_setup_sighandler):
Pass &__sigreturn on the stack to the trampoline code, so it is
not position-dependent.
* stdio/printf_fp.c (NDEBUG): Define this to disable assert.
Don't include <stdarg.h>.
(__printf_fp): Last arg ARGS is now `const void **const';
dereference ARGS[0] instead of using va_arg.
* locale/setlocale.c: In LC_ALL case, initialize CATEGORY before
loop to install data.
* locale/loadlocale.c (_nl_category_num_items): Use _NL_ITEM_INDEX
to extract number from item code.
(_nl_load_locale): Close the descriptor when finished.
* malloc/realloc.c (_realloc_internal): Call _malloc_internal in
place of malloc.
* time/tzfile.c (__tzfile_default): Initialize RULE_STDOFF to zero.
1995-03-16 05:32:45 +00:00
|
|
|
|
|
|
|
|
|
# Enable object files for different versions of the library.
|
|
|
|
|
# Various things use $(object-suffixes) to know what all to make.
|
|
|
|
|
# The compilation rules use $(CPPFLAGS-${SUFFIX}) and $(CFLAGS-${SUFFIX})
|
|
|
|
|
# to pass different flags for each flavor.
|
|
|
|
|
libtypes = $(foreach o,$(object-suffixes),$(libtype$o))
|
|
|
|
|
object-suffixes := .o
|
|
|
|
|
libtype.o := lib%.a
|
|
|
|
|
ifeq (yes,$(build-shared))
|
|
|
|
|
# Under --enable-shared, we will build a shared library of PIC objects.
|
|
|
|
|
# The PIC object files are named foo.so.
|
|
|
|
|
object-suffixes += .so
|
|
|
|
|
CPPFLAGS-.so = -DPIC
|
|
|
|
|
CFLAGS-.so = -fPIC
|
|
|
|
|
libtype.so := lib%_pic.a
|
|
|
|
|
endif
|
|
|
|
|
ifeq (yes,$(build-profile))
|
|
|
|
|
# Under --enable-profile, we will build a static library of profiled objects.
|
|
|
|
|
# The profiled object files are named foo.po.
|
|
|
|
|
object-suffixes += .po
|
Wed Feb 21 02:25:07 1996 Roland McGrath <roland@charlie-brown.gnu.ai.mit.edu>
* Rules (others): Depend on $(extra-objs), $(install-lib),
$(install-bin), $(install-sbin), in object directory.
* Makeconfig (link-libc): Don't pass -rpath option with default
path, since ld.so should use the same default.
* Makerules (build-shlib): Likewise.
* Makerules (make-target-directory): Use mkinstalldirs.
* sysdeps/mach/i386/sysdep.h: Include unix/i386/sysdep.h to
redefine ENTRY et al.
* sysdeps/unix/sysv/linux/i386/sysdep.h (NO_UNDERSCORES, ENTRY):
Macros removed. The code in unix/i386/sysdep.h should now suffice.
* sysdeps/unix/i386/sysdep.h (ALIGNARG): New macro, defns for
[HAVE_ELF] and not.
(ENTRY): Use it in .align directive.
(CALL_MCOUNT): New macro, empty unless [PROF].
(ENTRY): Do CALL_MCOUNT just after the label.
* Makeconfig (CPPFLAGS-.po): New variable, use -DPROF so assembly
code can call mcount.
Tue Feb 20 23:05:16 1996 Roland McGrath <roland@charlie-brown.gnu.ai.mit.edu>
* time/private.h, time/zdump.c, time/zic.c: Updated verbatim from ADO;
translation markings are now integrated in his distribution.
* stdlib/strtod.c (round_and_return): Add missing (mp_limb) 1 cast.
* po: New directory where `LANG.po' files for message translations
will reside.
* po/SYS_libc.pot: New file, template of message strings as in source.
* MakeTAGS: New rules to build po/SYS_libc.pot automatically from
the source using xgettext.
* Makerules ($(..)po/%.pot): New rule.
* manual/Makefile (../po/manual.pot): New target, make it empty.
* sysdeps/unix/bsd/alarm.c: Moved to sysdeps/unix/alarm.c.
* sysdeps/unix/bsd/nice.c: Moved to sysdeps/unix/nice.c.
* sysdeps/unix/bsd/stime.c: Moved to sysdeps/unix/stime.c.
* sysdeps/unix/bsd/time.c: Moved to sysdeps/unix/time.c.
* sysdeps/unix/bsd/utime.c: Moved to sysdeps/unix/utime.c.
1996-02-22 15:52:20 +00:00
|
|
|
|
CPPFLAGS-.po = -DPROF
|
1996-02-16 15:14:24 +00:00
|
|
|
|
CFLAGS-.po = -pg
|
Thu Mar 16 00:04:41 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
* locale/C-ctype.c: New correct data generated by drepper.
* Rules: Don't use $(libc.a).
Parsing of grouped numbers contributed by Ulrich Drepper.
* stdlib/strtol.c (__strtol_internal): Renamed from strtol. Take
new flag arg; if nonzero, parse locale-dependent thousands
grouping and interpret only the prefix that is correctly grouped.
(strtol): Define this to call _strtol_internal with zero for the flag.
Use a weak symbol for the definition.
* stdlib/strtod.c (strtod, __strtod_internal): Likewise.
Check for the exponent of the number overflowing the float format.
* stdlib/stdlib.h (__strtof, __strtold): Declarations removed.
(__strto{f,d,ld,l,ul,q,uq}_internal): Declare these functions.
[__OPTIMIZE__]: Define inline functions calling those.
* stdlib/grouping.h: New file, written by drepper.
* stdlib/Makefile (distribute): Add grouping.h.
* stdio/vfscanf.c: Grok %' modifier to numeric conversions. Call
__strtoX_internal with the grouping flag set iff the modifier is
present.
Wed Mar 15 00:40:54 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
* sysdeps/generic/memchr.c: Fix typos: limit.h -> limits.h.
* mach/Machrules: Produce static deps for all object flavors.
[interface-library]: Remove all these variables and rules.
($(interface-library)-routines): Define this variable.
(extra-libs): Append $(interface-library) to this.
* mach/Makefile (interface-library): Omit .a suffix.
* hurd/Makefile: Likewise.
Tue Mar 14 23:40:31 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
* stdio/internals.c (flushbuf): If !FLUSH_ONLY, don't skip out
early if no new data in buffer after priming.
* Makerules (object-suffixes, libtypes): Move all these variables
to Makeconfig.
* Makeconfig (object-suffixes, libtypes): Moved here from Makerules.
* Makerules (build-extra-lib): New canned sequence.
* sysdeps/mach/hurd/euidaccess.c: Include fcntl.h. Declare ERR;
fix uses of FILE and PORT. Remove bogus weak alias for `access'.
* sysdeps/mach/hurd/dirfd.c: Include hurd/fd.h and errno.h.
Add missing semicolon.
* sysdeps/mach/hurd/opendir.c: Include hurd/fd.h. Use a `struct
hurd_fd *' temp var, since DIRP->__fd is a `void *'.
* sysdeps/mach/hurd/readdir.c: Include hurd/fd.h.
* stdlib/wcstombs.c: #if 0 out code for non-ASCII chars until the
locale data format is implemented.
* sysdeps/mach/hurd/i386/trampoline.c (_hurd_setup_sighandler):
Pass &__sigreturn on the stack to the trampoline code, so it is
not position-dependent.
* stdio/printf_fp.c (NDEBUG): Define this to disable assert.
Don't include <stdarg.h>.
(__printf_fp): Last arg ARGS is now `const void **const';
dereference ARGS[0] instead of using va_arg.
* locale/setlocale.c: In LC_ALL case, initialize CATEGORY before
loop to install data.
* locale/loadlocale.c (_nl_category_num_items): Use _NL_ITEM_INDEX
to extract number from item code.
(_nl_load_locale): Close the descriptor when finished.
* malloc/realloc.c (_realloc_internal): Call _malloc_internal in
place of malloc.
* time/tzfile.c (__tzfile_default): Initialize RULE_STDOFF to zero.
1995-03-16 05:32:45 +00:00
|
|
|
|
libtype.po = lib%_p.a
|
|
|
|
|
endif
|
|
|
|
|
ifeq (yes,$(build-omitfp))
|
|
|
|
|
# Under --enable-omitfp, we build an the library optimized without
|
|
|
|
|
# debugging information using -fomit-frame-pointer, and build an extra
|
|
|
|
|
# library with debugging information. The debuggable objects are named foo.go.
|
|
|
|
|
object-suffixes += .go
|
|
|
|
|
CFLAGS-.go = -g
|
|
|
|
|
CFLAGS-.o = -g0 -O99 -fomit-frame-pointer
|
|
|
|
|
CFLAGS-.so += $(CFLAGS.o)
|
|
|
|
|
libtype.go = lib%_g.a
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
|
1995-02-18 01:27:10 +00:00
|
|
|
|
+gnu-stabs = $(shell echo>&2 '*** BARF ON ME')
|
|
|
|
|
|
|
|
|
|
ifneq ($(BUILD_CC),$(CC))
|
|
|
|
|
cross-compiling := yes
|
|
|
|
|
else
|
|
|
|
|
cross-compiling := no
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
endif # Makeconfig not yet included
|