Formerly ../hurd/alloc-fd.c.~6~
[kopensolaris-gnu/glibc.git] / hurd / Makefile
1 # Copyright (C) 1991, 1992, 1993, 1994 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 $(addprefix hurd/,fd.h id.h port.h signal.h userlink.h) \
28           $(interface-headers)
29 distribute := intr_rpc.awk hurdintr.awk thread_state.h
30
31 user-interfaces         := $(addprefix hurd/,\
32                                        auth process startup msg msg_reply \
33                                        exec core interrupt \
34                                        fs fsys io term socket )
35 server-interfaces       := hurd/msg
36
37 routines = $(interface-routines) \
38            hurdid hurdpath hurdpid hurdports \
39            $(XXX hurdexec) fexecve \
40            __setauth setauth \
41            __pid2task __task2pid pid2task task2pid \
42            getuids setuids getumask fchroot \
43            hurdsock hurdauth \
44            privports \
45            msgportdemux \
46            $(XXX fopenport __fopenport) \
47            vpprintf \
48            $(sig) $(dtable)
49 sig     = hurdsig siginfo startsig init-fault msging-p hurd-raise \
50           trampoline longjmp-ctx longjmp-ts catch-exc exc2signal
51 dtable  = dtable port2fd new-fd alloc-fd intern-fd \
52           __getdport getdport openport setdtsz
53 aux := hurdsyms hurdinit # hurdmsg
54 \f
55 # Get the proper definition of `hurd-srcdir'.
56 include ../sysdeps/mach/hurd/Makefile
57
58 # Use and install the Hurd header files directly out of the Hurd source.
59
60 # Find the MiG defs files in the Hurd source.
61 vpath %.defs $(hurd-srcdir)
62
63 # Install all .h and .defs files we find in the Hurd's hurd/ directory.
64 hurd-headers := $(patsubst $(hurd-srcdir)/%,%,\
65                            $(wildcard $(addprefix $(hurd-srcdir)/hurd/,\
66                                                   *.defs *.h)))
67
68 # Don't distribute the Hurd headers; they are in the Hurd distribution.
69 dont_distribute = $(hurd-headers)
70
71 # DO NOT try to remake these in any way!!!
72 $(addprefix $(hurd-srcdir)/,$(hurd-headers)) : ;
73 install-others += $(addprefix $(includedir)/,$(hurd-headers))
74 $(includedir)/hurd/%: $(hurd-srcdir)/hurd/%; $(do-install)
75 \f
76 # Insert comment here.
77
78 ifdef intrhack # XXX
79 # This rule needs to come before the implicit rules in Machrules.
80 __%.c: intr_rpc.awk %_rpc.c
81         gawk -v call=__$* -v rpc=__$*_rpc -f $^ > $@-new
82         mv $@-new $@
83 # __%_rpc.c is made with mig by Machrules.
84 %_rpc.c: __%_rpc.c
85         sed s/MACH_MSG_OPTION_NONE/MACH_SEND_INTERRUPT/ $< > $@
86 endif
87
88 include ../mach/Machrules
89
90 ifdef intrhack # XXX
91 ifdef user-interfaces
92 include hurdintr
93 endif
94 hurdintr: hurdintr.awk $(user-interfaces:%=%.defs)
95         awk -f $^ varname=intr-calls > $@-new
96         mv $@-new $@
97
98 # Make the INTR user stubs be defined as CALL_rpc.
99 migdefines := $(migdefines) $(foreach call,$(intr-calls),-D$(call)=$(call)_rpc)
100
101 interface-routines := $(filter-out %_rpc,$(interface-routines)) \
102                       $(intr-calls:%=__% %)
103 endif
104 \f
105 include ../Rules