11336c165c
Wed Oct 9 00:30:33 1996 Ulrich Drepper <drepper@cygnus.com> * inet/getnetgrent_r.c: Correct netgroup implementation. A specification of a netgroup can also name another netgroup. * nss/nss_files/files-netgrp.c: Likewise. * inet/netgroup.h: Add fields to hold additional information. Tue Oct 8 21:51:14 1996 Arnold D. Robbins <arnold@skeeve.atl.ga.us> * posix/getopt.c: Implement POSIX -W option handling. When the option string contains "W;" -W foo is handled like --foo. Tue Oct 8 12:27:26 1996 Ulrich Drepper <drepper@cygnus.com> * sysdeps/unix/sysv/linux/i386/clone.S: Define _ERRNO_H before inclusing <errnos.h> so we really get error symbols defined. * sysdeps/unix/sysv/linux/m68k/clone.S: Likewise. * sysdeps/unix/sysv/linux/alpha/clone.S: Likewise. * sunrpc/auth_unix.c (authunix_create_default): Don't use fixed size array for getgroups call. Instead get maximal number via sysconf. But discard list to NGRPS elements before calling XDR function since Sun's code cannot handle longer lists. Based on a patch by Thorsten Kukuk <kukuk@weber.uni-paderborn.de>. * sysdeps/stub/e_j0l.c: Define y0l as well. * sysdeps/stub/e_j1l.c: Define y1l as well. * sysdeps/stub/e_jnl.c: Define ynl as well. * posix/unistd.h: Correct prototype for execlp. * sysdeps/unix/sysv/linux/posix_opt.h: Define _POSIX_NO_TRUNC. Mon Oct 7 22:18:03 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * Makeconfig (sysdep-library-path): New variable. (built-program-cmd): Use it here to properly build a colon separated library path. Mon Oct 7 22:11:55 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * crypt/md5-crypt.c (md5_crypt_r): Add missing parens around & within comparison. Fix comments. (md5_crypt): Fix comment. Tue Oct 8 05:10:49 1996 Ulrich Drepper <drepper@cygnus.com> * sysdeps/unix/sysv/linux/errnos.h: Only include <linux/errnos.h> when _ERRNO_H is defined. [!_ERRNO_H && __need_Emath]: Define value for EDOM and ERANGE. Should there ever be a Linux port where the numeric values are not 33 and 34 this file must change. Mon Oct 7 13:54:04 1996 Ulrich Drepper <drepper@cygnus.com> * libio/iofgets.c (_IO_fgets): Use _IO_flockfile instead of __flockfile. Mon Oct 7 11:01:45 1996 Andreas Jaeger <aj@arthur.pfalz.de> * string/tst-strlen.c (main): Provide prototype. * malloc/mallocbug.c: Likewise. * io/test-utime.c: Likewise. * sysdeps/generic/crypt-entry.c: Correct typo. Mon Oct 7 13:42:20 1996 Ulrich Drepper <drepper@cygnus.com> * elf/dl-open.c (_dl_open): Check against _dl_sysdep_start to test for libc.a. Checking _DYNAMIC is of no worth here. Suggested by Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>. * nss/nss_files/files-parse.c: Define LOOKUP_NAME even if EXTERN_PARSER is defined. Sat Oct 5 17:05:36 1996 Andreas Jaeger <aj@arthur.pfalz.de> * Rules (dep-dummy-lib): Correct prototype for __dummy__. * crypt/md5-crypt.c: Fix typos in comments. * gmon/gmon.c: Provide prototypes. * db/makedb.c: Likewise. * locale/programs/xmalloc.c: Likewise. * stdio-common/bug11.c (main): Likewise. * stdio-common/bug7.c (main): Likewise. * stdio-common/bug8.c (main): Likewise. * stdio-common/bug9.c (main): Likewise. * stdio-common/scanf1.c (main): Likewise. * stdio-common/scanf2.c (main): Likewise. * stdio-common/scanf5.c (main): Likewise. * stdio-common/scanf6.c (main): Likewise. * stdio-common/scanf7.c (main): Likewise. * stdio-common/scanf8.c (main): Likewise. * stdio-common/temptest.c (main): Likewise. * stdio-common/test-fwrite.c (main): Likewise. * stdio-common/tst-printf.c: Likewise. * stdio-common/tstdiomisc.c: Likewise. * stdio-common/tstgetln.c (main): Likewise. * stdlib/testmb.c (main): Likewise. * stdio-common/scanf4.c (main): Correct prototype, remove unused variable n. * stdio-common/scanf3.c (main): Correct prototype, change declaration of s to reduce warnings. * stdio-common/bug10.c (main): Likewise. * stdio-common/tfformat.c: Provide prototype, remove unused reference to dump_stats, add braces in sprint_doubles. * stdio-common/tiformat.c: Likewise. * stdio-common/test_rdwr.c (main): Parameter `where' is long in printf call. Mon Oct 7 14:04:26 1996 NIIBE Yutaka <gniibe@mri.co.jp> * sysdeps/unix/sysv/linux/sys/soundcard.h: Fix typo. * shadow/putspent.c: Don't write colon after flag field. * sysdeps/unix/sysv/linux/net/if_ppp.h: New file. Wrapper around kernel header. * sysdeps/unix/sysv/linux/net/ppp-comp.h: Likewise. * sysdeps/unix/sysv/linux/net/ppp_defs.h: Likewise. * sysdeps/unix/sysv/linux/Dist: Mention new files. Mon Oct 7 00:58:19 1996 Ulrich Drepper <drepper@cygnus.com> * sysdeps/i386/i586/strchr.S: Correct handling of first bytes to get pointer aligned. Reported by Matthias Urlichs <smurf@noris.de>. * sysdeps/posix/euidaccess.c [_LIBC]: Avoid calling get?id functions by using __libc_enable_secure variable. * sysdeps/libm-i387/s_copysignl.S: Correct loading of return value.
554 lines
17 KiB
Plaintext
554 lines
17 KiB
Plaintext
# Copyright (C) 1991, 92, 93, 94, 95, 96 Free Software Foundation, Inc.
|
||
# 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
|
||
|
||
# $(common-objdir) is the place to put objects and
|
||
# such that are not specific to a single subdir.
|
||
ifdef objdir
|
||
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
|
||
endif
|
||
|
||
# Root of the sysdeps tree.
|
||
sysdep_dir := $(..)sysdeps
|
||
export sysdep_dir := $(sysdep_dir)
|
||
|
||
# Get the values defined by options to `configure'.
|
||
include $(common-objpfx)config.make
|
||
|
||
# Complete path to sysdep dirs.
|
||
full-config-sysdirs := $(filter /%, $(config-sysdirs)) \
|
||
$(addprefix $(..), $(filter-out /%, $(config-sysdirs)))
|
||
export full-config-sysdirs := $(full-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
|
||
# 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.
|
||
$(common-objpfx)config.make: $(common-objpfx)config.status $(..)config.h.in
|
||
cd $(<D); $(SHELL) $(<F)
|
||
|
||
# Find all the sysdeps configure fragments, to make sure we re-run
|
||
# configure when any of them changes.
|
||
$(common-objpfx)config.status: $(..)configure \
|
||
$(foreach dir,$(full-config-sysdirs),\
|
||
$(wildcard \
|
||
$(dir)/Implies) \
|
||
$(patsubst %.in,%,\
|
||
$(firstword $(wildcard \
|
||
$(addprefix $(dir)/,configure configure.in)))))
|
||
@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
|
||
|
||
# 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
|
||
|
||
# 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
|
||
|
||
# Where to install the shared library and dynamic linker.
|
||
ifndef slibdir
|
||
slibdir = $(exec_prefix)/lib
|
||
endif
|
||
|
||
# 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
|
||
|
||
# Where to install machine-independent data files.
|
||
# These are the timezone database, and the locale database.
|
||
ifndef datadir
|
||
datadir = $(prefix)/share
|
||
endif
|
||
|
||
# Where to install the timezone data files (which are machine-independent).
|
||
ifndef zonedir
|
||
zonedir = $(datadir)/zoneinfo
|
||
endif
|
||
|
||
# Where to install the locale and message catalog data files (which are
|
||
# machine-independent).
|
||
ifndef localedir
|
||
localedir = $(datadir)/locale
|
||
endif
|
||
|
||
# Where to install the locale charmap source files.
|
||
ifndef i18ndir
|
||
i18ndir = $(datadir)/i18n
|
||
endif
|
||
|
||
|
||
# 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 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
|
||
|
||
# Command for linking programs with the C library.
|
||
ifndef +link
|
||
+link = $(CC) -nostdlib -nostartfiles -o $@ \
|
||
$(sysdep-LDFLAGS) $(config-LDFLAGS) $(LDFLAGS) \
|
||
$(addprefix $(csu-objpfx),start.o) $(+preinit) \
|
||
$(filter-out $(addprefix $(csu-objpfx),start.o) $(+preinit) \
|
||
$(link-extra-libs) $(common-objpfx)libc% $(+postinit),$^) \
|
||
$(link-extra-libs) $(link-libc) $(+postinit)
|
||
endif
|
||
ifndef config-LDFLAGS
|
||
ifeq (yes,$(build-shared))
|
||
config-LDFLAGS = -Wl,-dynamic-linker=$(slibdir)/$(rtld-installed-name)
|
||
endif
|
||
endif
|
||
ifndef link-libc
|
||
ifeq (yes,$(build-shared))
|
||
# We need the versioned name of libc.so in the deps of $(others) et al
|
||
# so that the symlink to libc.so is created before anything tries to
|
||
# run the linked programs.
|
||
link-libc = -Wl,-rpath-link=$(rpath-link) \
|
||
$(common-objpfx)libc.so$(libc.so-version) \
|
||
$(elfobjdir)/$(rtld-installed-name) \
|
||
$(common-objpfx)libc.a $(gnulib)
|
||
# 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
|
||
# This is how to find at build-time things that will be installed there.
|
||
rpath-link = $(common-objdir):$(elfobjdir):$(nssobjdir)
|
||
nssobjdir := $(patsubst ../$(subdir),.,$(common-objpfx)nss)
|
||
else
|
||
link-libc = $(common-objpfx)libc.a $(gnulib) $(common-objpfx)libc.a
|
||
endif
|
||
endif
|
||
ifndef link-extra-libs
|
||
ifeq (yes,$(build-shared))
|
||
link-extra-libs = $(foreach lib,$(LDLIBS-$(@F)),$(common-objpfx)$(lib).so$($(notdir $(lib)).so-version))
|
||
else
|
||
link-extra-libs = $(foreach lib,$(LDLIBS-$(@F)),$(common-objpfx)$(lib).a)
|
||
endif
|
||
endif
|
||
ifndef gnulib
|
||
gnulib := -lgcc
|
||
endif
|
||
ifeq ($(elf),yes)
|
||
+preinit = $(addprefix $(csu-objpfx),crti.o)
|
||
+postinit = $(addprefix $(csu-objpfx),crtn.o)
|
||
endif
|
||
csu-objpfx = $(common-objpfx)csu/
|
||
elf-objpfx = $(common-objpfx)elf/
|
||
db-objpfx = $(common-objpfx)db/
|
||
|
||
ifeq (yes,$(build-shared))
|
||
# The name under which the run-time dynamic linker is installed.
|
||
# We are currently going for the convention that `/lib/ld.so.1'
|
||
# names the SVR4/ELF ABI-compliant dynamic linker.
|
||
ifndef rtld-installed-name
|
||
rtld-installed-name = ld.so.1
|
||
endif
|
||
endif
|
||
|
||
# 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
|
||
comma = ,
|
||
sysdep-library-path = \
|
||
$(subst $(empty) ,:,$(strip $(patsubst -Wl$(comma)-rpath-link=%, %,\
|
||
$(filter -Wl$(comma)-rpath-link=%,\
|
||
$(sysdep-LDFLAGS)))))
|
||
define built-program-cmd
|
||
LD_LIBRARY_PATH=$(rpath-link)$(patsubst %,:%,$(sysdep-library-path)) \
|
||
$(elf-objpfx)$(rtld-installed-name) $(built-program-file)
|
||
endef
|
||
endif
|
||
|
||
ifndef LD
|
||
LD := ld -X
|
||
endif
|
||
|
||
ifndef RANLIB
|
||
RANLIB = ranlib
|
||
endif
|
||
|
||
# Extra flags to pass to GCC.
|
||
+gccwarn := -Wall -Wwrite-strings -Wno-parentheses -Winline -Wstrict-prototypes
|
||
|
||
# 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.
|
||
+includes = -I. $(filter-out -I,-I$(patsubst %/,%,$(..))) $($(stdio)-include) \
|
||
$(includes) $(+sysdep-includes) $(last-includes)
|
||
|
||
# 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
|
||
|
||
# These are the variables that the implicit compilation rules use.
|
||
CPPFLAGS = $(+includes) $(defines) -include $(..)libc-symbols.h \
|
||
$(sysdep-CPPFLAGS) $(CPPFLAGS-$(suffix $@))
|
||
override CFLAGS = $(+cflags) $(sysdep-CFLAGS) $(CFLAGS-$(suffix $@)) \
|
||
$(CFLAGS-$(<F))
|
||
|
||
|
||
# This is the macro that the implicit linking rules use.
|
||
ifneq "$(filter -g,$(+cflags))" "" # -g is in $(+cflags)
|
||
LDFLAGS := -g
|
||
endif
|
||
|
||
|
||
# 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
|
||
CPPFLAGS-.po = -DPROF
|
||
CFLAGS-.po = -pg
|
||
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
|
||
|
||
|
||
+gnu-stabs = $(shell echo>&2 '*** BARF ON ME')
|
||
|
||
ifndef BUILD_CC
|
||
BUILD_CC = $(CC)
|
||
endif
|
||
|
||
ifneq ($(BUILD_CC),$(CC))
|
||
cross-compiling := yes
|
||
else
|
||
cross-compiling := no
|
||
endif
|
||
|
||
# Figure out the version numbers from version.h.
|
||
|
||
$(common-objpfx)version.mk: $(..)version.h $(..)Makeconfig
|
||
sed -n -e 's/^.*RELEASE.*"\([^"]*\)".*$$/release=\1/p' \
|
||
-e 's/^.*VERSION.*"\([^"]*\)".*$$/version=\1/p' \
|
||
< $< > $@-new
|
||
mv -f $@-new $@
|
||
|
||
ifeq (yes, $(build-shared))
|
||
|
||
# Process the shlib-versions file, which tells us what shared library
|
||
# version numbers to use when we install shared objects on this system.
|
||
-include $(common-objpfx)soversions.mk
|
||
$(common-objpfx)soversions.mk: $(..)shlib-versions $(..)Makeconfig \
|
||
$(wildcard $(patsubst %, $(..)%/shlib-versions,\
|
||
$(add-ons))) \
|
||
$(common-objpfx)config.make
|
||
(file="$(wildcard $(patsubst %,$(..)%/shlib-versions,$(add-ons))) \
|
||
$(..)shlib-versions"; \
|
||
for f in $$file; do \
|
||
sed 's/#.*$$//' $$f | while read conf versions; do \
|
||
test -n "$$versions" || continue; \
|
||
case '$(config-machine)-$(config-vendor)-$(config-os)' in $$conf)\
|
||
for v in $$versions; do \
|
||
lib=`echo $$v | sed 's/=.*$$//'`; \
|
||
if eval "test -z \"\$$vers_lib$$lib\""; then \
|
||
eval vers_lib$${lib}=yes; \
|
||
echo $$v | sed "s/^.*=/$$lib.so-version=./"; \
|
||
fi; \
|
||
done ;; esac; done; \
|
||
done;) > $@T; exit 0
|
||
mv -f $@T $@
|
||
|
||
# Get $(version) defined with the release version number.
|
||
-include $(common-objpfx)version.mk
|
||
|
||
endif # build-shared
|
||
|
||
endif # Makeconfig not yet included
|