diff options
author | Andreas Jaeger <aj@suse.de> | 2012-03-20 20:40:16 +0100 |
---|---|---|
committer | Andreas Jaeger <aj@suse.de> | 2012-03-20 20:40:16 +0100 |
commit | d6373f9ce3972a1891e4d09479a98e0dbc7e3d73 (patch) | |
tree | 39f9e5c231c70fde2c6326d066a3b9fd892042c2 /sysdeps/unix/Makefile | |
parent | 1d6c3d237d10606121c959b9bd2ae722f79ea899 (diff) | |
parent | 1897ad44326bb7761dcda46132ae303f7288aba9 (diff) | |
download | glibc-d6373f9ce3972a1891e4d09479a98e0dbc7e3d73.tar.gz glibc-d6373f9ce3972a1891e4d09479a98e0dbc7e3d73.tar.xz glibc-d6373f9ce3972a1891e4d09479a98e0dbc7e3d73.zip |
Merge branch 'master' into elf-move
Diffstat (limited to 'sysdeps/unix/Makefile')
-rw-r--r-- | sysdeps/unix/Makefile | 240 |
1 files changed, 1 insertions, 239 deletions
diff --git a/sysdeps/unix/Makefile b/sysdeps/unix/Makefile index 4b887a7a87..c8ef96d50e 100644 --- a/sysdeps/unix/Makefile +++ b/sysdeps/unix/Makefile @@ -1,5 +1,4 @@ -# Copyright (C) 1991,1992,1993,1994,1995,1996,1997,1998,1999,2003,2006,2008,2009 -# Free Software Foundation, Inc. +# Copyright (C) 1991-2012 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 @@ -16,243 +15,6 @@ # License along with the GNU C Library; if not, see # <http://www.gnu.org/licenses/>. -# The unix-specific configure fragment writes `unix-generated' in config.make. -config-generated := $(config-generated) $(unix-generated) - -ifeq (,$(filter-out $(sysdep_dir)/generic/ $(common-objpfx),\ - $(dir $(firstword $(wildcard $(+sysdep_dirs:%=%/bits/local_lim.h)))))) - -ifneq (,$(wildcard $(sysincludedir)/sys/param.h)) -mk-local_lim-CFLAGS += -DHAVE_SYS_PARAM_H -endif -ifneq (,$(wildcard $(sysincludedir)/sys/limits.h)) -mk-local_lim-CFLAGS += -DHAVE_SYS_LIMITS_H -endif -ifneq (,$(wildcard $(sysincludedir)/limits.h)) -mk-local_lim-CFLAGS += -DHAVE_LIMITS_H -endif - -$(common-objpfx)bits/local_lim.h: $(common-objpfx)mk-local_lim - $(dir $<)$(notdir $<) > $@-t - mv -f $@-t $@ -$(common-objpfx)mk-local_lim: $(sysdep_dir)/unix/mk-local_lim.c - $(common-objdir-compile) - -before-compile += $(common-objpfx)bits/local_lim.h -common-generated += bits/local_lim.h mk-local_lim - -endif - -ifeq (,$(filter-out $(sysdep_dir)/generic/ $(common-objpfx),\ - $(patsubst %/sys/param.h,%/,\ - $(firstword $(wildcard $(+sysdep_dirs:%=%/sys/param.h)))))) - -before-compile := $(before-compile) $(common-objpfx)sys/param.h - -$(common-objpfx)sys/param.h: $(sysincludedir)/sys/param.h - $(make-target-directory) - (echo '#ifndef _SYS_PARAM_H'; \ - echo '#define _SYS_PARAM_H 1'; \ - echo '#include <endian.h>'; \ - $(AWK) < $< \ - '/^#define[ ]*NULL/ { print "#ifndef NULL"; \ - print $$0; \ - print "#endif"; \ - was_null = 1 } \ - { if (!was_null) print $$0; \ - was_null = 0 }'; \ - echo '#ifndef MAXHOSTNAMELEN'; \ - echo '#define MAXHOSTNAMELEN 64 /* XXX */'; \ - echo '#endif /* No MAXHOSTNAMELEN. */'; \ - echo '#endif /* sys/param.h */') > $@-tmp - mv $@-tmp $@ - -$(common-objpfx)param.h.c: $(sysincludedir)/sys/param.h - rm -f $@ - cp $< $@ -$(common-objpfx)param.h.dep: $(common-objpfx)param.h.c \ - $(sysdep_dir)/unix/Makefile - $(+mkdep) -I$(sysincludedir) $< \ - | sed > $@-t \ - -e 's@$(sysincludedir)/sys/param.h@@' \ - -e 's@^.*:@@' \ - -e 's@$<@@g' \ - -e 's@$(sysincludedir)/*@@g' \ - -e 's@\\$$@@' \ - -e 's@^@sys/param.h-includes := $$(sys/param.h-includes) @' - mv $@-t $@ - -# Get the generated definition of sys/param.h-includes. -ifndef no_deps --include $(common-objpfx)param.h.dep -endif - -# Don't preempt our own headers. -sys/param.h-includes := \ - $(filter-out $(patsubst $(..)%,%,\ - $(wildcard $(addprefix $(..),\ - $(sys/param.h-includes)))),\ - $(sys/param.h-includes)) - - -.PHONY: sys/param.h-includes -sys/param.h-includes: $(addprefix $(common-objpfx),$(sys/param.h-includes)) - -ifdef sys/param.h-includes -# Copy the system files to $(common-objdir). -$(addprefix $(common-objpfx),$(sys/param.h-includes)): $(common-objpfx)%: \ - $(sysincludedir)/% - $(make-target-directory) -# Some of these files sometimes contain conflicting declarations for htons, -# ntohs, etc. They also often contain definitions of *_ENDIAN and -# BYTE_ORDER, which we define ourselves in <endian.h>. - sed -e '/[ ]*[hn]to[nh][sl][ (]*/d' \ - -e '/^#define[ ]*[A-Z]*_ENDIAN/d' \ - -e '/^#define[ ]*BYTE_ORDER/d' \ - $< > $@-t - mv $@-t $@ -endif - -common-generated := $(common-generated) \ - sys/param.h $(sys/param.h-includes) param.h.c param.h.dep - - -ifeq ($(subdir),misc) - -# Install system headers the system sys/param.h uses. - -sysdep_headers := $(sysdep_headers) $(sys/param.h-includes) - -endif # misc - -endif # No sysdep sys/param.h. - -ifeq (,$(filter-out $(sysdep_dir)/generic/ $(common-objpfx),\ - $(dir $(firstword $(wildcard $(+sysdep_dirs:%=%/bits/errno.h)))))) - -# These need to exist before any compiling is done, -# so cpp doesn't instead find the generic versions. -before-compile := $(before-compile) $(common-objpfx)bits/errno.h - -$(common-objpfx)bits/errno.h: $(common-objpfx)make-errnos - $(dir $<)$(notdir $<) > $@-tmp - mv $@-tmp $@ - -$(common-objpfx)make-errnos: $(common-objpfx)make-errnos.c - $(common-objdir-compile) - -$(common-objpfx)make-errnos.c: $(sysdep_dir)/unix/errnos-tmpl.c \ - $(sysdep_dir)/unix/errnos.awk $(common-objpfx)errnos - $(AWK) -f $(word 2,$^) errnos="`tr '\012' ' ' < $(word 3,$^)`" $< > $@T - mv $@T $@ - -$(common-objpfx)errnos: $(wildcard $(sysincludedir)/errno.h \ - $(sysincludedir)/sys/errno.h) - sed -n 's/^#define[ ]*\(E[A-Z0-9][A-Z0-9]*\)[ ].*$$/\1/p' \ - $^ > $@-tmp - mv $@-tmp $@ - -common-generated := $(common-generated) \ - errnos.h errnos make-errnos make-errnos.c -endif - -ifeq (,$(filter-out $(sysdep_dir)/generic/ $(common-objpfx),\ - $(dir $(firstword $(wildcard $(+sysdep_dirs:%=%/bits/ioctls.h)))))) - -before-compile := $(before-compile) $(common-objpfx)bits/ioctls.h - -$(common-objpfx)bits/ioctls.h: $(common-objpfx)make-ioctls - $(dir $<)$(notdir $<) > $@-tmp - mv $@-tmp $@ - -ioctl-includes := sys/termios.h net/nit.h -ioctl-includes := $(wildcard $(addprefix $(sysincludedir)/,$(ioctl-includes))) -make-ioctls-CFLAGS := $(subst /,_,$(subst .,_,\ - $(patsubst $(sysincludedir)/%,-DHAVE_%,\ - $(ioctl-includes)))) - -$(common-objpfx)make-ioctls: $(common-objpfx)make-ioctls.c - $(common-objdir-compile) - -$(common-objpfx)make-ioctls.c: $(sysdep_dir)/unix/ioctls-tmpl.c \ - $(sysdep_dir)/unix/ioctls.awk \ - $(common-objpfx)ioctls - $(AWK) -f $(word 2,$^) requests="`cat $(word 3,$^)`" $< > $@T - mv $@T $@ - - -bits_termios.h := $(firstword $(wildcard $(+sysdep_dirs:%=%/bits/termios.h))) -ifeq ($(bits_termios.h),$(sysdep_dir)/generic/bits/termios.h) -bits_termios.h := # Ignore the generic version. -endif - -# If there is a system-specific <bits/termios.h> file, we want to omit -# all the symbols it defines from ioctls. Otherwise, both -# <bits/ioctls.h> and <bits/termios.h> would define them. The -# system-specific <bits/termios.h> file presumably defines them with -# the same values as we find from the system's headers. We also want -# to omit from ioctls the symbols defined in our own -# <sys/ttydefaults.h>, to avoid multiple definition conflicts. We use -# snarf-ioctls on these files to find what symbols we want to omit. -# fgrep -xv gives all lines which do not match in their entirety; -# without -x, CSTOP's presence elided TIOCSTOP. - -$(common-objpfx)ioctls: $(sysdep_dir)/unix/snarf-ioctls \ - $(sysincludedir)/sys/ioctl.h $(ioctl-includes) - $(dir $<)$(notdir $<) $(filter-out $<,$^) \ - | fgrep -xv "`($(dir $<)$(notdir $<) $(bits_termios.h) \ - $(..)sysdeps/generic/sys/ttydefaults.h; \ - echo NULL) \ - | sort | uniq`" \ - | sort | uniq | tr '\012' ' ' > $@-tmp - mv $@-tmp $@ - -common-generated := $(common-generated) \ - bits/ioctls.h ioctls make-ioctls make-ioctls.c -endif - -ifeq (,$(filter-out $(sysdep_dir)/generic/ $(common-objpfx),\ - $(dir $(firstword $(wildcard $(+sysdep_dirs:%=%/sys/syscall.h)))))) - -# The syscall code assumes a file <sys/syscall.h> that defines macros -# `SYS_call' for syscall `call'. Variations on this I have seen include: -# it's in <sys/syscall.h>; -# it's in <sys.s>; -# it defines `CALL' instead of `SYS_call'. -# Irix has a <syscall.h> which is not what we want, so check for <sys.s> first. - -# Find a file that might have these. NOTE: This list of possibilities is -# repeated in sysdeps/unix/configure and the two should be kept in sync. -syscall.h := $(firstword $(wildcard $(addprefix $(sysincludedir)/, \ - sys.s sys/sys.s \ - sys.S sys/sys.S \ - syscall.h sys/syscall.h \ - ))) -ifdef syscall.h - -# Transmogrify any of several formats of the file into the one we want. -$(common-objpfx)sys/syscall.h: $(syscall.h) - $(make-target-directory) - tr '[A-Z]' '[a-z]' < $< | \ - sed -e 's/[ ]sys_/ /' \ - -e 's/^#define[ ]*\([a-z0-9_]*\)[ ]*/#define SYS_\1 /' \ - -e 's/[ ]sys_/ SYS_/' \ - -e 's/SYS_syscall_basenum/syscall_basenum/g' \ - -e 's/SYS_kerncall_basenum/kerncall_basenum/g' \ - -e 's/SYS_sysvoffset/sysvoffset/g' \ - -e '/^#/!d' \ - -e '/^#ident/d' \ - -e 's-\(/\*[^*]*\)$$-\1\*/-' \ - > $@-tmp - mv $@-tmp $@ - -before-compile += $(common-objpfx)sys/syscall.h -common-generated += sys/syscall.h - -endif - -endif - ifndef inhibit-unix-syscalls # Sysdep dirs unix/... can contain a file syscalls.list, |