ac08b7764e6bfc250ad8dd5f34c0e70848ea1893
[kopensolaris-gnu/glibc.git] / hurd / Makefile
1 # Copyright (C) 1991, 1992, 1993 Free Software Foundation, Inc.
2 # This file is part of the GNU C Library.
3
4 # The GNU C Library is free software; you can redistribute it and/or
5 # modify it under the terms of the GNU Library General Public License
6 # as published by the Free Software Foundation; either version 2 of
7 # the License, or (at your option) any later version.
8
9 # The GNU C Library is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12 # Library General Public License for more details.
13
14 # You should have received a copy of the GNU Library General Public
15 # License along with the GNU C Library; see the file COPYING.LIB.  If
16 # not, write to the Free Software Foundation, Inc., 675 Mass Ave,
17 # Cambridge, MA 02139, USA.
18
19 subdir := hurd
20
21 all:
22
23 # Some things below (but before including Rules) use configuration variables.
24 include ../Makeconfig
25
26
27 headers = hurd.h $(interface-headers)
28 distribute := intr_rpc.awk hurdintr.awk
29
30 user-interfaces         := $(addprefix hurd/,\
31                                        auth process \
32                                        exec core interrupt \
33                                        fs fsys io startup) # socket term
34 server-interfaces       := # hurd/__misc
35
36 routines = $(interface-routines) # XXX
37 ifneq (,)
38 routines = __pid2task __task2pid pid2task task2pid \
39            __setauth setauth hurdports \
40            fchroot \
41            privports \
42            hurdauth hurdid hurdpath hurdpid hurdsig hurdsock hurdfrob \
43            dtable __getdport getdport openport setdtsz \
44            msgportdemux startsig \
45            getuids getumask \
46            dead_recv \
47            fopenport __fopenport \
48            vpprintf \
49            $(interface-routines)
50 endif
51
52 aux := hurdsyms hurdinit
53 \f
54 # Get the proper definition of `hurd-srcdir'.
55 include ../sysdeps/mach/hurd/Makefile
56
57 # Use and install the Hurd header files directly out of the Hurd source.
58
59 # Find the MiG defs files in the Hurd source.
60 vpath %.defs $(hurd-srcdir)
61
62 # Install all .h and .defs files we find in the Hurd's hurd/ directory.
63 hurd-headers := $(patsubst $(hurd-srcdir)/%,%,\
64                            $(wildcard $(addprefix $(hurd-srcdir)/hurd/,\
65                                                   *.defs *.h)))
66
67 # Don't distribute the Hurd headers; they are in the Hurd distribution.
68 dont_distribute = $(hurd-headers)
69
70 # DO NOT try to remake these in any way!!!
71 $(addprefix $(hurd-srcdir)/,$(hurd-headers)) : ;
72 install-others += $(addprefix $(includedir)/,$(hurd-headers))
73 $(includedir)/hurd/%: $(hurd-srcdir)/hurd/%; $(do-install)
74 \f
75 # Insert comment here.
76
77 ifdef intrhack # XXX
78 # This rule needs to come before the implicit rules in Machrules.
79 __%.c: intr_rpc.awk %_rpc.c
80         gawk -v call=__$* -v rpc=__$*_rpc -f $^ > $@-new
81         mv $@-new $@
82 # __%_rpc.c is made with mig by Machrules.
83 %_rpc.c: __%_rpc.c
84         sed s/MACH_MSG_OPTION_NONE/MACH_SEND_INTERRUPT/ $< > $@
85 endif
86
87 include ../mach/Machrules
88
89 ifdef intrhack # XXX
90 ifdef user-interfaces
91 include hurdintr
92 endif
93 hurdintr: hurdintr.awk $(user-interfaces:%=%.defs)
94         awk -f $^ varname=intr-calls > $@-new
95         mv $@-new $@
96
97 # Make the INTR user stubs be defined as CALL_rpc.
98 migdefines := $(migdefines) $(foreach call,$(intr-calls),-D$(call)=$(call)_rpc)
99
100 interface-routines := $(filter-out %_rpc,$(interface-routines)) \
101                       $(intr-calls:%=__% %)
102 endif
103 \f
104 include ../Rules