xref: /aoo41x/main/solenv/inc/unxsolu4.mk (revision a4f23604)
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
29cdf0e10cSrcweir# 64 bit (LP64) platform
30cdf0e10cSrcweirIS_LP64=TRUE
31cdf0e10cSrcweir
32cdf0e10cSrcweirASM=/usr/ccs/bin/as
33cdf0e10cSrcweirAFLAGS=-P -xarch=v9
34cdf0e10cSrcweir
35cdf0e10cSrcweir
36cdf0e10cSrcweirCDEFS+=-D_PTHREADS -DSYSV -DSUN -DSUN4 -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -DIS_LP64
37cdf0e10cSrcweir
38cdf0e10cSrcweirSOLAR_JAVA*=TRUE
39cdf0e10cSrcweir.IF "$(SOLAR_JAVA)"!=""
40cdf0e10cSrcweirJAVADEF=-DSOLAR_JAVA
41cdf0e10cSrcweirJAVAFLAGSDEBUG=-g
42cdf0e10cSrcweir.IF "$(debug)"==""
43cdf0e10cSrcweirJAVA_RUNTIME=-ljava
44cdf0e10cSrcweir.ELSE
45cdf0e10cSrcweirJAVA_RUNTIME=-ljava_g
46cdf0e10cSrcweir.ENDIF
47cdf0e10cSrcweir.ENDIF
48cdf0e10cSrcweir
49cdf0e10cSrcweir# architecture dependent flags for the C and C++ compiler that can be changed by
50cdf0e10cSrcweir# exporting the variable ARCH_FLAGS="..." in the shell, which is used to start build
51cdf0e10cSrcweirARCH_FLAGS*=-m64
52cdf0e10cSrcweir
53cdf0e10cSrcweirCXX*=CC
54cdf0e10cSrcweirCC*=cc
55cdf0e10cSrcweir
56cdf0e10cSrcweirCFLAGS=$(PREENVCFLAGS) -c -temp=/tmp
57cdf0e10cSrcweirCFLAGSCC=-xCC $(ARCH_FLAGS)
58cdf0e10cSrcweirCFLAGSCXX= -features=no%altspell -library=stlport4 $(ARCH_FLAGS)
59cdf0e10cSrcweir
60cdf0e10cSrcweir# flags to enable build with symbols; required for crashdump feature
61cdf0e10cSrcweirCFLAGSENABLESYMBOLS=-g0 -xs # was temporarily commented out, reenabled before Beta
62cdf0e10cSrcweirCFLAGSENABLESYMBOLS_CC_ONLY=-g -xs # was temporarily commented out, reenabled before Beta
63cdf0e10cSrcweir
64cdf0e10cSrcweirCFLAGSEXCEPTIONS=
65cdf0e10cSrcweirCFLAGS_NO_EXCEPTIONS=-noex
66cdf0e10cSrcweir
67cdf0e10cSrcweirCFLAGSOBJGUIMT=-KPIC -mt
68cdf0e10cSrcweirCFLAGSOBJCUIMT=-KPIC -mt
69cdf0e10cSrcweirCFLAGSSLOGUIMT=-KPIC -mt
70cdf0e10cSrcweirCFLAGSSLOCUIMT=-KPIC -mt
71cdf0e10cSrcweirCFLAGSPROF=-xpg
72cdf0e10cSrcweirCFLAGSDEBUG=-g
73cdf0e10cSrcweirCFLAGSDBGUTIL=
74cdf0e10cSrcweir#  -xO3                     optimization level 3
75cdf0e10cSrcweirCFLAGSOPT= -xO3 -xalias_level=compatible
76cdf0e10cSrcweirCFLAGSNOOPT=
77cdf0e10cSrcweirCFLAGSOUTOBJ=-o
78cdf0e10cSrcweir
79cdf0e10cSrcweir# Warnings switched off for CXX:
80cdf0e10cSrcweir# - doubunder: we have many identifiers containing double underscores, some of
81cdf0e10cSrcweir#   them in the stable UDK API we cannot change
82cdf0e10cSrcweir# - identexpected: Identifier expected instead of "}"
83cdf0e10cSrcweir#   if an enum ends with a comma before the '}'
84cdf0e10cSrcweir#   this warning does not seem to heed #pragma disable_warn, and is not helpful
85cdf0e10cSrcweir# - inllargeuse: "function is too large and will not be expanded inline" is
86cdf0e10cSrcweir#   merely a hint
87cdf0e10cSrcweir# - inllargeint: "function is too large to generate inline, consider writing
88cdf0e10cSrcweir#   it yourself" is merely a hint
89cdf0e10cSrcweir# - notemsource: "could not find source for function" appears to be spurious
90cdf0e10cSrcweir# - reftotemp: warns about calling non-const functions on temporary objects,
91cdf0e10cSrcweir#   something legally done by boost::scoped_array<T>::reset, for example
92cdf0e10cSrcweir#   (this_type(p).swap(*this))
93cdf0e10cSrcweir# - truncwarn: "conversion of 64 bit type value to smaller type causes
94cdf0e10cSrcweir#   truncation" at least with CC 5.8 is reported only at the end of a
95cdf0e10cSrcweir#   compilation unit that uses std::hash_map<sal_Int64, sal_Int64> (see
96cdf0e10cSrcweir#   sfx2/source/toolbox/imgmgr.cxx:1.27) and thus unfortunately needs to be
97cdf0e10cSrcweir#   disabled globally
98cdf0e10cSrcweir# - wnoretvalue: "The last statement should return a value."
99cdf0e10cSrcweir#   CC 5.9: the compiler does often not notice that there is no way
100cdf0e10cSrcweir#   to reach the closing brace of a function without either returning a proper
101cdf0e10cSrcweir#   value or throwing an exception.
102cdf0e10cSrcweir# - hidef:  "d::foo() hides the function b::foo()." We got still some cases of mixed
103cdf0e10cSrcweir#   sal_uInt32 and ULONG usages which needs to be fixed. We can then remove this one
104cdf0e10cSrcweirCFLAGSWARNCC=
105cdf0e10cSrcweirCFLAGSWARNCXX=+w2 -erroff=doubunder,identexpected,inllargeuse,inllargeint,notemsource,reftotemp,truncwarn,wnoretvalue,hidef,anonnotype,unassigned,badargtype2w
106cdf0e10cSrcweirCFLAGSWALLCC=$(CFLAGSWARNCC)
107cdf0e10cSrcweirCFLAGSWALLCXX=$(CFLAGSWARNCXX)
108cdf0e10cSrcweirCFLAGSWERRCC=-errwarn=%all
109cdf0e10cSrcweirCFLAGSWERRCXX=-xwe
110cdf0e10cSrcweir
111cdf0e10cSrcweir# Once all modules on this platform compile without warnings, set
112cdf0e10cSrcweir# COMPILER_WARN_ERRORS=TRUE here instead of setting MODULES_WITH_WARNINGS (see
113cdf0e10cSrcweir# settings.mk):
114cdf0e10cSrcweirMODULES_WITH_WARNINGS := \
115cdf0e10cSrcweir    soldep
116cdf0e10cSrcweir
117cdf0e10cSrcweirSTDOBJVCL=$(L)/salmain.o
118cdf0e10cSrcweir
119cdf0e10cSrcweirTHREADLIB=
120cdf0e10cSrcweirLINK=$(CXX)
121cdf0e10cSrcweirLINKC=$(CC)
122cdf0e10cSrcweir
123cdf0e10cSrcweir# link against set of baseline libraries
124cdf0e10cSrcweir.IF "$(SYSBASE)"!=""
125cdf0e10cSrcweirC_RESTRICTIONFLAGS*=-xc99=none
126cdf0e10cSrcweirLD_OPTIONS+=-L$(SYSBASE)/usr/lib
127cdf0e10cSrcweirCDEFS+=-DSYSBASE="$(SYSBASE)"
128cdf0e10cSrcweirCFLAGSCC+=$(C_RESTRICTIONFLAGS)
129cdf0e10cSrcweir.EXPORT : LD_OPTIONS
130cdf0e10cSrcweir.ENDIF          # "$(SYSBASE)"!=""
131cdf0e10cSrcweir
132cdf0e10cSrcweir# -z combreloc combines multiple relocation sections. Reduces overhead on startup
133cdf0e10cSrcweir# -norunpath prevents the compiler from recording his own libs in the runpath
134cdf0e10cSrcweirLINKFLAGSRUNPATH_URELIB=-R\''$$ORIGIN'\'
135cdf0e10cSrcweirLINKFLAGSRUNPATH_UREBIN=-R\''$$ORIGIN/../lib:$$ORIGIN'\'
136cdf0e10cSrcweir    #TODO: drop $ORIGIN once no URE executable is also shipped in OOo
137cdf0e10cSrcweirLINKFLAGSRUNPATH_OOO=-R\''$$ORIGIN:$$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=-m64 -w -mt -z combreloc -PIC -temp=/tmp -norunpath -library=stlport4
143cdf0e10cSrcweirLINKCFLAGS=-m64 -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=
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+=-lX11 -ldl
197cdf0e10cSrcweirSTDSHLGUIMT+=-lX11 -ldl
198cdf0e10cSrcweir
199cdf0e10cSrcweir# @@@ interposer needed for -Bdirect @@@
200cdf0e10cSrcweir# LIBSALCPPRT*=-z allextract -lsalcpprt -z defaultextract
201cdf0e10cSrcweirLIBSALCPPRT=
202cdf0e10cSrcweir
203cdf0e10cSrcweir.IF "$(USE_STLP_DEBUG)" != ""
204cdf0e10cSrcweirLIBSTLPORT=$(DYNAMIC) -lstlport_sunpro_debug
205cdf0e10cSrcweirLIBSTLPORTST=$(STATIC) -lstlport_sunpro_debug $(DYNAMIC)
206cdf0e10cSrcweir.ELSE
207cdf0e10cSrcweirLIBSTLPORT=$(DYNAMIC) -lstlport_sunpro
208cdf0e10cSrcweirLIBSTLPORTST=$(STATIC) -lstlport_sunpro $(DYNAMIC)
209cdf0e10cSrcweir.ENDIF # "$(USE_STLP_DEBUG)" != ""
210cdf0e10cSrcweir
211cdf0e10cSrcweirLIBMGR=CC
212cdf0e10cSrcweirLIBFLAGS=-xar -o
213cdf0e10cSrcweir
214cdf0e10cSrcweirIMPLIB=
215cdf0e10cSrcweirIMPLIBFLAGS=
216cdf0e10cSrcweir
217cdf0e10cSrcweirMAPSYM=
218cdf0e10cSrcweirMAPSYMFLAGS=
219cdf0e10cSrcweirIGNORE_SYMBOLS=S-ILP32
220cdf0e10cSrcweir
221cdf0e10cSrcweirRC=irc
222cdf0e10cSrcweirRCFLAGS=-fo$@ $(RCFILES)
223cdf0e10cSrcweirRCLINK=
224cdf0e10cSrcweirRCLINKFLAGS=
225cdf0e10cSrcweirRCSETVERSION=
226cdf0e10cSrcweir
227*a4f23604SHerbert DürrDLLPOSTFIX=
228cdf0e10cSrcweir
229cdf0e10cSrcweirDLLPRE=lib
230cdf0e10cSrcweirDLLPOST=.so
231cdf0e10cSrcweir
232cdf0e10cSrcweirLDUMP=cppfilt /b /n /o /p
233cdf0e10cSrcweir
234cdf0e10cSrcweirCFLAGSCXXSLO +=
235cdf0e10cSrcweirCFLAGSCXXOBJ +=
236cdf0e10cSrcweir
237cdf0e10cSrcweirLINKFLAGSAPPGUI+=
238cdf0e10cSrcweirLINKFLAGSSHLGUI+=
239cdf0e10cSrcweirLINKFLAGSAPPCUI+=
240cdf0e10cSrcweirLINKFLAGSSHLCUI+=
241cdf0e10cSrcweir
242cdf0e10cSrcweirBUILD64=1
243