xref: /aoo41x/main/solenv/inc/os2gcci.mk (revision 534c536d)
1#**************************************************************
2#
3#  Licensed to the Apache Software Foundation (ASF) under one
4#  or more contributor license agreements.  See the NOTICE file
5#  distributed with this work for additional information
6#  regarding copyright ownership.  The ASF licenses this file
7#  to you under the Apache License, Version 2.0 (the
8#  "License"); you may not use this file except in compliance
9#  with the License.  You may obtain a copy of the License at
10#
11#    http://www.apache.org/licenses/LICENSE-2.0
12#
13#  Unless required by applicable law or agreed to in writing,
14#  software distributed under the License is distributed on an
15#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16#  KIND, either express or implied.  See the License for the
17#  specific language governing permissions and limitations
18#  under the License.
19#
20#**************************************************************
21
22
23
24# --- OS2-Environment ----------------------------------------------
25
26#change output dir name using the object binary format.
27#.IF "$(aout)"==""
28#OUTFMT=omf
29#.ELSE
30#OUTFMT=aout
31#.ENDIF
32#OUTPATH+=OUTFMT
33#INPATH+=OUTFMT
34#GVERDIR+=OUTFMT
35
36# mk file for os2gcci
37ASM=as
38AFLAGS=
39
40#//YD SOLAR_JAVA=TRUE
41JAVAFLAGSDEBUG=-g
42
43# filter for supressing verbose messages from linker
44#not needed at the moment
45#LINKOUTPUT_FILTER=" |& $(SOLARENV)/bin/msg_filter"
46
47.IF "$(ttt)"!=""
48CDEFS+=-E
49.ENDIF
50
51# _PTHREADS is needed for the stl
52CDEFS+=-DX86 -D_REENTRANT -DNEW_SOLAR -D_USE_NAMESPACE=1 -DSTLPORT_VERSION=400
53
54# this is a platform with JAVA support
55.IF "$(SOLAR_JAVA)"!=""
56JAVADEF=-DSOLAR_JAVA
57.IF "$(debug)"==""
58JAVA_RUNTIME=javai.lib
59.ELSE
60JAVA_RUNTIME=javai_g.lib
61.ENDIF
62.ENDIF
63
64# architecture dependent flags for the C and C++ compiler that can be changed by
65# exporting the variable ARCH_FLAGS="..." in the shell, which is used to start build
66ARCH_FLAGS*=
67
68# name of C++ Compiler
69CXX*=g++
70# name of C Compiler
71CC*=gcc
72# flags for C and C++ Compiler
73CFLAGS+=-c
74# flags for the C++ Compiler
75CFLAGSCC= $(ARCH_FLAGS)
76
77.IF "$(aout)"==""
78CFLAGS+=-Zomf
79.ENDIF
80
81# Flags for enabling exception handling
82CFLAGSEXCEPTIONS=-fexceptions
83# Flags for disabling exception handling
84CFLAGS_NO_EXCEPTIONS=-fno-exceptions
85
86CFLAGSCXX= -frtti $(ARCH_FLAGS)
87CFLAGSCXX+= -Wno-ctor-dtor-privacy  -fmessage-length=0
88PICSWITCH:=
89
90# Compiler flags for compiling static object in single threaded environment with graphical user interface
91CFLAGSOBJGUIST=-Zcrtdll
92# Compiler flags for compiling static object in single threaded environment with character user interface
93CFLAGSOBJCUIST=-Zcrtdll
94# Compiler flags for compiling static object in multi threaded environment with graphical user interface
95CFLAGSOBJGUIMT=-Zcrtdll
96# Compiler flags for compiling static object in multi threaded environment with character user interface
97CFLAGSOBJCUIMT=-Zcrtdll
98# Compiler flags for compiling shared object in multi threaded environment with graphical user interface
99CFLAGSSLOGUIMT=$(PICSWITCH) -Zdll -Zcrtdll
100# Compiler flags for compiling shared object in multi threaded environment with character user interface
101CFLAGSSLOCUIMT=$(PICSWITCH) -Zdll -Zcrtdll
102# Compiler flags for profiling
103CFLAGSPROF=
104# Compiler flags for debugging
105CFLAGSDEBUG=-g
106CFLAGSDBGUTIL=
107# Compiler flags for enabling optimazations
108CFLAGSOPT=-s -O1 -march=pentium -mtune=pentium4
109# Compiler flags for disabling optimazations
110CFLAGSNOOPT=-O0
111# Compiler flags for discibing the output path
112CFLAGSOUTOBJ=-o
113
114# Warnings switched off for CXX:
115# - doubunder: we have many identifiers containing double underscores, some of
116#   them in the stable UDK API we cannot change
117# - inllargeuse: "function is too large and will not be expanded inline" is
118#   merely a hint
119# - inllargeint: "function is too large to generate inline, consider writing
120#   it yourself" is merely a hint
121# - notemsource: "could not find source for function" appears to be spurious
122# - reftotemp: warns about calling non-const functions on temporary objects,
123#   something legally done by boost::scoped_array<T>::reset, for example
124#   (this_type(p).swap(*this))
125# - truncwarn: "conversion of 64 bit type value to smaller type causes
126#   truncation" at least with CC 5.8 is reported only at the end of a
127#   compilation unit that uses std::hash_map<sal_Int64, sal_Int64> (see
128#   sfx2/source/toolbox/imgmgr.cxx:1.27) and thus unfortunately needs to be
129#   disabled globally
130CFLAGSWARNCC=
131CFLAGSWARNCXX=+w2 -erroff=doubunder,inllargeuse,inllargeint,notemsource,reftotemp,truncwarn
132CFLAGSWARNCXX=
133CFLAGSWALLCC=$(CFLAGSWARNCC)
134CFLAGSWALLCXX=$(CFLAGSWARNCXX)
135CFLAGSWERRCC=-errwarn=%all
136CFLAGSWERRCXX=-xwe
137
138# Once all modules on this platform compile without warnings, set
139# COMPILER_WARN_ERRORS=TRUE here instead of setting MODULES_WITH_WARNINGS (see
140# settings.mk):
141MODULES_WITH_WARNINGS := \
142    b_server \
143    basctl \
144    basebmp \
145    canvas \
146    chart2 \
147    cppcanvas \
148    desktop \
149    devtools \
150    dxcanvas \
151    extensions \
152    filter \
153    glcanvas \
154    lingu \
155    r_tools \
156    sc \
157    sd \
158    slideshow \
159    starmath \
160    svx \
161    sw \
162    writerperfect \
163    xmlsecurity
164
165
166# switches for dynamic and static linking
167STATIC		=
168DYNAMIC		=
169
170# this is needed to allow stl headers to include os2.h instead of svpm.h
171# in earlier stages of project build. Once svpm.h is in place, we can
172# compile without this flag.
173.IF "$(STL_OS2_BUILDING)" != ""
174CFLAGS+=-DSTL_OS2_BUILDING
175CFLAGSCXX+=-DSTL_OS2_BUILDING
176.ENDIF
177
178CFLAGS+=$(LIBXML_CFLAGS) -I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/os2
179CFLAGSCXX+=$(LIBXML_CFLAGS) -I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/os2
180
181# name of linker
182LINK*=gcc
183# default linker flags
184LINKFLAGS= -Zbin-files -Zmap
185#27/01/06 bin-files confuses transex/rsc work, removed.
186LINKFLAGS= -Zno-fork -Zhigh-mem -Zmap
187.IF "$(OS2_ARGS_WILD)" != ""
188LINKFLAGS+=-Zargs-wild -Zargs-resp
189.ENDIF
190
191.IF "$(aout)"==""
192#LINKFLAGS+= -Zlinker /NOI -Zlinker /PACKD:65536 -Zlinker /EXEPACK:2
193#LINKFLAGS+= -Zlinker /NOExtdictionary
194LINKFLAGS+= -Zomf
195LINKFLAGS+= -Zlinker "DISABLE 1121"
196.ENDIF
197
198
199# linker flags for linking applications
200.IF "$(aout)"==""
201#LINKFLAGSAPPGUI= -Zlinker /PM:PM -Zstack 0x2000
202#LINKFLAGSAPPCUI= -Zlinker /PM:VIO
203.ELSE
204LINKFLAGSAPPGUI=
205LINKFLAGSAPPCUI=
206.ENDIF
207
208# linker flags for linking shared libraries
209LINKFLAGSSHLGUI= -Zdll #-Zsym
210LINKFLAGSSHLCUI= -Zdll #-Zsym
211
212.IF "$(aout)"==""
213LINKFLAGSTACK=-Zlinker /STACK:
214LINKFLAGSPROF=
215#LINKFLAGSDEBUG=-Zlinker /DEBUG
216LINKFLAGSDEBUG=-g
217LINKFLAGSOPT=-g
218.ELSE
219LINKFLAGSTACK=-Zstack
220LINKFLAGSPROF=
221LINKFLAGSDEBUG=-g
222LINKFLAGSOPT=-s
223.ENDIF
224
225.IF "$(NO_BSYMBOLIC)"==""
226.IF "$(PRJNAME)" != "envtest"
227LINKFLAGSSHLGUI+=
228LINKFLAGSSHLCUI+=
229.ENDIF
230.ENDIF				# "$(NO_BSYMBOLIC)"==""
231
232LINKVERSIONMAPFLAG=-Wl,--version-script
233
234SONAME_SWITCH=-Wl,-h
235
236# Sequence of libs does matter !
237
238#STDLIBCPP=stdc++ supc++ gcc_eh
239#STDLIBCPP=stdc++ gcc432
240STDLIBCPP=-lstdc++ -lgcc_so_d
241
242# default objectfilenames to link
243STDOBJVCL=$(L)/salmain.o
244STDOBJGUI=
245STDSLOGUI=
246STDOBJCUI=
247STDSLOCUI=
248
249# libraries for linking applications
250STDLIBCUIST=$(STDLIBCPP)
251STDLIBGUIMT=$(STDLIBCPP)
252STDLIBCUIMT=$(STDLIBCPP)
253STDLIBGUIST=$(STDLIBCPP)
254# libraries for linking shared libraries
255STDSHLGUIMT=$(STDLIBCPP)
256STDSHLCUIMT=$(STDLIBCPP)
257
258LIBSTLPORT=stlp45.lib $(DYNAMIC)
259LIBSTLPORTST=stlp45.lib $(STATIC) $(DYNAMIC)
260
261
262# name of library manager
263LIBMGR=ar
264LIBFLAGS=-crv
265
266.IF "$(aout)"==""
267LIBMGR=emxomfar -p2048
268.ENDIF
269
270# tool for generating import libraries
271IMPLIB=emximp
272IMPLIBFLAGS=-o
273
274MAPSYM=mapsym
275MAPSYMFLAGS=
276
277RC=wrc -bt=os2 -i$(PATH_EMXPGCC)\include
278RCFLAGS=-r $(RCFILES) -fo=$@
279RCLINK=wrc -bt=os2
280RCLINKFLAGS=
281RCSETVERSION=
282
283# platform specific identifier for shared libs
284DLLPOSTFIX=
285DLLPRE=lib
286DLLPOST=.dll
287
288