/*
 * Imakefile
 *
 * Author: Jim Zelenka
 */
/*
 * Copyright (c) of Carnegie Mellon University, 1996,1997,1998,1999.
 *
 * Permission to reproduce, use, and prepare derivative works of
 * this software for internal use is granted provided the copyright
 * and "No Warranty" statements are included with all reproductions
 * and derivative works. This software may also be redistributed
 * without charge provided that the copyright and "No Warranty"
 * statements are included in all redistributions.
 *
 * NO WARRANTY. THIS SOFTWARE IS FURNISHED ON AN "AS IS" BASIS.
 * CARNEGIE MELLON UNIVERSITY MAKES NO WARRANTIES OF ANY KIND, EITHER
 * EXPRESSED OR IMPLIED AS TO THE MATTER INCLUDING, BUT NOT LIMITED
 * TO: WARRANTY OF FITNESS FOR PURPOSE OR MERCHANTABILITY, EXCLUSIVITY
 * OF RESULTS OR RESULTS OBTAINED FROM USE OF THIS SOFTWARE. CARNEGIE
 * MELLON UNIVERSITY DOES NOT MAKE ANY WARRANTY OF ANY KIND WITH RESPECT
 * TO FREEDOM FROM PATENT, TRADEMARK, OR COPYRIGHT INFRINGEMENT.
 */

#include "NASD.tmpl"
#define IHaveSubdirs True

/* LCDEBUGFLAGS = -g -trapuv */

NASD_MakeSubdirs($(SUBDIRS))
DependSubdirs($(SUBDIRS))

#ifdef AlphaArchitecture
ARCHOBJS = \
	dux/axp_incstat.o \
	generic/nasd_generic_timeout.o \
	generic/nasd_pthread_support.o \
	dux/nasd_dux_addts.o \
	dux/nasd_dux_basic.o \
	dux/nasd_dux_gethostbyname.o \
	dux/nasd_dux_lseek.o \
	dux/nasd_dux_srv.o \
	dux/nasd_rpcc.o
#endif /* AlphaArchitecture */

#ifdef VxWorksArchitecture
ARCHOBJS = \
	vxworks/incstat.o \
	generic/nasd_generic_timeout.o \
	generic/nasd_pthread_support.o \
	vxworks/nasd_vx_basic.o
#endif /* VxWorksArchitecture */

#ifdef LinuxArchitecture
ARCHOBJS = \
	generic/incstat.o \
	generic/nasd_generic_addts.o \
	generic/nasd_generic_timeout.o \
	generic/nasd_pthread_support.o \
	linux/nasd_linux_basic.o \
	linux/nasd_linux_gethostbyname.o \
	linux/nasd_linux_lseek.o \
	linux/nasd_linux_srv.o \
	i386/nasd_rpcc.o
#endif /* LinuxArchitecture */

#ifdef FreeBSDArchitecture
ARCHOBJS = \
	generic/incstat.o \
	generic/nasd_generic_addts.o \
	generic/nasd_generic_timeout.o \
	generic/nasd_pthread_support.o \
	generic/nasd_generic_gethostbyname.o \
	freebsd/nasd_freebsd_basic.o \
	freebsd/nasd_freebsd_srv.o \
	i386/nasd_rpcc.o
#endif /* FreeBSDArchitecture */

#ifdef SolarisArchitecture

#ifdef i386Architecture
CPUOBJS = i386/nasd_rpcc.o
#endif /* i386Architecture */

ARCHOBJS = \
	${CPUOBJS} \
	generic/incstat.o \
	generic/nasd_generic_addts.o \
	generic/nasd_generic_timeout.o \
	generic/nasd_pthread_support.o \
	solaris/nasd_solaris_basic.o \
	solaris/nasd_solaris_gethostbyname.o \
	solaris/nasd_solaris_srv.o
#endif /* SolarisArchitecture */

#ifdef IRIXArchitecture
ARCHOBJS = \
	generic/incstat.o \
	generic/nasd_generic_addts.o \
	generic/nasd_generic_timeout.o \
	generic/nasd_pthread_support.o \
	generic/nasd_generic_gethostbyname.o \
	irix/nasd_irix_basic.o \
	irix/nasd_irix_srv.o
