/*
 * Imakefile
 *
 * Imakefile for building drive as a linux kernel module
 *
 * Author: Jim Zelenka
 */
/*
 * Copyright (c) of Carnegie Mellon University, 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.
 */

#define NASD_LinuxPullinOs
#include "NASD.tmpl"

CFLAGS += ${NASD_KMOD_EXTRACFLAGS}
DEPEND_DEFINES += ${NASD_KMOD_EXTRACFLAGS} ${PULLINSYMS}

#if BUILD_NASD_RPC_PACKAGE == NASD_RPC_PACKAGE_DCE
RPCOBJS = \
	nasd_od_dce.o \
	nasd_pdrive_sstub.o

NASD_IDLGenServerNoMepv($(THE_TOP)/include/nasd/nasd_pdrive.idl,nasd_pdrive_sstub,nasd_pdrive.h)
NASD_CloneFile(nasd_od_dce.c,drive/nasd_od_dce.c)

#endif /* BUILD_NASD_RPC_PACKAGE == NASD_RPC_PACKAGE_DCE */

#if BUILD_NASD_RPC_PACKAGE == NASD_RPC_PACKAGE_NONE
RPCOBJS = \
	nasd_od_norpc.o

NASD_CloneFile(nasd_od_norpc.c,drive/nasd_od_norpc.c)
#endif /* BUILD_NASD_RPC_PACKAGE == NASD_RPC_PACKAGE_NONE */

#if BUILD_NASD_RPC_PACKAGE == NASD_RPC_PACKAGE_SRPC
RPCOBJS = \
	nasd_od_srpc.o \
	nasd_pdrive_sstub.o

NASD_RPCSimpleGenServer(nasd_pdrive)
NASD_CloneFile(nasd_od_srpc.c,drive/nasd_od_srpc.c)
#endif /* BUILD_NASD_RPC_PACKAGE == NASD_RPC_PACKAGE_SRPC */

OBJS = \
	$(RPCOBJS) \
	nasd_bmap.o \
	nasd_cbasic.o \
	nasd_cblock.o \
	nasd_check.o \
	nasd_control.o \
	nasd_decompose.o \
	nasd_dirty.o \
	nasd_diskman.o \
	nasd_drive_tunable.o \
	nasd_free.o \
	nasd_ioqueue.o \
	nasd_ioqueue_cscan.o \
	nasd_ioqueue_fifo.o \
	nasd_keymgmt_dr.o \
	nasd_layout.o \
	nasd_layout_reg.o \
	nasd_layout_seq.o \
	nasd_obj.o \
	nasd_od_linuxio.o \
	nasd_od_mq.o \
	nasd_od_ops.o \
	nasd_ref.o \
	nasd_security_dr.o \
	nasd_setup_disk.o \
	nasd_trace_dr.o \
	nasd_udppipe.o

NASD_NoOverrideCOTarget(nasd_linux_drive)
NASD_NoOverrideCOTarget(nasd_linux_drive_colocate)

SRCS = \
	nasd_linux_drive.c \
	nasd_linux_drive_colocate.c \
	${OBJS:.o=.c}

REG_OBJS = \
	nasd_linux_drive.o \
	${OBJS}

CO_OBJS = \
	nasd_linux_drive_colocate.o \
	nasd_pdrive_client_colocate.o \
	${OBJS}

NASD_LinuxKernelModuleTarget(nasd_drive.o,$(REG_OBJS))
NASD_LinuxKernelModuleTarget(nasd_drive_colocate.o,$(CO_OBJS))

NASD_CloneFile(nasd_bmap.c,drive/nasd_bmap.c)
NASD_CloneFile(nasd_cbasic.c,drive/nasd_cbasic.c)
NASD_CloneFile(nasd_cblock.c,drive/nasd_cblock.c)
NASD_CloneFile(nasd_check.c,drive/nasd_check.c)
NASD_CloneFile(nasd_control.c,drive/nasd_control.c)
NASD_CloneFile(nasd_decompose.c,drive/nasd_decompose.c)
NASD_CloneFile(nasd_dirty.c,drive/nasd_dirty.c)
NASD_CloneFile(nasd_diskman.c,drive/nasd_diskman.c)
NASD_CloneFile(nasd_drive_tunable.c,drive/nasd_drive_tunable.c)
NASD_CloneFile(nasd_free.c,drive/nasd_free.c)
NASD_CloneFile(nasd_ioqueue.c,drive/nasd_ioqueue.c)
NASD_CloneFile(nasd_ioqueue_cscan.c,drive/nasd_ioqueue_cscan.c)
NASD_CloneFile(nasd_ioqueue_fifo.c,drive/nasd_ioqueue_fifo.c)
NASD_CloneFile(nasd_keymgmt_dr.c,drive/nasd_keymgmt_dr.c)
NASD_CloneFile(nasd_layout.c,drive/nasd_layout.c)
NASD_CloneFile(nasd_layout_reg.c,drive/nasd_layout_reg.c)
NASD_CloneFile(nasd_layout_seq.c,drive/nasd_layout_seq.c)
NASD_CloneFile(nasd_obj.c,drive/nasd_obj.c)
NASD_CloneFile(nasd_od_linuxio.c,drive/nasd_od_linuxio.c)
NASD_CloneFile(nasd_od_mq.c,drive/nasd_od_mq.c)
NASD_CloneFile(nasd_od_ops.c,drive/nasd_od_ops.c)
NASD_CloneFile(nasd_ref.c,drive/nasd_ref.c)
NASD_CloneFile(nasd_security_dr.c,drive/nasd_security_dr.c)
NASD_CloneFile(nasd_setup_disk.c,drive/nasd_setup_disk.c)
NASD_CloneFile(nasd_trace_dr.c,drive/nasd_trace_dr.c)
NASD_CloneFile(nasd_udppipe.c,drive/nasd_udppipe.c)

NASD_CloneFile(nasd_pdrive_client_colocate.c,client/nasd_pdrive_client_colocate.c)

NASD_Depend()

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