Initial revision
authorroland <roland>
Sat, 26 Oct 1991 02:10:22 +0000 (02:10 +0000)
committerroland <roland>
Sat, 26 Oct 1991 02:10:22 +0000 (02:10 +0000)
mach/Machrules [new file with mode: 0644]
mach/Makefile [new file with mode: 0644]

diff --git a/mach/Machrules b/mach/Machrules
new file mode 100644 (file)
index 0000000..ce96956
--- /dev/null
@@ -0,0 +1,78 @@
+# Rules for MiG interfaces that want to go into the C library.
+
+# Copyright (C) 1991 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.
+
+all:
+
+interface-routines := $(user-interfaces:%=%_user) \
+                     $(server-interfaces:%=%_server)
+interface-headers := $(addsuffix .h,$(interface-headers))
+interface-routines := $(interface-routines) \
+                     $(addsuffix -syms,$(interface-routines))
+dont_distribute := $(dont_distribute) \
+                  $(addsuffix .h,$(interface-routines)) \
+                  $(addsuffix .c,$(interface-routines))        # Generated.
+
+
+ifdef  MIG_DEFS_PATH
+vpath %.defs $(MIG_DEFS_PATH)
+endif
+
+MIG = mig
+migdefines := -DMACH_IPC_COMPAT=0 -DSTANDALONE -DTypeCheck=0 \
+             $(foreach call,$(mach-shortcuts),-D$(call)=mig_$(call))
+MIGFLAGS = -subrprefix __ -prefix __ $(migdefines)
+
+ifneq ($(no_deps),t)
+include $(..)mach/mach-shortcuts
+endif
+$(..)mach/mach-shortcuts: $(..)mach/mach_shortcuts.h
+       (echo 'mach-shortcuts := ' \\ ; \
+        sed -n 's/SHORTCUT[^(]*(\([^,]*\),.*$$/  \1 \\/p' < $<) > $@
+
+.SUFFIXES: .defs .migh .__h
+
+%_user.c %.migh: %.defs
+       $(MIG) $(MIGFLAGS) -server /dev/null -user $@ -header $*.migh $<
+
+%_server.c %.migh: %.defs
+       $(MIG) $(MIGFLAGS) -user /dev/null -server $@ -sheader $*.migh $<
+
+%.__h: %.migh
+       sed -n 's/^kern_return_t *__\([a-zA-Z0-9_]*\)$$/#define \1 __\1/' \
+       < $< > $@
+
+%.h: %.migh %.__h
+# The last line of foo.migh is "#endif /* foo.h */"
+       (sed '$$d' < $<; cat $(word 2,$^); tail -1 $<) > $@
+
+# Foo. XXX
+CPP = /usr/local/lib/gcc-cpp
+define defs-mkdep
+$(CPP) -M $(MIGFLAGS) $< | sed 's/$<.o/$@ $(@:.dep=.o)/' > $@
+endef
+%_user.dep: %.defs
+       $(defs-mkdep)
+%_server.dep: %.defs
+       $(defs-mkdep)
+
+%-syms.c: %.c
+       (echo '#include <gnu-stabs.h>';
+        sed -n 's/^mig_external kern_return_t __\([a-zA-Z0-9_]*\)$/\
+symbol_alias (__\1, \1)/p' < $<) > $@
diff --git a/mach/Makefile b/mach/Makefile
new file mode 100644 (file)
index 0000000..0ad3342
--- /dev/null
@@ -0,0 +1,64 @@
+# Copyright (C) 1991 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.
+
+all:
+
+subdir := mach
+
+headers = mach_init.h
+ifneq (,)
+         $(addprefix mach/,$(interface-headers) \
+                           host_info.h kern_return.h \
+                           mach_param.h mach_types.h \
+                           memory_object.h \
+                           message.h mig_errors.h msg_type.h \
+                           policy.h port.h processor_info.h \
+                           std_types.h task_info.h task_special_ports.h \
+                           thread_info.h thread_special_ports.h \
+                           thread_status.h thread_switch.h time_value.h \
+                           vm_attributes.h vm_inherit.h vm_prot.h \
+                           vm_statistics.h)
+endif
+
+user-interfaces                := mach_interface mach_port \
+                          mach_host mach_debug \
+                          device device_request \
+                          default_page_object \
+                          memory_object_user \
+                          memory_object_default
+server-interfaces      := exc device_reply
+
+include Machrules
+
+routines := mach_init mach_init_syms \
+           mig_strncpy mig_support msg \
+           mach_traps mach_syscalls mach_shortcuts \
+           mach_msg_destroy mach_msg_server mach_msg_server_timeout \
+           __mach_msg_destroy __mach_msg_server \
+           $(interface-routines) \
+           devstream
+tests := hello
+
+
+include ../Rules
+
+
+mach_interface.defs: mach.defs
+       ln $< $@ || cp $< $@
+memory_object_user.defs: memory_object.defs
+       ln $< $@ || cp $< $@