#endif /* IRIXArchitecture */

SUBDIRS = \
	cryptolib \
	dux \
	freebsd \
	generic \
	i386 \
	irix \
	linux \
	solaris \
	vxworks

MARSHSRCS = \
	nasd_base_types_marshall.c \
	nasd_control_marshall.c \
	nasd_drive_types_marshall.c \
	nasd_error_marshall.c \
	nasd_pdrive_marshall.c \
	nasd_remote_types_marshall.c \
	nasd_types_marshall.c \
	$(RPC_MARSH_SRCS)

MARSHOBJS = \
	${MARSHSRCS:.c=.o}

NASD_RPCGenMarshallCodeSimple(nasd_base_types)
NASD_RPCGenMarshallCodeSimple(nasd_control)
NASD_RPCGenMarshallCodeSimple(nasd_drive_types)
NASD_RPCGenMarshallCodeSimple(nasd_error)
NASD_RPCGenMarshallCodeSimple(nasd_pdrive)
NASD_RPCGenMarshallCodeSimple(nasd_remote_types)
NASD_RPCGenMarshallCodeSimple(nasd_types)

NASD_SpecialOTarget(nasd_base_types_marshall,$(CVTTYPES_CFLAGS))
NASD_SpecialOTarget(nasd_control_marshall,$(CVTTYPES_CFLAGS))
NASD_SpecialOTarget(nasd_drive_types_marshall,$(CVTTYPES_CFLAGS))
NASD_SpecialOTarget(nasd_error_marshall,$(CVTTYPES_CFLAGS))
NASD_SpecialOTarget(nasd_pdrive_marshall,$(CVTTYPES_CFLAGS))
NASD_SpecialOTarget(nasd_remote_types_marshall,$(CVTTYPES_CFLAGS))
NASD_SpecialOTarget(nasd_types_marshall,$(CVTTYPES_CFLAGS))

#if BUILD_NASD_RPC_PACKAGE == NASD_RPC_PACKAGE_SRPC

RPCSRCS = \
	nasd_srpc.c \
	nasd_srpc_client.c \
	nasd_srpc_server.c

RPCOBJS = \
	nasd_srpc.o \
	nasd_srpc_client.o \
	generic/nasd_generic_sock.o \
	generic/nasd_srpc_generic_alloc.o \
	generic/nasd_srpc_generic_client.o \
	generic/nasd_srpc_generic_server.o \
	nasd_srpc_server.o

RPC_MARSH_SRCS = \
	nasd_srpc_types_marshall.c

NASD_RPCGenMarshallCodeSimple(nasd_srpc_types)

NASD_SpecialOTarget(nasd_srpc_types_marshall,$(CVTTYPES_CFLAGS))

#endif /* BUILD_NASD_RPC_PACKAGE == NASD_RPC_PACKAGE_SRPC */

#if BUILD_NASD_RPC_PACKAGE == NASD_RPC_PACKAGE_DCE
RPCSRCS = \
	nasd_pipe_dce.o

RPCOBJS = ${RPCSRCS:.c=.o}
#endif /* BUILD_NASD_RPC_PACKAGE == NASD_RPC_PACKAGE_DCE */

INDOBJS = \
	nasd_common.o \
	nasd_common_otw.o \
	${RPCOBJS} \
	${MARSHOBJS} \
	nasd_error.o \
	nasd_getopt.o \
	nasd_mem.o \
	nasd_nonce_mgmt.o \
	nasd_pipe.o \
	nasd_pipe_shm.o \
	nasd_security.o \
	nasd_shutdown.o \
	nasd_tests.o \
	nasd_threadstuff.o \
	nasd_timeout.o \
	generic/nasd_generic_hostlocal.o

OBJS = $(INDOBJS) $(ARCHOBJS)

SRCS = ${INDOBJS:.o=.c}

#undef InstallManPage
#define InstallManPage(file,dest)

NormalLibraryTarget($(CLIBNAME),$(OBJS))

InstallLibrary($(CLIBNAME),$(NASD_DESTLIB))

NASD_Depend()

/*
 * Don't put anything after this
 */
#include "NASD.trailer"
