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
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
|
#
# Copyright (C) 1995,96,97,2000 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 this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
dir := pfinet
makemode := server
core-srcs := datagram.c \
dev.c \
dev_mcast.c \
dst.c \
iovec.c \
neighbour.c \
skbuff.c \
sock.c \
utils.c
arch-lib-srcs := checksum.c old-checksum.c csum_partial_copy.c
ethernet-srcs := eth.c
ipv4-srcs := af_inet.c \
arp.c \
devinet.c \
fib_frontend.c \
fib_hash.c \
fib_semantics.c \
icmp.c \
igmp.c \
ip_forward.c \
ip_fragment.c \
ip_input.c \
ip_options.c \
ip_output.c \
ip_sockglue.c \
protocol.c \
raw.c \
route.c \
syncookies.c \
sysctl_net_ipv4.c \
tcp.c \
tcp_input.c \
tcp_ipv4.c \
tcp_output.c \
tcp_timer.c \
timer.c \
udp.c \
utils.c
LINUXSRCS = $(core-srcs) $(ethernet-srcs) $(ipv4-srcs) \
$(notdir $(wildcard $(addprefix \
$(srcdir)/linux-src/arch/$(asm_syntax)/lib/,\
$(arch-lib-srcs) $(arch-lib-srcs:.c=.S))))
SRCS = sched.c timer-emul.c socket.c main.c ethernet.c \
io-ops.c socket-ops.c misc.c time.c options.c loopback.c \
kmem_cache.c stubs.c dummy.c tunnel.c pfinet-ops.c \
iioctl-ops.c
MIGSRCS = ioServer.c socketServer.c startup_notifyServer.c \
pfinetServer.c iioctlServer.c
OBJS = $(patsubst %.S,%.o,$(patsubst %.c,%.o,\
$(LINUXSRCS) $(SRCS) $(MIGSRCS)))
LCLHDRS = config.h mapped-time.h mutations.h pfinet.h
LINUXHDRS = arp.h datalink.h eth.h icmp.h ip.h ipx.h ipxcall.h p8022.h \
p8022call.h protocol.h psnap.h psnapcall.h \
rarp.h raw.h route.h snmp.h sock.h tcp.h udp.h
FROBBEDLINUXHEADERS = autoconf.h config.h errno.h etherdevice.h fcntl.h \
icmp.h if.h if_arp.h if_ether.h igmp.h in.h inet.h interrupt.h \
ip.h ip_fw.h ipx.h kernel.h major.h malloc.h mm.h net.h netdevice.h \
notifier.h param.h route.h sched.h skbuff.h socket.h sockios.h stat.h \
string.h tcp.h termios.h time.h timer.h types.h udp.h un.h wait.h
ASMHEADERS=bitops.h segment.h system.h
HURDLIBS=trivfs fshelp threads ports ihash shouldbeinlibc iohelp
target = pfinet
include ../Makeconf
vpath %.c $(addprefix $(srcdir)/linux-src/net/,core ethernet ipv4)
vpath %.c $(srcdir)/linux-src/arch/$(asm_syntax)/lib
vpath %.S $(srcdir)/linux-src/arch/$(asm_syntax)/lib
CPPFLAGS += -imacros $(srcdir)/config.h \
-I$(srcdir)/glue-include \
-I$(srcdir)/linux-src/include
asm/checksum.h: ../config.status
mkdir -p $(@D)
echo > $@.new \
'#include "../linux-src/include/asm-$(asm_syntax)/checksum.h"'
mv -f $@.new $@
io-MIGSFLAGS = -imacros $(srcdir)/mutations.h
socket-MIGSFLAGS = -imacros $(srcdir)/mutations.h
# cpp doesn't automatically make dependencies for -imacros dependencies. argh.
io_S.h ioServer.c socket_S.h socketServer.c: mutations.h
$(OBJS): config.h
lndist: lndist-linux-inet-files lndist-linux-files lndist-asm-files
lndist-linux-inet-files: $(top_srcdir)/hurd-snap/$(dir)/linux-inet
ln $(addprefix $(srcdir)/linux-inet/,$(LINUXSRCS) $(UNUSEDSRC) $(LINUXHDRS)) $<
lndist-linux-files: $(top_srcdir)/hurd-snap/$(dir)/linux
ln $(addprefix $(srcdir)/linux/,$(FROBBEDLINUXHEADERS)) $<
lndist-asm-files: $(top_srcdir)/hurd-snap/$(dir)/asm
ln $(addprefix $(srcdir)/asm/,$(ASMHEADERS)) $<
$(top_srcdir)/hurd-snap/$(dir)/linux-inet:
mkdir $@
$(top_srcdir)/hurd-snap/$(dir)/linux:
mkdir $@
$(top_srcdir)/hurd-snap/$(dir)/asm:
mkdir $@
|