1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
|
# Copyright (C) 1992, 1993, 1994 Free Software Foundation, Inc.
# This file is part of the GNU Hurd.
#
# The GNU Hurd is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# The GNU Hurd 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 General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with the GNU Hurd; see the file COPYING. If not, write to
# the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
dir := proc
include ../Makeconf
PROCMIGOPTS="-DPROCESS_INTRAN=pstruct_t reqport_find (process_t)" \
"-DPROCESS_IMPORTS=import \"proc.h\";" \
"-DSERVERPREFIX=S_"
OBJS = wait.o hash.o host.o info.o main.o mgt.o notify.o pgrp.o msg.o \
primes.o cpu-types.o stubs.o \
processServer.o notifyServer.o process_replyUser.o msgUser.o \
interruptServer.o proc_excUser.o proc_excServer.o proc_excreplUser.o \
proc_excreplServer.o
SRCS = wait.c hash.c host.c info.c main.c mgt.c notify.c pgrp.c msg.c \
primes.c cpu-types.c stubs.c
TAGSHDRS = proc.h
TAGSLIBS = libthreads
DIST_FILES = $(SRCS) proc.h Makefile proc_exc.defs proc_excrepl.defs \
ChangeLog
LIBS = $(libthreads)
all: proc
proc: $(OBJS) $(LIBS)
$(CC) $(CFLAGS) -o $@ $^
install: proc $(hurdroot)
$(INSTALL_BIN) proc $(hurdroot)/hurd/proc
$(OBJS): proc.h proc_S.h
notify.o: notify_S.h
wait.o: process_reply.h msg.h interrupt_S.h
mgt.o: proc_exc_S.h proc_exc.h proc_excrepl.h proc_excrepl_S.h
proc_S.h processServer.c: $(includedir)/hurd/process.defs $(includedir)/hurd/hurd_types.defs
$(CPP) $(CPPFLAGS) $(PROCMIGOPTS) $(includedir)/hurd/process.defs \
| $(MIGCOM) -sheader proc_S.h -user /dev/null -header /dev/null
process_reply.h process_replyUser.c: $(includedir)/hurd/process_reply.defs $(hurd/hurd_types.defs)
$(CPP) $(CPPFLAGS) $(includedir)/hurd/process_reply.defs \
| $(MIGCOM) -server /dev/null
interrupt_S.h interruptServer.c: $(includedir)/hurd/interrupt.defs
$(CPP) $(CPPFLAGS) $(PROCMIGOPTS) $(includedir)/hurd/interrupt.defs \
| $(MIGCOM) -sheader interrupt_S.h -user /dev/null -header /dev/null
notify_S.h notifyServer.c:
$(CPP) $(CPPFLAGS) $(includedir)/mach/notify.defs \
| $(MIGCOM) -sheader notify_S.h -header /dev/null -user /dev/null
proc_exc_S.h proc_excUser.c proc_excServer.c proc_exc.h: proc_exc.defs
$(CPP) $(CPPFLAGS) proc_exc.defs \
| $(MIGCOM) -sheader proc_exc_S.h
proc_excrepl_S.h proc_excreplUser.c proc_excreplServer.c proc_excrepl.h: proc_excrepl.defs
$(CPP) $(CPPFLAGS) proc_excrepl.defs \
| $(MIGCOM) -sheader proc_excrepl_S.h
# The reason for -Dout= is to prevent errors for get_init_port,
# get_init_ports, get_init_int, get_init_ints, get_dtable, and get_fd.
# We don't use those, so we're safe in breaking them.
#
# The first sed command inserts timeout argments for each of the RPCs.
# The second sed command fixes the prototypes in msg.h to correspond.
msg.h msgUser.c: $(includedir)/hurd/msg.defs $(includedir)/hurd/hurd_types.defs
$(CPP) $(CPPFLAGS) -Droutine=simpleroutine -Dout= $(includedir)/hurd/msg.defs \
| $(MIGCOM) -prefix nowait_ -server /dev/null -user msgUser.c -header msg.h
# sed -e 's/process,/process,int timeout,/' \
# -e 's/MACH_MSG_OPTION_NONE/MACH_SEND_TIMEOUT/' \
# -e 's/MACH_MSG_TIMEOUT_NONE/timeout/' \
# < msgUser.c > msgUser.c.temp
# mv msgUser.c.temp msgUser.c
# sed -e 's/process,/process,int timeout,/' < msg.h > msg.h.temp
# mv msg.h.temp msg.h
clean:
rm -f *.o *Server.c *_S.h *User.c proc process_reply.h \
msg.h proc_exc.h proc_excrepl.h
relink:
rm -f proc
|