/*
 * Imakefile
 *
 * 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.
 */

#include "NASD.tmpl"

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

SYMFILES = \
	nasd_linux_common_syms.h \
	nasd_linux_drive_syms.h \
	nasd_linux_drive_client_syms.h \
	nasd_linux_edrfs_common_syms.h \
	nasd_linux_edrfs_fm_syms.h \
	nasd_linux_edrfs_client_syms.h

FILES = \
	${SYMFILES} \
	nasd_linux_common_marshall.h

VERFILES = ${SYMFILES:.h=.ver.h}

GENKSYMS = /sbin/genksyms

#define GenVerFile(_fn_) @@\
_fn_.ver.h:: _fn_.h @@\
	@echo Generating $@ @@\
	@$(RM) -f tmp.$@ tmp.in.$@ $@ @@\
	@echo "/*" >> tmp.in.$@ @@\
	@echo " * GENERATED FILE - DO NOT EDIT" >> tmp.in.$@ @@\
	@echo " */" >> tmp.in.$@ @@\
	@echo "#include <nasd/nasd_options.h>" >> tmp.in.$@ @@\
	@echo "#include <linux/module.h>" >> tmp.in.$@ @@\
	@echo "#define NASD_EXPORT_SYMBOL(_symname_) EXPORT_SYMBOL(_symname_)" >> tmp.in.$@ @@\
	@cat $< >> tmp.in.$@ @@\
	@echo "/*" >> tmp.$@ @@\
	@echo " * GENERATED FILE - DO NOT EDIT" >> tmp.$@ @@\
	@echo " */" >> tmp.$@ @@\
	@echo "#ifndef NASD_LINUX_OVERRIDE_MODULE" >> tmp.$@ @@\
	@echo "#include <linux/modsetver.h>" >> tmp.$@ @@\
	@echo "#endif /* !NASD_LINUX_OVERRIDE_MODULE */" >> tmp.$@ @@\
	$(CC) $(CFLAGS) -E -D__GENKSYMS__ tmp.in.$@ | $(GENKSYMS) -k `./kversion $(KDIR)` >> tmp.$@ @@\
	@$(MV) tmp.$@ $@ @@\
	@$(RM) -f tmp.in.$@ @@\
	@echo Generated $@ @@\
@@\
clean:: @@\
	$(RM) -f tmp._fn_.ver.h tmp.in._fn_.ver.h _fn_.ver.h @@\
@@\
depend:: _fn_.ver.h @@\
@@\
AllTarget(_fn_.ver.h)

depend:: ${FILES} ${VERFILES}

nasd_linux_common_syms.ver.h:: nasd_linux_common_marshall.h

GenVerFile(nasd_linux_common_syms)
GenVerFile(nasd_linux_drive_client_syms)
GenVerFile(nasd_linux_drive_syms)
GenVerFile(nasd_linux_edrfs_common_syms)
GenVerFile(nasd_linux_edrfs_fm_syms)
GenVerFile(nasd_linux_edrfs_client_syms)

NASD_GenMarshallExports(nasd_linux_common_marshall.h,include/nasd/nasd_marshall.h)

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