summary refs log tree commit diff
path: root/sysdeps/mach/Makefile
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>1995-02-18 01:27:10 +0000
committerRoland McGrath <roland@gnu.org>1995-02-18 01:27:10 +0000
commit28f540f45bbacd939bfd07f213bcad2bf730b1bf (patch)
tree15f07c4c43d635959c6afee96bde71fb1b3614ee /sysdeps/mach/Makefile
downloadglibc-28f540f45bbacd939bfd07f213bcad2bf730b1bf.tar.gz
glibc-28f540f45bbacd939bfd07f213bcad2bf730b1bf.tar.xz
glibc-28f540f45bbacd939bfd07f213bcad2bf730b1bf.zip
initial import
Diffstat (limited to 'sysdeps/mach/Makefile')
-rw-r--r--sysdeps/mach/Makefile74
1 files changed, 74 insertions, 0 deletions
diff --git a/sysdeps/mach/Makefile b/sysdeps/mach/Makefile
new file mode 100644
index 0000000000..fab174c0d6
--- /dev/null
+++ b/sysdeps/mach/Makefile
@@ -0,0 +1,74 @@
+# Copyright (C) 1993, 1994 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.
+
+ifndef mach-srcdir-computed
+mach-srcdir-computed := yes
+
+# If we were configured with `--with-mach=DIR', then config.make sets
+# mach-srcdir to DIR.  Otherwise guess we are in a big source tree.
+ifndef mach-srcdir
+mach-srcdir = ../mach
+endif
+
+# mach-srcdir is now set to the logical directory name.  This name might be
+# relative to $(objdir), might be relative to the source directory $(..), or
+# might be absolute.  We choose among these possibilities by looking for a
+# canonical file in each of those places (in that order).
+f := mach/mach.defs # Random file that identifies the Mach source dir.
+f := $(strip $f)
+mach-srcdir := $(firstword $(patsubst %/$f,%,$(wildcard $(addsuffix /$f,\
+	       $(objpfx)$(mach-srcdir) $(..)$(mach-srcdir)))) $(mach-srcdir))
+
+endif	# ! mach-srcdir-computed
+
+ifdef in-Makerules
+
+# Look for header files in mach/ under the top-level library source directory.
+includes += -I$(..)mach
+
+# When compiling, use the Mach header files directly from the kernel sources.
+includes += -I$(mach-srcdir)
+
+# Find Mach header files in the kernel source.
+vpath mach/%.h $(mach-srcdir)
+vpath device/%.h $(mach-srcdir)
+
+ifneq (mach,$(subdir))
+# Subdirectories other than mach/ might use the generated Mach headers.
+# So make sure we get a chance to run in mach/ to make them before all else.
+
+ifdef objpfx
+mach-objpfx = $(objpfx)
+else
+mach-objpfx = $(..)mach/
+endif
+
+# These are all the generated files that <mach.h> includes.
+mach-before-compile := $(mach-objpfx)mach-shortcuts.h \
+		       $(patsubst %,$(mach-objpfx)mach/mach_%.h,\
+				  interface port host)
+
+# This patsubst generates patterns like `m%h-shortcuts.h', which are damn
+# likely to match just the corresponding particular file we want.
+$(patsubst mach%,m\%h%,$(mach-before-compile)): # Run only if doesn't exist.
+	$(MAKE) -C $(..)mach generated no_deps=t
+
+before-compile += $(mach-before-compile)
+endif
+
+endif	# in-Makerules