| # |
| # CDDL HEADER START |
| # |
| # The contents of this file are subject to the terms of the |
| # Common Development and Distribution License (the "License"). |
| # You may not use this file except in compliance with the License. |
| # |
| # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE |
| # or http://www.opensolaris.org/os/licensing. |
| # See the License for the specific language governing permissions |
| # and limitations under the License. |
| # |
| # When distributing Covered Code, include this CDDL HEADER in each |
| # file and include the License file at usr/src/OPENSOLARIS.LICENSE. |
| # If applicable, add the following below this CDDL HEADER, with the |
| # fields enclosed by brackets "[]" replaced with your own identifying |
| # information: Portions Copyright [yyyy] [name of copyright owner] |
| # |
| # CDDL HEADER END |
| # |
| # |
| # Copyright 2007 Sun Microsystems, Inc. All rights reserved. |
| # Use is subject to license terms. |
| # |
| #ident "%Z%%M% %I% %E% SMI" |
| # |
| # This makefile drives the production of the ip driver |
| # kernel module. |
| # |
| # sparc architecture dependent |
| # |
| |
| # |
| # Path to the base of the uts directory tree (usually /usr/src/uts). |
| # |
| UTSBASE = ../.. |
| |
| # |
| # Define the module and object file sets. |
| # |
| MODULE = ip |
| OBJECTS = $(IP_OBJS:%=$(OBJS_DIR)/%) |
| LINTS = $(IP_OBJS:%.o=$(LINTS_DIR)/%.ln) |
| ROOTMODULE = $(ROOT_DRV_DIR)/$(MODULE) |
| ROOTLINK = $(ROOT_STRMOD_DIR)/$(MODULE) |
| CONF_SRCDIR = $(UTSBASE)/common/inet/ip |
| |
| # |
| # Include common rules. |
| # |
| include $(UTSBASE)/sparc/Makefile.sparc |
| |
| # |
| # Define targets |
| # |
| ALL_TARGET = $(BINARY) $(SRC_CONFFILE) |
| LINT_TARGET = $(MODULE).lint |
| INSTALL_TARGET = $(BINARY) $(ROOTMODULE) $(ROOTLINK) $(ROOT_CONFFILE) |
| |
| # |
| # lint pass one enforcement |
| # |
| CFLAGS += $(CCVERBOSE) |
| CFLAGS += -xinline=tcp_set_ws_value |
| |
| # |
| # For now, disable these lint checks; maintainers should endeavor |
| # to investigate and remove these for maximum lint coverage. |
| # Please do not carry these forward to new Makefiles. |
| # |
| LINTTAGS += -erroff=E_SUSPICIOUS_COMPARISON |
| LINTTAGS += -erroff=E_BAD_PTR_CAST_ALIGN |
| LINTTAGS += -erroff=E_SUPPRESSION_DIRECTIVE_UNUSED |
| LINTTAGS += -erroff=E_STATIC_UNUSED |
| LINTTAGS += -erroff=E_PTRDIFF_OVERFLOW |
| LINTTAGS += -erroff=E_ASSIGN_NARROW_CONV |
| |
| # |
| # Depends on md5 and swrand (for SCTP). SCTP needs to depend on |
| # swrand as it needs random numbers early on during boot before |
| # kCF subsystem can load swrand. |
| # |
| LDFLAGS += -dy -Nmisc/md5 -Ncrypto/swrand -Nmisc/hook -Nmisc/neti |
| |
| # |
| # Default build targets. |
| # |
| .KEEP_STATE: |
| |
| def: $(DEF_DEPS) |
| |
| all: $(ALL_DEPS) |
| |
| clean: $(CLEAN_DEPS) |
| |
| clobber: $(CLOBBER_DEPS) |
| |
| lint: $(LINT_DEPS) |
| |
| modlintlib: $(MODLINTLIB_DEPS) |
| |
| clean.lint: $(CLEAN_LINT_DEPS) |
| |
| install: $(INSTALL_DEPS) |
| |
| $(ROOTLINK): $(ROOT_STRMOD_DIR) $(ROOTMODULE) |
| -$(RM) $@; ln $(ROOTMODULE) $@ |
| |
| sis_check: sis_check.obj sis_check.debug |
| sis_check.obj: $(ALL_DEPS) |
| @$(GREP) -v '#' $(MODULE).objt-symbols.obj64 |$(GREP) . |$(SORT) -u \ |
| > $(MODULE).symbols.tmp |
| @$(NM) obj64/$(MODULE) |$(GREP) OBJT |$(GREP) -v UNDEF | \ |
| $(CUT) -d'|' -f8 |$(GREP) -v '^___const_' |$(SORT) -u \ |
| > $(MODULE).symbols.tmp.new |
| -@$(DIFF) $(MODULE).symbols.tmp $(MODULE).symbols.tmp.new |
| |
| sis_check.debug: $(ALL_DEPS) |
| @$(GREP) -v '#' $(MODULE).objt-symbols.debug64 |$(GREP) . |$(SORT) -u \ |
| > $(MODULE).symbols.dbg.tmp |
| @$(NM) -n debug64/$(MODULE) |$(GREP) OBJT |$(GREP) -v UNDEF | \ |
| $(CUT) -d'|' -f8 |$(GREP) -v '^___const_' |$(SORT) -u \ |
| > $(MODULE).symbols.dbg.tmp.new |
| -@$(DIFF) $(MODULE).symbols.dbg.tmp $(MODULE).symbols.dbg.tmp.new |
| |
| # |
| # Include common targets. |
| # |
| include $(UTSBASE)/sparc/Makefile.targ |
| |
| # |
| # The ip CTF data is merged into the genunix module because these types are |
| # complex and heavily shared. The genunix build will execute one of the |
| # rules below to create an archive, ipctf.a, containing the ip objects. The |
| # 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 |