mirror of
https://git.rtems.org/rtems-libbsd/
synced 2025-06-03 14:32:55 +08:00

The implementation uses an array of strings and variable names. The names are weak symbolic references to the items we have seen calls to kvm services with.
353 lines
12 KiB
Makefile
353 lines
12 KiB
Makefile
include ../config.inc
|
|
|
|
include $(RTEMS_MAKEFILE_PATH)/Makefile.inc
|
|
include $(RTEMS_CUSTOM)
|
|
include $(PROJECT_ROOT)/make/leaf.cfg
|
|
|
|
CFLAGS += -Iinclude
|
|
CFLAGS += -Irtems/include
|
|
CFLAGS += -Ilib/libc/include
|
|
CFLAGS += -Ilib/libc/resolv
|
|
CFLAGS += -Ilib/netgraph
|
|
CFLAGS += -Ilib/libmemstat
|
|
CFLAGS += -Ilib/libutil
|
|
CFLAGS += -Ilib/libkvm
|
|
CFLAGS += -Isys
|
|
CFLAGS += -Ilocal
|
|
# XXX hack to find rpc
|
|
CFLAGS += -I../services/librpc/include
|
|
# nsparser needs this
|
|
CFLAGS += -Ilib/libc/net
|
|
|
|
CFLAGS += -I$(INSTALL_BASE)/include
|
|
|
|
#Only needed for route
|
|
# CFLAGS += -D__BSD_VISIBLE=1
|
|
#Only Needed for db files
|
|
CFLAGS += -D__DBINTERFACE_PRIVATE
|
|
|
|
CFLAGS += -g
|
|
CFLAGS += -w
|
|
CFLAGS += -std=gnu99
|
|
CFLAGS += -MT $@ -MD -MP -MF $(basename $@).d
|
|
|
|
C_FILES =
|
|
C_FILES += lib/libc/inet/inet_addr.c
|
|
C_FILES += lib/libc/inet/inet_cidr_ntop.c
|
|
C_FILES += lib/libc/inet/inet_cidr_pton.c
|
|
C_FILES += lib/libc/inet/inet_lnaof.c
|
|
C_FILES += lib/libc/inet/inet_makeaddr.c
|
|
C_FILES += lib/libc/inet/inet_net_pton.c
|
|
C_FILES += lib/libc/inet/inet_ntop.c
|
|
C_FILES += lib/libc/inet/inet_neta.c
|
|
C_FILES += lib/libc/inet/inet_net_ntop.c
|
|
C_FILES += lib/libc/inet/inet_netof.c
|
|
C_FILES += lib/libc/inet/inet_network.c
|
|
C_FILES += lib/libc/inet/inet_ntoa.c
|
|
C_FILES += lib/libc/inet/inet_pton.c
|
|
C_FILES += lib/libc/inet/nsap_addr.c
|
|
|
|
C_FILES += lib/libc/net/base64.c
|
|
C_FILES += lib/libc/net/ether_addr.c
|
|
C_FILES += lib/libc/net/getaddrinfo.c
|
|
C_FILES += lib/libc/net/gethostbydns.c
|
|
C_FILES += lib/libc/net/gethostbyht.c
|
|
C_FILES += lib/libc/net/gethostbynis.c
|
|
C_FILES += lib/libc/net/gethostnamadr.c
|
|
C_FILES += lib/libc/net/getifaddrs.c
|
|
C_FILES += lib/libc/net/getifmaddrs.c
|
|
C_FILES += lib/libc/net/getnameinfo.c
|
|
C_FILES += lib/libc/net/getnetbydns.c
|
|
C_FILES += lib/libc/net/getnetbyht.c
|
|
C_FILES += lib/libc/net/getnetbynis.c
|
|
C_FILES += lib/libc/net/getnetnamadr.c
|
|
C_FILES += lib/libc/net/getproto.c
|
|
C_FILES += lib/libc/net/getprotoent.c
|
|
C_FILES += lib/libc/net/getprotoname.c
|
|
C_FILES += lib/libc/net/getservent.c
|
|
C_FILES += lib/libc/net/nsdispatch.c
|
|
C_FILES += lib/libc/net/gai_strerror.c
|
|
# The following two /net files are generated
|
|
C_FILES += lib/libc/net/nslexer.c
|
|
C_FILES += lib/libc/net/nsparser.c
|
|
C_FILES += lib/libc/gen/err.c
|
|
C_FILES += lib/libc/gen/gethostname.c
|
|
C_FILES += lib/libc/nameser/ns_name.c
|
|
C_FILES += lib/libc/nameser/ns_netint.c
|
|
C_FILES += lib/libc/nameser/ns_parse.c
|
|
C_FILES += lib/libc/nameser/ns_print.c
|
|
C_FILES += lib/libc/nameser/ns_samedomain.c
|
|
C_FILES += lib/libc/nameser/ns_ttl.c
|
|
C_FILES += lib/libc/net/if_indextoname.c
|
|
C_FILES += lib/libc/net/if_nameindex.c
|
|
C_FILES += lib/libc/net/if_nametoindex.c
|
|
C_FILES += lib/libc/net/linkaddr.c
|
|
ifneq ($(DISABLE_IPV6),yes)
|
|
C_FILES += lib/libc/net/map_v4v6.c
|
|
endif
|
|
# This file is not IPV6 specific
|
|
C_FILES += lib/libc/net/name6.c
|
|
C_FILES += lib/libc/net/rcmd.c
|
|
C_FILES += lib/libc/net/recv.c
|
|
# C_FILES += lib/libc/net/send.c
|
|
C_FILES += lib/libc/resolv/herror.c
|
|
C_FILES += lib/libc/resolv/h_errno.c
|
|
C_FILES += lib/libc/resolv/res_comp.c
|
|
C_FILES += lib/libc/resolv/res_data.c
|
|
C_FILES += lib/libc/resolv/res_debug.c
|
|
C_FILES += lib/libc/resolv/res_findzonecut.c
|
|
C_FILES += lib/libc/resolv/res_init.c
|
|
C_FILES += lib/libc/resolv/res_mkquery.c
|
|
C_FILES += lib/libc/resolv/res_mkupdate.c
|
|
C_FILES += lib/libc/resolv/res_query.c
|
|
C_FILES += lib/libc/resolv/res_send.c
|
|
C_FILES += lib/libc/resolv/res_state.c
|
|
C_FILES += lib/libc/resolv/res_update.c
|
|
C_FILES += lib/libc/resolv/mtctxres.c
|
|
C_FILES += lib/libc/string/strsep.c
|
|
C_FILES += lib/libc/stdlib/strtonum.c
|
|
|
|
C_FILES += lib/libc/isc/ev_streams.c
|
|
C_FILES += lib/libc/isc/ev_timers.c
|
|
|
|
C_FILES += lib/libc/stdio/fgetln.c
|
|
|
|
C_FILES += lib/libc/db/db/db.c
|
|
C_FILES += lib/libc/db/btree/bt_close.c
|
|
C_FILES += lib/libc/db/btree/bt_get.c
|
|
C_FILES += lib/libc/db/btree/bt_put.c
|
|
C_FILES += lib/libc/db/btree/bt_utils.c
|
|
C_FILES += lib/libc/db/btree/bt_conv.c
|
|
C_FILES += lib/libc/db/btree/bt_open.c
|
|
C_FILES += lib/libc/db/btree/bt_search.c
|
|
C_FILES += lib/libc/db/btree/bt_debug.c
|
|
C_FILES += lib/libc/db/btree/bt_overflow.c
|
|
C_FILES += lib/libc/db/btree/bt_seq.c
|
|
C_FILES += lib/libc/db/btree/bt_delete.c
|
|
C_FILES += lib/libc/db/btree/bt_page.c
|
|
C_FILES += lib/libc/db/btree/bt_split.c
|
|
C_FILES += lib/libc/db/recno/rec_close.c
|
|
C_FILES += lib/libc/db/recno/rec_get.c
|
|
C_FILES += lib/libc/db/recno/rec_put.c
|
|
C_FILES += lib/libc/db/recno/rec_seq.c
|
|
C_FILES += lib/libc/db/recno/rec_delete.c
|
|
C_FILES += lib/libc/db/recno/rec_open.c
|
|
C_FILES += lib/libc/db/recno/rec_search.c
|
|
C_FILES += lib/libc/db/recno/rec_utils.c
|
|
|
|
C_FILES += lib/libc/db/mpool/mpool.c
|
|
|
|
# libmemstat
|
|
C_FILES += lib/libmemstat/memstat_all.c
|
|
C_FILES += lib/libmemstat/memstat.c
|
|
C_FILES += lib/libmemstat/memstat_malloc.c
|
|
C_FILES += lib/libmemstat/memstat_uma.c
|
|
|
|
# libutil
|
|
C_FILES += lib/libutil/expand_number.c
|
|
C_FILES += lib/libutil/humanize_number.c
|
|
C_FILES += lib/libutil/trimdomain.c
|
|
|
|
# libipsec files
|
|
C_FILES += lib/libipsec/pfkey_dump.c
|
|
# Has a main and may or may not be needed
|
|
# C_FILES += lib/libipsec/test-policy.c
|
|
C_FILES += lib/libipsec/pfkey.c
|
|
C_FILES += lib/libipsec/ipsec_strerror.c
|
|
C_FILES += lib/libipsec/ipsec_get_policylen.c
|
|
C_FILES += lib/libipsec/ipsec_dump_policy.c
|
|
# The following two /net files are generated
|
|
C_FILES += lib/libipsec/policy_token.c
|
|
C_FILES += lib/libipsec/policy_parse.c
|
|
|
|
# RTEMS Specific Files
|
|
# C_FILES += rtems/rtems-net-setup.c
|
|
C_FILES += rtems/syslog.c
|
|
C_FILES += rtems/rtems-kvm.c
|
|
C_FILES += rtems/rtems-kvm-symbols.c
|
|
C_FILES += rtems/rtems-syslog-initialize.c
|
|
C_FILES += rtems/rtems-getprogname.c
|
|
C_FILES += rtems/rtems-uthread_main_np.c
|
|
C_FILES += rtems/rtems-uthread_kevent.c
|
|
C_FILES += rtems/rtems-uthread_kqueue.c
|
|
C_FILES += rtems/rtems-shell.c
|
|
|
|
# ping command sources
|
|
C_FILES += commands/sbin/ping/ping.c
|
|
ifneq ($(DISABLE_IPV6),yes)
|
|
C_FILES += commands/sbin/ping6/ping6.c
|
|
endif
|
|
|
|
# route command sources
|
|
C_FILES += commands/sbin/route/route.c
|
|
|
|
# dhclient command sources
|
|
C_FILES += commands/sbin/dhclient/alloc.c
|
|
C_FILES += commands/sbin/dhclient/bpf.c
|
|
C_FILES += commands/sbin/dhclient/clparse.c
|
|
C_FILES += commands/sbin/dhclient/conflex.c
|
|
C_FILES += commands/sbin/dhclient/convert.c
|
|
C_FILES += commands/sbin/dhclient/dhclient.c
|
|
C_FILES += commands/sbin/dhclient/dispatch.c
|
|
C_FILES += commands/sbin/dhclient/errwarn.c
|
|
C_FILES += commands/sbin/dhclient/hash.c
|
|
C_FILES += commands/sbin/dhclient/inet.c
|
|
C_FILES += commands/sbin/dhclient/options.c
|
|
C_FILES += commands/sbin/dhclient/packet.c
|
|
C_FILES += commands/sbin/dhclient/parse.c
|
|
C_FILES += commands/sbin/dhclient/privsep.c
|
|
C_FILES += commands/sbin/dhclient/tables.c
|
|
C_FILES += commands/sbin/dhclient/tree.c
|
|
|
|
# ifconfig command sources
|
|
# UNUSED IFCONFIG_C_FILES += commands/sbin/ifconfig/af_atalk.c
|
|
IFCONFIG_C_FILES += commands/sbin/ifconfig/af_inet.c
|
|
IFCONFIG_C_FILES += commands/sbin/ifconfig/af_link.c
|
|
IFCONFIG_C_FILES += commands/sbin/ifconfig/ifbridge.c
|
|
IFCONFIG_C_FILES += commands/sbin/ifconfig/ifclone.c
|
|
IFCONFIG_C_FILES += commands/sbin/ifconfig/ifgif.c
|
|
IFCONFIG_C_FILES += commands/sbin/ifconfig/ifgroup.c
|
|
IFCONFIG_C_FILES += commands/sbin/ifconfig/iflagg.c
|
|
IFCONFIG_C_FILES += commands/sbin/ifconfig/ifmedia.c
|
|
IFCONFIG_C_FILES += commands/sbin/ifconfig/ifvlan.c
|
|
ifneq ($(DISABLE_IPV6),yes)
|
|
IFCONFIG_C_FILES += commands/sbin/ifconfig/af_inet6.c
|
|
IFCONFIG_C_FILES += commands/sbin/ifconfig/af_nd6.c
|
|
endif
|
|
IFCONFIG_C_FILES += commands/sbin/ifconfig/ifcarp.c
|
|
IFCONFIG_C_FILES += commands/sbin/ifconfig/ifconfig.c
|
|
IFCONFIG_C_FILES += commands/sbin/ifconfig/ifgre.c
|
|
# UNUSED IFCONFIG_C_FILES += commands/sbin/ifconfig/ifieee80211.c
|
|
# UNUSED IFCONFIG_C_FILES += commands/sbin/ifconfig/ifmac.c
|
|
IFCONFIG_C_FILES += commands/sbin/ifconfig/ifpfsync.c
|
|
|
|
# The following two files were left out to avoid
|
|
# porting issues. regdomain uses an xml parser
|
|
# that is not part of the standard release and
|
|
# af_ipx uses thread0 which we are trying to avoid
|
|
# pulling in.
|
|
#
|
|
# C_FILES += commands/sbin/ifconfig/regdomain.c
|
|
# C_FILES += commands/sbin/ifconfig/af_ipx.c
|
|
|
|
# netstat command sources
|
|
# no need to support AppleTalk yet
|
|
# NETSTAT_C_FILES += commands/usr.bin/netstat/atalk.c
|
|
NETSTAT_C_FILES += commands/usr.bin/netstat/bpf.c
|
|
NETSTAT_C_FILES += commands/usr.bin/netstat/if.c
|
|
ifneq ($(DISABLE_IPV6),yes)
|
|
NETSTAT_C_FILES += commands/usr.bin/netstat/inet6.c
|
|
endif
|
|
NETSTAT_C_FILES += commands/usr.bin/netstat/inet.c
|
|
NETSTAT_C_FILES += commands/usr.bin/netstat/ipsec.c
|
|
# no need to support IPX yet
|
|
# NETSTAT_C_FILES += commands/usr.bin/netstat/ipx.c
|
|
NETSTAT_C_FILES += commands/usr.bin/netstat/main.c
|
|
# XXX does not compile yet
|
|
NETSTAT_C_FILES += commands/usr.bin/netstat/mbuf.c
|
|
ifneq ($(DISABLE_IPV6),yes)
|
|
NETSTAT_C_FILES += commands/usr.bin/netstat/mroute6.c
|
|
endif
|
|
NETSTAT_C_FILES += commands/usr.bin/netstat/mroute.c
|
|
# Disable netgraph support - this is a long thread to pull
|
|
# NETSTAT_C_FILES += commands/usr.bin/netstat/netgraph.c
|
|
NETSTAT_C_FILES += commands/usr.bin/netstat/pfkey.c
|
|
# Actually just route.c in FreeBSD
|
|
NETSTAT_C_FILES += commands/usr.bin/netstat/netstat_route.c
|
|
NETSTAT_C_FILES += commands/usr.bin/netstat/sctp.c
|
|
NETSTAT_C_FILES += commands/usr.bin/netstat/unix.c
|
|
|
|
C_O_FILES = $(C_FILES:%.c=%.o)
|
|
C_D_FILES = $(C_FILES:%.c=%.d)
|
|
|
|
IFCONFIG_C_O_FILES = $(IFCONFIG_C_FILES:%.c=%.o)
|
|
IFCONFIG_C_D_FILES = $(IFCONFIG_C_FILES:%.c=%.d)
|
|
|
|
NETSTAT_C_O_FILES = $(NETSTAT_C_FILES:%.c=%.o)
|
|
NETSTAT_C_D_FILES = $(NETSTAT_C_FILES:%.c=%.d)
|
|
|
|
LIB = libbsdc.a
|
|
IFCONFIG = commands/sbin/ifconfig/ifconfig.rel
|
|
NETSTAT = commands/usr.bin/netstat/netstat.rel
|
|
|
|
COMMAND_RELS = $(NETSTAT) $(IFCONFIG)
|
|
|
|
GEN_FILES = rtems/rtems-kvm-symbols.c
|
|
GEN_FILES += include/rpc/rpcb_prot.h
|
|
GEN_FILES += commands/sbin/route/keywords.h
|
|
# lib/libc/net
|
|
GEN_FILES += lib/libc/net/nslexer.c
|
|
GEN_FILES += lib/libc/net/nsparser.c
|
|
EXTRA_CLEAN = lib/libc/net/nsparser.i
|
|
EXTRA_CLEAN += lib/libc/net/y.tab.h
|
|
|
|
# lib/libipsec
|
|
GEN_FILES += lib/libipsec/policy_token.c
|
|
GEN_FILES += lib/libipsec/policy_parse.c
|
|
EXTRA_CLEAN += lib/libipsec/policy_parse.i
|
|
EXTRA_CLEAN += lib/libipsec/y.tab.h
|
|
|
|
all: $(LIB)
|
|
|
|
$(LIB): $(GEN_FILES) $(C_O_FILES) $(COMMAND_RELS)
|
|
$(AR) rcu $@ $^
|
|
|
|
$(IFCONFIG): $(IFCONFIG_C_O_FILES)
|
|
$(LD) -r -o $@ $^
|
|
|
|
$(NETSTAT): $(NETSTAT_C_O_FILES)
|
|
$(LD) -r -o $@ $^
|
|
|
|
rtems/rtems-kvm-symbols.c: rtems/generate_kvm_symbols
|
|
./rtems/generate_kvm_symbols >rtems/rtems-kvm-symbols.c
|
|
|
|
include/rpc/rpcb_prot.h: include/rpc/rpcb_prot.x
|
|
rm -f include/rpc/rpcb_prot.h
|
|
rpcgen -h -o include/rpc/rpcb_prot.h include/rpc/rpcb_prot.x
|
|
|
|
commands/sbin/route/keywords.h: commands/sbin/route/keywords
|
|
sed -e '/^#/d' -e '/^$$/d' commands/sbin/route//keywords > _keywords.tmp
|
|
LC_ALL=C tr 'a-z' 'A-Z' < _keywords.tmp | paste _keywords.tmp - | \
|
|
awk '{ \
|
|
if (NF > 1) \
|
|
printf "#define\tK_%s\t%d\n\t{\"%s\", K_%s},\n", \
|
|
$$2, NR, $$1, $$2 }' \
|
|
> commands/sbin/route/keywords.h
|
|
rm -f _keywords.tmp
|
|
|
|
# lib/libc/net Yacc and lex files
|
|
lib/libc/net/nslexer.c: lib/libc/net/nslexer.l
|
|
make -C lib/libc/net nslexer.c
|
|
|
|
lib/libc/net/nsparser.c: lib/libc/net/nsparser.y
|
|
make -C lib/libc/net nsparser.c
|
|
|
|
# libipsec Yacc and lex files
|
|
lib/libipsec/policy_token.c: lib/libipsec/policy_token.l
|
|
make -C lib/libipsec policy_token.c
|
|
|
|
lib/libipsec/policy_parse.c: lib/libipsec/policy_parse.y
|
|
make -C lib/libipsec policy_parse.c
|
|
|
|
install: $(LIB)
|
|
install -d $(INSTALL_BASE)/include
|
|
cd include; for i in `find . -name '*.h'` ; do \
|
|
install -c -m 644 -D "$$i" "$(INSTALL_BASE)/include/$$i" ; done
|
|
cd rtems/include; for i in `find . -name '*.h'` ; do \
|
|
install -c -m 644 -D "$$i" "$(INSTALL_BASE)/include/$$i" ; done
|
|
cd local; for i in `find . -name '*.h'` ; do \
|
|
install -c -m 644 -D "$$i" "$(INSTALL_BASE)/include/$$i" ; done
|
|
cd sys; for i in `find . -name '*.h'` ; do \
|
|
install -c -m 644 -D "$$i" "$(INSTALL_BASE)/include/$$i" ; done
|
|
install -c -m 644 $(LIB) $(INSTALL_BASE)
|
|
|
|
clean:
|
|
rm -f $(LIB) $(GEN_FILES) $(CLEAN_FILES)
|
|
rm -f $(C_O_FILES) $(IFCONFIG_C_O_FILES) $(NETSTAT_C_O_FILES)
|
|
rm -f $(C_D_FILES) $(IFCONFIG_C_D_FILES) $(NETSTAT_C_D_FILES)
|
|
|
|
-include $(C_D_FILES)
|
|
|
|
doc:
|
|
|