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 # Mimic the structure of an installed system. 88 89 SGSLIBDIR = $(SGSPROTO)/lib 90 SGSPREFIX = $(SGSPROTO)/usr 91 SGSBINDIR = $(SGSPREFIX)/bin 92 93 # 94 # Macros to be used to include link against libconv and include vernote.o 95 # 96 VERSREF = -ulink_ver_string 97 98 LDLIBDIR = -L$(SGSHOME)/libld/$(MACH) 99 LDLIBDIR64 = -L$(SGSHOME)/libld/$(MACH64) 100 101 CONVLIBDIR = -L$(SGSHOME)/libconv/$(MACH) 102 CONVLIBDIR64 = -L$(SGSHOME)/libconv/$(MACH64) 103 104 ELFLIBDIR = -L$(SGSHOME)/libelf/$(MACH) 105 ELFLIBDIR64 = -L$(SGSHOME)/libelf/$(MACH64) 106 107 LDDBGLIBDIR = -L$(SGSHOME)/liblddbg/$(MACH) 108 LDDBGLIBDIR64 = -L$(SGSHOME)/liblddbg/$(MACH64) 109 110 111 # The cmd/Makefile.com and lib/Makefile.com define TEXT_DOMAIN. We don't need 112 # this definition as the sgs utilities obtain their domain via sgsmsg(1l). 113 114 DTEXTDOM = 115 116 # Define any generic sgsmsg(1l) flags. The default message generation system 117 # is to use gettext(3i), add the -C flag to switch to catgets(3c). 118 119 SGSMSG = $(SGSTOOLS)/$(MACH)/sgsmsg 120 SGSMSG_PIGLATIN_NL = perl $(SGSTOOLS)/common/sgsmsg_piglatin_nl.pl 121 CHKMSG = $(SGSTOOLS)/chkmsg.sh 122 123 SGSMSGVFLAG = 124 SGSMSGFLAGS = $(SGSMSGVFLAG) -i $(SGSMSGID)/sgs.ident 125 CHKMSGFLAGS = $(SGSMSGTARG:%=-m %) $(SGSMSGCHK:%=-m %) 126 127 # Native targets should use the minimum of ld(1) flags to allow building on 128 # previous releases. We use mapfiles to scope, but don't bother versioning. 129 130 native := DYNFLAGS = -R$(SGSLIBDIR) -L$(SGSLIBDIR) $(ZNOVERSION) \ 131 $(HSONAME) 132 133 # Comment out the following two lines to have the sgs built from the system 134 # link-editor, rather than the local proto link-editor. 135 CC_USE_PROTO = -Yl,$(SGSBINDIR) 136 LD_USE_PROTO = $(SGSBINDIR)/ 137 138 # 139 # lint-related stuff 140 # 141 LIBNAME32 = $(LIBNAME:%=%32) 142 LIBNAME64 = $(LIBNAME:%=%64) 143 LIBNAMES = $(LIBNAME32) $(LIBNAME64) 144 145 SGSLINTOUT = lint.out 146 LINTOUT1 = lint.out.1 147 LINTOUT32 = lint.out.32 148 LINTOUT64 = lint.out.64 149 LINTOUTS = $(SGSLINTOUT) $(LINTOUT1) $(LINTOUT32) $(LINTOUT64) 150 151 LINTLIBSRC = $(LINTLIB:%.ln=%) 152 LINTLIB32 = $(LINTLIB:%.ln=%32.ln) 153 LINTLIB64 = $(LINTLIB:%.ln=%64.ln) 154 LINTLIBS = $(LINTLIB32) $(LINTLIB64) 155 156 LINTFLAGS = -m -errtags=yes -erroff=E_SUPPRESSION_DIRECTIVE_UNUSED 157 LINTFLAGS64 = -m -errtags=yes -erroff=E_SUPPRESSION_DIRECTIVE_UNUSED \ 158 $(VAR_LINTFLAGS64) 159 160 # 161 # When building a lint library, no other lint libraries are verified as 162 # dependencies, nor is the stardard C lint library processed. All dependency 163 # verification is carried out through linting the sources themselves. 164 # 165 $(LINTLIB) := LINTFLAGS += -n 166 $(LINTLIB) := LINTFLAGS64 += -n 167 168 $(LINTLIB32) := LINTFLAGS += -n 169 $(LINTLIB32) := LINTFLAGS64 += -n 170 $(LINTLIB64) := LINTFLAGS += -n 171 $(LINTLIB64) := LINTFLAGS64 += -n 172 173 # 174 # These libraries have two resulting lint libraries. If a dependency is 175 # declared using these variables, the substitution for the 32/64 versions at 176 # lint time happens automatically (see Makefile.targ). 177 # 178 LD_LIB = -lld 179 LD_LIB32 = -lld32 180 LD_LIB64 = -lld64 181 182 LDDBG_LIB = -llddbg 183 LDDBG_LIB32 = -llddbg32 184 LDDBG_LIB64 = -llddbg64 185 186 CONV_LIB = -lconv 187 CONV_LIB32 = -lconv32 188 CONV_LIB64 = -lconv64