summaryrefslogtreecommitdiff
path: root/sysdeps/mach/Makefile
diff options
context:
space:
mode:
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