# 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-rpc := -fno-strict-aliasing

ifneq ($(UCLIBC_HAS_FULL_RPC),y)
# For now, only compile the stuff needed to do an NFS mount....
CSRC:=	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
endif

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

ifeq ($(UCLIBC_HAS_FULL_RPC),y)
INET_RPC_SRC:=$(wildcard $(INET_RPC_DIR)/*.c)
else
INET_RPC_SRC:=$(patsubst %.c,$(INET_RPC_DIR)/%.c,$(CSRC))
endif
# rpc_thread.oS is better, because the header adds unneeded references to __pthread_internal_tsd*
INET_RPC_SRC:=$(filter-out $(INET_RPC_DIR)/rpc_thread.c,$(INET_RPC_SRC))

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

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)