Makefile revision 489b7c4ab76ae8df137fbfcc2214f7baa52883a0
d6fa26d0adaec6c910115be34fe7a5a5f402c14fMark Andrews#
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson# CDDL HEADER START
5347c0fcb04eaea19d9f39795646239f487c6207Tinderbox User#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# The contents of this file are subject to the terms of the
5347c0fcb04eaea19d9f39795646239f487c6207Tinderbox User# Common Development and Distribution License (the "License").
5347c0fcb04eaea19d9f39795646239f487c6207Tinderbox User# You may not use this file except in compliance with the License.
5347c0fcb04eaea19d9f39795646239f487c6207Tinderbox User#
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
d6fa26d0adaec6c910115be34fe7a5a5f402c14fMark Andrews# or http://www.opensolaris.org/os/licensing.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# See the License for the specific language governing permissions
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# and limitations under the License.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User# When distributing Covered Code, include this CDDL HEADER in each
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User# If applicable, add the following below this CDDL HEADER, with the
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User# fields enclosed by brackets "[]" replaced with your own identifying
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User# information: Portions Copyright [yyyy] [name of copyright owner]
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User#
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User# CDDL HEADER END
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User#
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User#
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User# Copyright 2009 Sun Microsystems, Inc. All rights reserved.
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User# Use is subject to license terms.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User#
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User# This makefile drives the production of the usbvc driver kernel module.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# Path to the base of the uts directory tree (usually /usr/src/uts).
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinUTSBASE = ../..
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User# Define the module and object file sets.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinMODULE = usbvc
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinOBJECTS = $(USBVC_OBJS:%=$(OBJS_DIR)/%)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinLINTS = $(USBVC_OBJS:%.o=$(LINTS_DIR)/%.ln)
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox UserROOTMODULE = $(ROOT_DRV_DIR)/$(MODULE)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinWARLOCK_OUT = $(USBVC_OBJS:%.o=%.ll)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinWARLOCK_OK = $(MODULE).ok
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinWLCMD_DIR = $(UTSBASE)/common/io/warlock
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# Include common rules.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox Userinclude $(UTSBASE)/intel/Makefile.intel
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# Define targets
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinALL_TARGET = $(BINARY)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinLINT_TARGET = $(MODULE).lint
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinINSTALL_TARGET = $(BINARY) $(ROOTMODULE)
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# Override defaults to build a unique, local modstubs.o.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox UserMODSTUBS_DIR = $(OBJS_DIR)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCLEANFILES += $(MODSTUBS_O)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User# depends on misc/usba
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinLDFLAGS += -dy -Nmisc/usba
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User# Disable this because it is necessary for this driver
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User# and it is surely safe
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User#
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox UserLINTTAGS += -erroff=E_BAD_PTR_CAST_ALIGN
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User#
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User# Default build targets.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User.KEEP_STATE:
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox Userdef: $(DEF_DEPS)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinall: $(ALL_DEPS)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinclean: $(CLEAN_DEPS)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(RM) $(WARLOCK_OUT) $(WARLOCK_OK)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinclobber: $(CLOBBER_DEPS)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(RM) $(WARLOCK_OUT) $(WARLOCK_OK)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinlint: $(LINT_DEPS)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox Usermodlintlib: $(MODLINTLIB_DEPS)
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinclean.lint: $(CLEAN_LINT_DEPS)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeininstall: $(INSTALL_DEPS)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# Include common targets.
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User#
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox Userinclude $(UTSBASE)/intel/Makefile.targ
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# Defines for local commands.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox UserWARLOCK = warlock
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinWLCC = wlcc
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox UserTOUCH = touch
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox UserTEST = test
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# lock_lint rules
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User#
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox UserUSBA_FILES = $(USBA_WITHOUT_WUSB_OBJS:%.o=../usba/%.ll)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinUHCI_FILES = $(UHCI_OBJS:%.o=../uhci/%.ll)
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox UserOHCI_FILES = $(OHCI_OBJS:%.o=../ohci/%.ll)
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox UserEHCI_FILES = $(EHCI_OBJS:%.o=../ehci/%.ll)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinwarlock: $(WARLOCK_OK) warlock_with_usba
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User$(WARLOCK_OK): $(WARLOCK_OUT) $(WLCMD_DIR)/usbvc.wlcmd warlock_ddi.files
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(WARLOCK) -c $(WLCMD_DIR)/usbvc.wlcmd $(WARLOCK_OUT) \
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User -l ../warlock/ddi_dki_impl.ll
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User $(TOUCH) $@
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein%.ll: $(UTSBASE)/common/io/usb/clients/video/usbvc/%.c \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(UTSBASE)/common/sys/usb/clients/video/usbvc/usbvc_var.h
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(WLCC) $(CPPFLAGS) -DDEBUG -o $@ $<
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox Userwarlock_with_usba: $(WLCMD_DIR)/usbvc_with_usba.wlcmd $(WARLOCK_OUT) \
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User usba_files ohci_files ehci_files uhci_files warlock_ddi.files
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(WARLOCK) -c $(WLCMD_DIR)/usbvc_with_usba.wlcmd \
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User $(USBA_FILES) $(OHCI_FILES) $(EHCI_FILES) $(UHCI_FILES) \
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User $(WARLOCK_OUT) \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein -l ../warlock/ddi_dki_impl.ll
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox Userusba_files:
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User @cd ../usba;pwd; $(MAKE) warlock
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox Userohci_files:
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User @cd ../ohci;pwd; $(MAKE) warlock
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinuhci_files:
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein @cd ../uhci;pwd; $(MAKE) warlock
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinehci_files:
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein @cd ../ehci;pwd; $(MAKE) warlock
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox Userwarlock_ddi.files:
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User cd ../warlock; pwd; $(MAKE) warlock
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein