xref: /titanic_44/usr/src/cmd/sgs/Makefile.com (revision b3fbe5e6c0ab1f506cd04f8dd39bf9656909f535)
17c478bd9Sstevel@tonic-gate#
27c478bd9Sstevel@tonic-gate# CDDL HEADER START
37c478bd9Sstevel@tonic-gate#
47c478bd9Sstevel@tonic-gate# The contents of this file are subject to the terms of the
57c478bd9Sstevel@tonic-gate# Common Development and Distribution License, Version 1.0 only
67c478bd9Sstevel@tonic-gate# (the "License").  You may not use this file except in compliance
77c478bd9Sstevel@tonic-gate# with the License.
87c478bd9Sstevel@tonic-gate#
97c478bd9Sstevel@tonic-gate# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
107c478bd9Sstevel@tonic-gate# or http://www.opensolaris.org/os/licensing.
117c478bd9Sstevel@tonic-gate# See the License for the specific language governing permissions
127c478bd9Sstevel@tonic-gate# and limitations under the License.
137c478bd9Sstevel@tonic-gate#
147c478bd9Sstevel@tonic-gate# When distributing Covered Code, include this CDDL HEADER in each
157c478bd9Sstevel@tonic-gate# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
167c478bd9Sstevel@tonic-gate# If applicable, add the following below this CDDL HEADER, with the
177c478bd9Sstevel@tonic-gate# fields enclosed by brackets "[]" replaced with your own identifying
187c478bd9Sstevel@tonic-gate# information: Portions Copyright [yyyy] [name of copyright owner]
197c478bd9Sstevel@tonic-gate#
207c478bd9Sstevel@tonic-gate# CDDL HEADER END
217c478bd9Sstevel@tonic-gate#
227c478bd9Sstevel@tonic-gate#
237c478bd9Sstevel@tonic-gate# ident	"%Z%%M%	%I%	%E% SMI"
247c478bd9Sstevel@tonic-gate#
25*b3fbe5e6Sseizo# Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
267c478bd9Sstevel@tonic-gate# Use is subject to license terms.
277c478bd9Sstevel@tonic-gate#
287c478bd9Sstevel@tonic-gate# cmd/sgs/Makefile.com
297c478bd9Sstevel@tonic-gate
307c478bd9Sstevel@tonic-gate.KEEP_STATE:
317c478bd9Sstevel@tonic-gate
327c478bd9Sstevel@tonic-gateinclude		$(SRC)/cmd/sgs/Makefile.var
337c478bd9Sstevel@tonic-gate
347c478bd9Sstevel@tonic-gateSRCBASE=	../../../..
357c478bd9Sstevel@tonic-gate
367c478bd9Sstevel@tonic-gatei386_ARCH=	$(VAR_I386_ARCH)
377c478bd9Sstevel@tonic-gatesparc_ARCH=	sparc
387c478bd9Sstevel@tonic-gate
397c478bd9Sstevel@tonic-gateARCH=		$($(MACH)_ARCH)
407c478bd9Sstevel@tonic-gate
417c478bd9Sstevel@tonic-gateROOTCCSBIN64=		$(ROOTCCSBIN)/$(MACH64)
427c478bd9Sstevel@tonic-gateROOTCCSBINPROG64=	$(PROG:%=$(ROOTCCSBIN64)/%)
437c478bd9Sstevel@tonic-gate
447c478bd9Sstevel@tonic-gate# Establish any global flags.
457c478bd9Sstevel@tonic-gate
46*b3fbe5e6Sseizo# Setting DEBUG = -DDEBUG (or "make DEBUG=-DDEBUG ...") enables ASSERT()
47*b3fbe5e6Sseizo# checking.  This is automatically enabled for DEBUG builds, not for non-debug
48*b3fbe5e6Sseizo# builds.  Unset the global C99_DISABLE flag to insure we uncover all compiler
49*b3fbe5e6Sseizo# warnings/errors.
507c478bd9Sstevel@tonic-gateDEBUG=
517c478bd9Sstevel@tonic-gate$(NOT_RELEASE_BUILD)DEBUG = -DDEBUG
527c478bd9Sstevel@tonic-gate
53*b3fbe5e6SseizoC99_DISABLE=	$(C99_ENABLE)
54*b3fbe5e6Sseizo
557c478bd9Sstevel@tonic-gateCFLAGS +=	$(CCVERBOSE) $(DEBUG) $(XFFLAG)
567c478bd9Sstevel@tonic-gateCFLAGS64 +=	$(CCVERBOSE) $(DEBUG) $(XFFLAG)
577c478bd9Sstevel@tonic-gate
587c478bd9Sstevel@tonic-gate# Reassign CPPFLAGS so that local search paths are used before any parent
597c478bd9Sstevel@tonic-gate# $ROOT paths.
607c478bd9Sstevel@tonic-gateCPPFLAGS=	-I. -I../common -I../../include -I../../include/$(MACH) \
617c478bd9Sstevel@tonic-gate		$(VAR_CPPFLAGS) $(CPPFLAGS.master)
627c478bd9Sstevel@tonic-gate
637c478bd9Sstevel@tonic-gate# PICS64 is unique to our environment
647c478bd9Sstevel@tonic-gate$(PICS64) :=	sparc_CFLAGS += -xregs=no%appl -K pic
657c478bd9Sstevel@tonic-gate$(PICS64) :=	sparcv9_CFLAGS += -xregs=no%appl -K pic
667c478bd9Sstevel@tonic-gate$(PICS64) :=	CPPFLAGS += -DPIC -D_REENTRANT
677c478bd9Sstevel@tonic-gate
687c478bd9Sstevel@tonic-gateLDZIGNORE=	-zignore
697c478bd9Sstevel@tonic-gateLDFLAGS +=	$(LDZIGNORE)
707c478bd9Sstevel@tonic-gateDYNFLAGS +=	$(LDZIGNORE)
717c478bd9Sstevel@tonic-gate
727c478bd9Sstevel@tonic-gate# Establish the local tools, proto and package area.
737c478bd9Sstevel@tonic-gate
747c478bd9Sstevel@tonic-gateSGSHOME=	$(SRC)/cmd/sgs
757c478bd9Sstevel@tonic-gateSGSPROTO=	$(SGSHOME)/proto/$(MACH)
767c478bd9Sstevel@tonic-gateSGSTOOLS=	$(SGSHOME)/tools
777c478bd9Sstevel@tonic-gateSGSMSGID=	$(SGSHOME)/messages
787c478bd9Sstevel@tonic-gateSGSMSGDIR=	$(SGSHOME)/messages/$(MACH)
797c478bd9Sstevel@tonic-gateSGSONLD=	$(ROOT)/opt/SUNWonld
807c478bd9Sstevel@tonic-gateSGSRPATH=	/usr/lib
817c478bd9Sstevel@tonic-gateSGSRPATH64=	$(SGSRPATH)/$(MACH64)
827c478bd9Sstevel@tonic-gate
837c478bd9Sstevel@tonic-gate#
847c478bd9Sstevel@tonic-gate# Macros to be used to include link against libconv and include
857c478bd9Sstevel@tonic-gate# vernote.o
867c478bd9Sstevel@tonic-gate#
877c478bd9Sstevel@tonic-gateVERSREF=	-ulink_ver_string
887c478bd9Sstevel@tonic-gateCONVLIBDIR=	-L$(SGSHOME)/libconv/$(MACH)
897c478bd9Sstevel@tonic-gateCONVLIBDIR64=	-L$(SGSHOME)/libconv/$(MACH64)
907c478bd9Sstevel@tonic-gate
917c478bd9Sstevel@tonic-gateELFLIBDIR=	-L$(SGSHOME)/libelf/$(MACH)
927c478bd9Sstevel@tonic-gateELFLIBDIR64=	-L$(SGSHOME)/libelf/$(MACH64)
937c478bd9Sstevel@tonic-gate
947c478bd9Sstevel@tonic-gateLDDBGLIBDIR=	-L$(SGSHOME)/liblddbg/$(MACH)
957c478bd9Sstevel@tonic-gateLDDBGLIBDIR64=	-L$(SGSHOME)/liblddbg/$(MACH64)
967c478bd9Sstevel@tonic-gate
977c478bd9Sstevel@tonic-gate
987c478bd9Sstevel@tonic-gate
997c478bd9Sstevel@tonic-gate# The cmd/Makefile.com and lib/Makefile.com define TEXT_DOMAIN.  We don't need
1007c478bd9Sstevel@tonic-gate# this definition as the sgs utilities obtain their domain via sgsmsg(1l).
1017c478bd9Sstevel@tonic-gate
1027c478bd9Sstevel@tonic-gateDTEXTDOM=
1037c478bd9Sstevel@tonic-gate
1047c478bd9Sstevel@tonic-gate
1057c478bd9Sstevel@tonic-gate# Define any generic sgsmsg(1l) flags.  The default message generation system
1067c478bd9Sstevel@tonic-gate# is to use gettext(3i), add the -C flag to switch to catgets(3c).
1077c478bd9Sstevel@tonic-gate
1087c478bd9Sstevel@tonic-gateSGSMSG=		$(SGSTOOLS)/$(MACH)/sgsmsg
1097c478bd9Sstevel@tonic-gateCHKMSG=		$(SGSTOOLS)/chkmsg.sh
1107c478bd9Sstevel@tonic-gate
1117c478bd9Sstevel@tonic-gateSGSMSGVFLAG =
1127c478bd9Sstevel@tonic-gateSGSMSGFLAGS =	$(SGSMSGVFLAG) -i $(SGSMSGID)/sgs.ident
1137c478bd9Sstevel@tonic-gateCHKMSGFLAGS=	$(SGSMSGTARG:%=-m %) $(SGSMSGCHK:%=-m %)
1147c478bd9Sstevel@tonic-gate
1157c478bd9Sstevel@tonic-gate
1167c478bd9Sstevel@tonic-gate# Native targets should use the minimum of ld(1) flags to allow building on
1177c478bd9Sstevel@tonic-gate# previous releases.  We use mapfiles to scope, but don't bother versioning.
1187c478bd9Sstevel@tonic-gate
1197c478bd9Sstevel@tonic-gatenative:=	DYNFLAGS = $(MAPOPTS) -R$(SGSPROTO) -L$(SGSPROTO) $(ZNOVERSION)
1207c478bd9Sstevel@tonic-gate
1217c478bd9Sstevel@tonic-gateUSE_PROTO=	-Yl,$(SGSPROTO)
1227c478bd9Sstevel@tonic-gate
1237c478bd9Sstevel@tonic-gate.KEEP_STATE_FILE: .make.state.$(MACH)
1247c478bd9Sstevel@tonic-gate
1257c478bd9Sstevel@tonic-gate#
1267c478bd9Sstevel@tonic-gate# lint-related stuff
1277c478bd9Sstevel@tonic-gate#
1287c478bd9Sstevel@tonic-gate
1297c478bd9Sstevel@tonic-gateDASHES=		"------------------------------------------------------------"
1307c478bd9Sstevel@tonic-gate
1317c478bd9Sstevel@tonic-gateLIBNAME32 =	$(LIBNAME:%=%32)
1327c478bd9Sstevel@tonic-gateLIBNAME64 =	$(LIBNAME:%=%64)
1337c478bd9Sstevel@tonic-gateLIBNAMES =	$(LIBNAME32) $(LIBNAME64)
1347c478bd9Sstevel@tonic-gate
1357c478bd9Sstevel@tonic-gateSGSLINTOUT =	lint.out
1367c478bd9Sstevel@tonic-gateLINTOUT1 =	lint.out.1
1377c478bd9Sstevel@tonic-gateLINTOUT32 =	lint.out.32
1387c478bd9Sstevel@tonic-gateLINTOUT64 =	lint.out.64
1397c478bd9Sstevel@tonic-gateLINTOUTS =	$(SGSLINTOUT) $(LINTOUT1) $(LINTOUT32) $(LINTOUT64)
1407c478bd9Sstevel@tonic-gate
1417c478bd9Sstevel@tonic-gateLINTLIBSRC =	$(LINTLIB:%.ln=%)
1427c478bd9Sstevel@tonic-gateLINTLIB32 =	$(LINTLIB:%.ln=%32.ln)
1437c478bd9Sstevel@tonic-gateLINTLIB64 =	$(LINTLIB:%.ln=%64.ln)
1447c478bd9Sstevel@tonic-gateLINTLIBS =	$(LINTLIB32) $(LINTLIB64)
1457c478bd9Sstevel@tonic-gate
1467c478bd9Sstevel@tonic-gateLINTFLAGS =	-m -errtags=yes -erroff=E_SUPPRESSION_DIRECTIVE_UNUSED
1477c478bd9Sstevel@tonic-gateLINTFLAGS64 =	-m -errtags=yes -erroff=E_SUPPRESSION_DIRECTIVE_UNUSED \
1487c478bd9Sstevel@tonic-gate		-errchk=longptr64 $(VAR_LINTFLAGS64)
1497c478bd9Sstevel@tonic-gate
1507c478bd9Sstevel@tonic-gate#
1517c478bd9Sstevel@tonic-gate# These libraries have two resulting lint libraries.
1527c478bd9Sstevel@tonic-gate# If a dependency is declared using these variables,
1537c478bd9Sstevel@tonic-gate# the substitution for the 32/64 versions at lint time
1547c478bd9Sstevel@tonic-gate# will happen automatically (see Makefile.targ).
1557c478bd9Sstevel@tonic-gate#
1567c478bd9Sstevel@tonic-gateLDDBG_LIB=	-llddbg
1577c478bd9Sstevel@tonic-gateLDDBG_LIB32=	-llddbg32
1587c478bd9Sstevel@tonic-gateLDDBG_LIB64=	-llddbg64
1597c478bd9Sstevel@tonic-gate
1607c478bd9Sstevel@tonic-gateLD_LIB=		-lld
1617c478bd9Sstevel@tonic-gateLD_LIB32=	-lld32
1627c478bd9Sstevel@tonic-gateLD_LIB64=	-lld64
163