Makefile revision bb25c06cca41ca78e5fb87fbb8e81d55beb18c95
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco#
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco# CDDL HEADER START
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco#
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco# The contents of this file are subject to the terms of the
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco# Common Development and Distribution License (the "License").
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco# You may not use this file except in compliance with the License.
eb11fe3584b7b243fb0641da4ab2e157610bb767Lubos Kosco#
eb11fe3584b7b243fb0641da4ab2e157610bb767Lubos Kosco# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
eb11fe3584b7b243fb0641da4ab2e157610bb767Lubos Kosco# or http://www.opensolaris.org/os/licensing.
eb11fe3584b7b243fb0641da4ab2e157610bb767Lubos Kosco# See the License for the specific language governing permissions
eb11fe3584b7b243fb0641da4ab2e157610bb767Lubos Kosco# and limitations under the License.
eb11fe3584b7b243fb0641da4ab2e157610bb767Lubos Kosco#
34ce5c2f0e9b0f6bf05895501c9f7171d4a5bab7Lubos Kosco# When distributing Covered Code, include this CDDL HEADER in each
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco# If applicable, add the following below this CDDL HEADER, with the
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco# fields enclosed by brackets "[]" replaced with your own identifying
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco# information: Portions Copyright [yyyy] [name of copyright owner]
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco#
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco# CDDL HEADER END
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco#
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco#
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco# Copyright 2006 Sun Microsystems, Inc. All rights reserved.
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco# Use is subject to license terms.
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco#
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco#ident "%Z%%M% %I% %E% SMI"
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco#
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco# This makefile drives the production of the ip driver
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco# kernel module.
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco#
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco# sparc architecture dependent
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco#
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco#
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco# Path to the base of the uts directory tree (usually /usr/src/uts).
05697f2a7c396f7599ba8963ab8179775db4e436Lubos Kosco#
34ce5c2f0e9b0f6bf05895501c9f7171d4a5bab7Lubos KoscoUTSBASE = ../..
fb96d0f1ab431db23ef75c52867d8261acda9b0aLubos Kosco
ad0b633ade6931f350b9ec745e5599d6afe6d6b3Lubos Kosco#
aa437711254f8bb8be871b7d0a4b530b718cbf4eLubos Kosco# Define the module and object file sets.
aa437711254f8bb8be871b7d0a4b530b718cbf4eLubos Kosco#
aa437711254f8bb8be871b7d0a4b530b718cbf4eLubos KoscoMODULE = ip
aa437711254f8bb8be871b7d0a4b530b718cbf4eLubos KoscoOBJECTS = $(IP_OBJS:%=$(OBJS_DIR)/%)
aa437711254f8bb8be871b7d0a4b530b718cbf4eLubos KoscoLINTS = $(IP_OBJS:%.o=$(LINTS_DIR)/%.ln)
aa437711254f8bb8be871b7d0a4b530b718cbf4eLubos KoscoROOTMODULE = $(ROOT_DRV_DIR)/$(MODULE)
aa437711254f8bb8be871b7d0a4b530b718cbf4eLubos KoscoROOTLINK = $(ROOT_STRMOD_DIR)/$(MODULE)
aa437711254f8bb8be871b7d0a4b530b718cbf4eLubos KoscoCONF_SRCDIR = $(UTSBASE)/common/inet/ip
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco#
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco# Include common rules.
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco#
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Koscoinclude $(UTSBASE)/sparc/Makefile.sparc
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco#
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco# Define targets
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco#
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos KoscoALL_TARGET = $(BINARY) $(SRC_CONFFILE)
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos KoscoLINT_TARGET = $(MODULE).lint
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos KoscoINSTALL_TARGET = $(BINARY) $(ROOTMODULE) $(ROOTLINK) $(ROOT_CONFFILE)
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco#
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco# lint pass one enforcement
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco#
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos KoscoCFLAGS += $(CCVERBOSE)
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos KoscoCFLAGS += -xinline=tcp_set_ws_value
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco#
05697f2a7c396f7599ba8963ab8179775db4e436Lubos Kosco# For now, disable these lint checks; maintainers should endeavor
aa437711254f8bb8be871b7d0a4b530b718cbf4eLubos Kosco# to investigate and remove these for maximum lint coverage.
aa437711254f8bb8be871b7d0a4b530b718cbf4eLubos Kosco# Please do not carry these forward to new Makefiles.
aa437711254f8bb8be871b7d0a4b530b718cbf4eLubos Kosco#
2b809fbe98d3081cb2b097042e8d983c05d7ac19ralphmayrLINTTAGS += -erroff=E_SUSPICIOUS_COMPARISON
2b809fbe98d3081cb2b097042e8d983c05d7ac19ralphmayrLINTTAGS += -erroff=E_BAD_PTR_CAST_ALIGN
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos KoscoLINTTAGS += -erroff=E_SUPPRESSION_DIRECTIVE_UNUSED
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos KoscoLINTTAGS += -erroff=E_STATIC_UNUSED
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos KoscoLINTTAGS += -erroff=E_PTRDIFF_OVERFLOW
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos KoscoLINTTAGS += -erroff=E_ASSIGN_NARROW_CONV
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco#
37187cd476e30232cba3afb116e079cb640f984eLubos Kosco# Depends on md5 and swrand (for SCTP). SCTP needs to depend on
37187cd476e30232cba3afb116e079cb640f984eLubos Kosco# swrand as it needs random numbers early on during boot before
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco# kCF subsystem can load swrand.
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco#
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos KoscoLDFLAGS += -dy -Nmisc/md5 -Ncrypto/swrand -Nmisc/hook -Nmisc/neti
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco#
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco# Default build targets.
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco#
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco.KEEP_STATE:
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Koscodef: $(DEF_DEPS)
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Koscoall: $(ALL_DEPS)
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Koscoclean: $(CLEAN_DEPS)
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Koscoclobber: $(CLOBBER_DEPS)
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Koscolint: $(LINT_DEPS)
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Koscomodlintlib: $(MODLINTLIB_DEPS)
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Koscoclean.lint: $(CLEAN_LINT_DEPS)
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Koscoinstall: $(INSTALL_DEPS)
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco$(ROOTLINK): $(ROOT_STRMOD_DIR) $(ROOTMODULE)
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco -$(RM) $@; ln $(ROOTMODULE) $@
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco#
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco# Include common targets.
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco#
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Koscoinclude $(UTSBASE)/sparc/Makefile.targ
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco#
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco# The ip CTF data is merged into the genunix module because these types are
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco# complex and heavily shared. The genunix build will execute one of the
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco# rules below to create an archive, ipctf.a, containing the ip objects. The
1b28b233e40eae109c16d5b1b917dffb64e45f94Lubos Kosco# real ip will be uniquified against genunix later in the build, and will
# emerge containing very few types.
#
$(OBJS_DIR)/ipctf.a: $(OBJECTS)
-$(RM) $@
$(AR) -r $@ $(OBJECTS)
$(OBJECTS): $(OBJS_DIR)
CLOBBERFILES += $(OBJS_DIR)/ipctf.a
ipctf.obj64: FRC
@BUILD_TYPE=OBJ64 VERSION='$(VERSION)' $(MAKE) obj64/ipctf.a
ipctf.debug64: FRC
@BUILD_TYPE=DBG64 VERSION='$(VERSION)' $(MAKE) debug64/ipctf.a