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