# 
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.

#! gmake

MOD_DEPTH	= ../../..
topsrcdir	= @top_srcdir@
srcdir		= @srcdir@
VPATH		= @srcdir@

include $(MOD_DEPTH)/config/autoconf.mk

include $(topsrcdir)/config/config.mk

CXXSRCS =           \
	rcbase.cpp      \
	rccv.cpp		\
	rcfileio.cpp    \
	rcinrval.cpp	\
	rcio.cpp	    \
	rclock.cpp	    \
	rcnetdb.cpp	    \
	rcnetio.cpp	    \
	rcthread.cpp	\
	rctime.cpp      \
	$(NULL)

OBJS = $(addprefix $(OBJDIR)/,$(CXXSRCS:.cpp=.$(OBJ_SUFFIX)))

TARGETS	= $(OBJS)

INCLUDES = -I$(dist_includedir)

DEFINES	+= -D_NSPR_BUILD_

include $(topsrcdir)/config/rules.mk

HEADERS = $(wildcard $(srcdir)/*.h)

export:: $(TARGETS)

