Version 4.0.0.1, tag libreoffice-4.0.0.1
[LibreOffice.git] / solenv / inc / settings.mk
blobdbb513d2e06a528bb6d52d440573630cb6252af3
1 #*************************************************************************
3 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 #
5 # Copyright 2000, 2010 Oracle and/or its affiliates.
7 # OpenOffice.org - a multi-platform office productivity suite
9 # This file is part of OpenOffice.org.
11 # OpenOffice.org is free software: you can redistribute it and/or modify
12 # it under the terms of the GNU Lesser General Public License version 3
13 # only, as published by the Free Software Foundation.
15 # OpenOffice.org is distributed in the hope that it will be useful,
16 # but WITHOUT ANY WARRANTY; without even the implied warranty of
17 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 # GNU Lesser General Public License version 3 for more details
19 # (a copy is included in the LICENSE file that accompanied this code).
21 # You should have received a copy of the GNU Lesser General Public License
22 # version 3 along with OpenOffice.org. If not, see
23 # <http://www.openoffice.org/license.html>
24 # for a copy of the LGPLv3 License.
26 #*************************************************************************
27 MKFILENAME:=SETTINGS.MK
29 # smaller/greater arithmetic's like ".IF 400<=200" are an OOo extention to
30 # the initial dmake 4.1PL0 (unfortunately called 4.10) version and are
31 # tested implicitly by the construction below.
32 .IF $(MAKEVERSION:s/-cvs//:s/.//)<=410
33 .ERROR : ; @echo Forced error: dmake version 4.11 or newer is needed!
34 force_dmake_to_error
35 .ENDIF
37 .INCLUDE .IGNORE : ooo_vendor.mk
39 # --- common tool makros --------------------------------------
41 .INCLUDE : unitools.mk
43 .INCLUDE : minor.mk
45 PLATFORMID = $(RTL_OS:l)_$(RTL_ARCH:l)
46 EXTNAME*=$(EXTENSIONNAME)_in
48 .IF "$(SOURCEVERSION)"!="$(WORK_STAMP)"
49 .ERROR : ; @echo Forced error: minor.mk in solenv/inc does not match your version!
50 WRONG_SOURCEVERSION
51 .ENDIF
53 # Force creation of $(SOLARVERSION)/$(INPATH)/inc/
54 # $(UPD)minor.mk could be empty as it's contents were already included from minor.mk
55 .INCLUDE : $(SOLARVERSION)/$(INPATH)/inc/$(UPD)minor.mk
57 .INCLUDE : udkversion.mk
59 # --- reset defined Environments --------------------
60 ASM=
61 AFLAGS=
64 #START JAVA
66 #interpreter location
67 .IF "$(JAVAINTERPRETER)" == ""
68 .IF "$(JDK)" == "J++"
69 JAVAINTERPRETER=jview.exe
70 .ELSE
71 .IF "$(JDK)" == "SCAFE"
72 .IF "$(JDK_VERSION)" != ""
73 JAVAINTERPRETER=$(DEVROOT)/vcafe11/java/bin/java.exe
74 .ELSE
75 JAVAINTERPRETER=$(DEVROOT)/cafepro/java/bin/java.exe
76 .ENDIF
77 .ELSE
78 .IF "$(JAVACISGCJ)" == "yes"
79 JAVAINTERPRETER=gij
80 .ELSE
81 JAVAINTERPRETER=java
82 .ENDIF
83 .ENDIF
84 .ENDIF
85 .ENDIF
87 #compiler location
88 .IF "$(JAVACOMPILER)" == ""
89 .IF "$(JDK)" == "J++"
90 JAVACOMPILER=jvc.exe
91 .ELSE
92 .IF "$(JDK)" == "SCAFE"
93 .IF "$(JDK_VERSION)" != ""
94 JAVACOMPILER=$(DEVROOT)/vcafe11/bin/sj.exe
95 .ELSE
96 JAVACOMPILER=$(DEVROOT)/cafepro/bin/sj.exe
97 .ENDIF
98 .ELSE
99 .IF "$(JAVACISGCJ)" == "yes"
100 JAVACOMPILER=gcj
101 .ELSE
102 JAVACOMPILER=javac
103 .ENDIF
104 .ENDIF
105 .ENDIF
106 .ENDIF
108 #if javadoc is not already set
109 .IF "$(JAVADOC)"==""
110 JAVADOC=javadoc -J-Xmx120m
111 .ENDIF
113 #required arguments
114 JAVAC=$(JAVACOMPILER)
115 JAVAI:=$(JAVAINTERPRETER)
116 .IF "$(JAVACISGCJ)" == "yes"
117 JAVAC+=--encoding=UTF-8 -O2 -fno-assert -Wno-deprecated -C
118 .ENDIF
119 .IF $(JAVACISKAFFE) != "yes"
120 JAVAC+=-source $(JAVA_SOURCE_VER) -target $(JAVA_TARGET_VER)
121 .ENDIF
123 #classpath and response
124 .IF "$(JDK)" == "J++"
125 JAVACPS=/cp
126 .ELSE
127 .IF "$(JDK)" == "SCAFE"
128 JAVACPS=-classpath
129 JAVARESPONSE=TRUE
130 .ELSE
131 JAVACPS=-classpath
132 JAVARESPONSE=
133 .ENDIF
134 .ENDIF
136 #END JAVA
138 CDEFS=
139 CXXDEFS=
140 CDEFSCXX=
141 CDEFSOBJ=
142 CDEFSSLO=
143 CDEFSMT=
144 CDEFSPROF=
145 CDEFSDEBUG=
146 CDEFSDBGUTIL=
147 CDEFSOPT=
149 #CFLAGS=
150 CFLAGSCALL=
151 CFLAGSCXX=
152 CFLAGSCC=
153 CFLAGSOBJ=
154 CFLAGSSLO=
155 CFLAGSOBJGUIMT=
156 CFLAGSOBJCUIMT=
157 CFLAGSSLOGUIMT=
158 CFLAGSSLOCUIMT=
159 CFLAGSPROF=
160 CFLAGSDEBUG=
161 CFLAGSDBGUTIL=
162 CFLAGSOPT=
163 CFLAGSNOOPT=
164 CFLAGSOUTOBJ=
166 CFLAGSINCXX=
168 LINKFLAGS=
169 LINKFLAGSAPPGUI=
170 LINKFLAGSSHLGUI=
171 LINKFLAGSAPPCUI=
172 LINKFLAGSSHLCUI=
173 LINKFLAGSTACK=
174 LINKFLAGSPROF=
175 LINKFLAGSDEBUG=
176 LINKFLAGSOPT=
177 LINKFLAGSAPP=
178 LINKFLAGSSHL=
179 LINKEXTENDLINE=
181 STDOBJGUI=
182 STDSLOGUI=
183 STDOBJCUI=
184 STDSLOCUI=
185 STDLIBGUIMT=
186 STDLIBCUIMT=
187 STDSHLGUIMT=
188 STDSHLCUIMT=
189 STDOBJ=
190 STDSLO=
191 STDLIB=
192 STDSHL=
194 LIBFLAGS=
196 IMPLIBMGR=
197 IMPLIBFLAGS=
199 MAPSYM=
200 MAPSYMFLAGS=
202 RSC=
203 RSCFLAGS=
204 RSCDEFS=
205 RSCLANG=
208 RCFLAGS=
209 RCLINK=
210 RCLINKFLAGS=
211 RCSETVERSION=
213 DLLPOSTFIX=
216 HCFLAGS=
218 MKDEP=
222 COBOL=
223 CPP=
224 FOR=
225 PASCAL=
227 BFLAGS=
228 COBFLAGS=
229 CPPFLAGS=
230 #CXXFLAGS=
231 FFLAGS=
232 PFLAGS=
233 RFLAGS=
235 LNT=
236 LNTFLAGS=
237 LNTFLAGSGUI=
238 LNTFLAGSCOM=
240 # doesn't make sense
241 #IDLSTATICOBJS=
243 E2P=
244 CAP=
245 cap=
247 # not to reset because possibly taken from environment
248 #CC=
249 #CXX=
250 #LINK=
251 #LIBMGR=
254 # avoid confusion with CUE PROFILE variable...
255 PROFILE=
257 # can be set on the command line. we shouldn't delete them!
258 #profile=
260 # reset as setting those manually is no lonjger supported
261 DBGUTIL=
262 dbgutil=
264 ZIPDEP:="zipdep.pl"
267 # ===========================================================================
268 # unter NT werden Variablennamen an untergeordnete makefiles UPPERCASE
269 # weitergereicht, aber case significant ausgewertet!
270 # ---------------------------------------------------------------------------
272 DMAKE_WORK_DIR*:=$(subst,/,/ $(PWD))
273 .IF "$(GUI_FOR_BUILD)"=="WNT"
274 posix_PWD:=/cygdrive/$(PWD:s/://)
275 .ELSE
276 posix_PWD:=$(PWD)
277 .ENDIF
280 .IF "$(TMP)"!=""
281 tmp*=$(TMP)
282 .ENDIF
284 .IF "$(tmp)"!=""
285 TMP*=$(tmp)
286 .ENDIF
288 .IF "$(TEMP)"!=""
289 temp*=$(TEMP)
290 .ENDIF
292 .IF "$(temp)"!=""
293 TEMP*=$(temp)
294 .ENDIF
296 .IF "$(DEPEND)"!=""
297 depend=$(DEPEND)
298 .ENDIF
300 .IF "$(OPTIMIZE)"!=""
301 optimize=$(OPTIMIZE)
302 .ENDIF
304 .IF "$(NOPT)"!=""
305 nopt*=$(NOPT)
306 .ENDIF
308 .IF "$(GROUP)"!=""
309 group*=$(GROUP)
310 .ENDIF
312 .IF "$(group)"!=""
313 GROUP*=$(group)
314 .ENDIF
316 # override dbglevel if set manually
317 .IF "$(dbglevel)"!=""
318 DBG_LEVEL=$(dbglevel)
319 .ENDIF
321 .IF "$(NODEBUG)"!=""
322 nodebug=$(NODEBUG)
323 .ENDIF
325 .IF "$(PRODUCT)"!=""
326 product*=$(PRODUCT)
327 .ENDIF
329 .IF "$(product)"!=""
330 PRODUCT*=$(product)
331 .ENDIF
333 .IF "$(VERBOSE)"!=""
334 verbose*=$(VERBOSE)
335 .ENDIF
337 .IF "$(verbose)"!=""
338 # normalize: "false" (any upper/lower case) and "0" mean FALSE, everything else means TRUE
339 VERBOSE_IS_FALSE:=$(or $(eq,"$(verbose:u)","FALSE" "false" ) $(eq,"$(verbose)","0" "false" ))
340 VERBOSE!:=$(eq,"$(VERBOSE_IS_FALSE)","t" FALSE TRUE)
341 .ENDIF
343 .IF "$(SOLARLANG)" != ""
344 solarlang*=$(SOLARLANG)
345 .ENDIF
347 .IF "$(solarlang)" != ""
348 SOLARLANG:=$(solarlang)
349 .ENDIF
351 .IF "$(wall)"!=""
352 COMPILER_WARN_ALL=TRUE
353 .ENDIF # "$(wall)"!=""
355 .IF "$(werror)"!=""
356 COMPILER_WARN_ERRORS=TRUE
357 .ENDIF
359 .IF "$(USE_SHL_VERSIONS)"!=""
360 use_shl_versions*=$(USE_SHL_VERSIONS)
361 .ENDIF
363 .IF "$(noremove)"!=""
364 NOREMOVE*=$(noremove)
365 .ENDIF
367 # --- env flags not case sensitive --------------------------------
369 #.IF "$(envcflags)"!=""
370 ENVCFLAGS*=$(envcflags)
371 #.ENDIF
373 #.IF "$(envcflagscxx)"!=""
374 ENVCFLAGSCXX*=$(envcflagscxx)
375 #.ENDIF
378 .IF "$(envcdefs)"!=""
379 ENVCDEFS*=$(envcdefs)
380 .ENDIF
382 .IF "$(envlibflags)"!=""
383 ENVLIBFLAGS*=$(envlibflags)
384 .ENDIF
386 .IF "$(envcflagsincxx)"!=""
387 ENVCFLAGSINCXX*=$(envcflagsincxx)
388 .ENDIF
390 .IF "$(envlinkflags)"!=""
391 ENVLINKFLAGS*=$(envlinkflags)
392 .ENDIF
394 .IF "$(envrscflags)"!=""
395 ENVRSCFLAGS*=$(envrscflags)
396 .ENDIF
398 .IF "$(envrscdefs)"!=""
399 ENVRSCDEFS*=$(envrscdefs)
400 .ENDIF
402 .IF "$(envrsclinkflags)"!=""
403 # ENVRSCLINKFLAGS*=$(envrsclinkflags)
404 .ENDIF
406 .IF "$(envrcflags)"!=""
407 ENVRCFLAGS*=$(envrcflags)
408 .ENDIF
410 .IF "$(envrclinkflags)"!=""
411 ENVRCLINKFLAGS*=$(envrclinkflags)
412 .ENDIF
414 # --- set both L10N variables to keep things working ---------------
416 L10N-framework=$(L10N_framework)
418 # --- Parameter Einstellungen ueberpruefen und umsetzen ------------
420 # profile immer mit product
421 .IF "$(profile)"!=""
422 .IF "$(product)"==""
423 product=full
424 .ENDIF
425 .ENDIF
427 .IF "$(debug)"!=""
428 DBG_LEVEL*=1
429 .ENDIF
431 # Produkt auf einen Wert setzen (alles klein)
432 .IF "$(product)" != ""
433 optimize=true
434 .IF "$(product)" == "full" || "$(product)" == "Full" || "$(product)" == "FULL"
435 product!=full
436 .ENDIF
437 .IF "$(product)" == "demo" || "$(product)" == "Demo" || "$(product)" == "DEMO"
438 product!=demo
439 .ENDIF
440 .IF "$(product)" == "compact" || "$(product)" == "Compact" || "$(product)" == "COMPACT"
441 product!=compact
442 .ENDIF
443 DBG_LEVEL*=0
444 .ELSE
445 optimize!=true
446 dbgutil!=true
447 DBG_LEVEL*=1
448 .ENDIF
450 .IF "$(debug)"!=""
451 .IF "$(debug)"!="D_FORCE_OPT"
452 optimize=
453 OPTIMIZE=
454 .ENDIF
455 .ENDIF
457 .IF "$(nopt)"!=""
458 optimize=
459 OPTIMIZE=
460 .ENDIF
462 # Optimierung bei FinalCheck funktioniert nicht!
463 .IF "$(bndchk)" != ""
464 optimize=
465 OPTIMIZE=
466 .ENDIF
468 ######################################################
470 # sprachabh. einstellungen
472 ######################################################
474 .INCLUDE : lang.mk
476 .INCLUDE : postset.mk
478 RSC_LANG_ISO+:=$(completelangiso)
479 .EXPORT : RSC_LANG_ISO
481 ######################################################
483 .IF "$(TARGETTYPE)"==""
484 TARGETTYPE=CUI
485 .ENDIF
487 # --- Pfade setzen -------------------------------------------------
489 # Output-Pfad
490 # profile has to be first for not getting the .pro extension
491 .IF "$(profile)"!=""
492 OUT=$(PRJ)/$(OUTPATH).cap
493 OUT_FOR_BUILD=$(PRJ)/$(OUTPATH_FOR_BUILD).cap
494 ROUT=$(OUTPATH).cap
495 .ELSE
497 .IF "$(product)"!=""
498 OUT=$(PRJ)/$(OUTPATH).pro
499 OUT_FOR_BUILD=$(PRJ)/$(OUTPATH_FOR_BUILD).pro
500 ROUT=$(OUTPATH).pro
502 .ELSE
503 .IF "$(profile)"!=""
504 OUT=$(PRJ)/$(OUTPATH).cap
505 OUT_FOR_BUILD=$(PRJ)/$(OUTPATH_FOR_BUILD).cap
506 ROUT=$(OUTPATH).cap
507 .ENDIF
508 .IF "$(dbcs)"!=""
509 OUT=$(PRJ)/$(OUTPATH).w
510 OUT_FOR_BUILD=$(PRJ)/$(OUTPATH_FOR_BUILD).w
511 ROUT=$(OUTPATH).w
512 .ENDIF
513 # could already be set by makefile.mk
514 .IF "$(OUT)" == ""
515 OUT*=$(PRJ)/$(OUTPATH)
516 OUT_FOR_BUILD*=$(PRJ)/$(OUTPATH_FOR_BUILD)
517 ROUT*=$(OUTPATH)
518 .ENDIF
519 .ENDIF
520 .ENDIF
522 .IF "$(bndchk)" != ""
523 OUT:=$(PRJ)/$(OUTPATH).bnd
524 OUT_FOR_BUILD=$(PRJ)/$(OUTPATH_FOR_BUILD).bnd
525 ROUT=$(OUTPATH).bnd
526 .ENDIF
527 .IF "$(truetime)" != ""
528 OUT=$(PRJ)/$(OUTPATH).tt
529 OUT_FOR_BUILD=$(PRJ)/$(OUTPATH_FOR_BUILD).tt
530 ROUT=$(OUTPATH).tt
531 .ENDIF
533 .IF "$(PRJ)"!="."
534 .IF "$(GUI)"=="WNT"
535 PATH_IN_MODULE:=\
536 $(subst,$(normpath $(shell @+cd $(PRJ) && pwd $(PWDFLAGS)))/, $(PWD))
537 .ELSE # "$(GUI)"=="WNT"
538 PATH_IN_MODULE:=$(subst,$(shell @+cd $(PRJ) && pwd $(PWDFLAGS))/, $(PWD))
539 .ENDIF # "$(GUI)"=="WNT"
540 .ELSE # "$(PRJ)"!="."
541 PATH_IN_MODULE:=
542 .ENDIF # "$(PRJ)"!="."
544 COMMON_OUTDIR:=$(OUTPATH)
546 LOCAL_OUT:=$(OUT)
547 LOCAL_OUT_FOR_BUILD:=$(OUT_FOR_BUILD)
548 LOCAL_COMMON_OUT:=$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(OUT))
549 .EXPORT : LOCAL_OUT LOCAL_COMMON_OUT
551 # --- generate output tree -----------------------------------------
553 # disable for makefiles wrapping a gnumake module
554 .IF "$(TARGET)"!="prj"
555 # As this is not part of the initial startup makefile we define an infered
556 # target instead of using $(OUT)/inc/myworld.mk as target name.
557 # (See iz62795)
558 $(posix_PWD)/$(OUT)/inc/%world.mk :
559 @mkout.pl $(ROUT)
560 @echo $(EMQ)# > $@
562 .INCLUDE : $(posix_PWD)/$(OUT)/inc/myworld.mk
564 .ENDIF # "$(TARGET)"!="prj"
566 .INCLUDE .IGNORE : office.mk
568 # Misc-Pfad
569 .IF "$(UNR)"!=""
570 MISCX=$(OUT)/umisc
571 MISC=$(OUT)/umisc
572 .ELSE
573 MISC=$(OUT)/misc
574 MISC_FOR_BUILD=$(OUT_FOR_BUILD)/misc
575 # pointing to misc in common output tree if exists
576 COMMONMISC={$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(MISC))}
577 .ENDIF
579 OUTCXX=$(OUT)/cxx
581 .IF "$(PACKAGE)"!=""
582 IDLPACKAGE:=$(PACKAGE)
583 IDLPACKAGENAME:=$(IDLPACKAGE:sX\X/X)
584 .ELSE
585 IDLPACKAGE=$(PRJNAME)
586 IDLPACKAGENAME=$(PRJNAME)
587 .ENDIF
589 # Objekt-Pfad
590 OBJ=$(OUT)/obj
591 SLO=$(OUT)/slo
592 ROBJ=$(ROUT)/obj
593 RSLO=$(ROUT)/slo
595 # Particle Path
596 PAR=$(OUT)/par
598 # Library-Pfad
599 LB=$(OUT)/lib
600 SLB=$(OUT)/slb
602 # wir haben ein ucr verzeichnis
603 UCR=$(OUT)/ucr
605 # $(L) nur noch pfad ins solver\upd\...\lib
606 #L:={$(LB);$(SLB);$(ILIB)}
607 L=$(SOLARLIBDIR)
609 #.EXPORT : SLB LB L LIB
610 ENVPRJ:=$(PRJ)
611 #todo: check PRJ is still expected to exist in environment
612 .EXPORT : PRJ ENVPRJ
614 # Class-Path for java-classes
615 # obwohl der generierte Bytecode plattformunabhg. sein sollte
616 # generieren wir ihn ersteinmal ins abhaengige Verzeichnis
617 CLASSDIR=$(OUT)/class
618 CLASSPATH!:=.$(PATH_SEPERATOR)$(CLASSDIR)$(PATH_SEPERATOR)$(CLASSPATH)
619 STARJAR=java -classpath $(CLASSPATH)$(PATH_SEPERATOR)$(SOLARENV)/bin/jtools.jar com.sun.star.tool.starjar.StarJar
621 STARDEP=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/javadep
622 .IF "$(PRJNAME)"=="sj2"
623 CLASSPATH!:=$(CLASSPATH:s/sj2/no/)
624 .ENDIF
625 .IF "$(PRJNAME)"=="uno"
626 CLASSPATH!:=$(CLASSPATH:s/uno/no/)
627 .ENDIF
628 .IF "$(PRJNAME)"=="tkt"
629 CLASSPATH!:=$(CLASSPATH:s/tkt/no/)
630 .ENDIF
632 # default output directory when processing
633 # configuration files
634 PROCESSOUT*:=$(MISC)
636 # Makros fuer die Librarynamen des Solar
637 .INCLUDE : libs.mk
639 .IF "$(GUI)"=="WNT"
640 VERSIONOBJ=$(SLO)/_version.obj
641 .ENDIF
643 .IF "$(GUI)"=="UNX"
644 VERSIONOBJ=$(SLO)/_version.o
645 .ENDIF
647 .IF "$(GUI)"=="WNT"
648 WINVERSIONNAMES=$(UNIXVERSIONNAMES)
649 .ENDIF # "$(GUI)"=="WNT"
651 .IF "$(GUI)"=="WNT"
652 .IF "$(COM)"=="GCC"
653 SHELLLIB=-lgdi32 -lshell32 -ladvapi32 -lcomdlg32
654 .ELSE
655 SHELLLIB=gdi32.lib shell32.lib advapi32.lib comdlg32.lib
656 .ENDIF
657 .ENDIF
659 # BIN-Pfad
660 .IF "$(UNR)"!=""
661 BIN=$(OUT)/ubin
662 .ELSE
663 BIN=$(OUT)/bin
664 .ENDIF
665 # pointing to misc in common output tree if exists
666 COMMONBIN=$(LOCAL_COMMON_OUT)/bin
668 # Include-Pfad
669 # still without -I here s.a. target.mk INCLUDE
670 INC=$(PRJ)/inc
671 INCLOCAL=../inc
672 INCGUI=$(PRJ)/$(GUIBASE)/inc
673 INCCOM=$(OUT)/inc
674 INCCOMX=$(OUT)/inc
675 INCUNOIDL=$(INCCOM)/$(PRJNAME)
676 INCDEPN=. $(INCGUI) $(INCLOCAL) $(INC) $(INC)/$(PRJNAME)
677 .IF "$(PRJINC)"!=""
678 INCLOCPRJ=$(foreach,i,$(PRJINC) $i/inc)
679 INCDEPN+=$(INCLOCPRJ)
680 .ENDIF
681 .IF "$(INCPRE)"!=""
682 INCDEPN+=$(INCPRE)
683 .ENDIF
685 # Resource-Pfad fuer .SRS
687 SRS=$(OUT)/srs
688 SRSX=$(OUT)/srs
690 # Resource-Pfad fuer .RC und .RES
691 RES=$(OUT)/res
693 # das normale MISC wird nicht an LDMISC angepasst, stattdessen MISCX
695 .IF "$(make_xl)"!=""
696 BIN=$(PRJ)/$(OUTPATH).xl/bin
697 .ENDIF
699 # damit gezielt Abhaengigkeiten auf s: angegeben werden koennen
701 SOLARIDLDIR=$(SOLARVERSION)/$(INPATH)/idl
703 SOLARRESDIR=$(SOLARVERSION)/$(INPATH)/res
704 SOLARRESXDIR=$(SOLARVERSION)/$(INPATH)/res
705 SOLARLIBDIR=$(SOLARVERSION)/$(INPATH)/lib
706 SOLARLIBDIR_FOR_BUILD=$(SOLARVERSION)/$(INPATH_FOR_BUILD)/lib
707 SOLARJAVADIR=$(SOLARVERSION)/$(INPATH)/java
708 SOLARINCDIR=$(SOLARVERSION)/$(INPATH)/inc
709 SOLARINCXDIR=$(SOLARVERSION)/$(INPATH)/inc
710 .IF "$(SOLARLANG)"!="deut"
711 .IF "$(SOLARLANG)" != ""
712 SOLARINCXDIR=$(SOLARVERSION)/$(INPATH)/inc/$(SOLARLANG)
713 SOLARRESXDIR=$(SOLARVERSION)/$(INPATH)/res/$(SOLARLANG)
714 .ENDIF
715 .ENDIF
716 SOLARBINDIR:=$(SOLARVERSION)/$(INPATH_FOR_BUILD)/bin
717 SOLARUCRDIR=$(SOLARVERSION)/$(INPATH)/ucr
718 SOLARPARDIR=$(SOLARVERSION)/$(INPATH)/par
719 SOLARXMLDIR=$(SOLARVERSION)/$(INPATH)/xml
720 SOLARDOCDIR=$(SOLARVERSION)/$(INPATH)/doc
721 SOLARPCKDIR=$(SOLARVERSION)/$(INPATH)/pck
722 SOLARSDFDIR=$(SOLARVERSION)/$(INPATH)/sdf
723 SOLARCOMMONBINDIR=$(SOLARVERSION)/common$(PROEXT)/bin
724 SOLARCOMMONRESDIR=$(SOLARVERSION)/common$(PROEXT)/res
725 SOLARCOMMONPCKDIR=$(SOLARVERSION)/common$(PROEXT)/pck
726 SOLARCOMMONSDFDIR=$(SOLARVERSION)/common$(PROEXT)/sdf
727 SOLARCOMMONBINDIR=$(SOLARBINDIR)
728 SOLARCOMMONRESDIR=$(SOLARRESDIR)
729 SOLARCOMMONPCKDIR=$(SOLARPCKDIR)
730 SOLARCOMMONSDFDIR=$(SOLARSDFDIR)
732 .EXPORT : SOLARBINDIR
734 .IF "$(WITH_LANG)"!=""
735 .INCLUDE .IGNORE: $(WORKDIR)$/CustomTarget$/translations$/localization_present.mk
737 # if the l10n module exists, use split localize.sdf directly from there
738 .IF "$(LOCALIZATION_FOUND)"!="" && "$(LOCALIZESDF)"==""
739 # still check for existence as there may be no localization yet
740 TRYSDF:=$(WORKDIR)$/CustomTarget$/translations$/translate$/sdf$/$(PRJNAME)$/$(PATH_IN_MODULE)$/localize.sdf
741 LOCALIZESDF:=$(strip $(shell @+$(IFEXIST) $(TRYSDF) $(THEN) echo $(TRYSDF) $(FI)))
742 .ENDIF # "$(LOCALIZATION_FOUND)"!="" && "$(LOCALIZESDF)"==""
743 # else use localize.sdf from local output tree if localization .zip exists
744 .IF "$(LOCALIZESDF)"==""
745 LOCALSDFFILE:=$(COMMONMISC)$/$(PRJNAME)$/$(PATH_IN_MODULE)$/localize.sdf
746 LOCALIZESDF:=$(strip $(shell @+$(IFEXIST) $(SOLARCOMMONSDFDIR)$/$(PRJNAME).zip $(THEN) echo $(LOCALSDFFILE) $(FI)))
747 .IF "$(LOCALIZESDF)"==""
748 LOCALSDFFILE!:=
749 .ENDIF # "$(LOCALIZESDF)"==""
750 .ENDIF # "$(LOCALIZESDF)"==""
751 # dummy target to keep the build happy.
752 .IF "$(LOCALIZESDF)"==""
753 LOCALIZESDF:=$(COMMONMISC)$/$(PRJNAME)$/dummy$/localize.sdf
754 .ENDIF # "$(LOCALIZESDF)"==""
755 .ENDIF # "$(WITH_LANG)"!=""
757 JARDIR=$(OUT)/class
759 # needs to be expanded!!!
761 # extend library path for MS Compiler
762 .IF "$(COM)"=="MSC"
763 LIB:=$(LB);$(SLB);$(ILIB)
764 .ENDIF
766 # extend library path for MinGW Compiler
767 .IF "$(GUI)$(COM)"=="WNTGCC"
768 LIB:=$(LB);$(BIN);$(ILIB)
769 .ENDIF
771 # --- Environment-Allgemein ----------------------------------------
773 .IF "$(CPUNAME)" == ""
774 CPUNAME=CPUNAME_HAS_TO_BE_SET_IN_ENVIRONMENT
775 .ENDIF
777 .IF "$(USE_DEBUG_RUNTIME)" != ""
778 SCPCDEFS+=-D_DEBUG_RUNTIME
779 .ENDIF
781 .IF "$(UDK_MAJOR)"!=""
782 SCPDEFS+=-DUDK_MAJOR=$(UDK_MAJOR)
783 .ENDIF # "$(UDK_MAJOR)"!=""
785 SCPDEFS+=-U$(COMID) -DCOMID=$(COMID) -DCOMNAME=$(COMNAME) -D_$(COMID)
786 SCPDEFS+=-DCCNUMVER=$(CCNUMVER)
787 .IF "$(COM)"=="GCC"
788 SCPDEFS+=-DSHORTSTDCPP3=$(SHORTSTDCPP3) -DSHORTSTDC3=$(SHORTSTDC3)
789 .ENDIF # "$(SHORTSTDCPP3)"!=""
792 UNOIDLDEFS+=-DSUPD=$(UPD) -DUPD=$(UPD)
794 UNOIDLDEPFLAGS=-Mdepend=$(SOLARVER)
796 UNOIDLINC+=-I. -I.. -I$(PRJ) -I$(PRJ)/inc -I$(PRJ)/$(INPATH)/idl -I$(OUT)/inc -I$(SOLARIDLDIR) -I$(SOLARINCDIR)
798 CDEFS=-D$(OS)
799 .IF "$(GUI)" != "$(OS)"
800 CDEFS+=-D$(GUI)
801 .ENDIF
802 CDEFS+=-D$(COM) -D$(CPUNAME)
804 .IF "$(USE_DEBUG_RUNTIME)" != ""
805 CDEFS+=-D_DEBUG_RUNTIME
806 .ENDIF
808 .IF "$(CDEFS_PRESET)" != ""
809 CDEFS+=$(CDEFS_PRESET)
810 .ENDIF
812 .IF "$(TIMELOG)" != ""
813 CDEFS+=-DTIMELOG
814 .ENDIF
816 CDEFSCXX=
817 CDEFSOBJ=
818 #CDEFSMT=-DMULTITHREAD
819 CDEFSPROF=-DPROFILE
820 .IF "$(dbg_build_only)" == ""
821 CDEFSDEBUG=-DDEBUG
822 .ENDIF
823 CDEFSDBGUTIL=-DDBG_UTIL
824 CDEFSOPT=-DOPTIMIZE
826 MKDEPFLAGS+=-I$(INCDEPN:s/ / -I/:s/-I-I/-I/)
827 MKDEPALLINC=$(SOLARINC:s/-I/ -I/)
828 MKDEPPREINC=-I$(PREPATH)/$(INPATH)/inc
829 MKDEPSOLENV=-I$(SOLARENV)/inc -I$(SOLARENV)/$(GUI)$(COMEX)/inc
830 MKDEPSOLVER=-I$(SOLARVERSION)/$(INPATH)/inc
831 MKDEPLOCAL=-I$(INCCOM)
833 .IF "$(MKDEPENDALL)"!=""
834 MKDEPFLAGS+=$(MKDEPALLINC)
835 .ENDIF
837 .IF "$(MKDEPENDSOLENV)"!=""
838 MKDEPFLAGS+=$(MKDEPSOLENV)
839 .ENDIF
841 .IF "$(MKDEPENDPREPATH)"!=""
842 MKDEPFLAGS+=$(MKDEPPREINC)
843 .ENDIF
845 .IF "$(MKDEPENDSOLVER)"!=""
846 MKDEPFLAGS+=$(MKDEPSOLVER)
847 .ENDIF
848 # unused - nodep should do the same now
849 #.IF "$(MKDEPENDLOCAL)"!="NO"
850 MKDEPFLAGS+=$(MKDEPLOCAL)
851 #.ENDIF
853 BISON*=bison
854 YACCFLAGS*=-d
856 SVIDL=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/svidl
858 LDUMP2*=$(SOLARBINDIR)/ldump4
860 ZIPUPDATE=-u -j
861 ZIPFLAGS=$(ZIPUPDATE)
862 #hack for dynamic language subdirs
863 LANGDIR=LANGDIR
865 #scplinker flags
866 SCPLINKFLAGS=-i $(PAR),$(SOLARPARDIR)
867 .IF "$(SCPLINKVERSION)"!=""
868 SCPLINKFLAGS+=-v $(SCPLINKVERSION)
869 .ENDIF # "$(SCPLINKVERSION)"!=""
871 .IF "$(make_srs_deps)"!=""
872 RSC=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/rscdep
873 .ELSE # "$(make_srs_deps)"!=""
874 RSC=$(AUGMENT_LIBRARY_PATH) $(FLIPCMD) $(SOLARBINDIR)/rsc
875 .ENDIF # "$(make_srs_deps)"!=""
877 .IF "$(VERBOSE)" == "TRUE"
878 VERBOSITY=-verbose
879 .ELSE
880 COMMAND_ECHO=@
881 VERBOSITY=-quiet
882 ZIP_VERBOSITY=-q
883 .ENDIF # "$(VERBOSE)" == "TRUE"
884 COMPILE_ECHO_SWITCH=
885 COMPILE_ECHO_FILE=$(<:f)
887 #new
888 RSCUPDVER=$(RSCREVISION)
889 RSCUPDVERDEF=-DUPDVER="$(RSCUPDVER)"
891 RSCFLAGS=-s
892 RSCDEFS=-D$(GUI) -D$(COM) $(JAVADEF)
894 RSCDEFIMG*=icon-themes/galaxy
896 RSCEXTINC=.
898 .IF "$(DEBUG)" != ""
899 RSCDEFS+= -DDEBUG
900 .ENDIF
902 # settings for mozilla idl compiler
903 XPIDL=xpidl
904 XPIDL_LINK=xpt_link
906 # alle bisher verwendeten Linker benutzen + um LIBs auf der naechsten Zeile
907 # weiter zu schreiben, wenn es da eine Ausnahme geben sollte, muss
908 # LINKEXTENDLINE compilerabhaengig definiert werden
909 LINKEXTENDLINE=+
911 LNT=$(DEVROOT)/lint/lint
912 #LNTFLAGS=+v -i$(DEVROOT)/lint\ -mL options.lnt -u
913 LNTFLAGS=+v -i$(DEVROOT)/lint/ -mL options.lnt -u
914 LNTFLAGSOUTOBJ=-os
916 .IF "$(GUI)"=="WNT"
917 .INCLUDE : wnt.mk
918 .ENDIF
920 .IF "$(GUI)" == "UNX"
921 .INCLUDE : unx.mk
922 .ENDIF
924 DLLPOSTFIX=lo
926 .IF "$(CROSS_COMPILING)" == "YES"
927 # Assume always cross-compiling from Unix
928 EXECPOST_FOR_BUILD=
929 .ELSE
930 EXECPOST_FOR_BUILD=$(EXECPOST)
931 .ENDIF
933 .IF "$(OOO_LIBRARY_PATH_VAR)" != ""
934 # Add SOLARLIBDIR at the begin of a (potentially previously undefined) library
935 # path (LD_LIBRARY_PATH, PATH, etc.; prepending avoids fetching libraries from
936 # an existing office/URE installation; the ": &&" enables this to work at the
937 # start of a recipe line that is not prefixed by "+" as well as in the middle of
938 # an existing && chain:
939 .IF "$(CROSS_COMPILING)"=="YES" && "$(OS)"=="WNT"
940 # Sigh, special-case cross-compiling to Windows. Here OOO_LIBRARY_PATH_VAR is the correct one
941 # for the BUILD platform but SOLARSHAREDBIN is the one for Windows, i.e. "foo/bin".
942 AUGMENT_LIBRARY_PATH = : && \
943 $(OOO_LIBRARY_PATH_VAR)=$(normpath, $(SOLARLIBDIR_FOR_BUILD))$${{$(OOO_LIBRARY_PATH_VAR):+:$${{$(OOO_LIBRARY_PATH_VAR)}}}}
944 AUGMENT_LIBRARY_PATH_LOCAL = : && \
945 $(OOO_LIBRARY_PATH_VAR)=$(normpath, $(PWD)/$(DLLDEST)):$(normpath, $(SOLARSHAREDBIN))$${{$(OOO_LIBRARY_PATH_VAR):+:$${{$(OOO_LIBRARY_PATH_VAR)}}}}
946 .ELSE
947 AUGMENT_LIBRARY_PATH = : && \
948 $(OOO_LIBRARY_PATH_VAR)=$(normpath, $(SOLARSHAREDBIN))$${{$(OOO_LIBRARY_PATH_VAR):+:$${{$(OOO_LIBRARY_PATH_VAR)}}}}
949 AUGMENT_LIBRARY_PATH_LOCAL = : && \
950 $(OOO_LIBRARY_PATH_VAR)=$(normpath, $(PWD)/$(DLLDEST)):$(normpath, $(SOLARSHAREDBIN))$${{$(OOO_LIBRARY_PATH_VAR):+:$${{$(OOO_LIBRARY_PATH_VAR)}}}}
951 .ENDIF
952 .END
954 # for multiprocess building in external modules
955 # allow seperate handling
956 EXTMAXPROCESS*=$(MAXPROCESS)
958 GDBTRACE=gdb -nx --command=$(SOLARENV)/bin/gdbtrycatchtrace --args
960 #use with export VALGRIND=memcheck, that method of invocation is used because
961 #hunspell will also run its own unit tests under valgrind when this variable is
962 #set.
963 .IF "$(VALGRIND)" != ""
964 VALGRINDTOOL=valgrind --tool=$(VALGRIND) --num-callers=50
965 .IF "$(VALGRIND)" == "memcheck"
966 G_SLICE*:=always-malloc
967 .EXPORT : G_SLICE
968 GLIBCXX_FORCE_NEW*:=1
969 .EXPORT : GLIBCXX_FORCE_NEW
970 .ENDIF
971 .ENDIF
973 IDLC*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/idlc
974 REGMERGE*=$(AUGMENT_LIBRARY_PATH) $(VALGRINDTOOL) $(SOLARBINDIR)/regmerge
975 REGCOMPARE*=$(AUGMENT_LIBRARY_PATH) $(VALGRINDTOOL) $(SOLARBINDIR)/regcompare
977 .IF "$(DEBUGREGCOMP)" != "" || "$(debugregcomp)" != ""
978 GDBREGCOMPTRACE=$(GDBTRACE)
979 .ENDIF
981 REGCOMP*=$(AUGMENT_LIBRARY_PATH_LOCAL) $(GDBREGCOMPTRACE) $(SOLARBINDIR)/regcomp
982 CPPUMAKER*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/cppumaker
983 JAVAMAKER*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/javamaker
984 RDBMAKER*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/rdbmaker
985 CLIMAKER*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/climaker
987 .IF "$(DEBUGCPPUNIT)" != "" || "$(debugcppunit)" != ""
988 GDBCPPUNITTRACE=$(GDBTRACE)
989 .ENDIF
991 .IF "$(CROSS_COMPILING)" == "YES"
992 CPPUNITTESTER=\#
993 .ELSE
994 CPPUNITTESTER=$(AUGMENT_LIBRARY_PATH_LOCAL) $(GDBCPPUNITTRACE) $(VALGRINDTOOL) $(SOLARBINDIR)/cppunit/cppunittester
995 .ENDIF
996 HELPEX=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/helpex
997 LNGCONVEX=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/lngconvex
998 HELPLINKER=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/HelpLinker
999 HELPINDEXER=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/HelpIndexer
1001 .IF "$(JAVAINTERPRETER)" == ""
1002 JAVA*:=java
1003 .ELSE
1004 JAVA*:=$(JAVAINTERPRETER)
1005 .ENDIF
1006 .EXPORT : JAVA JAVAI
1008 # Define SCPCOMP without wrapper because pre2par.pl chokes on DOS style
1009 # paths. (See iz57443)
1010 SCPCOMP=$(PERL) $(SOLARENV)/bin/pre2par.pl
1011 SCPLINK=$(PERL) $(SOLARENV)/bin/par2script.pl
1012 LZIP*=lzip
1014 # Note that $(CPPLCC) is oddly enough only used when $(OS)==WNT, see pstrules.mk.
1015 # For the BUILD platform when cross-compiling (always Unix), it is called cpp.lcc
1016 .IF "$(CROSS_COMPILING)" == "YES"
1017 CPPLCC*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/cpp.lcc
1018 .ELSE
1019 CPPLCC*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/cpplcc
1020 .ENDIF
1022 .IF "$(DISABLE_ENHANCED_COMID)"==""
1023 .INCLUDE : tg_compv.mk
1024 .ELSE # "$(DISABLE_ENHANCED_COMID)"==""
1025 COMID=$(COM)
1026 .ENDIF # "$(DISABLE_ENHANCED_COMID)"==""
1027 .IF "$(SOLAR_JAVA)"=="TRUE"
1028 .IF "$(USE_JAVAVER)"!=""
1029 .INCLUDE : tg_javav.mk
1030 .ENDIF "$(USE_JAVAVER)"!=""
1031 .ENDIF # "$(SOLAR_JAVA)"=="TRUE"
1033 # --- extend new environment ----------------------------------
1034 CDEFS+= -DSUPD=$(UPD)
1036 # flags to enable build with symbols; required for crashdump feature
1037 .IF ("$(ENABLE_CRASHDUMP)"!="" && "$(ENABLE_CRASHDUMP)"!="DUMMY") || ("$(ENABLE_DEBUG)"!="" && "$(ENABLE_DEBUG)"!="FALSE")
1038 # if debug is enabled, this may enable less debug info than debug, so rely just on debug
1039 .IF "$(debug)" == ""
1040 CFLAGSENABLESYMBOLS_CC_ONLY*=$(CFLAGSENABLESYMBOLS)
1041 CFLAGSCXX+=$(CFLAGSENABLESYMBOLS)
1042 CFLAGSCC+=$(CFLAGSENABLESYMBOLS_CC_ONLY)
1043 .ENDIF # "$(DEBUG)" == ""
1044 .ENDIF # ("$(ENABLE_CRASHDUMP)"!="" && "$(ENABLE_CRASHDUMP)"!="DUMMY") || "$(ENABLE_DEBUG)"!=""
1046 .IF "$(CFLAGS)"!=""
1047 CFLAGSCC+=$(CFLAGS)
1048 .ENDIF
1049 .IF "$(CXXFLAGS)"!=""
1050 CFLAGSCXX+=$(CXXFLAGS)
1051 .ENDIF
1053 .IF "$(profile)"!=""
1054 CDEFS+= $(CDEFSPROF)
1055 CFLAGS+= $(CFLAGSPROF)
1056 .IF "$(WST)"!=""
1057 LINKFLAGS=$(LINKFLAGSWST)
1058 LINKCFLAGS=$(LINKFLAGSWST)
1059 .ELSE
1060 LINKFLAGSADD+=$(LINKFLAGSPROF)
1061 .ENDIF
1062 .ENDIF
1064 .IF "$(debug)"!=""
1065 JAVAFLAGS+=$(JAVAFLAGSDEBUG)
1066 CDEFS+= $(CDEFSDEBUG)
1067 CFLAGS+= $(CFLAGSDEBUG)
1068 LINKFLAGSADD+= $(LINKFLAGSDEBUG)
1069 .ENDIF
1071 .IF "$(dbgutil)"!=""
1072 CDEFS+=$(CDEFSDBGUTIL)
1073 CFLAGS+=$(CFLAGSDBGUTIL)
1074 RSCDEFS+=-DDBG_UTIL
1075 .ENDIF
1077 .IF "$(product)"!=""
1078 CDEFS+= -DPRODUCT
1079 RSCDEFS+= -DPRODUCT
1080 .IF "$(ASSERT_ALWAYS_ABORT)"=="FALSE"
1081 CDEFS+=-DNDEBUG
1082 RSCDEFS+= -DNDEBUG
1083 .ENDIF
1084 .ENDIF
1086 .IF "$(DBG_LEVEL)"!=""
1087 CDEFS+=-DOSL_DEBUG_LEVEL=$(DBG_LEVEL)
1088 RSCDEFS+=-DOSL_DEBUG_LEVEL=$(DBG_LEVEL)
1089 .IF "$(DBG_LEVEL)"!="0"
1090 CDEFS+=-DSAL_LOG_INFO -DSAL_LOG_WARN
1091 .ENDIF
1092 .ENDIF
1094 .IF "$(optimize)"!=""
1095 CDEFS+=$(CDEFSOPT)
1096 CFLAGS+=$(CFLAGSOPT)
1097 LINKFLAGSADD+=$(LINKFLAGSOPT)
1098 .ELSE
1099 CFLAGS+=$(CFLAGSNOOPT)
1100 .ENDIF
1102 .IF "$(ENABLE_EXCEPTIONS)"!=""
1103 GLOBAL_EXCEPTIONS_FLAGS+=$(CFLAGSEXCEPTIONS)
1104 GLOBAL_EXCEPTIONS_FLAGS+=-DEXCEPTIONS_ON
1105 .ELSE
1106 GLOBAL_EXCEPTIONS_FLAGS+=$(CFLAGS_NO_EXCEPTIONS)
1107 GLOBAL_EXCEPTIONS_FLAGS+=-DEXCEPTIONS_OFF
1108 .ENDIF
1109 # used if an object appears in the EXCEPTIONSFILES list
1110 # see also rules.mk
1111 LOCAL_EXCEPTIONS_FLAGS+=$(CFLAGSEXCEPTIONS)
1112 LOCAL_EXCEPTIONS_FLAGS+=-DEXCEPTIONS_ON
1114 .IF "$(ENABLE_GSTREAMER)" == "TRUE"
1115 CDEFS+=-DGSTREAMER
1116 .ENDIF
1118 .IF "$(HAVE_THREADSAFE_STATICS)" == "TRUE"
1119 CDEFS += -DHAVE_THREADSAFE_STATICS
1120 .END
1122 .IF "$(DISABLE_DYNLOADING)" == "TRUE"
1123 CDEFS += -DDISABLE_DYNLOADING
1124 .ENDIF
1126 CDEFS += -DRTL_USING
1128 # compose flags and defines for GUI
1129 .IF "$(TARGETTYPE)"=="GUI"
1130 CFLAGSSLO+=$(CFLAGSSLOGUIMT)
1131 CDEFSSLO+=$(CDEFSSLOMT)
1132 LINKFLAGSAPP=$(LINKFLAGSAPPGUI)
1133 LINKFLAGSSHL=$(LINKFLAGSSHLGUI)
1134 STDOBJ=$(STDOBJGUI)
1135 STDSLO=$(STDSLOGUI)
1137 CDEFSOBJ+= $(CDEFSMT) $(CDEFSOBJMT)
1138 CFLAGSOBJ+=$(CFLAGSOBJGUIMT)
1139 STDLIB=$(STDLIBGUIMT)
1140 STDSHL=$(STDSHLGUIMT)
1142 .ENDIF
1144 # compose flags and defines for CUI
1145 .IF "$(TARGETTYPE)" == "CUI" || "$(TARGETTYPE)"=="cui"
1146 CFLAGSSLO+=$(CFLAGSSLOCUIMT)
1147 CDEFSSLO+=$(CDEFSSLOMT)
1148 LINKFLAGSAPP=$(LINKFLAGSAPPCUI)
1149 LINKFLAGSSHL=$(LINKFLAGSSHLCUI)
1150 STDOBJ=$(STDOBJCUI)
1151 STDSLO=$(STDSLOCUI)
1153 CDEFSOBJ+=$(CDEFSMT) $(CDEFSOBJMT)
1154 CFLAGSOBJ+=$(CFLAGSOBJCUIMT)
1155 STDLIB=$(STDLIBCUIMT)
1156 STDSHL=$(STDSHLCUIMT)
1158 .ENDIF
1160 .EXPORT : PICSWITCH
1162 # fill up unresolved symbols not found else where
1163 .IF "$(FILLUPARC)"!=""
1164 STDLIB+=$(FILLUPARC)
1165 STDSHL+=$(FILLUPARC)
1166 .ENDIF # "$(FILUPARC)"!=""
1168 .IF "$(SOLAR_JAVA)"!=""
1169 CDEFS+=$(JAVADEF)
1170 .ENDIF # "$(SOLAR_JAVA)"!=""
1172 .INCLUDE .IGNORE: $(UPD)$(LAST_MINOR).mk
1174 # Once all modules on a given platform compile without warnings, the specific
1175 # .mk file for that platform should set COMPILER_WARN_ERRORS=TRUE and no longer
1176 # set MODULES_WITH_WARNINGS, and once no platform sets MODULES_WITH_WARNINGS any
1177 # longer, this code can go away:
1178 .IF "$(MODULES_WITH_WARNINGS)" == ""
1179 COMPILER_WARN_ERRORS=TRUE
1180 .ELSE
1181 MODULES_WITH_WARNINGS_1 := $(foreach,i,$(MODULES_WITH_WARNINGS) .$(i).)
1182 MODULES_WITH_WARNINGS_2 := $(subst,.$(PRJNAME)., $(MODULES_WITH_WARNINGS_1))
1183 .IF "$(MODULES_WITH_WARNINGS_1)" == "$(MODULES_WITH_WARNINGS_2)"
1184 COMPILER_WARN_ERRORS=TRUE
1185 .ENDIF
1186 .ENDIF
1188 CFLAGSWARNCXX *= $(CFLAGSWARNCC)
1189 CFLAGSWALLCXX *= $(CFLAGSWALLCC)
1190 CFLAGSWERRCXX *= $(CFLAGSWERRCC)
1192 .IF "$(ENVWARNFLAGS)"==""
1193 .IF "$(COMPILER_WARN_ALL)"==""
1194 CFLAGSCC+=$(CFLAGSWARNCC)
1195 CFLAGSCXX+=$(CFLAGSWARNCXX)
1196 .ELSE
1197 CFLAGSCC+=$(CFLAGSWALLCC)
1198 CFLAGSCXX+=$(CFLAGSWALLCXX)
1199 .ENDIF
1200 .IF "$(COMPILER_WARN_ERRORS)"!="" && "$(EXTERNAL_WARNINGS_NOT_ERRORS)"=="FALSE"
1201 CFLAGSCC+=$(CFLAGSWERRCC)
1202 CFLAGSCXX+=$(CFLAGSWERRCXX)
1203 .ENDIF
1204 .ELSE # "$(ENVWARNFLAGS)"==""
1205 CFLAGSAPPEND+=$(ENVWARNFLAGS)
1206 .ENDIF # "$(ENVWARNFLAGS)"==""
1208 CDEFS+= $(ADDCDEFS)
1209 CDEFS+= $(ENVCDEFS)
1210 CFLAGS+= $(CFLAGSCALL) $(ENVCFLAGS)
1211 CFLAGSCXX+= $(ENVCFLAGSCXX)
1212 # andersrum wg. -TPxxxx
1213 CFLAGSINCXX+:=$(ENVCFLAGSINCXX)
1214 LIBFLAGS+= $(ENVLIBFLAGS)
1215 LINKFLAGSADD+= $(ENVLINKFLAGS)
1216 RSCFLAGS+= $(ENVRSCFLAGS)
1217 RSCDEFS+= $(ENVRSCDEFS)
1218 # RSCLINKFLAGS+= $(ENVRSCLINKFLAGS)
1219 RCFLAGS+= $(ENVRCFLAGS)
1220 RCLINKFLAGS+= $(ENVRCLINKFLAGS)
1222 LINKFLAGSRUNPATH_URELIB*=
1223 LINKFLAGSRUNPATH_UREBIN*=
1224 LINKFLAGSRUNPATH_OOO*=
1225 LINKFLAGSRUNPATH_SDKBIN*=
1226 LINKFLAGSRUNPATH_OXT*=
1227 LINKFLAGSRUNPATH_NONE*=
1229 # make sure both linker variables are set
1230 LINKC*=$(LINK)
1231 LINKCFLAGS*=$(LINKFLAGS)
1232 LINKFLAGS+=$(LINKFLAGSADD)
1233 LINKCFLAGS+=$(LINKFLAGSADD)
1235 #defaults for UCR HEADER
1236 UNOUCRBASE*=UCR
1237 UNOUCROUT*=$(OUT)/inc/$(TARGET)
1238 INCPRE+=-I$(UNOUCROUT)
1239 UNOUCRRDB*=$(SOLARBINDIR)/types.rdb
1241 # location of trustedinfo.manifest for Windows Vista
1242 .IF "$(COM)"=="MSC"
1243 TRUSTED_MANIFEST_LOCATION*=$(SOLARENV)/inc
1244 .ENDIF # "$(COM)"=="MSC"
1246 # --- Compiler -----------------------------------------------------
1247 .INCLUDE : rules.mk
1249 # some place to define these jars for SO environment
1250 XML_APIS_JAR*=$(SOLARBINDIR)/xml-apis.jar
1251 XERCES_JAR*=$(SOLARBINDIR)/xercesImpl.jar
1253 .IF "$(SYSTEM_CPPUNIT)" != "YES"
1254 CPPUNIT_CFLAGS =
1255 .END
1257 .IF "$(DISABLE_DYNLOADING)" == "TRUE"
1258 COMPONENTPREFIX_URE_NATIVE =
1259 COMPONENTPREFIX_BASIS_NATIVE =
1260 COMPONENTPREFIX_INBUILD_NATIVE =
1261 .ELSE
1262 COMPONENTPREFIX_URE_NATIVE = vnd.sun.star.expand:$$URE_INTERNAL_LIB_DIR/
1263 COMPONENTPREFIX_BASIS_NATIVE = vnd.sun.star.expand:$$LO_LIB_DIR/
1264 COMPONENTPREFIX_INBUILD_NATIVE = vnd.sun.star.expand:$$LO_LIB_DIR/
1265 .ENDIF
1266 COMPONENTPREFIX_URE_JAVA = vnd.sun.star.expand:$$URE_INTERNAL_JAVA_DIR/
1267 COMPONENTPREFIX_BASIS_JAVA = vnd.sun.star.expand:$$LO_JAVA_DIR/
1268 COMPONENTPREFIX_BASIS_PYTHON = vnd.openoffice.pymodule:
1269 COMPONENTPREFIX_INBUILD_JAVA = vnd.sun.star.expand:$$LO_JAVA_DIR/
1270 COMPONENTPREFIX_EXTENSION = ./
1272 # workaround for strange dmake bug:
1273 # if the previous block was a rule or a target, "\#" isn't recognized
1274 # as an escaped "#". if it was an assignment, escaping works...
1275 some_unique_variable_name:=1