Home | History | Annotate | Download | only in ecpp
      1 #
      2 # CDDL HEADER START
      3 #
      4 # The contents of this file are subject to the terms of the
      5 # Common Development and Distribution License (the "License").
      6 # You may not use this file except in compliance with the License.
      7 #
      8 # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
      9 # or http://www.opensolaris.org/os/licensing.
     10 # See the License for the specific language governing permissions
     11 # and limitations under the License.
     12 #
     13 # When distributing Covered Code, include this CDDL HEADER in each
     14 # file and include the License file at usr/src/OPENSOLARIS.LICENSE.
     15 # If applicable, add the following below this CDDL HEADER, with the
     16 # fields enclosed by brackets "[]" replaced with your own identifying
     17 # information: Portions Copyright [yyyy] [name of copyright owner]
     18 #
     19 # CDDL HEADER END
     20 #
     21 #
     22 # Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
     23 # Use is subject to license terms.
     24 #
     25 #ident	"%Z%%M%	%I%	%E% SMI"
     26 #
     27 #	This Makefile drives the production of ecpp
     28 #	kernel module.
     29 #	
     30 #
     31 
     32 #
     33 #	Path to the base of the uts directory tree (usually /usr/src/uts).
     34 #
     35 UTSBASE	= ../..
     36 
     37 #
     38 #	Define the module and object file sets.
     39 #
     40 MODULE		= ecpp
     41 OBJECTS		= $(ECPP_OBJS:%=$(OBJS_DIR)/%)
     42 LINTS		= $(ECPP_OBJS:%.o=$(LINTS_DIR)/%.ln)
     43 ROOTMODULE	= $(ROOT_DRV_DIR)/$(MODULE)
     44 CONF_SRCDIR	= $(UTSBASE)/common/io
     45 WARLOCK_OUT	= $(ECPP_OBJS:%.o=%.ll)
     46 WARLOCK_OK	= $(MODULE).ok
     47 WLCMD_DIR	= $(UTSBASE)/common/io/warlock
     48 
     49 #
     50 #	Include common rules.
     51 #
     52 include $(UTSBASE)/intel/Makefile.intel
     53 
     54 #
     55 #	Define targets
     56 #
     57 ALL_TARGET	= $(BINARY) $(SRC_CONFILE)
     58 LINT_TARGET	= $(MODULE).lint
     59 INSTALL_TARGET	= $(BINARY) $(ROOTMODULE) $(ROOT_CONFFILE)
     60 
     61 #
     62 # For now, disable these lint checks; maintainers should endeavor
     63 # to investigate and remove these for maximum lint coverage.
     64 # Please do not carry these forward to new Makefiles.
     65 #
     66 LINTTAGS	+= -erroff=E_BAD_PTR_CAST_ALIGN
     67 LINTTAGS	+= -erroff=E_PTRDIFF_OVERFLOW
     68 LINTTAGS	+= -erroff=E_ASSIGN_NARROW_CONV
     69 
     70 #
     71 #	Default build targets.
     72 #
     73 .KEEP_STATE:
     74 
     75 def:		$(DEF_DEPS)
     76 
     77 all:		$(ALL_DEPS)
     78 
     79 clean:		$(CLEAN_DEPS)
     80 
     81 clean:		$(CLEAN_DEPS)
     82 		$(RM) $(WARLOCK_OUT) $(WARLOCK_OK)
     83 
     84 clobber:	$(CLOBBER_DEPS)
     85 		$(RM) $(WARLOCK_OUT) $(WARLOCK_OK)
     86 
     87 modlintlib:	$(MODLINTLIB_DEPS)
     88 
     89 clean.lint:	$(CLEAN_LINT_DEPS)
     90 
     91 install:	$(INSTALL_DEPS)
     92 
     93 #
     94 #	Include common targets.
     95 #
     96 include $(UTSBASE)/intel/Makefile.targ
     97 
     98 #
     99 #	Defines for local commands.
    100 #
    101 WARLOCK		= warlock
    102 WLCC		= wlcc
    103 TOUCH		= touch
    104 TEST		= test
    105 
    106 #
    107 #	lock_lint rules
    108 #
    109 warlock: $(WARLOCK_OK)
    110 
    111 $(WARLOCK_OK): $(WARLOCK_OUT) $(WLCMD_DIR)/ecpp.wlcmd warlock_ddi.files
    112 	$(WARLOCK) -c $(WLCMD_DIR)/ecpp.wlcmd $(WARLOCK_OUT) \
    113 		-l ../warlock/ddi_dki_impl.ll
    114 	$(TOUCH) $@
    115 
    116 %.ll: $(UTSBASE)/common/io/%.c $(UTSBASE)/common/sys/ecppvar.h \
    117 		$(UTSBASE)/common/sys/ecppio.h
    118 	$(WLCC) $(CPPFLAGS) -DDEBUG -o $@ $<
    119 
    120 warlock_ddi.files:
    121 	cd ../warlock; pwd; $(MAKE) warlock
    122