Makefile revision 7014882c6a3672fd0e5d60200af8643ae53c5928
43b4c41fbb07705c9df321221ab9cb9832460407Christian Maeder#
c63ebf815c8a874525cf18670ad74847f7fc7b26Christian Maeder# CDDL HEADER START
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian Maeder#
25cc5fbba63f84b47e389af749f55abbbde71c8cChristian Maeder# The contents of this file are subject to the terms of the
5191fa24c532d1f67e7a642e9aece65efb8a0975Christian Maeder# Common Development and Distribution License (the "License").
43b4c41fbb07705c9df321221ab9cb9832460407Christian Maeder# You may not use this file except in compliance with the License.
5191fa24c532d1f67e7a642e9aece65efb8a0975Christian Maeder#
5191fa24c532d1f67e7a642e9aece65efb8a0975Christian Maeder# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
5191fa24c532d1f67e7a642e9aece65efb8a0975Christian Maeder# or http://www.opensolaris.org/os/licensing.
43b4c41fbb07705c9df321221ab9cb9832460407Christian Maeder# See the License for the specific language governing permissions
5191fa24c532d1f67e7a642e9aece65efb8a0975Christian Maeder# and limitations under the License.
f4a2a20e49f41b2afa657e5e64d9e349c7faa091Christian Maeder#
f2f9df2e17e70674f0bf426ed1763c973ee4cde0Christian Maeder# When distributing Covered Code, include this CDDL HEADER in each
5191fa24c532d1f67e7a642e9aece65efb8a0975Christian Maeder# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
5191fa24c532d1f67e7a642e9aece65efb8a0975Christian Maeder# If applicable, add the following below this CDDL HEADER, with the
5191fa24c532d1f67e7a642e9aece65efb8a0975Christian Maeder# fields enclosed by brackets "[]" replaced with your own identifying
68d10d143f29fcff3c637ba24f90e983995ceae6Christian Maeder# information: Portions Copyright [yyyy] [name of copyright owner]
a53841f6d6e86ac751c12a33dc8aadf53f59d977Klaus Luettich#
a53841f6d6e86ac751c12a33dc8aadf53f59d977Klaus Luettich# CDDL HEADER END
a53841f6d6e86ac751c12a33dc8aadf53f59d977Klaus Luettich#
a53841f6d6e86ac751c12a33dc8aadf53f59d977Klaus Luettich#
a737caf82de97c1907027c03e4b4509eb492b4b8Christian Maeder# Copyright 2009 Sun Microsystems, Inc. All rights reserved.
68d10d143f29fcff3c637ba24f90e983995ceae6Christian Maeder# Use is subject to license terms.
96646aed2ae087b942ae23f15bbe729a8f7c43d3Christian Maeder#
01e383014b555bbcf639c0ca60c5810b3eff83c0Christian Maeder# This makefile drives the production of qlc driver kernel module.
3b06e23643a9f65390cb8c1caabe83fa7e87a708Till Mossakowski#
9dac90ec2be2a72e03893095461960d483fe2fc2Christian Maeder# Path to the base of the uts directory tree (usually /usr/src/uts).
a6db617ca58eb6a0587b6366e913107dfecb71b5Heng Jiang#
ce8b15da31cd181b7e90593cbbca98f47eda29d6Till MossakowskiUTSBASE = ../..
e7757995211bd395dc79d26fe017d99375f7d2a6Christian Maeder
e7757995211bd395dc79d26fe017d99375f7d2a6Christian Maeder#
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian Maeder# Define the module and object file sets.
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian Maeder#
a1ed34933c266ce85066acb0d7b20c90cb8eb213Christian MaederMODULE = qlc
c0c2380bced8159ff0297ece14eba948bd236471Christian MaederOBJECTS = $(QLC_OBJS:%=$(OBJS_DIR)/%)
8410667510a76409aca9bb24ff0eda0420088274Christian MaederLINTS = $(QLC_OBJS:%.o=$(LINTS_DIR)/%.ln)
6a79849bed67264c396dddb3e9c184bdfc1a1bc9Christian MaederROOTMODULE = $(ROOT_DRV_DIR)/$(MODULE)
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian MaederCONF_SRCDIR = $(UTSBASE)/common/io/fibre-channel/fca/qlc
8410667510a76409aca9bb24ff0eda0420088274Christian Maeder
404166b9366552e9ec5abb87a37c76ec8a815fb7Klaus Luettich#
b1f59a4ea7c96f4c03a4d7cfcb9c5e66871cfbbbChristian Maeder# Include common rules.
ad270004874ce1d0697fb30d7309f180553bb315Christian Maeder#
4d56f2fa72e4aec20eb827c11ed49c8cbb7014bdChristian Maederinclude $(UTSBASE)/Makefile.uts
4cb215739e9ab13447fa21162482ebe485b47455Christian Maederinclude $(UTSBASE)/intel/Makefile.intel
8ef75f1cc0437656bf622cec5ac9e8ea221da8f2Christian Maeder
404166b9366552e9ec5abb87a37c76ec8a815fb7Klaus Luettich#
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian Maeder# Define targets
356fa49fe3e6a8398f92d13e9f920d0f093697ecChristian Maeder#
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian MaederALL_TARGET = $(BINARY) $(CONFMOD) $(ITUMOD)
55adfe57a4de1f36adc3e3bfc16f342e44a7d444Christian MaederLINT_TARGET = $(MODULE).lint
d23b0cc79c0d204e6ec758dff8d0ba71c9f693f7Christian MaederINSTALL_TARGET = $(BINARY) $(ROOTMODULE) $(ROOT_CONFFILE)
8d97ef4f234681b11bb5924bd4d03adef858d2d2Christian Maeder
f4a2a20e49f41b2afa657e5e64d9e349c7faa091Christian Maeder#
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian Maeder# header file directories
e593b89bfd4952698dc37feced21cefe869d87a2Christian Maeder#
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian MaederINC_PATH += -I$(ROOT)/usr/include
5191fa24c532d1f67e7a642e9aece65efb8a0975Christian MaederINC_PATH += -I$(UTSBASE)/common/sys/fibre-channel
7cc09dd93962a2155c34d209d1d4cd7d7b838264Christian MaederINC_PATH += -I$(UTSBASE)/common/sys/fibre-channel/ulp
1aee4aaddde105264c1faf394d88e302c05094ffChristian MaederINC_PATH += -I$(UTSBASE)/common/sys/fibre-channel/fca/qlc
1aee4aaddde105264c1faf394d88e302c05094ffChristian MaederINC_PATH += -I$(UTSBASE)/common/sys/fibre-channel/impl
f041c9a6bda23de33a38490e35b831ae18d96b45Christian Maeder
7cc09dd93962a2155c34d209d1d4cd7d7b838264Christian MaederLDFLAGS += -dy -Nmisc/fctl
1aee4aaddde105264c1faf394d88e302c05094ffChristian Maeder
1aee4aaddde105264c1faf394d88e302c05094ffChristian Maeder#
c3053d57f642ca507cdf79512e604437c4546cb9Christian Maeder# Lint tags
dcbd32289a7bdf1e6edd06c6ab0698c6a9dbf37aChristian Maeder#
f4a2a20e49f41b2afa657e5e64d9e349c7faa091Christian MaederLINTTAGS += -erroff=E_BAD_PTR_CAST_ALIGN
f4a2a20e49f41b2afa657e5e64d9e349c7faa091Christian MaederLINTTAGS += -erroff=E_SUPPRESSION_DIRECTIVE_UNUSED
dcbd32289a7bdf1e6edd06c6ab0698c6a9dbf37aChristian Maeder
2c9df69accd8924e7cef3bf8f686626958499c7aChristian MaederFWTABLE = ql_fw_table.c
c2fcc35abb03cf0b4ca4b050efeb10827f38c322Christian MaederFWIMAGES = 2200
1aee4aaddde105264c1faf394d88e302c05094ffChristian MaederFWIMAGES += 2300
356fa49fe3e6a8398f92d13e9f920d0f093697ecChristian MaederFWIMAGES += 2400
356fa49fe3e6a8398f92d13e9f920d0f093697ecChristian MaederFWIMAGES += 2500
4ed0007ac9caea5b468f202521352d153481423cChristian MaederFWIMAGES += 6322
356fa49fe3e6a8398f92d13e9f920d0f093697ecChristian MaederFWIMAGES += 8100
356fa49fe3e6a8398f92d13e9f920d0f093697ecChristian Maeder
0206ab93ef846e4e0885996d052b9b73b9dc66b0Christian MaederFWMODULES = $(FWIMAGES:%=$(MODULE)_fw_%)
f13d1e86e58da53680e78043e8df182eed867efbChristian MaederFWMODULES_SRC = $(FWIMAGES:%=$(SRC)/uts/common/io/fibre-channel/fca/qlc/ql_fw_%.c)
c2a4d8ae266aa37cc922eba97077520229a19902Christian Maeder
79e80c4b3f0ebb337d84415a50f29ccfc793e68bChristian MaederCERRWARN += -_gcc=-Wno-uninitialized
79e80c4b3f0ebb337d84415a50f29ccfc793e68bChristian MaederCERRWARN += -_gcc=-Wno-type-limits
79e80c4b3f0ebb337d84415a50f29ccfc793e68bChristian MaederCERRWARN += -_gcc=-Wno-parentheses
79e80c4b3f0ebb337d84415a50f29ccfc793e68bChristian Maeder
36f63902db2b3463faa9f59912ad106e2d5aaa24Klaus Luettich#
36f63902db2b3463faa9f59912ad106e2d5aaa24Klaus Luettich# Default build targets.
f04e8f3ff56405901be968fd4c6e9769239f1a9bKlaus Luettich#
00ccf62b4570513e965eb156ab5916ec816c5d2bDominik Luecke.KEEP_STATE:
8cacad2a09782249243b80985f28e9387019fe40Christian Maeder
363939beade943a02b31004cea09dec34fa8a6d9Christian Maederall: $(SRC)/uts/common/io/fibre-channel/fca/qlc/ql_fw_table.c $(ALL_DEPS)
a7c27282e71cf4505026645f96d4f5cb8a284e32Christian Maeder
363939beade943a02b31004cea09dec34fa8a6d9Christian Maederdef: $(SRC)/uts/common/io/fibre-channel/fca/qlc/ql_fw_table.c $(DEF_DEPS)
8a28707e9155465c6f2236a06eac6580a65c7025Christian Maeder
f04e8f3ff56405901be968fd4c6e9769239f1a9bKlaus Luettichclean: $(SRC)/uts/common/io/fibre-channel/fca/qlc/ql_fw_table.c $(CLEAN_DEPS)
797ccd67cb8ae127be097cd43448801b673e3b69Christian Maeder
797ccd67cb8ae127be097cd43448801b673e3b69Christian Maederclobber: $(SRC)/uts/common/io/fibre-channel/fca/qlc/ql_fw_table.c $(CLOBBER_DEPS)
431d34c7007a787331c4e5ec997badb0f8190fc7Christian Maeder
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian Maederlint: $(SRC)/uts/common/io/fibre-channel/fca/qlc/ql_fw_table.c $(LINT_DEPS)
d3ae0072823e2ef0d41d4431fcc768e66489c20eChristian Maeder
9e748851c150e1022fb952bab3315e869aaf0214Christian Maedermodlintlib: $(SRC)/uts/common/io/fibre-channel/fca/qlc/ql_fw_table.c $(MODLINTLIB_DEPS)
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian Maeder
5191fa24c532d1f67e7a642e9aece65efb8a0975Christian Maederclean.lint: $(SRC)/uts/common/io/fibre-channel/fca/qlc/ql_fw_table.c $(CLEAN_LINT_DEPS)
9e748851c150e1022fb952bab3315e869aaf0214Christian Maeder
9e748851c150e1022fb952bab3315e869aaf0214Christian Maederinstall: $(SRC)/uts/common/io/fibre-channel/fca/qlc/ql_fw_table.c $(INSTALL_DEPS)
6a79849bed67264c396dddb3e9c184bdfc1a1bc9Christian Maeder
6a79849bed67264c396dddb3e9c184bdfc1a1bc9Christian Maeder$(SRC)/uts/common/io/fibre-channel/fca/qlc/ql_fw_table.c: $(FWMODULES_SRC)
6a79849bed67264c396dddb3e9c184bdfc1a1bc9Christian Maeder /usr/bin/rm -f $@
6a79849bed67264c396dddb3e9c184bdfc1a1bc9Christian Maeder echo '#include <ql_apps.h>' >> $@
6a79849bed67264c396dddb3e9c184bdfc1a1bc9Christian Maeder echo '#include <ql_api.h>' >> $@
a6db617ca58eb6a0587b6366e913107dfecb71b5Heng Jiang echo 'struct fw_table fw_table[] = {' >> $@
a6082d6cfdfbdc6a4e70430bb25638dfa4f0db9bHeng Jiang grep FW_VERSION_STRING $(FWMODULES_SRC) |\
a6082d6cfdfbdc6a4e70430bb25638dfa4f0db9bHeng Jiang grep '#define' |\
9e748851c150e1022fb952bab3315e869aaf0214Christian Maeder sed 's/[0-9]"/& },/' |\
9e748851c150e1022fb952bab3315e869aaf0214Christian Maeder sed 's/.*ql_fw_/{ 0x/' |\
f1541d4a151dbd08002dbd14e7eb1d5dde253689Christian Maeder sed 's/.c:#define/,/' |\
498aa48bdb931ab50990d3b74318a5db2312186cChristian Maeder sed 's/FW_VERSION_STRING//' >> $@
f1541d4a151dbd08002dbd14e7eb1d5dde253689Christian Maeder echo '{ 0, NULL }' >> $@
6dc9bc98d0854fe2e3dd3bfc4275096a0c28ee1cChristian Maeder echo '};' >> $@
6dc9bc98d0854fe2e3dd3bfc4275096a0c28ee1cChristian Maeder
6dc9bc98d0854fe2e3dd3bfc4275096a0c28ee1cChristian Maeder#
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian Maeder# Include common targets.
61fa0ac06ede811c7aad54ec4c4202346727368eChristian Maeder#
c0c2380bced8159ff0297ece14eba948bd236471Christian Maederinclude $(UTSBASE)/intel/Makefile.targ
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian Maeder