1 #*************************************************************************
3 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5 # Copyright 2008 by Sun Microsystems, Inc.
7 # OpenOffice.org - a multi-platform office productivity suite
9 # $RCSfile: unxlnga.mk,v $
13 # This file is part of OpenOffice.org.
15 # OpenOffice.org is free software: you can redistribute it and/or modify
16 # it under the terms of the GNU Lesser General Public License version 3
17 # only, as published by the Free Software Foundation.
19 # OpenOffice.org is distributed in the hope that it will be useful,
20 # but WITHOUT ANY WARRANTY; without even the implied warranty of
21 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
22 # GNU Lesser General Public License version 3 for more details
23 # (a copy is included in the LICENSE file that accompanied this code).
25 # You should have received a copy of the GNU Lesser General Public License
26 # version 3 along with OpenOffice.org. If not, see
27 # <http://www.openoffice.org/license.html>
28 # for a copy of the LGPLv3 License.
30 #*************************************************************************
39 # filter for supressing verbose messages from linker
40 #not needed at the moment
41 #LINKOUTPUT_FILTER=" |& $(SOLARENV)$/bin$/msg_filter"
43 # _PTHREADS is needed for the stl
44 CDEFS
+=$(PTHREAD_CFLAGS
) -DGLIBC
=2 -DIA64
-D_PTHREADS
-D_REENTRANT
-DNEW_SOLAR
-D_USE_NAMESPACE
=1 -DSTLPORT_VERSION
=400
46 # enable visibility define in "sal/types.h"
47 .IF
"$(HAVE_GCC_VISIBILITY_FEATURE)" == "TRUE"
48 CDEFS
+= -DHAVE_GCC_VISIBILITY_FEATURE
49 .ENDIF
# "$(HAVE_GCC_VISIBILITY_FEATURE)" == "TRUE"
51 # this is a platform with JAVA support
52 .IF
"$(SOLAR_JAVA)"!=""
61 # architecture dependent flags for the C and C++ compiler that can be changed by
62 # exporting the variable ARCH_FLAGS="..." in the shell, which is used to start build
65 # name of C++ Compiler
70 CFLAGS_SYSBASE
:=-isystem
$(SYSBASE
)$/usr
$/include
71 CXX
+:=$(CFLAGS_SYSBASE
)
72 CC
+:=$(CFLAGS_SYSBASE
)
73 .ENDIF
# "$(SYSBASE)"!=""
74 CFLAGS
+=-Wreturn-type
-fmessage-length
=0 -c
75 # flags to enable build with symbols; required for crashdump feature
76 .IF
"$(ENABLE_SYMBOLS)"=="SMALL"
77 CFLAGSENABLESYMBOLS
=-g1
79 CFLAGSENABLESYMBOLS
=-g
# was temporarily commented out, reenabled before Beta
82 .IF
"$(HAVE_LD_HASH_STYLE)" == "TRUE"
83 LINKFLAGS
+= -Wl
,--hash-style
=both
85 LINKFLAGS
+= -Wl
,-zdynsort
88 # flags for the C++ Compiler
89 CFLAGSCC
= -pipe
$(ARCH_FLAGS
)
90 # Flags for enabling exception handling
91 CFLAGSEXCEPTIONS
=-fexceptions
-fno-enforce-eh-specs
92 # Flags for disabling exception handling
93 CFLAGS_NO_EXCEPTIONS
=-fno-exceptions
95 # -fpermissive should be removed as soon as possible
96 CFLAGSCXX
= -pipe
$(ARCH_FLAGS
)
97 CFLAGSCXX
+= -Wno-ctor-dtor-privacy
98 CFLAGSCXX
+= -fno-use-cxa-atexit
100 .IF
"$(HAVE_GCC_VISIBILITY_FEATURE)" == "TRUE"
101 CFLAGSCXX
+= -fvisibility-inlines-hidden
102 .ENDIF
# "$(HAVE_GCC_VISIBILITY_FEATURE)" == "TRUE"
104 # Compiler flags for compiling static object in multi threaded environment with graphical user interface
106 # Compiler flags for compiling static object in multi threaded environment with character user interface
108 # Compiler flags for compiling shared object in multi threaded environment with graphical user interface
109 CFLAGSSLOGUIMT
=$(PICSWITCH
)
110 # Compiler flags for compiling shared object in multi threaded environment with character user interface
111 CFLAGSSLOCUIMT
=$(PICSWITCH
)
112 # Compiler flags for profiling
114 # Compiler flags for debugging
117 # Compiler flags for enabling optimizations
119 CFLAGSOPT
=-O2
-fno-strict-aliasing
# optimizing for products
120 CFLAGSOPT
+=-Wuninitialized
# not supported without optimization
121 .ELSE
# "$(PRODUCT)"!=""
122 CFLAGSOPT
= # no optimizing for non products
123 .ENDIF
# "$(PRODUCT)"!=""
124 # Compiler flags for disabling optimizations
126 # Compiler flags for describing the output path
129 # -Wshadow does not work for C with nested uses of pthread_cleanup_push:
130 CFLAGSWARNCC
=-Wall
-Wextra
-Wendif-labels
131 CFLAGSWARNCXX
=$(CFLAGSWARNCC
) -Wshadow
-Wno-ctor-dtor-privacy \
132 -Wno-non-virtual-dtor
133 CFLAGSWALLCC
=$(CFLAGSWARNCC
)
134 CFLAGSWALLCXX
=$(CFLAGSWARNCXX
)
137 # Once all modules on this platform compile without warnings, set
138 # COMPILER_WARN_ERRORS=TRUE here instead of setting MODULES_WITH_WARNINGS (see
141 MODULES_WITH_WARNINGS
:= \
148 # switches for dynamic and static linking
149 STATIC
= -Wl
,-Bstatic
150 DYNAMIC
= -Wl
,-Bdynamic
156 # default linker flags
157 LINKFLAGSDEFS
*=-Wl
,-z
,defs
158 LINKFLAGSRUNPATH_URELIB
=-Wl
,-rpath
,\''$$ORIGIN'\'
159 LINKFLAGSRUNPATH_UREBIN
=-Wl
,-rpath
,\''$$ORIGIN/../lib:$$ORIGIN'\'
160 #TODO: drop $ORIGIN once no URE executable is also shipped in OOo
161 LINKFLAGSRUNPATH_OOO
=-Wl
,-rpath
,\''$$ORIGIN:$$ORIGIN/../ure-link/lib'\'
162 LINKFLAGSRUNPATH_SDK
=-Wl
,-rpath
,\''$$ORIGIN/../../ure-link/lib'\'
163 LINKFLAGSRUNPATH_BRAND
=-Wl
,-rpath
,\''$$ORIGIN:$$ORIGIN/../basis-link/program:$$ORIGIN/../basis-link/ure-link/lib'\'
164 LINKFLAGSRUNPATH_OXT
=
165 LINKFLAGSRUNPATH_NONE
=
166 LINKFLAGS
=-Wl
,-z
,combreloc
$(LINKFLAGSDEFS
)
167 .IF
"$(HAVE_WORKING_LD_AS_NEEDED)" == "TRUE"
168 LINKFLAGS
+= -Wl
,--as-needed
171 # linker flags for linking applications
172 LINKFLAGSAPPGUI
= -Wl
,-export-dynamic
-Wl
,--noinhibit-exec
173 LINKFLAGSAPPCUI
= -Wl
,-export-dynamic
-Wl
,--noinhibit-exec
175 # linker flags for linking shared libraries
176 LINKFLAGSSHLGUI
= -shared
177 LINKFLAGSSHLCUI
= -shared
184 # linker flags for optimization (symbol hashtable)
185 # for now, applied to symbol scoped libraries, only
186 LINKFLAGSOPTIMIZE
*=-Wl
,-O1
187 LINKVERSIONMAPFLAG
=$(LINKFLAGSOPTIMIZE
) -Wl
,--version-script
191 # Sequence of libs does matter !
195 # default objectfilenames to link
196 STDOBJVCL
=$(L
)$/salmain.o
202 # libraries for linking applications
203 STDLIBGUIMT
+=-lX11
-ldl
-lpthread
-lm
204 STDLIBCUIMT
+=-ldl
-lpthread
-lm
205 # libraries for linking shared libraries
206 STDSHLGUIMT
+=-lX11
-lXext
-ldl
-lpthread
-lm
207 STDSHLCUIMT
+=-ldl
-lpthread
-lm
209 LIBSALCPPRT
*=-Wl
,--whole-archive
-lsalcpprt
-Wl
,--no-whole-archive
211 # name of library manager
215 # tool for generating import libraries
223 RCFLAGS
=-fo
$@
$(RCFILES
)
228 # platform specific identifier for shared libs