1 # 2 # CDDL HEADER START 3 # 4 # The contents of this file are subject to the terms of the 5 # Common Development and Distribution License (the "License"). 6 # You may not use this file except in compliance with the License. 7 # 8 # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9 # or http://www.opensolaris.org/os/licensing. 10 # See the License for the specific language governing permissions 11 # and limitations under the License. 12 # 13 # When distributing Covered Code, include this CDDL HEADER in each 14 # file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15 # If applicable, add the following below this CDDL HEADER, with the 16 # fields enclosed by brackets "[]" replaced with your own identifying 17 # information: Portions Copyright [yyyy] [name of copyright owner] 18 # 19 # CDDL HEADER END 20 # 21 22 # 23 # Copyright (c) 1996, 2010, Oracle and/or its affiliates. All rights reserved. 24 # Copyright 2016 RackTop Systems. 25 # 26 27 .KEEP_STATE: 28 .KEEP_STATE_FILE: .make.state.$(MACH) 29 30 31 include $(SRC)/cmd/sgs/Makefile.var 32 33 SRCBASE = ../../../.. 34 35 i386_ARCH = intel 36 sparc_ARCH = sparc 37 38 ARCH = $($(MACH)_ARCH) 39 40 # Establish any global flags. 41 42 # Setting DEBUG = -DDEBUG (or "make DEBUG=-DDEBUG ...") enables ASSERT() 43 # checking. This is automatically enabled for DEBUG builds, not for non-debug 44 # builds. Unset the global C99_DISABLE flag to insure we uncover all compiler 45 # warnings/errors. 46 DEBUG = 47 $(NOT_RELEASE_BUILD)DEBUG = -DDEBUG 48 49 C99_DISABLE = $(C99_ENABLE) 50 51 CFLAGS += $(CCVERBOSE) $(DEBUG) $(XFFLAG) 52 CFLAGS64 += $(CCVERBOSE) $(DEBUG) $(XFFLAG) 53 54 CERRWARN += -_gcc=-Wno-type-limits 55 CERRWARN += -_gcc=-Wno-parentheses 56 CERRWARN += -_gcc=-Wno-unused-value 57 58 # 59 # Location of the shared elfcap code 60 # 61 ELFCAP= $(SRC)/common/elfcap 62 63 # Reassign CPPFLAGS so that local search paths are used before any parent 64 # $ROOT paths. 65 CPPFLAGS = -I. -I../common -I../../include -I../../include/$(MACH) \ 66 $(CPPFLAGS.master) -I$(ELFCAP) 67 68 # PICS64 is unique to our environment 69 $(PICS64) := sparc_CFLAGS += -xregs=no%appl -K pic 70 $(PICS64) := sparcv9_CFLAGS += -xregs=no%appl -K pic 71 $(PICS64) := CPPFLAGS += -DPIC -D_REENTRANT 72 73 LDFLAGS += $(ZIGNORE) 74 DYNFLAGS += $(ZIGNORE) 75 76 # Establish the local tools, proto and package area. 77 78 SGSHOME = $(SRC)/cmd/sgs 79 SGSPROTO = $(SGSHOME)/proto/$(MACH) 80 SGSTOOLS = $(SGSHOME)/tools 81 SGSMSGID = $(SGSHOME)/messages 82 SGSMSGDIR = $(SGSHOME)/messages/$(MACH) 83 SGSONLD = $(ROOT)/opt/SUNWonld 84 SGSRPATH = /usr/lib 85 SGSRPATH64 = $(SGSRPATH)/$(MACH64) 86 87 # 88 # Macros to be used to include link against libconv and include vernote.o 89 # 90 VERSREF = -ulink_ver_string 91 92 LDLIBDIR = -L$(SGSHOME)/libld/$(MACH) 93 LDLIBDIR64 = -L$(SGSHOME)/libld/$(MACH64) 94 95 CONVLIBDIR = -L$(SGSHOME)/libconv/$(MACH) 96 CONVLIBDIR64 = -L$(SGSHOME)/libconv/$(MACH64) 97 98 ELFLIBDIR = -L$(SGSHOME)/libelf/$(MACH) 99 ELFLIBDIR64 = -L$(SGSHOME)/libelf/$(MACH64) 100 101 LDDBGLIBDIR = -L$(SGSHOME)/liblddbg/$(MACH) 102 LDDBGLIBDIR64 = -L$(SGSHOME)/liblddbg/$(MACH64) 103 104 105 # The cmd/Makefile.com and lib/Makefile.com define TEXT_DOMAIN. We don't need 106 # this definition as the sgs utilities obtain their domain via sgsmsg(1l). 107 108 DTEXTDOM = 109 110 # Define any generic sgsmsg(1l) flags. The default message generation system 111 # is to use gettext(3i), add the -C flag to switch to catgets(3c). 112 113 SGSMSG = $(SGSTOOLS)/$(MACH)/sgsmsg 114 SGSMSG_PIGLATIN_NL = perl $(SGSTOOLS)/common/sgsmsg_piglatin_nl.pl 115 CHKMSG = $(SGSTOOLS)/chkmsg.sh 116 117 SGSMSGVFLAG = 118 SGSMSGFLAGS = $(SGSMSGVFLAG) -i $(SGSMSGID)/sgs.ident 119 CHKMSGFLAGS = $(SGSMSGTARG:%=-m %) $(SGSMSGCHK:%=-m %) 120 121 # Native targets should use the minimum of ld(1) flags to allow building on 122 # previous releases. We use mapfiles to scope, but don't bother versioning. 123 124 native := DYNFLAGS = -R$(SGSPROTO) -L$(SGSPROTO) $(ZNOVERSION) $(HSONAME) 125 126 # Comment out the following two lines to have the sgs built from the system 127 # link-editor, rather than the local proto link-editor. 128 CC_USE_PROTO = -Yl,$(SGSPROTO) 129 LD_USE_PROTO = $(SGSPROTO)/ 130 131 # 132 # lint-related stuff 133 # 134 LIBNAME32 = $(LIBNAME:%=%32) 135 LIBNAME64 = $(LIBNAME:%=%64) 136 LIBNAMES = $(LIBNAME32) $(LIBNAME64) 137 138 SGSLINTOUT = lint.out 139 LINTOUT1 = lint.out.1 140 LINTOUT32 = lint.out.32 141 LINTOUT64 = lint.out.64 142 LINTOUTS = $(SGSLINTOUT) $(LINTOUT1) $(LINTOUT32) $(LINTOUT64) 143 144 LINTLIBSRC = $(LINTLIB:%.ln=%) 145 LINTLIB32 = $(LINTLIB:%.ln=%32.ln) 146 LINTLIB64 = $(LINTLIB:%.ln=%64.ln) 147 LINTLIBS = $(LINTLIB32) $(LINTLIB64) 148 149 LINTFLAGS = -m -errtags=yes -erroff=E_SUPPRESSION_DIRECTIVE_UNUSED 150 LINTFLAGS64 = -m -errtags=yes -erroff=E_SUPPRESSION_DIRECTIVE_UNUSED \ 151 $(VAR_LINTFLAGS64) 152 153 # 154 # When building a lint library, no other lint libraries are verified as 155 # dependencies, nor is the stardard C lint library processed. All dependency 156 # verification is carried out through linting the sources themselves. 157 # 158 $(LINTLIB) := LINTFLAGS += -n 159 $(LINTLIB) := LINTFLAGS64 += -n 160 161 $(LINTLIB32) := LINTFLAGS += -n 162 $(LINTLIB32) := LINTFLAGS64 += -n 163 $(LINTLIB64) := LINTFLAGS += -n 164 $(LINTLIB64) := LINTFLAGS64 += -n 165 166 # 167 # These libraries have two resulting lint libraries. If a dependency is 168 # declared using these variables, the substitution for the 32/64 versions at 169 # lint time happens automatically (see Makefile.targ). 170 # 171 LD_LIB = -lld 172 LD_LIB32 = -lld32 173 LD_LIB64 = -lld64 174 175 LDDBG_LIB = -llddbg 176 LDDBG_LIB32 = -llddbg32 177 LDDBG_LIB64 = -llddbg64 178 179 CONV_LIB = -lconv 180 CONV_LIB32 = -lconv32 181 CONV_LIB64 = -lconv64