1cdf0e10cSrcweir#************************************************************************* 2cdf0e10cSrcweir# 3cdf0e10cSrcweir# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4cdf0e10cSrcweir# 5cdf0e10cSrcweir# Copyright 2000, 2010 Oracle and/or its affiliates. 6cdf0e10cSrcweir# 7cdf0e10cSrcweir# OpenOffice.org - a multi-platform office productivity suite 8cdf0e10cSrcweir# 9cdf0e10cSrcweir# This file is part of OpenOffice.org. 10cdf0e10cSrcweir# 11cdf0e10cSrcweir# OpenOffice.org is free software: you can redistribute it and/or modify 12cdf0e10cSrcweir# it under the terms of the GNU Lesser General Public License version 3 13cdf0e10cSrcweir# only, as published by the Free Software Foundation. 14cdf0e10cSrcweir# 15cdf0e10cSrcweir# OpenOffice.org is distributed in the hope that it will be useful, 16cdf0e10cSrcweir# but WITHOUT ANY WARRANTY; without even the implied warranty of 17cdf0e10cSrcweir# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18cdf0e10cSrcweir# GNU Lesser General Public License version 3 for more details 19cdf0e10cSrcweir# (a copy is included in the LICENSE file that accompanied this code). 20cdf0e10cSrcweir# 21cdf0e10cSrcweir# You should have received a copy of the GNU Lesser General Public License 22cdf0e10cSrcweir# version 3 along with OpenOffice.org. If not, see 23cdf0e10cSrcweir# <http://www.openoffice.org/license.html> 24cdf0e10cSrcweir# for a copy of the LGPLv3 License. 25cdf0e10cSrcweir# 26cdf0e10cSrcweir#************************************************************************* 27cdf0e10cSrcweir 28cdf0e10cSrcweir 29cdf0e10cSrcweirASM=/usr/ccs/bin/as 30cdf0e10cSrcweirAFLAGS=-P 31cdf0e10cSrcweir 32cdf0e10cSrcweirCDEFS+=-D_PTHREADS -DSYSV -DSUN -DSUN4 -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -DSTLPORT_VERSION=$(STLPORT_VER) 33cdf0e10cSrcweir 34cdf0e10cSrcweirSOLAR_JAVA*=TRUE 35cdf0e10cSrcweir.IF "$(SOLAR_JAVA)"!="" 36cdf0e10cSrcweirJAVADEF=-DSOLAR_JAVA 37cdf0e10cSrcweirJAVAFLAGSDEBUG=-g 38cdf0e10cSrcweir.IF "$(debug)"=="" 39cdf0e10cSrcweirJAVA_RUNTIME=-ljava 40cdf0e10cSrcweir.ELSE 41cdf0e10cSrcweirJAVA_RUNTIME=-ljava_g 42cdf0e10cSrcweir.ENDIF 43cdf0e10cSrcweir.ENDIF 44cdf0e10cSrcweir 45cdf0e10cSrcweir# architecture dependent flags for the C and C++ compiler that can be changed by 46cdf0e10cSrcweir# exporting the variable ARCH_FLAGS="..." in the shell, which is used to start build 47cdf0e10cSrcweirARCH_FLAGS*= 48cdf0e10cSrcweir 49cdf0e10cSrcweirCXX*=CC 50cdf0e10cSrcweirCC*=cc 51cdf0e10cSrcweir 52cdf0e10cSrcweirCFLAGS=$(PREENVCFLAGS) -c -temp=/tmp 53cdf0e10cSrcweirCFLAGSCC=-xCC $(ARCH_FLAGS) 54cdf0e10cSrcweirCFLAGSCXX=-features=no%altspell -library=no%Cstd $(ARCH_FLAGS) 55cdf0e10cSrcweir 56cdf0e10cSrcweir# flags to enable build with symbols; required for crashdump feature 57cdf0e10cSrcweirCFLAGSENABLESYMBOLS=-g0 -xs # was temporarily commented out, reenabled before Beta 58cdf0e10cSrcweirCFLAGSENABLESYMBOLS_CC_ONLY=-g -xs # was temporarily commented out, reenabled before Beta 59cdf0e10cSrcweir 60cdf0e10cSrcweirCFLAGSEXCEPTIONS= 61cdf0e10cSrcweirCFLAGS_NO_EXCEPTIONS=-noex 62cdf0e10cSrcweir 63cdf0e10cSrcweirCFLAGSOBJGUIMT=-KPIC -mt 64cdf0e10cSrcweirCFLAGSOBJCUIMT=-KPIC -mt 65cdf0e10cSrcweirCFLAGSSLOGUIMT=-KPIC -mt 66cdf0e10cSrcweirCFLAGSSLOCUIMT=-KPIC -mt 67cdf0e10cSrcweirCFLAGSPROF=-xpg 68cdf0e10cSrcweirCFLAGSDEBUG=-g 69cdf0e10cSrcweirCFLAGSDBGUTIL= 70cdf0e10cSrcweirCFLAGSOPT=-xarch=generic -xO3 71cdf0e10cSrcweirCFLAGSNOOPT= 72cdf0e10cSrcweirCFLAGSOUTOBJ=-o 73cdf0e10cSrcweir 74cdf0e10cSrcweir# Warnings switched off for CXX: 75cdf0e10cSrcweir# - doubunder: we have many identifiers containing double underscores, some of 76cdf0e10cSrcweir# them in the stable UDK API we cannot change 77cdf0e10cSrcweir# - identexpected: Identifier expected instead of "}" 78cdf0e10cSrcweir# if an enum ends with a comma before the '}' 79cdf0e10cSrcweir# this warning does not seem to heed #pragma disable_warn, and is not helpful 80cdf0e10cSrcweir# - inllargeuse: "function is too large and will not be expanded inline" is 81cdf0e10cSrcweir# merely a hint 82cdf0e10cSrcweir# - inllargeint: "function is too large to generate inline, consider writing 83cdf0e10cSrcweir# it yourself" is merely a hint 84cdf0e10cSrcweir# - notemsource: "could not find source for function" appears to be spurious 85cdf0e10cSrcweir# - reftotemp: warns about calling non-const functions on temporary objects, 86cdf0e10cSrcweir# something legally done by boost::scoped_array<T>::reset, for example 87cdf0e10cSrcweir# (this_type(p).swap(*this)) 88cdf0e10cSrcweir# - truncwarn: "conversion of 64 bit type value to smaller type causes 89cdf0e10cSrcweir# truncation" at least with CC 5.8 is reported only at the end of a 90cdf0e10cSrcweir# compilation unit that uses std::hash_map<sal_Int64, sal_Int64> (see 91cdf0e10cSrcweir# sfx2/source/toolbox/imgmgr.cxx:1.27) and thus unfortunately needs to be 92cdf0e10cSrcweir# disabled globally 93cdf0e10cSrcweir# - wnoretvalue: warning about the last statement of a function not 94cdf0e10cSrcweir# returning a value. Unfortunately triggers on perfectly acceptable 95cdf0e10cSrcweir# code, for example if the last statement in is a throw statement 96cdf0e10cSrcweir# - anonnotype: Warns if a type is declared in an anonymous union. Temporary 97cdf0e10cSrcweir# disabled until issue i97325 is fixed. Note: The compiler is actually 98cdf0e10cSrcweir# right about this warning, the C++ standard is explicit about this. 99cdf0e10cSrcweirCFLAGSWARNCC= 100cdf0e10cSrcweirCFLAGSWARNCXX=+w2 -erroff=doubunder,identexpected,inllargeuse,inllargeint,notemsource,reftotemp,truncwarn,wnoretvalue,anonnotype 101cdf0e10cSrcweirCFLAGSWALLCC=$(CFLAGSWARNCC) 102cdf0e10cSrcweirCFLAGSWALLCXX=$(CFLAGSWARNCXX) 103cdf0e10cSrcweirCFLAGSWERRCC=-errwarn=%all 104cdf0e10cSrcweirCFLAGSWERRCXX=-xwe 105cdf0e10cSrcweir 106cdf0e10cSrcweir# Once all modules on this platform compile without warnings, set 107cdf0e10cSrcweir# COMPILER_WARN_ERRORS=TRUE here instead of setting MODULES_WITH_WARNINGS (see 108cdf0e10cSrcweir# settings.mk): 109cdf0e10cSrcweirMODULES_WITH_WARNINGS := \ 110cdf0e10cSrcweir soldep 111cdf0e10cSrcweir 112cdf0e10cSrcweirSTDOBJVCL=$(L)/salmain.o 113cdf0e10cSrcweir 114cdf0e10cSrcweirTHREADLIB= 115cdf0e10cSrcweir.IF "$(PURIFY)"!="" 116cdf0e10cSrcweirLINK=/usr/local/purify-4.2-solaris2/purify CC 117cdf0e10cSrcweir.ELSE 118cdf0e10cSrcweirLINK=$(CXX) 119cdf0e10cSrcweir.ENDIF 120cdf0e10cSrcweirLINKC=$(CC) 121cdf0e10cSrcweir 122cdf0e10cSrcweir# link against set of baseline libraries 123cdf0e10cSrcweir.IF "$(SYSBASE)"!="" 124cdf0e10cSrcweirC_RESTRICTIONFLAGS*=-xc99=none 125cdf0e10cSrcweir#LD_OPTIONS+:=-L$(SYSBASE)/usr/lib 126cdf0e10cSrcweirCDEFS+=-DSYSBASE="$(SYSBASE)" 127cdf0e10cSrcweirCFLAGSCC+=$(C_RESTRICTIONFLAGS) 128cdf0e10cSrcweir#.EXPORT : LD_OPTIONS 129cdf0e10cSrcweir.ENDIF # "$(SYSBASE)"!="" 130cdf0e10cSrcweir 131cdf0e10cSrcweir# -z combreloc combines multiple relocation sections. Reduces overhead on startup 132cdf0e10cSrcweir# -norunpath prevents the compiler from recording his own libs in the runpath 133cdf0e10cSrcweirLINKFLAGSRUNPATH_URELIB=-R\''$$ORIGIN'\' 134cdf0e10cSrcweirLINKFLAGSRUNPATH_UREBIN=-R\''$$ORIGIN/../lib:$$ORIGIN'\' 135cdf0e10cSrcweir #TODO: drop $ORIGIN once no URE executable is also shipped in OOo 136cdf0e10cSrcweirLINKFLAGSRUNPATH_OOO=-R\''$$ORIGIN:$$ORIGIN/../ure-link/lib'\' 137cdf0e10cSrcweirLINKFLAGSRUNPATH_SDK=-R\''$$ORIGIN/../../ure-link/lib'\' 138cdf0e10cSrcweirLINKFLAGSRUNPATH_BRAND=-R\''$$ORIGIN:$$ORIGIN/../basis-link/program:$$ORIGIN/../basis-link/ure-link/lib'\' 139cdf0e10cSrcweirLINKFLAGSRUNPATH_OXT= 140cdf0e10cSrcweirLINKFLAGSRUNPATH_BOXT=-R\''$$ORIGIN/../../../basis-link/program'\' 141cdf0e10cSrcweirLINKFLAGSRUNPATH_NONE= 142cdf0e10cSrcweirLINKFLAGS=-w -mt -z combreloc -PIC -temp=/tmp -norunpath -library=no%Cstd 143cdf0e10cSrcweirLINKCFLAGS=-w -mt -z combreloc -norunpath 144cdf0e10cSrcweir 145cdf0e10cSrcweir# -z text force fatal error if non PIC code is linked into shared library. Such code 146cdf0e10cSrcweir# would be expensive on startup 147cdf0e10cSrcweirCHECKFORPIC =-z text 148cdf0e10cSrcweirLINKFLAGSSHLGUI=$(CHECKFORPIC) -G 149cdf0e10cSrcweirLINKFLAGSSHLCUI=$(CHECKFORPIC) -G 150cdf0e10cSrcweir 151cdf0e10cSrcweir# switches for dynamic and static linking 152cdf0e10cSrcweirLINKFLAGSDEFS*= -z defs 153cdf0e10cSrcweirSTATIC = -Bstatic 154cdf0e10cSrcweirDIRECT = -Bdirect $(LINKFLAGSDEFS) 155cdf0e10cSrcweirDYNAMIC = -Bdynamic 156cdf0e10cSrcweir 157cdf0e10cSrcweirLINKFLAGSAPPGUI+=$(DIRECT) 158cdf0e10cSrcweirLINKFLAGSAPPCUI+=$(DIRECT) 159cdf0e10cSrcweirLINKFLAGSSHLGUI+=$(DIRECT) 160cdf0e10cSrcweirLINKFLAGSSHLCUI+=$(DIRECT) 161cdf0e10cSrcweir 162cdf0e10cSrcweirLINKFLAGSTACK= 163cdf0e10cSrcweirLINKFLAGSPROF=-L$(COMPATH)/WS6U1/lib/libp -xpg -z allextract 164cdf0e10cSrcweirLINKFLAGSDEBUG= 165cdf0e10cSrcweirLINKFLAGSOPT= 166cdf0e10cSrcweirLINKVERSIONMAPFLAG=-M 167cdf0e10cSrcweir 168cdf0e10cSrcweir# mapfile for non-executable stack 169cdf0e10cSrcweirLINKFLAGSNOEXSTK*=$(LINKVERSIONMAPFLAG) $(SOLARENV)/src/solaris_noexstk.map 170cdf0e10cSrcweirLINKFLAGSAPPGUI+=$(LINKFLAGSNOEXSTK) 171cdf0e10cSrcweirLINKFLAGSAPPCUI+=$(LINKFLAGSNOEXSTK) 172cdf0e10cSrcweir 173cdf0e10cSrcweirAPPLINKSTATIC=$(STATIC) 174cdf0e10cSrcweirAPPLINKSHARED=$(DIRECT) 175cdf0e10cSrcweirAPP_LINKTYPE= 176cdf0e10cSrcweir 177cdf0e10cSrcweirSTDLIBCPP=-lCrun 178cdf0e10cSrcweir 179cdf0e10cSrcweir# reihenfolge der libs NICHT egal! 180cdf0e10cSrcweirSTDOBJGUI= 181cdf0e10cSrcweir.IF "DBG_UTIL" != "" 182cdf0e10cSrcweirSTDSLOGUI=#-lpthread 183cdf0e10cSrcweir.ELSE 184cdf0e10cSrcweirSTDSLOGUI= 185cdf0e10cSrcweir.ENDIF 186cdf0e10cSrcweirSTDOBJCUI= 187cdf0e10cSrcweirSTDSLOCUI= 188cdf0e10cSrcweir 189cdf0e10cSrcweir# CPPRUNTIME - define where to place C++ runtime if required 190cdf0e10cSrcweirSTDLIBGUIMT=$(DYNAMIC) -lpthread -lm 191cdf0e10cSrcweirSTDLIBCUIMT=$(DYNAMIC) -lpthread -lm 192cdf0e10cSrcweirSTDSHLGUIMT=$(DYNAMIC) -lpthread CPPRUNTIME -lm -lc 193cdf0e10cSrcweirSTDSHLCUIMT=$(DYNAMIC) -lpthread CPPRUNTIME -lm -lc 194cdf0e10cSrcweir 195cdf0e10cSrcweir# libdl.so - no really an GUI library but required in this context 196cdf0e10cSrcweirSTDLIBGUIMT+=-ldl 197cdf0e10cSrcweirSTDSHLGUIMT+=-ldl 198cdf0e10cSrcweirX11LINK_DYNAMIC = -lXext -lX11 199cdf0e10cSrcweir 200cdf0e10cSrcweir# @@@ interposer needed for -Bdirect @@@ 201cdf0e10cSrcweir# LIBSALCPPRT*=-z allextract -lsalcpprt -z defaultextract 202cdf0e10cSrcweirLIBSALCPPRT= 203cdf0e10cSrcweir 204cdf0e10cSrcweir.IF "$(USE_STLP_DEBUG)" != "" 205cdf0e10cSrcweirLIBSTLPORT=$(DYNAMIC) -lstlport_sunpro_debug 206cdf0e10cSrcweirLIBSTLPORTST=$(STATIC) -lstlport_sunpro_debug $(DYNAMIC) 207cdf0e10cSrcweir.ELSE 208cdf0e10cSrcweirLIBSTLPORT=$(DYNAMIC) -lstlport_sunpro 209cdf0e10cSrcweirLIBSTLPORTST=$(STATIC) -lstlport_sunpro $(DYNAMIC) 210cdf0e10cSrcweir.ENDIF # "$(USE_STLP_DEBUG)" != "" 211cdf0e10cSrcweir 212cdf0e10cSrcweirLIBMGR=CC 213cdf0e10cSrcweirLIBFLAGS=-xar -o 214cdf0e10cSrcweir 215cdf0e10cSrcweirIMPLIB= 216cdf0e10cSrcweirIMPLIBFLAGS= 217cdf0e10cSrcweir 218cdf0e10cSrcweirMAPSYM= 219cdf0e10cSrcweirMAPSYMFLAGS= 220cdf0e10cSrcweirIGNORE_SYMBOLS=S-LP64 221cdf0e10cSrcweir 222cdf0e10cSrcweirRC=irc 223cdf0e10cSrcweirRCFLAGS=-fo$@ $(RCFILES) 224cdf0e10cSrcweirRCLINK= 225cdf0e10cSrcweirRCLINKFLAGS= 226cdf0e10cSrcweirRCSETVERSION= 227cdf0e10cSrcweir 228*a4f23604SHerbert DürrDLLPOSTFIX= 229cdf0e10cSrcweir 230cdf0e10cSrcweirDLLPRE=lib 231cdf0e10cSrcweirDLLPOST=.so 232cdf0e10cSrcweir 233cdf0e10cSrcweirLDUMP=cppfilt /b /n /o /p 234cdf0e10cSrcweir 235cdf0e10cSrcweirCFLAGSCXXSLO += 236cdf0e10cSrcweirCFLAGSCXXOBJ += 237cdf0e10cSrcweir 238cdf0e10cSrcweirLINKFLAGSAPPGUI+= 239cdf0e10cSrcweirLINKFLAGSSHLGUI+= 240cdf0e10cSrcweirLINKFLAGSAPPCUI+= 241cdf0e10cSrcweirLINKFLAGSSHLCUI+= 242