#
# CDDL HEADER START
#
# The contents of this file are subject to the terms of the
# Common Development and Distribution License (the "License").
# You may not use this file except in compliance with the License.
#
# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
# or http://www.opensolaris.org/os/licensing.
# See the License for the specific language governing permissions
# and limitations under the License.
#
# When distributing Covered Code, include this CDDL HEADER in each
# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
# If applicable, add the following below this CDDL HEADER, with the
# fields enclosed by brackets "[]" replaced with your own identifying
# information: Portions Copyright [yyyy] [name of copyright owner]
#
# CDDL HEADER END
#
#
# Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
# Use is subject to license terms.
#
# ident	"%Z%%M%	%I%	%E% SMI"
#
#	This Makefile defines the build rules for the directory
#	uts/sun4u/opl and its children.
#

#
#	Section 1a: C object build rules
#

#
# inline support for DR.
#


$(OBJS_DIR)/dr_mem.o:		$(UTSBASE)/sun4u/opl/io/dr_mem.c
	$(COMPILE.c) -o $@ $(UTSBASE)/sun4u/opl/io/dr_mem.c
	$(CTFCONVERT_O)

$(OBJS_DIR)/%.o:		$(UTSBASE)/sun4u/ngdr/io/%.c
	$(COMPILE.c) -o $@ $<
	$(CTFCONVERT_O)

DR_IO=	$(UTSBASE)/sun4u/ngdr/io
SBD_IOCTL=	$(UTSBASE)/sun4u/sys/sbd_ioctl.h
SBDGENERR=	$(DR_IO)/sbdgenerr

CLEANFILES +=	$(SBDGENERR)
CLEANFILES +=	$(DR_IO)/dr_err.c

$(DR_IO)/dr_err.c:	$(SBDGENERR) $(SBD_IOCTL)
	$(RM) $@
	$(SBDGENERR) ESBD < $(SBD_IOCTL) > $(DR_IO)/dr_err.c

$(SBDGENERR):			$(DR_IO)/sbdgenerr.pl
	$(RM) $@
	$(CAT) $(DR_IO)/sbdgenerr.pl > $@
	$(CHMOD) +x $@

IL_CPP=$(CPP) -P -DINLINE -D_ASM $(AS_INC_PATH) \
        $(CPP_DEFS) $(ALWAYS_DEFS) $(ALL_DEFS) $(CONFIG_DEFS)

DRMACH_IL=              $(OBJS_DIR)/drmach.il
$(OBJS_DIR)/drmach.o    := CC_XARCH_32 = -xarch=v8plusa
$(OBJS_DIR)/drmach.o:   $(UTSBASE)/sun4u/opl/io/drmach.c $(DRMACH_IL)
	$(COMPILE.c) $(DRMACH_IL) -o $@ $(UTSBASE)/sun4u/opl/io/drmach.c
	$(CTFCONVERT_O)

$(OBJS_DIR)/%.o:		$(UTSBASE)/sun4u/opl/io/%.c
	$(COMPILE.c) -o $@ $<
	$(CTFCONVERT_O)

$(OBJS_DIR)/%.o:		$(UTSBASE)/sun4u/opl/io/pcicmu/%.c
	$(COMPILE.c) -o $@ $<
	$(CTFCONVERT_O)

$(OBJS_DIR)/%.o:		$(UTSBASE)/sun4u/opl/ml/%.s
	$(COMPILE.s) -o $@ $<

$(OBJS_DIR)/%.o:		$(UTSBASE)/sun4u/opl/os/%.c
	$(COMPILE.c) -o $@ $<
	$(CTFCONVERT_O)

$(OBJS_DIR)/%.o:		$(UTSBASE)/sun4u/opl/io/oplpanel/%.c
	$(COMPILE.c) -o $@ $<
	$(CTFCONVERT_O)

$(OBJS_DIR)/%.o:		$(UTSBASE)/sun4u/opl/io/oplmsu/%.c
	$(COMPILE.c) -o $@ $<
	$(CTFCONVERT_O)

OPL_IO=       $(UTSBASE)/sun4u/opl/io

CLEANFILES +=   $(OPL_IO)/drmach_err.c

$(OPL_IO)/drmach_err.c: $(SBDGENERR) $(SBD_IOCTL)
	$(RM) $@
	$(SBDGENERR) EOPL < $(SBD_IOCTL) > $@

CLEANFILES += $(DRMACH_IL)

$(DRMACH_IL):   $(UTSBASE)/sun4u/opl/ml/drmach.il.cpp
	$(IL_CPP) $(UTSBASE)/sun4u/opl/ml/drmach.il.cpp > $@


#
#	Section 1b: Lint object build rules
#

$(LINTS_DIR)/%.ln:		$(UTSBASE)/sun4u/ngdr/io/%.c
	@($(LHEAD) $(LINT.c) $< $(LTAIL))

$(LINTS_DIR)/dr_mem.ln:		$(UTSBASE)/sun4u/opl/io/dr_mem.c
	@($(LHEAD) $(LINT.c) $(UTSBASE)/sun4u/opl/io/dr_mem.c $(LTAIL))

$(LINTS_DIR)/%.ln:		$(UTSBASE)/sun4u/opl/io/%.c
	@($(LHEAD) $(LINT.c) $< $(LTAIL))

$(LINTS_DIR)/%.ln:		$(UTSBASE)/sun4u/opl/io/pcicmu/%.c
	@($(LHEAD) $(LINT.c) $< $(LTAIL))

$(LINTS_DIR)/%.ln:		$(UTSBASE)/sun4u/opl/ml/%.s
	@($(LHEAD) $(LINT.s) $< $(LTAIL))

$(LINTS_DIR)/%.ln:		$(UTSBASE)/sun4u/opl/os/%.c
	@($(LHEAD) $(LINT.c) $< $(LTAIL))

$(LINTS_DIR)/%.ln:		$(UTSBASE)/sun4u/opl/io/oplpanel/%.c
	@($(LHEAD) $(LINT.c) $< $(LTAIL))

$(LINTS_DIR)/%.ln:		$(UTSBASE)/sun4u/opl/io/oplmsu/%.c
	@($(LHEAD) $(LINT.c) $< $(LTAIL))

.KEEP_STATE: