# # Copyright (C) 1995, 1996, 1997, 2000, 2007, 2011 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 ipv6-srcs := addrconf.c \ af_inet6.c \ datagram_ipv6.c \ exthdrs.c \ icmpv6.c \ ip6_fib.c \ ip6_flowlabel.c \ ip6_input.c \ ip6_output.c \ ipv6_sockglue.c \ mcast.c \ ndisc.c \ protocol_ipv6.c \ raw_ipv6.c \ reassembly.c \ route_ipv6.c \ tcp_ipv6.c \ udp_ipv6.c ARCHS = alpha arm i386 m68k ppc s390 sparc sparc64 LINUXSRCS = $(core-srcs) $(ethernet-srcs) $(ipv4-srcs) $(ipv6-srcs) ARCHSRCS = $(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) $(ARCHSRCS) $(SRCS) $(MIGSRCS))) LCLHDRS = config.h mapped-time.h mutations.h pfinet.h LINUXHDRS = bitops.h capability.h delay.h errqueue.h etherdevice.h \ fddidevice.h firewall.h icmp.h icmpv6.h if_arp.h if_ether.h \ if_fddi.h if_packet.h if_ppp.h if_tunnel.h if_tr.h \ igmp.h in.h in_route.h inet.h inetdevice.h init.h ip.h \ ip_fw.h ipsec.h ipv6_route.h ipx.h kmod.h linkage.h lists.h \ module.h mroute.h net.h netdevice.h netlink.h notifier.h \ pkt_cls.h pkt_sched.h ppp_defs.h random.h route.h \ rtnetlink.h skbuff.h stddef.h sysctl.h tasks.h tcp.h times.h \ trdevice.h udp.h LINUXNETHDRS = addrconf.h arp.h br.h checksum.h datalink.h dst.h flow.h \ icmp.h if_inet6.h inet_common.h ip.h ip_fib.h ip6_fib.h \ ip6_route.h ipip.h ipv6.h ipx.h ipxcall.h ndisc.h \ neighbour.h p8022.h p8022call.h pkt_cls.h pkt_sched.h \ profile.h protocol.h psnap.h psnapcall.h rarp.h raw.h \ rawv6.h route.h slhc.h snmp.h sock.h tcp.h transp_v6.h udp.h ARCHHDRS = checksum.h FROBBEDLINUXHEADERS = autoconf.h binfmts.h config.h errno.h fcntl.h fs.h \ if.h in.h in6.h interrupt.h ioctl.h ipv6.h \ kernel.h limits.h major.h malloc.h mm.h param.h personality.h \ poll.h proc_fs.h sched.h slab.h socket.h sockios.h stat.h \ string.h termios.h time.h timer.h timex.h types.h un.h version.h wait.h ASMHEADERS = atomic.h bitops.h byteorder.h delay.h errno.h hardirq.h init.h \ segment.h spinlock.h system.h types.h uaccess.h HURDLIBS=trivfs fshelp threads ports ihash shouldbeinlibc iohelp target = pfinet include ../Makeconf vpath %.c $(addprefix $(srcdir)/linux-src/net/,core ethernet ipv4 ipv6) 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 # Don't ask... We use Linux code. The problem was first noticed when # compiling `pfinet' with GCC 4.2. CFLAGS += -fno-strict-aliasing 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-src-net-core-files lndist-linux-src-net-ethernet-files lndist-linux-src-net-ipv4-files lndist-linux-src-net-ipv6-files lndist-linux-src-asm-files lndist-linux-src-include-asm-files lndist-linux-src-include-linux-files lndist-linux-src-include-net-files lndist-glue-include-linux-files lndist-glue-include-asm-files lndist-linux-src-net-core-files: $(top_srcdir)/hurd-snap/$(dir)/linux-src/net/core ln $(addprefix $(srcdir)/linux-src/net/core/,$(core-srcs)) $< lndist-linux-src-net-ethernet-files: $(top_srcdir)/hurd-snap/$(dir)/linux-src/net/ethernet ln $(addprefix $(srcdir)/linux-src/net/ethernet/,$(ethernet-srcs)) $< lndist-linux-src-net-ipv4-files: $(top_srcdir)/hurd-snap/$(dir)/linux-src/net/ipv4 ln $(addprefix $(srcdir)/linux-src/net/ipv4/,$(ipv4-srcs)) $< lndist-linux-src-net-ipv6-files: $(top_srcdir)/hurd-snap/$(dir)/linux-src/net/ipv6 ln $(addprefix $(srcdir)/linux-src/net/ipv6/,$(ipv6-srcs)) $< # FIXME !i386 lndist-linux-src-asm-files: $(top_srcdir)/hurd-snap/$(dir)/linux-src/arch/i386/lib ln $(addprefix $(srcdir)/linux-src/arch/i386/lib/,$(ARCHSRCS)) $< lndist-linux-src-include-linux-files: $(top_srcdir)/hurd-snap/$(dir)/linux-src/include/linux ln $(addprefix $(srcdir)/linux-src/include/linux/,$(LINUXHDRS)) $< lndist-linux-src-include-net-files: $(top_srcdir)/hurd-snap/$(dir)/linux-src/include/net ln $(addprefix $(srcdir)/linux-src/include/net/,$(LINUXNETHDRS)) $< lndist-linux-src-include-asm-files: $(top_srcdir)/hurd-snap/$(dir)/linux-src/include/asm-i386 ln $(addprefix $(srcdir)/linux-src/include/asm-$(asm_syntax)/,$(ARCHHDRS)) $< lndist-glue-include-linux-files: $(top_srcdir)/hurd-snap/$(dir)/glue-include/linux ln $(addprefix $(srcdir)/glue-include/linux/,$(FROBBEDLINUXHEADERS)) $< lndist-glue-include-asm-files: $(top_srcdir)/hurd-snap/$(dir)/glue-include/asm ln $(addprefix $(srcdir)/glue-include/asm/,$(ASMHEADERS)) $< $(top_srcdir)/hurd-snap/$(dir)/linux-src: mkdir $@ $(top_srcdir)/hurd-snap/$(dir)/linux-src/arch: $(top_srcdir)/hurd-snap/$(dir)/linux-src mkdir $@ $(top_srcdir)/hurd-snap/$(dir)/linux-src/arch/%/lib: $(top_srcdir)/hurd-snap/$(dir)/linux-src/arch mkdir -p $@ $(top_srcdir)/hurd-snap/$(dir)/linux-src/include: $(top_srcdir)/hurd-snap/$(dir)/linux-src mkdir $@ $(top_srcdir)/hurd-snap/$(dir)/linux-src/include/%: $(top_srcdir)/hurd-snap/$(dir)/linux-src/include mkdir $@ $(top_srcdir)/hurd-snap/$(dir)/linux-src/net: $(top_srcdir)/hurd-snap/$(dir)/linux-src mkdir $@ $(top_srcdir)/hurd-snap/$(dir)/linux-src/net/core: $(top_srcdir)/hurd-snap/$(dir)/linux-src/net mkdir $@ $(top_srcdir)/hurd-snap/$(dir)/linux-src/net/ethernet: $(top_srcdir)/hurd-snap/$(dir)/linux-src/net mkdir $@ $(top_srcdir)/hurd-snap/$(dir)/linux-src/net/ipv4: $(top_srcdir)/hurd-snap/$(dir)/linux-src/net mkdir $@ $(top_srcdir)/hurd-snap/$(dir)/linux-src/net/ipv6: $(top_srcdir)/hurd-snap/$(dir)/linux-src/net mkdir $@ $(top_srcdir)/hurd-snap/$(dir)/glue-include: mkdir $@ $(top_srcdir)/hurd-snap/$(dir)/glue-include/asm: $(top_srcdir)/hurd-snap/$(dir)/glue-include mkdir $@ $(top_srcdir)/hurd-snap/$(dir)/glue-include/linux: $(top_srcdir)/hurd-snap/$(dir)/glue-include mkdir $@