Makefile revision 7014882c6a3672fd0e5d60200af8643ae53c5928
b03274844ecd270f9e9331f51cc4236a33e2e671Christian Maeder#
120eec9ff1748e1ae786e2ab073234198bc0f701Christian Maeder# CDDL HEADER START
e6d40133bc9f858308654afb1262b8b483ec5922Till Mossakowski#
7968d3a131e5a684ec1ff0c6d88aae638549153dChristian Maeder# The contents of this file are subject to the terms of the
97018cf5fa25b494adffd7e9b4e87320dae6bf47Christian Maeder# Common Development and Distribution License (the "License").
120eec9ff1748e1ae786e2ab073234198bc0f701Christian Maeder# You may not use this file except in compliance with the License.
120eec9ff1748e1ae786e2ab073234198bc0f701Christian Maeder#
120eec9ff1748e1ae786e2ab073234198bc0f701Christian Maeder# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
120eec9ff1748e1ae786e2ab073234198bc0f701Christian Maeder# or http://www.opensolaris.org/os/licensing.
120eec9ff1748e1ae786e2ab073234198bc0f701Christian Maeder# See the License for the specific language governing permissions
7968d3a131e5a684ec1ff0c6d88aae638549153dChristian Maeder# and limitations under the License.
120eec9ff1748e1ae786e2ab073234198bc0f701Christian Maeder#
120eec9ff1748e1ae786e2ab073234198bc0f701Christian Maeder# When distributing Covered Code, include this CDDL HEADER in each
120eec9ff1748e1ae786e2ab073234198bc0f701Christian Maeder# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
120eec9ff1748e1ae786e2ab073234198bc0f701Christian Maeder# If applicable, add the following below this CDDL HEADER, with the
120eec9ff1748e1ae786e2ab073234198bc0f701Christian Maeder# fields enclosed by brackets "[]" replaced with your own identifying
120eec9ff1748e1ae786e2ab073234198bc0f701Christian Maeder# information: Portions Copyright [yyyy] [name of copyright owner]
5c9cb88c054c2f3439f6bff063eb39091e0094d3Christian Maeder#
120eec9ff1748e1ae786e2ab073234198bc0f701Christian Maeder# CDDL HEADER END
120eec9ff1748e1ae786e2ab073234198bc0f701Christian Maeder#
333780eae2be9f20fe46dedbf5eb46ffa0cbfd02Christian Maeder#
333780eae2be9f20fe46dedbf5eb46ffa0cbfd02Christian Maeder# Copyright 2009 Sun Microsystems, Inc. All rights reserved.
333780eae2be9f20fe46dedbf5eb46ffa0cbfd02Christian Maeder# Use is subject to license terms.
120eec9ff1748e1ae786e2ab073234198bc0f701Christian Maeder#
7968d3a131e5a684ec1ff0c6d88aae638549153dChristian Maeder# This makefile drives the production of the zfs file system
7968d3a131e5a684ec1ff0c6d88aae638549153dChristian Maeder# kernel module.
7968d3a131e5a684ec1ff0c6d88aae638549153dChristian Maeder
7968d3a131e5a684ec1ff0c6d88aae638549153dChristian Maeder#
7968d3a131e5a684ec1ff0c6d88aae638549153dChristian Maeder# Path to the base of the uts directory tree (usually /usr/src/uts).
7968d3a131e5a684ec1ff0c6d88aae638549153dChristian Maeder#
7968d3a131e5a684ec1ff0c6d88aae638549153dChristian MaederUTSBASE = ../..
7968d3a131e5a684ec1ff0c6d88aae638549153dChristian Maeder
120eec9ff1748e1ae786e2ab073234198bc0f701Christian MaederARCHDIR:sh = cd ..; basename `pwd`
120eec9ff1748e1ae786e2ab073234198bc0f701Christian Maeder
120eec9ff1748e1ae786e2ab073234198bc0f701Christian Maeder#
b03274844ecd270f9e9331f51cc4236a33e2e671Christian Maeder# Define the module and object file sets.
333780eae2be9f20fe46dedbf5eb46ffa0cbfd02Christian Maeder#
04d04d19fdd5320953c78ad5b6d2d11f85bc4bcfChristian MaederMODULE = zfs
04d04d19fdd5320953c78ad5b6d2d11f85bc4bcfChristian MaederOBJECTS = $(ZFS_OBJS:%=$(OBJS_DIR)/%)
b03274844ecd270f9e9331f51cc4236a33e2e671Christian MaederLINTS = $(ZFS_OBJS:%.o=$(LINTS_DIR)/%.ln)
04d04d19fdd5320953c78ad5b6d2d11f85bc4bcfChristian MaederROOTMODULE = $(ROOT_DRV_DIR)/$(MODULE)
04d04d19fdd5320953c78ad5b6d2d11f85bc4bcfChristian MaederROOTLINK = $(ROOT_FS_DIR)/$(MODULE)
333780eae2be9f20fe46dedbf5eb46ffa0cbfd02Christian MaederCONF_SRCDIR = $(UTSBASE)/common/fs/zfs
04d04d19fdd5320953c78ad5b6d2d11f85bc4bcfChristian Maeder
5b9767cdede29cdc2fb4c871e7a5983d570ff2eaTill Mossakowski#
333780eae2be9f20fe46dedbf5eb46ffa0cbfd02Christian Maeder# Include common rules.
04d04d19fdd5320953c78ad5b6d2d11f85bc4bcfChristian Maeder#
333780eae2be9f20fe46dedbf5eb46ffa0cbfd02Christian Maederinclude ../Makefile.$(ARCHDIR)
333780eae2be9f20fe46dedbf5eb46ffa0cbfd02Christian Maeder
04d04d19fdd5320953c78ad5b6d2d11f85bc4bcfChristian Maeder#
333780eae2be9f20fe46dedbf5eb46ffa0cbfd02Christian Maeder# Define targets
120eec9ff1748e1ae786e2ab073234198bc0f701Christian Maeder#
04d04d19fdd5320953c78ad5b6d2d11f85bc4bcfChristian MaederALL_TARGET = $(BINARY) $(SRC_CONFILE)
333780eae2be9f20fe46dedbf5eb46ffa0cbfd02Christian MaederLINT_TARGET = $(MODULE).lint
120eec9ff1748e1ae786e2ab073234198bc0f701Christian MaederINSTALL_TARGET = $(BINARY) $(ROOTMODULE) $(ROOTLINK) $(ROOT_CONFFILE)
120eec9ff1748e1ae786e2ab073234198bc0f701Christian Maeder
120eec9ff1748e1ae786e2ab073234198bc0f701Christian Maeder#
120eec9ff1748e1ae786e2ab073234198bc0f701Christian Maeder# Overrides and depends_on
120eec9ff1748e1ae786e2ab073234198bc0f701Christian Maeder#
120eec9ff1748e1ae786e2ab073234198bc0f701Christian MaederMODSTUBS_DIR = $(OBJS_DIR)
04d04d19fdd5320953c78ad5b6d2d11f85bc4bcfChristian MaederLDFLAGS += -dy -Nfs/specfs -Ncrypto/swrand -Nmisc/idmap -Nmisc/sha2
333780eae2be9f20fe46dedbf5eb46ffa0cbfd02Christian Maeder
120eec9ff1748e1ae786e2ab073234198bc0f701Christian MaederINC_PATH += -I$(UTSBASE)/common/fs/zfs
120eec9ff1748e1ae786e2ab073234198bc0f701Christian MaederINC_PATH += -I$(SRC)/common
120eec9ff1748e1ae786e2ab073234198bc0f701Christian MaederINC_PATH += -I$(COMMONBASE)/zfs
120eec9ff1748e1ae786e2ab073234198bc0f701Christian Maeder
333780eae2be9f20fe46dedbf5eb46ffa0cbfd02Christian MaederC99MODE= -xc99=%all
333780eae2be9f20fe46dedbf5eb46ffa0cbfd02Christian MaederC99LMODE= -Xc99=%all
120eec9ff1748e1ae786e2ab073234198bc0f701Christian Maeder
333780eae2be9f20fe46dedbf5eb46ffa0cbfd02Christian Maeder#
120eec9ff1748e1ae786e2ab073234198bc0f701Christian Maeder# For now, disable these lint checks; maintainers should endeavor
120eec9ff1748e1ae786e2ab073234198bc0f701Christian Maeder# to investigate and remove these for maximum lint coverage.
04d04d19fdd5320953c78ad5b6d2d11f85bc4bcfChristian Maeder# Please do not carry these forward to new Makefiles.
333780eae2be9f20fe46dedbf5eb46ffa0cbfd02Christian Maeder#
120eec9ff1748e1ae786e2ab073234198bc0f701Christian MaederLINTTAGS += -erroff=E_SUSPICIOUS_COMPARISON
120eec9ff1748e1ae786e2ab073234198bc0f701Christian MaederLINTTAGS += -erroff=E_BAD_PTR_CAST_ALIGN
120eec9ff1748e1ae786e2ab073234198bc0f701Christian MaederLINTTAGS += -erroff=E_SUPPRESSION_DIRECTIVE_UNUSED
120eec9ff1748e1ae786e2ab073234198bc0f701Christian MaederLINTTAGS += -erroff=E_STATIC_UNUSED
120eec9ff1748e1ae786e2ab073234198bc0f701Christian MaederLINTTAGS += -erroff=E_PTRDIFF_OVERFLOW
333780eae2be9f20fe46dedbf5eb46ffa0cbfd02Christian MaederLINTTAGS += -erroff=E_ASSIGN_NARROW_CONV
333780eae2be9f20fe46dedbf5eb46ffa0cbfd02Christian Maeder
120eec9ff1748e1ae786e2ab073234198bc0f701Christian MaederCERRWARN += -_gcc=-Wno-type-limits
120eec9ff1748e1ae786e2ab073234198bc0f701Christian MaederCERRWARN += -_gcc=-Wno-switch
120eec9ff1748e1ae786e2ab073234198bc0f701Christian MaederCERRWARN += -_gcc=-Wno-parentheses
04d04d19fdd5320953c78ad5b6d2d11f85bc4bcfChristian MaederCERRWARN += -_gcc=-Wno-unused-variable
04d04d19fdd5320953c78ad5b6d2d11f85bc4bcfChristian MaederCERRWARN += -_gcc=-Wno-unused-function
333780eae2be9f20fe46dedbf5eb46ffa0cbfd02Christian MaederCERRWARN += -_gcc=-Wno-unused-label
04d04d19fdd5320953c78ad5b6d2d11f85bc4bcfChristian MaederCERRWARN += -_gcc=-Wno-uninitialized
333780eae2be9f20fe46dedbf5eb46ffa0cbfd02Christian Maeder
04d04d19fdd5320953c78ad5b6d2d11f85bc4bcfChristian Maeder#
120eec9ff1748e1ae786e2ab073234198bc0f701Christian Maeder# Default build targets.
120eec9ff1748e1ae786e2ab073234198bc0f701Christian Maeder#
120eec9ff1748e1ae786e2ab073234198bc0f701Christian Maeder.KEEP_STATE:
120eec9ff1748e1ae786e2ab073234198bc0f701Christian Maeder
120eec9ff1748e1ae786e2ab073234198bc0f701Christian Maederdef: $(DEF_DEPS)
120eec9ff1748e1ae786e2ab073234198bc0f701Christian Maeder
120eec9ff1748e1ae786e2ab073234198bc0f701Christian Maederall: $(ALL_DEPS)
120eec9ff1748e1ae786e2ab073234198bc0f701Christian Maeder
120eec9ff1748e1ae786e2ab073234198bc0f701Christian Maederclean: $(CLEAN_DEPS)
120eec9ff1748e1ae786e2ab073234198bc0f701Christian Maeder
120eec9ff1748e1ae786e2ab073234198bc0f701Christian Maederclobber: $(CLOBBER_DEPS)
120eec9ff1748e1ae786e2ab073234198bc0f701Christian Maeder
b03274844ecd270f9e9331f51cc4236a33e2e671Christian Maederlint: $(LINT_DEPS)
120eec9ff1748e1ae786e2ab073234198bc0f701Christian Maeder
120eec9ff1748e1ae786e2ab073234198bc0f701Christian Maedermodlintlib: $(MODLINTLIB_DEPS)
e953bea49e7f0e1a43bccf2a66c5e2a2b50848e0Christian Maeder
120eec9ff1748e1ae786e2ab073234198bc0f701Christian Maederclean.lint: $(CLEAN_LINT_DEPS)
e953bea49e7f0e1a43bccf2a66c5e2a2b50848e0Christian Maeder
120eec9ff1748e1ae786e2ab073234198bc0f701Christian Maederinstall: $(INSTALL_DEPS)
e953bea49e7f0e1a43bccf2a66c5e2a2b50848e0Christian Maeder
120eec9ff1748e1ae786e2ab073234198bc0f701Christian Maeder$(ROOTLINK): $(ROOT_FS_DIR) $(ROOTMODULE)
e953bea49e7f0e1a43bccf2a66c5e2a2b50848e0Christian Maeder -$(RM) $@; ln $(ROOTMODULE) $@
120eec9ff1748e1ae786e2ab073234198bc0f701Christian Maeder
120eec9ff1748e1ae786e2ab073234198bc0f701Christian Maeder#
120eec9ff1748e1ae786e2ab073234198bc0f701Christian Maeder# Include common targets.
120eec9ff1748e1ae786e2ab073234198bc0f701Christian Maeder#
5c9cb88c054c2f3439f6bff063eb39091e0094d3Christian Maederinclude ../Makefile.targ
120eec9ff1748e1ae786e2ab073234198bc0f701Christian Maeder