# Makefile for uClibc
#
# Copyright (C) 2000-2008 Erik Andersen <andersen@uclibc.org>
#
# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
#

subdirs += libc/inet/rpc

CFLAGS-y-libc/inet/rpc := -fno-strict-aliasing

# For now, only compile the stuff needed to do an NFS mount....
CSRC_NFS = authunix_prot.c auth_none.c auth_unix.c bindresvport.c \
	clnt_perror.c clnt_simple.c clnt_tcp.c clnt_udp.c \
	create_xid.c getrpcent.c \
	pmap_clnt.c pm_getmaps.c pm_getport.c pmap_prot.c pmap_prot2.c \
	rcmd.c rexec.c rpc_cmsg.c rpc_commondata.c rpc_dtablesize.c \
	rpc_prot.c rpc_thread.c rtime.c ruserpass.c sa_len.c \
	svc.c svc_auth.c svc_authux.c \
	xdr.c xdr_array.c xdr_mem.c xdr_rec.c xdr_reference.c

INET_RPC_DIR:=$(top_srcdir)libc/inet/rpc
INET_RPC_OUT:=$(top_builddir)libc/inet/rpc

CSRC_ALL = $(notdir $(wildcard $(INET_RPC_DIR)/*.c))
CSRC-y := $(if $(UCLIBC_HAS_FULL_RPC),$(CSRC_ALL),$(CSRC_NFS))
# rpc_thread.oS is better, because the header adds unneeded references
# to __pthread_internal_tsd*
CSRC-y := $(filter-out rpc_thread.c,$(CSRC-y))

INET_RPC_SRC:=$(patsubst %.c,$(INET_RPC_DIR)/%.c,$(CSRC-y))
INET_RPC_OBJ:=$(patsubst %.c,$(INET_RPC_OUT)/%.o,$(CSRC-y))

libc-static-$(UCLIBC_HAS_RPC)  += $(INET_RPC_OUT)/rpc_thread.o
libc-shared-$(UCLIBC_HAS_RPC)  += $(INET_RPC_OUT)/rpc_thread.oS
libc-nomulti-$(UCLIBC_HAS_RPC) += $(INET_RPC_OUT)/rpc_thread.o
libc-$(UCLIBC_HAS_RPC) += $(INET_RPC_OBJ)

objclean-y+=CLEAN_libc/inet/rpc

CLEAN_libc/inet/rpc:
	$(do_rm) $(addprefix $(INET_RPC_OUT)/*., o os oS)
