01cf0ca850dd1c21e1c405a4493fe61d0c28d721Lennart Poettering#
01cf0ca850dd1c21e1c405a4493fe61d0c28d721Lennart Poettering# CDDL HEADER START
12b42c76672a66c2d4ea7212c14f8f1b5a62b78dTom Gundersen#
01cf0ca850dd1c21e1c405a4493fe61d0c28d721Lennart Poettering# The contents of this file are subject to the terms of the
01cf0ca850dd1c21e1c405a4493fe61d0c28d721Lennart Poettering# Common Development and Distribution License (the "License").
01cf0ca850dd1c21e1c405a4493fe61d0c28d721Lennart Poettering# You may not use this file except in compliance with the License.
01cf0ca850dd1c21e1c405a4493fe61d0c28d721Lennart Poettering#
01cf0ca850dd1c21e1c405a4493fe61d0c28d721Lennart Poettering# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
01cf0ca850dd1c21e1c405a4493fe61d0c28d721Lennart Poettering# or http://www.opensolaris.org/os/licensing.
01cf0ca850dd1c21e1c405a4493fe61d0c28d721Lennart Poettering# See the License for the specific language governing permissions
01cf0ca850dd1c21e1c405a4493fe61d0c28d721Lennart Poettering# and limitations under the License.
01cf0ca850dd1c21e1c405a4493fe61d0c28d721Lennart Poettering#
01cf0ca850dd1c21e1c405a4493fe61d0c28d721Lennart Poettering# When distributing Covered Code, include this CDDL HEADER in each
01cf0ca850dd1c21e1c405a4493fe61d0c28d721Lennart Poettering# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
01cf0ca850dd1c21e1c405a4493fe61d0c28d721Lennart Poettering# If applicable, add the following below this CDDL HEADER, with the
01cf0ca850dd1c21e1c405a4493fe61d0c28d721Lennart Poettering# fields enclosed by brackets "[]" replaced with your own identifying
01cf0ca850dd1c21e1c405a4493fe61d0c28d721Lennart Poettering# information: Portions Copyright [yyyy] [name of copyright owner]
01cf0ca850dd1c21e1c405a4493fe61d0c28d721Lennart Poettering#
01cf0ca850dd1c21e1c405a4493fe61d0c28d721Lennart Poettering# CDDL HEADER END
01cf0ca850dd1c21e1c405a4493fe61d0c28d721Lennart Poettering#
01cf0ca850dd1c21e1c405a4493fe61d0c28d721Lennart Poettering#
01cf0ca850dd1c21e1c405a4493fe61d0c28d721Lennart Poettering# Copyright 2009 Sun Microsystems, Inc. All rights reserved.
01cf0ca850dd1c21e1c405a4493fe61d0c28d721Lennart Poettering# Use is subject to license terms.
01cf0ca850dd1c21e1c405a4493fe61d0c28d721Lennart Poettering#
01cf0ca850dd1c21e1c405a4493fe61d0c28d721Lennart Poettering# This makefile drives the production of the zfs file system
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek# kernel module.
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek#
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek# Copyright 2013 Saso Kiselkov. All rights reserved.
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek#
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek#
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek# Path to the base of the uts directory tree (usually /usr/src/uts).
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek#
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-SzmekUTSBASE = ../..
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-SzmekARCHDIR:sh = cd ..; basename `pwd`
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek#
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek# Define the module and object file sets.
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek#
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-SzmekMODULE = zfs
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-SzmekOBJECTS = $(ZFS_OBJS:%=$(OBJS_DIR)/%)
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-SzmekLINTS = $(ZFS_OBJS:%.o=$(LINTS_DIR)/%.ln)
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-SzmekROOTMODULE = $(ROOT_DRV_DIR)/$(MODULE)
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-SzmekROOTLINK = $(ROOT_FS_DIR)/$(MODULE)
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-SzmekCONF_SRCDIR = $(UTSBASE)/common/fs/zfs
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek#
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek# Include common rules.
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek#
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmekinclude ../Makefile.$(ARCHDIR)
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek#
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek# Define targets
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek#
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-SzmekALL_TARGET = $(BINARY) $(SRC_CONFILE)
12b42c76672a66c2d4ea7212c14f8f1b5a62b78dTom GundersenLINT_TARGET = $(MODULE).lint
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-SzmekINSTALL_TARGET = $(BINARY) $(ROOTMODULE) $(ROOTLINK) $(ROOT_CONFFILE)
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek#
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek# Overrides and depends_on
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek#
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek# We require sched/SDC because by the time vfs_mountroot() runs,
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek# we can no longer load modules through OBP.
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek#
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-SzmekMODSTUBS_DIR = $(OBJS_DIR)
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-SzmekLDFLAGS += -dy -Nfs/specfs -Ncrypto/swrand -Nmisc/idmap \
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek -Nsched/SDC -Nmisc/sha2 -Nmisc/skein -Nmisc/edonr
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-SzmekINC_PATH += -I$(UTSBASE)/common/fs/zfs
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-SzmekINC_PATH += -I$(SRC)/common
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-SzmekINC_PATH += -I$(COMMONBASE)/zfs
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-SzmekC99MODE= -xc99=%all
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-SzmekC99LMODE= -Xc99=%all
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek#
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek# For now, disable these lint checks; maintainers should endeavor
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek# to investigate and remove these for maximum lint coverage.
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek# Please do not carry these forward to new Makefiles.
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek#
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-SzmekLINTTAGS += -erroff=E_SUSPICIOUS_COMPARISON
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-SzmekLINTTAGS += -erroff=E_BAD_PTR_CAST_ALIGN
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-SzmekLINTTAGS += -erroff=E_SUPPRESSION_DIRECTIVE_UNUSED
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-SzmekLINTTAGS += -erroff=E_STATIC_UNUSED
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-SzmekLINTTAGS += -erroff=E_PTRDIFF_OVERFLOW
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-SzmekLINTTAGS += -erroff=E_ASSIGN_NARROW_CONV
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-SzmekCERRWARN += -_gcc=-Wno-type-limits
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-SzmekCERRWARN += -_gcc=-Wno-switch
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-SzmekCERRWARN += -_gcc=-Wno-parentheses
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-SzmekCERRWARN += -_gcc=-Wno-unused-variable
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-SzmekCERRWARN += -_gcc=-Wno-unused-function
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-SzmekCERRWARN += -_gcc=-Wno-unused-label
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek#
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek# Default build targets.
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek#
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek.KEEP_STATE:
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmekdef: $(DEF_DEPS)
c214ee6f15fd92342a7526fd99dc768d56950ac7Evgeny Vereshchagin
c214ee6f15fd92342a7526fd99dc768d56950ac7Evgeny Vereshchaginall: $(ALL_DEPS)
c214ee6f15fd92342a7526fd99dc768d56950ac7Evgeny Vereshchagin
c214ee6f15fd92342a7526fd99dc768d56950ac7Evgeny Vereshchaginclean: $(CLEAN_DEPS)
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmekclobber: $(CLOBBER_DEPS)
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmeklint: $(LINT_DEPS)
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmekmodlintlib: $(MODLINTLIB_DEPS)
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmekclean.lint: $(CLEAN_LINT_DEPS)
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmekinstall: $(INSTALL_DEPS)
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek$(ROOTLINK): $(ROOT_FS_DIR) $(ROOTMODULE)
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek -$(RM) $@; ln $(ROOTMODULE) $@
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek#
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek# Include common targets.
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek#
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmekinclude ../Makefile.targ
798d3a524ea57aaf40cb53858aaa45ec702f012dZbigniew Jędrzejewski-Szmek