#
# nasd/kernel_generate/dux/other/Makefile
#
# Authors: Erik Riedel, Marc Unangst, 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.
#

SUBDIRS = nasd

THE_TOP=${MAKETOP}/kernel/nasd/.

NASD_ARCHDEFINES = -DDEC -DDEC_OSF

DATAFILES = \
	nasd_pdrive_cstub.c \
	nasd_pdrive_sstub.c \
	nasd_edrfs_server_cstub.c \
	nasd_edrfs_server_sstub.c \
	$(MARSH_DATAFILES)

MARSH_DATAFILES = \
	nasd_base_types_marshall.c \
	nasd_cheops_mgr_marshall.c \
	nasd_cheops_types_marshall.c \
	nasd_control_marshall.c \
	nasd_drive_types_marshall.c \
	nasd_error_marshall.c \
	nasd_pdrive_marshall.c \
	nasd_types_marshall.c \
	nasd_edrfs_types_marshall.c \
	nasd_edrfs_server_marshall.c

VPATH = ./nasd:${MAKETOP}/kernel/nasd/include/nasd

ILIST = ${DATAFILES}
IDIR    = /usr/sys/nasd/kernel_generate
IMODE   = 444
IOWNER  = bin
IGROUP  = bin

NASD_RPCGEN = ../../../../bin/nasd_rpcgen
NASD_RPCGEN_BIN = ${NASD_RPCGEN}
NASD_RPCGEN_INCLUDES = -I${MAKETOP}kernel/nasd/kernel_generate/dux -I${MAKETOP}kernel/nasd/kernel_generate/dux/other

include ${MAKEFILEPATH}/standard.mk
include ${MAKEFILEPATH}/datafiles.mk
include ${MAKEFILEPATH}/subdirs.mk

DCEIDL = /bin/idl
DCEIDLINCLUDES = -I${MAKETOP}kernel/nasd/kernel_generate/dux -I${MAKETOP}kernel/nasd/kernel_generate/dux/other ${_GENINC_}
DCEIDLIPATH = ${MAKETOP}kernel/nasd/kernel_generate/dux/other

NASD_OPTIONS_H=${MAKETOP}kernel/nasd/include/nasd/nasd_options.h

nasd_pdrive_cstub.c: nasd_pdrive.idl nasd_drive_types.idl nasd_base_types.idl nasd_types.idl nasd_error.idl
	$(RM) -f XXXNASDREPLACEXXX.h nasd_pdrive_cstub.c tmp.nasd_pdrive_cstub.c
	$(DCEIDL)  -keep c_source $(DCEIDLINCLUDES) -client stub -server none -cstub tmp.nasd_pdrive_cstub.c -header XXXNASDREPLACEXXX nasd_pdrive.idl
	$(SED) s,XXXNASDREPLACEXXX.h,nasd/nasd_pdrive.h, < tmp.nasd_pdrive_cstub.c > nasd_pdrive_cstub.c
	$(RM) XXXNASDREPLACEXXX.h tmp.nasd_pdrive_cstub.c

nasd_pdrive_sstub.c: nasd_pdrive.idl nasd_drive_types.idl nasd_base_types.idl nasd_types.idl nasd_error.idl
	$(RM) -f XXXNASDREPLACEXXX.h nasd_pdrive_sstub.c tmp.nasd_pdrive_sstub.c
	$(DCEIDL) -no_mepv -keep c_source $(DCEIDLINCLUDES) -client none -server stub -sstub tmp.nasd_pdrive_sstub.c -header XXXNASDREPLACEXXX nasd_pdrive.idl
	$(SED) s,XXXNASDREPLACEXXX.h,nasd/nasd_pdrive.h, < tmp.nasd_pdrive_sstub.c > nasd_pdrive_sstub.c
	$(RM) XXXNASDREPLACEXXX.h tmp.nasd_pdrive_sstub.c

nasd_edrfs_server_cstub.c: nasd_edrfs_types.idl nasd_edrfs_error.idl nasd_edrfs_server.idl nasd_base_types.idl nasd_types.idl nasd_error.idl
	$(RM) -f XXXNASDREPLACEXXX.h nasd_edrfs_server_cstub.c tmp.nasd_edrfs_server_cstub.c
	$(DCEIDL)  -keep c_source $(DCEIDLINCLUDES) -client stub -server none -cstub tmp.nasd_edrfs_server_cstub.c -header XXXNASDREPLACEXXX nasd_edrfs_server.idl
	$(SED) s,XXXNASDREPLACEXXX.h,nasd/nasd_edrfs_server.h, < tmp.nasd_edrfs_server_cstub.c > nasd_edrfs_server_cstub.c
	$(RM) XXXNASDREPLACEXXX.h tmp.nasd_edrfs_server_cstub.c

nasd_edrfs_server_sstub.c: nasd_edrfs_types.idl nasd_edrfs_error.idl nasd_edrfs_server.idl nasd_drive_types.idl nasd_base_types.idl nasd_types.idl nasd_error.idl
	$(RM) -f XXXNASDREPLACEXXX.h nasd_edrfs_server_sstub.c tmp.nasd_edrfs_server_sstub.c
	$(DCEIDL) -no_mepv -keep c_source $(DCEIDLINCLUDES) -client none -server stub -sstub tmp.nasd_edrfs_server_sstub.c -header XXXNASDREPLACEXXX nasd_edrfs_server.idl
	$(SED) s,XXXNASDREPLACEXXX.h,nasd/nasd_edrfs_server.h, < tmp.nasd_edrfs_server_sstub.c > nasd_edrfs_server_sstub.c
	$(RM) XXXNASDREPLACEXXX.h tmp.nasd_edrfs_server_sstub.c

${MARSH_DATAFILES}: $${@:_marshall.c=.rpc} $(NASD_RPCGEN_BIN) ${NASD_OPTIONS_H}
	$(RM) -f tmp.$@ $@
	$(NASD_RPCGEN) $(DCEIDLINCLUDES) -M tmp.$@ -P nasd_ -S _t -B nasd/${@:_marshall.c=.h} ${@:_marshall.c=.rpc}
	$(MV) tmp.$@ $@

include ${MAKEFILEPATH}/nasd.mk
