xref: /aoo42x/main/solenv/inc/settings.mk (revision 7871dc3e)
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
23MKFILENAME:=SETTINGS.MK
24
25# smaller/greater arithmetic's like ".IF 400<=200" are an OOo extention to
26# the initial dmake 4.1PL0 (unfortunately called 4.10) version and are
27# tested implicitly by the construction below.
28.IF $(MAKEVERSION:s/-cvs//:s/.//)<=410
29.ERROR : ; @echo Forced error: dmake version 4.11 or newer is needed!
30force_dmake_to_error
31.ENDIF
32
33.INCLUDE .IGNORE : ooo_vendor.mk
34
35# --- common tool makros --------------------------------------
36
37.IF "$(USE_PCH)"!=""
38ENABLE_PCH=TRUE
39.ENDIF			# "$(USE_PCH)"!=""
40
41.IF "$(ENABLE_PCH)"!="" && "$(BUILD_SPECIAL)"!=""
42.IF "$(SOLARSRC)"=="$(SRC_ROOT)"
43NETWORK_BUILD:=TRUE
44.ENDIF			# "$(SOLARSRC)"=="$(SRC_ROOT)"
45.ENDIF			# "$(ENABLE_PCH)"!="" && "$(BUILD_SPECIAL)"!=""
46
47.INCLUDE : unitools.mk
48
49.INCLUDE : minor.mk
50
51.INCLUDE .IGNORE : rtlbootstrap.mk
52
53PLATFORMID = $(RTL_OS:l)_$(RTL_ARCH:l)
54EXTNAME*=$(EXTENSIONNAME)_in
55
56.IF "$(UPDATER)"!="" || "$(CWS_WORK_STAMP)"!=""
57
58.IF "$(SOURCEVERSION)"!="$(WORK_STAMP)"
59.ERROR : ; @echo Forced error: minor.mk in solenv/inc does not match your version!
60WRONG_SOURCEVERSION
61.ENDIF
62
63# Create $(SOLARVERSION)/$(INPATH)/inc$(UPDMINOREXT)/$(UPD)minor.mk if needed
64%minor.mk : $(SOLARENV)/inc/minor.mk
65	@@-$(MKDIRHIER) $(SOLARVERSION)/$(INPATH)/inc$(UPDMINOREXT)
66	@@$(COPY) $(SOLARENV)/inc/minor.mk $(SOLARVERSION)/$(INPATH)/inc$(UPDMINOREXT)/$(UPD)minor.mk
67	@@$(TOUCH) $(SOLARVERSION)/$(INPATH)/inc$(UPDMINOREXT)/minormkchanged.flg
68.ENDIF          # "$(UPDATER)"!="" || "$(CWS_WORK_STAMP)"!=""
69
70# Force creation of $(SOLARVERSION)/$(INPATH)/inc$(UPDMINOREXT)/
71# $(UPD)minor.mk could be empty as it's contents were already included from minor.mk
72.INCLUDE : $(SOLARVERSION)/$(INPATH)/inc$(UPDMINOREXT)/$(UPD)minor.mk
73
74.IF "$(BSCLIENT)"=="TRUE"
75.IF "$(UPDATER)"!="YES"
76incorrect_settings:
77	@echo "#"
78	@echo "#" ERROR: setsolar option -bsclient used but UPDATER=YES not set!
79	@echo "#"
80	force_dmake_to_error
81.ENDIF
82.ENDIF
83
84.INCLUDE : udkversion.mk
85
86# --- reset defined Environments --------------------
87ASM=
88AFLAGS=
89
90
91#START JAVA
92
93#interpreter location
94.IF "$(JAVAINTERPRETER)" == ""
95.IF "$(JDK)" == "J++"
96JAVAINTERPRETER=jview.exe
97.ELSE
98.IF "$(JDK)" == "SCAFE"
99.IF "$(JDK_VERSION)" != ""
100JAVAINTERPRETER=$(DEVROOT)/vcafe11/java/bin/java.exe
101.ELSE
102JAVAINTERPRETER=$(DEVROOT)/cafepro/java/bin/java.exe
103.ENDIF
104.ELSE
105.IF "$(JAVACISGCJ)" == "yes"
106JAVAINTERPRETER=gij
107.ELSE
108JAVAINTERPRETER=java
109.ENDIF
110.ENDIF
111.ENDIF
112.ENDIF
113
114#compiler location
115.IF "$(JAVACOMPILER)" == ""
116.IF "$(JDK)" == "J++"
117JAVACOMPILER=jvc.exe
118.ELSE
119.IF "$(JDK)" == "SCAFE"
120.IF "$(JDK_VERSION)" != ""
121JAVACOMPILER=$(DEVROOT)/vcafe11/bin/sj.exe
122.ELSE
123JAVACOMPILER=$(DEVROOT)/cafepro/bin/sj.exe
124.ENDIF
125.ELSE
126.IF "$(JAVACISGCJ)" == "yes"
127JAVACOMPILER=gcj
128.ELSE
129JAVACOMPILER=javac
130.ENDIF
131.ENDIF
132.ENDIF
133.ENDIF
134
135#if javadoc is not already set
136.IF "$(JAVADOC)"==""
137JAVADOC=javadoc -J-Xmx120m
138.ENDIF
139
140#required arguments
141JAVAC=$(JAVACOMPILER)
142JAVAI:=$(JAVAINTERPRETER)
143.IF "$(JAVACISGCJ)" == "yes"
144JAVAC+=--encoding=UTF-8 -O2 -fno-assert -Wno-deprecated -C
145.ENDIF
146
147#classpath and response
148.IF "$(JDK)" == "J++"
149JAVACPS=/cp
150.ELSE
151.IF "$(JDK)" == "SCAFE"
152JAVACPS=-classpath
153JAVARESPONSE=TRUE
154.ELSE
155JAVACPS=-classpath
156JAVARESPONSE=
157.ENDIF
158.ENDIF
159
160JAVAFLAGS+=$(JAVA_TARGET_FLAG)
161
162#END JAVA
163
164CDEFS=
165CXXDEFS=
166CDEFSCXX=
167CDEFSOBJ=
168CDEFSSLO=
169CDEFSGUI=
170CDEFSCUI=
171CDEFSMT=
172CDEFSPROF=
173CDEFSDEBUG=
174CDEFSDBGUTIL=
175CDEFSOPT=
176
177CFLAGS=
178CFLAGSCALL=
179CFLAGSCXX=
180CFLAGSCC=
181CFLAGSOBJ=
182CFLAGSSLO=
183CFLAGSOBJGUIMT=
184CFLAGSOBJCUIMT=
185CFLAGSSLOGUIMT=
186CFLAGSSLOCUIMT=
187CFLAGSPROF=
188CFLAGSDEBUG=
189CFLAGSDBGUTIL=
190CFLAGSOPT=
191CFLAGSNOOPT=
192CFLAGSOUTOBJ=
193
194CFLAGSINCXX=
195
196LINKFLAGS=
197LINKFLAGSAPPGUI=
198LINKFLAGSSHLGUI=
199LINKFLAGSAPPCUI=
200LINKFLAGSSHLCUI=
201LINKFLAGSTACK=
202LINKFLAGSPROF=
203LINKFLAGSDEBUG=
204LINKFLAGSOPT=
205LINKFLAGSAPP=
206LINKFLAGSSHL=
207LINKEXTENDLINE=
208
209STDOBJGUI=
210STDSLOGUI=
211STDOBJCUI=
212STDSLOCUI=
213STDLIBGUIMT=
214STDLIBCUIMT=
215STDSHLGUIMT=
216STDSHLCUIMT=
217STDOBJ=
218STDSLO=
219STDLIB=
220STDSHL=
221
222LIBFLAGS=
223
224IMPLIBMGR=
225IMPLIBFLAGS=
226
227MAPSYM=
228MAPSYMFLAGS=
229
230RSC=
231RSCFLAGS=
232RSCDEFS=
233RSCLANG=
234
235RC=
236RCFLAGS=
237RCLINK=
238RCLINKFLAGS=
239RCSETVERSION=
240
241DLLPOSTFIX=
242
243HC=
244HCFLAGS=
245
246MKDEP=
247
248AS=
249BC=
250COBOL=
251CPP=
252FOR=
253PASCAL=
254
255BFLAGS=
256COBFLAGS=
257CPPFLAGS=
258CXXFLAGS=
259FFLAGS=
260PFLAGS=
261RFLAGS=
262
263LNT=
264LNTFLAGS=
265LNTFLAGSGUI=
266LNTFLAGSCOM=
267
268# doesn't make sense
269#IDLSTATICOBJS=
270
271E2P=
272CAP=
273cap=
274
275# not to reset because possibly taken from environment
276#CC=
277#CXX=
278#LINK=
279#LIBMGR=
280
281
282# avoid confusion with CUE PROFILE variable...
283PROFILE=
284
285# can be set on the command line. we shouldn't delete them!
286#profile=
287
288# reset as setting those manually is no lonjger supported
289DBGUTIL=
290dbgutil=
291
292# ===========================================================================
293# unter NT werden Variablennamen an untergeordnete makefiles UPPERCASE
294# weitergereicht, aber case significant ausgewertet!
295# ---------------------------------------------------------------------------
296
297DMAKE_WORK_DIR*:=$(subst,/,/ $(PWD))
298.IF "$(GUI)"=="WNT"
299posix_PWD:=/cygdrive/$(PWD:s/://)
300.ELSE			#GUI)"=="WNT"
301posix_PWD:=$(PWD)
302.ENDIF			#GUI)"=="WNT"
303
304
305.IF "$(TMP)"!=""
306tmp*=$(TMP)
307.ENDIF
308
309.IF "$(tmp)"!=""
310TMP*=$(tmp)
311.ENDIF
312
313.IF "$(TEMP)"!=""
314temp*=$(TEMP)
315.ENDIF
316
317.IF "$(temp)"!=""
318TEMP*=$(temp)
319.ENDIF
320
321.IF "$(DEPEND)"!=""
322depend=$(DEPEND)
323.ENDIF
324
325.IF "$(OPTIMIZE)"!=""
326optimize=$(OPTIMIZE)
327.ENDIF
328
329.IF "$(NOPT)"!=""
330nopt*=$(NOPT)
331.ENDIF
332
333.IF "$(GROUP)"!=""
334group*=$(GROUP)
335.ENDIF
336
337.IF "$(group)"!=""
338GROUP*=$(group)
339.ENDIF
340
341# override dbglevel if set manually
342.IF "$(dbglevel)"!=""
343DBG_LEVEL=$(dbglevel)
344.ENDIF
345
346.IF "$(NODEBUG)"!=""
347nodebug=$(NODEBUG)
348.ENDIF
349
350.IF "$(hbtoolkit)"!=""
351HBTOOLKIT=$(hbtoolkit)
352.ENDIF
353
354.IF "$(PRODUCT)"!=""
355product*=$(PRODUCT)
356.ENDIF
357
358.IF "$(product)"!=""
359PRODUCT*=$(product)
360.ENDIF
361
362.IF "$(VERBOSE)"!=""
363verbose*=$(VERBOSE)
364.ENDIF
365
366.IF "$(verbose)"!=""
367# normalize: "false" (any upper/lower case) and "0" mean FALSE, everything else means TRUE
368VERBOSE_IS_FALSE:=$(or $(eq,"$(verbose:u)","FALSE" "false"  ) $(eq,"$(verbose)","0" "false"  ))
369VERBOSE!:=$(eq,"$(VERBOSE_IS_FALSE)","t" FALSE TRUE)
370.ENDIF
371
372.IF "$(SOLARLANG)" != ""
373solarlang*=$(SOLARLANG)
374.ENDIF
375
376.IF "$(solarlang)" != ""
377SOLARLANG:=$(solarlang)
378.ENDIF
379
380.IF "$(wall)"!=""
381COMPILER_WARN_ALL=TRUE
382.ENDIF          # "$(wall)"!=""
383
384.IF "$(werror)"!=""
385COMPILER_WARN_ERRORS=TRUE
386.ENDIF
387
388.IF "$(RSC_ONCE)"!=""
389rsc_once*=$(RSC_ONCE)
390.ENDIF
391
392#.IF "$(COMMON_BUILD)"!=""
393#common_build*=$(COMMON_BUILD)
394#.ENDIF
395common_build:=
396COMMON_BUILD:=
397
398.IF "$(USE_SHL_VERSIONS)"!=""
399use_shl_versions*=$(USE_SHL_VERSIONS)
400.ENDIF
401
402.IF "$(noremove)"!=""
403NOREMOVE*=$(noremove)
404.ENDIF
405
406# --- env flags not case sensitive --------------------------------
407
408#.IF "$(envcflags)"!=""
409ENVCFLAGS*=$(envcflags)
410#.ENDIF
411
412#.IF "$(envcflagscxx)"!=""
413ENVCFLAGSCXX*=$(envcflagscxx)
414#.ENDIF
415
416
417.IF "$(envcdefs)"!=""
418ENVCDEFS*=$(envcdefs)
419.ENDIF
420
421.IF "$(envlibflags)"!=""
422ENVLIBFLAGS*=$(envlibflags)
423.ENDIF
424
425.IF "$(envcflagsincxx)"!=""
426ENVCFLAGSINCXX*=$(envcflagsincxx)
427.ENDIF
428
429.IF "$(envlinkflags)"!=""
430ENVLINKFLAGS*=$(envlinkflags)
431.ENDIF
432
433.IF "$(envrscflags)"!=""
434ENVRSCFLAGS*=$(envrscflags)
435.ENDIF
436
437.IF "$(envrscdefs)"!=""
438ENVRSCDEFS*=$(envrscdefs)
439.ENDIF
440
441.IF "$(envrsclinkflags)"!=""
442# ENVRSCLINKFLAGS*=$(envrsclinkflags)
443.ENDIF
444
445.IF "$(envrcflags)"!=""
446ENVRCFLAGS*=$(envrcflags)
447.ENDIF
448
449.IF "$(envrclinkflags)"!=""
450ENVRCLINKFLAGS*=$(envrclinkflags)
451.ENDIF
452
453# --- set both L10N variables to keep things working ---------------
454
455L10N-framework=$(L10N_framework)
456
457# --- Parameter Einstellungen ueberpruefen und umsetzen ------------
458
459# profile immer mit product
460.IF "$(profile)"!=""
461.IF "$(product)"==""
462product=full
463.ENDIF
464.ENDIF
465
466.IF "$(debug)"!=""
467DBG_LEVEL*=2
468.ENDIF
469
470# Produkt auf einen Wert setzen (alles klein)
471.IF "$(product)" != ""
472optimize=true
473.IF "$(product)" == "full" || "$(product)" == "Full" || "$(product)" == "FULL"
474product!=full
475.ENDIF
476.IF "$(product)" == "demo" || "$(product)" == "Demo" || "$(product)" == "DEMO"
477product!=demo
478.ENDIF
479.IF "$(product)" == "compact" || "$(product)" == "Compact" || "$(product)" == "COMPACT"
480product!=compact
481.ENDIF
482DBG_LEVEL*=0
483.ELSE
484optimize!=true
485dbgutil!=true
486DBG_LEVEL*=1
487USE_STLP_DEBUG*=TRUE
488.ENDIF
489
490.IF "$(debug)"!=""
491.IF "$(debug)"!="D_FORCE_OPT"
492optimize=
493OPTIMIZE=
494.ENDIF
495.ENDIF
496
497.IF "$(nopt)"!=""
498optimize=
499OPTIMIZE=
500.ENDIF
501
502# Optimierung bei FinalCheck funktioniert nicht!
503.IF "$(bndchk)" != ""
504optimize=
505OPTIMIZE=
506.ENDIF
507
508######################################################
509#
510# sprachabh. einstellungen
511#
512######################################################
513
514.INCLUDE : lang.mk
515
516.INCLUDE : postset.mk
517
518RSC_LANG_ISO+:=$(completelangiso)
519.EXPORT : RSC_LANG_ISO
520
521######################################################
522
523.IF "$(TARGETTYPE)"==""
524TARGETTYPE=CUI
525.ENDIF
526
527# --- Pfade setzen -------------------------------------------------
528
529# Output-Pfad
530# profile has to be first for not getting the .pro extension
531.IF "$(profile)"!=""
532OUT=$(PRJ)/$(OUTPATH).cap
533ROUT=$(OUTPATH).cap
534.ELSE
535
536.IF "$(product)"!=""
537OUT=$(PRJ)/$(OUTPATH).pro
538ROUT=$(OUTPATH).pro
539
540.ELSE
541.IF "$(profile)"!=""
542OUT=$(PRJ)/$(OUTPATH).cap
543ROUT=$(OUTPATH).cap
544.ENDIF
545.IF "$(dbcs)"!=""
546OUT=$(PRJ)/$(OUTPATH).w
547ROUT=$(OUTPATH).w
548.ENDIF
549# could already be set by makefile.mk
550.IF "$(OUT)" == ""
551OUT*=$(PRJ)/$(OUTPATH)
552ROUT*=$(OUTPATH)
553.ENDIF
554.ENDIF
555.ENDIF
556
557.IF "$(bndchk)" != ""
558OUT:=$(PRJ)/$(OUTPATH).bnd
559ROUT=$(OUTPATH).bnd
560.ENDIF
561.IF "$(truetime)" != ""
562OUT=$(PRJ)/$(OUTPATH).tt
563ROUT=$(OUTPATH).tt
564.ENDIF
565.IF "$(hbtoolkit)"!=""
566OUT=$(PRJ)/$(OUTPATH).tlk
567ROUT=$(OUTPATH).tlk
568.ENDIF
569
570.IF "$(PRJ)"!="."
571.IF "$(GUI)"=="WNT" || "$(GUI)"=="OS2"
572PATH_IN_MODULE:=\
573    $(subst,$(normpath $(shell @+cd $(PRJ) && pwd $(PWDFLAGS)))/, $(PWD))
574.ELSE			# "$(GUI)"=="WNT"
575PATH_IN_MODULE:=$(subst,$(shell @+cd $(PRJ) && pwd $(PWDFLAGS))/, $(PWD))
576.ENDIF			# "$(GUI)"=="WNT"
577.ELSE			# "$(PRJ)"!="."
578PATH_IN_MODULE:=
579.ENDIF			# "$(PRJ)"!="."
580
581## common output tree
582#.IF "$(common_build)"!=""
583#COMMON_OUTDIR*=common
584#.IF "$(no_common_build_reslib)"==""
585#common_build_reslib=true
586#.ENDIF			# "$(no_common_build_reslib)"==""
587#.IF "$(no_common_build_zip)"==""
588#common_build_zip=true
589#.ENDIF			# "$(no_common_build_zip)"==""
590#.IF "$(no_common_build_sign_jar)"==""
591#common_build_sign_jar=true
592#.ENDIF			# "$(no_common_build_sign_jar)"==""
593#.IF "$(no_common_build_srs)"==""
594#common_build_srs=true
595#.ENDIF			# "$(no_common_build_srs)"==""
596#.ELSE			# "$(common_build)"!=""
597COMMON_OUTDIR:=$(OUTPATH)
598#.ENDIF			# "$(common_build)"!=""
599
600LOCAL_OUT:=$(OUT)
601LOCAL_COMMON_OUT:=$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(OUT))
602.EXPORT : LOCAL_OUT LOCAL_COMMON_OUT
603
604# --- generate output tree -----------------------------------------
605
606# disable for makefiles wrapping a gnumake module
607.IF "$(TARGET)"!="prj"
608# As this is not part of the initial startup makefile we define an infered
609# target instead of using $(OUT)/inc/myworld.mk as target name.
610# (See iz62795)
611$(posix_PWD)/$(OUT)/inc/%world.mk :
612	@$(MKOUT) $(ROUT)
613	@echo $(EMQ)# > $@
614
615.INCLUDE :  $(posix_PWD)/$(OUT)/inc/myworld.mk
616
617.IF "$(common_build)"!=""
618$(posix_PWD)/$(LOCAL_COMMON_OUT)/inc/%world.mk :
619	@$(MKOUT) $(subst,$(OUTPATH),$(COMMON_OUTDIR) $(ROUT))
620	@echo $(EMQ)# > $@
621
622.INCLUDE : $(posix_PWD)/$(LOCAL_COMMON_OUT)/inc/myworld.mk
623.ENDIF			# "$(common_build)"!=""
624.ENDIF          # "$(TARGET)"!="prj"
625
626.INCLUDE .IGNORE : office.mk
627
628# Misc-Pfad
629.IF "$(UNR)"!=""
630MISCX=$(OUT)/umisc
631MISC=$(OUT)/umisc
632.ELSE
633MISC=$(OUT)/misc
634# pointing to misc in common output tree if exists
635COMMONMISC={$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(MISC))}
636.ENDIF
637
638OUTCXX=$(OUT)/cxx
639
640.IF "$(PACKAGE)"!=""
641IDLPACKAGE:=$(PACKAGE)
642IDLPACKAGENAME:=$(IDLPACKAGE:sX\X/X)
643.ELSE
644IDLPACKAGE=$(PRJNAME)
645IDLPACKAGENAME=$(PRJNAME)
646.ENDIF
647
648# Objekt-Pfad
649OBJ=$(OUT)/obj
650SLO=$(OUT)/slo
651ROBJ=$(ROUT)/obj
652RSLO=$(ROUT)/slo
653
654# Particle Path
655PAR=$(OUT)/par
656
657# Library-Pfad
658LB=$(OUT)/lib
659SLB=$(OUT)/slb
660
661# wir haben ein ucr verzeichnis
662UCR=$(OUT)/ucr
663
664# $(L) nur noch pfad ins solver\upd\...\lib
665#L:={$(LB);$(SLB);$(ILIB)}
666L=$(SOLARLIBDIR)
667
668#.EXPORT : SLB LB L LIB
669ENVPRJ:=$(PRJ)
670#todo: check PRJ is still expected to exist in environment
671.EXPORT : PRJ ENVPRJ
672
673# Class-Path for java-classes
674# obwohl der generierte Bytecode plattformunabhg. sein sollte
675# generieren wir ihn ersteinmal ins abhaengige Verzeichnis
676CLASSDIR=$(OUT)/class
677CLASSPATH!:=.$(PATH_SEPERATOR)$(CLASSDIR)$(PATH_SEPERATOR)$(CLASSPATH)
678STARJAR=java -classpath $(CLASSPATH)$(PATH_SEPERATOR)$(SOLARENV)/bin/jtools.jar com.sun.star.tool.starjar.StarJar
679
680STARDEP=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/javadep
681.IF "$(PRJNAME)"=="sj2"
682CLASSPATH!:=$(CLASSPATH:s/sj2/no/)
683.ENDIF
684.IF "$(PRJNAME)"=="uno"
685CLASSPATH!:=$(CLASSPATH:s/uno/no/)
686.ENDIF
687.IF "$(PRJNAME)"=="tkt"
688CLASSPATH!:=$(CLASSPATH:s/tkt/no/)
689.ENDIF
690
691# default output directory when processing
692# configuration files
693PROCESSOUT*:=$(MISC)
694
695# Makros fuer die Librarynamen des Solar
696.INCLUDE : libs.mk
697
698.IF "$(GUI)"=="WNT" || "$(GUI)"=="OS2"
699VERSIONOBJ=$(SLO)/_version.obj
700.ENDIF
701
702.IF "$(GUI)"=="UNX"
703VERSIONOBJ=$(SLO)/_version.o
704.ENDIF
705
706.IF "$(GUI)"=="WNT" || "$(GUI)"=="OS2"
707WINVERSIONNAMES=$(UNIXVERSIONNAMES)
708.ENDIF			# "$(GUI)"=="WNT"
709
710.IF "$(GUI)"=="WNT" || "$(GUI)"=="OS2"
711.IF "$(COM)"=="GCC"
712SHELLLIB=-lgdi32 -lshell32 -ladvapi32 -lcomdlg32
713.ELSE
714SHELLLIB=gdi32.lib shell32.lib advapi32.lib comdlg32.lib
715.ENDIF
716.ENDIF
717
718# BIN-Pfad
719.IF "$(UNR)"!=""
720BIN=$(OUT)/ubin
721.ELSE
722BIN=$(OUT)/bin
723.ENDIF
724# pointing to misc in common output tree if exists
725COMMONBIN=$(LOCAL_COMMON_OUT)/bin
726
727# Include-Pfad
728# still without -I here s.a. target.mk INCLUDE
729INC=$(PRJ)/inc
730INCPCH=$(PRJ)/inc/pch
731INCLOCAL=../inc
732INCGUI=$(PRJ)/$(GUIBASE)/inc
733INCCOM=$(OUT)/inc
734INCCOMX=$(OUT)/inc
735INCUNOIDL=$(INCCOM)/$(PRJNAME)
736INCDEPN=. $(INCGUI) $(INCLOCAL) $(INC) $(INC)/$(PRJNAME)
737.IF "$(PRJINC)"!=""
738INCLOCPRJ=$(foreach,i,$(PRJINC) $i/inc)
739INCDEPN+=$(INCLOCPRJ)
740.ENDIF
741.IF "$(INCPRE)"!=""
742INCDEPN+=$(INCPRE)
743.ENDIF
744
745# Resource-Pfad fuer .SRS
746
747.IF "$(common_build_srs)"!=""
748SRS=$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(OUT))/srs
749SRSX=$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(OUT))/srs
750.ELSE          # "$(common_build_srs)"!=""
751SRS=$(OUT)/srs
752SRSX=$(OUT)/srs
753.ENDIF          # "$(common_build_srs)"!=""
754
755# Resource-Pfad fuer .RC und .RES
756RES=$(OUT)/res
757
758# das normale MISC wird nicht an LDMISC angepasst, stattdessen MISCX
759
760.IF "$(make_xl)"!=""
761BIN=$(PRJ)/$(OUTPATH).xl/bin
762.ENDIF
763
764# damit gezielt Abhaengigkeiten auf s: angegeben werden koennen
765
766.IF "$(common_build)"!=""
767SOLARIDLDIR=$(SOLARVERSION)/common$(PROEXT)/idl$(UPDMINOREXT)
768.ELSE
769SOLARIDLDIR=$(SOLARVERSION)/$(INPATH)/idl$(UPDMINOREXT)
770.ENDIF
771
772#.IF "$(UPDMINOR)" != ""
773#UPDMINOREXT=.$(UPDMINOR)
774#.ELSE
775#UPDMINOREXT=
776#.ENDIF
777SOLARRESDIR=$(SOLARVERSION)/$(INPATH)/res$(UPDMINOREXT)
778SOLARRESXDIR=$(SOLARVERSION)/$(INPATH)/res$(UPDMINOREXT)
779SOLARLIBDIR=$(SOLARVERSION)/$(INPATH)/lib$(UPDMINOREXT)
780SOLARJAVADIR=$(SOLARVERSION)/$(INPATH)/java$(UPDMINOREXT)
781SOLARINCDIR=$(SOLARVERSION)/$(INPATH)/inc$(UPDMINOREXT)
782SOLARINCXDIR=$(SOLARVERSION)/$(INPATH)/inc$(UPDMINOREXT)
783.IF "$(SOLARLANG)"!="deut"
784.IF "$(SOLARLANG)" != ""
785SOLARINCXDIR=$(SOLARVERSION)/$(INPATH)/inc$(UPDMINOREXT)/$(SOLARLANG)
786SOLARRESXDIR=$(SOLARVERSION)/$(INPATH)/res$(UPDMINOREXT)/$(SOLARLANG)
787.ENDIF
788.ENDIF
789SOLARBINDIR:=$(SOLARVERSION)/$(INPATH)/bin$(UPDMINOREXT)
790SOLARUCRDIR=$(SOLARVERSION)/$(INPATH)/ucr$(UPDMINOREXT)
791SOLARPARDIR=$(SOLARVERSION)/$(INPATH)/par$(UPDMINOREXT)
792SOLARXMLDIR=$(SOLARVERSION)/$(INPATH)/xml$(UPDMINOREXT)
793SOLARDOCDIR=$(SOLARVERSION)/$(INPATH)/doc$(UPDMINOREXT)
794SOLARPCKDIR=$(SOLARVERSION)/$(INPATH)/pck$(UPDMINOREXT)
795SOLARSDFDIR=$(SOLARVERSION)/$(INPATH)/sdf$(UPDMINOREXT)
796SOLARCOMMONBINDIR=$(SOLARVERSION)/common$(PROEXT)/bin$(UPDMINOREXT)
797SOLARCOMMONRESDIR=$(SOLARVERSION)/common$(PROEXT)/res$(UPDMINOREXT)
798SOLARCOMMONPCKDIR=$(SOLARVERSION)/common$(PROEXT)/pck$(UPDMINOREXT)
799SOLARCOMMONSDFDIR=$(SOLARVERSION)/common$(PROEXT)/sdf$(UPDMINOREXT)
800.IF "$(common_build)"==""
801SOLARCOMMONBINDIR=$(SOLARBINDIR)
802SOLARCOMMONRESDIR=$(SOLARRESDIR)
803SOLARCOMMONPCKDIR=$(SOLARPCKDIR)
804SOLARCOMMONSDFDIR=$(SOLARSDFDIR)
805.ENDIF
806
807.EXPORT : SOLARBINDIR
808
809L10N_MODULE*=$(SOURCE_ROOT_DIR)/extras/l10n
810ALT_L10N_MODULE*=$(SOLARSRC)$/l10n_so
811
812.IF "$(WITH_LANG)"!=""
813.INCLUDE .IGNORE: $(L10N_MODULE)/$(COMMON_OUTDIR)$(PROEXT)/inc/localization_present.mk
814.INCLUDE .IGNORE: $(ALT_L10N_MODULE)/$(COMMON_OUTDIR)$(PROEXT)/inc/localization_present.mk
815
816# check for localizations not hosted in l10n module. if a file exists there
817# it won't in l10n
818.IF "$(ALT_LOCALIZATION_FOUND)"!=""
819TRYALTSDF:=$(ALT_L10N_MODULE)$/$(COMMON_OUTDIR)$(PROEXT)$/misc/sdf$/$(PRJNAME)$/$(PATH_IN_MODULE)$/localize.sdf
820LOCALIZESDF:=$(strip $(shell @+$(IFEXIST) $(TRYALTSDF) $(THEN) echo $(TRYALTSDF) $(FI)))
821.ENDIF			# "$(ALT_LOCALIZATION_FOUND)"!=""
822# if the l10n module exists, use split localize.sdf directly from there
823.IF "$(LOCALIZATION_FOUND)"!="" && "$(LOCALIZESDF)"==""
824# still check for existence as there may be no localization yet
825TRYSDF:=$(L10N_MODULE)$/$(COMMON_OUTDIR)$(PROEXT)$/misc/sdf$/$(PRJNAME)$/$(PATH_IN_MODULE)$/localize.sdf
826LOCALIZESDF:=$(strip $(shell @+$(IFEXIST) $(TRYSDF) $(THEN) echo $(TRYSDF) $(FI)))
827.ENDIF			# "$(LOCALIZATION_FOUND)"!="" && "$(LOCALIZESDF)"==""
828# else use localize.sdf from local output tree if localization .zip exists
829.IF  "$(LOCALIZESDF)"==""
830LOCALSDFFILE:=$(COMMONMISC)$/$(PRJNAME)$/$(PATH_IN_MODULE)$/localize.sdf
831LOCALIZESDF:=$(strip $(shell @+$(IFEXIST) $(SOLARCOMMONSDFDIR)$/$(PRJNAME).zip $(THEN) echo $(LOCALSDFFILE) $(FI)))
832.IF  "$(LOCALIZESDF)"==""
833LOCALSDFFILE!:=
834.ENDIF			# "$(LOCALIZESDF)"==""
835.ENDIF			# "$(LOCALIZESDF)"==""
836# dummy target to keep the build happy.
837.IF  "$(LOCALIZESDF)"==""
838LOCALIZESDF:=$(COMMONMISC)$/$(PRJNAME)$/dummy$/localize.sdf
839.ENDIF			# "$(LOCALIZESDF)"==""
840.ENDIF			# "$(WITH_LANG)"!=""
841
842JARDIR=$(OUT)/class
843
844# needs to be expanded!!!
845
846# extend library path for MS Compiler
847.IF "$(COM)"=="MSC"
848LIB:=$(LB);$(SLB);$(ILIB)
849.ENDIF
850
851# extend library path for MinGW Compiler
852.IF "$(GUI)$(COM)"=="WNTGCC"
853LIB:=$(LB);$(BIN);$(ILIB)
854.ENDIF
855
856# --- Environment-Allgemein ----------------------------------------
857
858.IF "$(CPUNAME)" == ""
859CPUNAME=CPUNAME_HAS_TO_BE_SET_IN_ENVIRONMENT
860.ENDIF
861
862.IF "$(USE_STLP_DEBUG)" != ""
863SCPCDEFS+=-D_STLP_DEBUG
864.ENDIF
865
866.IF "$(UDK_MAJOR)"!=""
867SCPDEFS+=-DUDK_MAJOR=$(UDK_MAJOR)
868.ENDIF			# "$(UDK_MAJOR)"!=""
869
870SCPDEFS+=-U$(COMID) -DCOMID=$(COMID) -DCOMNAME=$(COMNAME) -D_$(COMID)
871SCPDEFS+=-DCCNUMVER=$(CCNUMVER)
872.IF "$(COM)"=="GCC"
873SCPDEFS+=-DSHORTSTDCPP3=$(SHORTSTDCPP3) -DSHORTSTDC3=$(SHORTSTDC3)
874.ENDIF			# "$(SHORTSTDCPP3)"!=""
875# extend library path for OS/2 gcc/wlink
876.IF "$(GUI)"=="OS2"
877LIB:=$(LB);$(SLB);$(ILIB)
878.ENDIF
879
880
881UNOIDLDEFS+=-DSUPD=$(UPD) -DUPD=$(UPD)
882
883UNOIDLDEPFLAGS=-Mdepend=$(SOLARVER)
884
885UNOIDLINC+=-I. -I.. -I$(PRJ) -I$(PRJ)/inc -I$(PRJ)/$(INPATH)/idl -I$(OUT)/inc -I$(SOLARIDLDIR) -I$(SOLARINCDIR)
886
887CDEFS= -D$(OS) -D$(GUI) -D$(GVER) -D$(COM) -D$(CVER) -D$(CPUNAME)
888
889.IF "$(USE_STLP_DEBUG)" != "" && "$(GUI)"!="OS2"
890CDEFS+=-D_STLP_DEBUG
891.ENDIF
892
893.IF "$(CDEFS_PRESET)" != ""
894CDEFS+=$(CDEFS_PRESET)
895.ENDIF
896
897.IF "$(TIMELOG)" != ""
898CDEFS+=-DTIMELOG
899.ENDIF
900
901CDEFSCXX=
902CDEFSOBJ=
903CDEFSSLO=-DSHAREDLIB -D_DLL_
904CDEFSGUI=-DGUI
905CDEFSCUI=-DCUI
906#CDEFSMT=-DMULTITHREAD
907CDEFSPROF=-DPROFILE
908.IF "$(dbg_build_only)" == ""
909CDEFSDEBUG=-DDEBUG
910.ENDIF
911CDEFSDBGUTIL=-DDBG_UTIL
912CDEFSOPT=-DOPTIMIZE
913
914MKDEPFLAGS+=-I$(INCDEPN:s/ / -I/:s/-I-I/-I/)
915MKDEPALLINC=$(SOLARINC:s/-I/ -I/)
916MKDEPPREINC=-I$(PREPATH)/$(INPATH)/inc$(UPDMINOREXT)
917MKDEPSOLENV=-I$(SOLARENV)/inc -I$(SOLARENV)/$(GUI)$(CVER)$(COMEX)/inc
918MKDEPSOLVER=-I$(SOLARVERSION)/$(INPATH)/inc$(UPDMINOREXT) -I$(SOLARVERSION)/$(INPATH)/inc
919MKDEPLOCAL=-I$(INCCOM)
920
921.IF "$(MKDEPENDALL)"!=""
922MKDEPFLAGS+=$(MKDEPALLINC)
923.ENDIF
924
925.IF "$(MKDEPENDSOLENV)"!=""
926MKDEPFLAGS+=$(MKDEPSOLENV)
927.ENDIF
928
929.IF "$(MKDEPENDPREPATH)"!=""
930MKDEPFLAGS+=$(MKDEPPREINC)
931.ENDIF
932
933.IF "$(MKDEPENDSOLVER)"!=""
934MKDEPFLAGS+=$(MKDEPSOLVER)
935.ENDIF
936# unused - nodep should do the same now
937#.IF "$(MKDEPENDLOCAL)"!="NO"
938MKDEPFLAGS+=$(MKDEPLOCAL)
939#.ENDIF
940
941BISON*=bison
942YACCFLAGS*=-d
943
944SVIDL=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/svidl
945
946LDUMP2*=$(SOLARBINDIR)/ldump4
947
948ZIPUPDATE=-u -j
949ZIPFLAGS=$(ZIPUPDATE)
950#hack for dynamic language subdirs
951LANGDIR=LANGDIR
952
953#scplinker flags
954SCPLINKFLAGS=-i $(PAR),$(SOLARPARDIR)
955.IF "$(SCPLINKVERSION)"!=""
956SCPLINKFLAGS+=-v $(SCPLINKVERSION)
957.ENDIF			# "$(SCPLINKVERSION)"!=""
958
959.IF "$(make_srs_deps)"!=""
960RSC=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/rscdep
961.ELSE # "$(make_srs_deps)"!=""
962RSC=$(AUGMENT_LIBRARY_PATH) $(FLIPCMD) $(SOLARBINDIR)/rsc
963.ENDIF # "$(make_srs_deps)"!=""
964
965.IF "$(VERBOSE)" == "TRUE"
966    VERBOSITY=-verbose
967.ELSE
968    COMMAND_ECHO=@
969    .IF "$(VERBOSE)" == "FALSE"
970        VERBOSITY=-quiet
971        ZIP_VERBOSITY=-q
972    .ENDIF
973.ENDIF # "$(VERBOSE)" == "TRUE"
974COMPILE_ECHO_SWITCH=
975COMPILE_ECHO_FILE=$(<:f)
976
977#new
978RSCUPDVER=$(RSCREVISION)
979RSCUPDVERDEF=-DUPDVER="$(RSCUPDVER)"
980
981RSCFLAGS=-s
982RSCDEFS=-D$(GUI) -D$(GVER) -D$(COM) -D$(CVER) $(JAVADEF)
983
984.IF "$(BUILD_SPECIAL)"!=""
985RSCDEFS+=-DBUILD_SPECIAL=$(BUILD_SPECIAL)
986.ENDIF
987
988RSCDEFIMG*=default_images
989
990RSCEXTINC=.
991
992.IF "$(DEBUG)" != ""
993RSCDEFS+= -DDEBUG
994.ENDIF
995
996# settings for mozilla idl compiler
997XPIDL=xpidl
998XPIDL_LINK=xpt_link
999
1000# alle bisher verwendeten Linker benutzen + um LIBs auf der naechsten Zeile
1001# weiter zu schreiben, wenn es da eine Ausnahme geben sollte, muss
1002# LINKEXTENDLINE compilerabhaengig definiert werden
1003LINKEXTENDLINE=+
1004
1005LNT=$(DEVROOT)/lint/lint
1006#LNTFLAGS=+v -i$(DEVROOT)/lint\ -mL options.lnt -u
1007LNTFLAGS=+v -i$(DEVROOT)/lint/ -mL options.lnt -u
1008LNTFLAGSOUTOBJ=-os
1009
1010.IF "$(GUI)"=="WNT"
1011.INCLUDE : wnt.mk
1012.ENDIF
1013
1014.IF "$(GUI)" == "UNX"
1015.INCLUDE : unx.mk
1016.ENDIF
1017
1018.IF "$(GUI)" == "OS2"
1019.INCLUDE : os2.mk
1020.ENDIF
1021
1022.IF "$(OOO_LIBRARY_PATH_VAR)" != ""
1023# Add SOLARLIBDIR at the begin of a (potentially previously undefined) library
1024# path (LD_LIBRARY_PATH, PATH, etc.; prepending avoids fetching libraries from
1025# an existing office/URE installation; the ": &&" enables this to work at the
1026# start of a recipe line that is not prefixed by "+" as well as in the middle of
1027# an existing && chain:
1028AUGMENT_LIBRARY_PATH = : && \
1029    $(OOO_LIBRARY_PATH_VAR)=$(normpath, $(SOLARSHAREDBIN))$${{$(OOO_LIBRARY_PATH_VAR):+:$${{$(OOO_LIBRARY_PATH_VAR)}}}}
1030AUGMENT_LIBRARY_PATH_LOCAL = : && \
1031    $(OOO_LIBRARY_PATH_VAR)=$(normpath, $(PWD)/$(DLLDEST)):$(normpath, $(SOLARSHAREDBIN))$${{$(OOO_LIBRARY_PATH_VAR):+:$${{$(OOO_LIBRARY_PATH_VAR)}}}}
1032.END
1033
1034# remove if .Net 2003 support has expired
1035.IF "$(debug)"!=""
1036.IF "$(OS)$(COM)$(CPU)" == "WNTMSCI"
1037.IF "$(COMEX)" == "10"
1038.IF "$(SLOFILES)$(OBJFILES)$(DEPOBJFILES)"!=""
1039MAXPROCESS!:=1
1040.EXPORT : MAXPROCESS
1041.ENDIF			# "$(SLOFILES)$(OBJFILES)$(DEPOBJFILES)"!=""
1042.ENDIF			# "$(COMEX)" == "10"
1043.ENDIF			# "$(OS)$(COM)$(CPU)" == "WNTMSCI"
1044.ENDIF			# "$(debug)"!=""
1045
1046# for multiprocess building in external modules
1047# allow seperate handling
1048EXTMAXPROCESS*=$(MAXPROCESS)
1049
1050IDLC*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/idlc
1051REGMERGE*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/regmerge
1052REGCOMPARE*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/regcompare
1053REGCOMP*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/regcomp
1054CPPUMAKER*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/cppumaker
1055JAVAMAKER*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/javamaker
1056RDBMAKER*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/rdbmaker
1057CLIMAKER*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/climaker
1058
1059CPPUNITTESTER=$(AUGMENT_LIBRARY_PATH_LOCAL) $(SOLARBINDIR)/cppunittester
1060HELPEX=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/helpex
1061LNGCONVEX=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/lngconvex
1062HELPLINKER=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/HelpLinker
1063
1064.IF "$(JAVAINTERPRETER)" == ""
1065JAVA*:=java
1066.ELSE
1067JAVA*:=$(JAVAINTERPRETER)
1068.ENDIF
1069.EXPORT : JAVA JAVAI
1070
1071# Define SCPCOMP without wrapper because pre2par.pl chokes on DOS style
1072# pathes. (See iz57443)
1073SCPCOMP=$(PERL) $(SOLARENV)/bin/pre2par.pl
1074SCPLINK=$(PERL) $(SOLARENV)/bin/par2script.pl
1075LZIP*=lzip
1076CPPLCC*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/cpplcc
1077
1078.IF "$(DISABLE_ENHANCED_COMID)"==""
1079.INCLUDE : tg_compv.mk
1080.ELSE          # "$(DISABLE_ENHANCED_COMID)"==""
1081COMID=$(COM)
1082.ENDIF          # "$(DISABLE_ENHANCED_COMID)"==""
1083.IF "$(SOLAR_JAVA)"=="TRUE"
1084.IF "$(USE_JAVAVER)"!=""
1085.INCLUDE : tg_javav.mk
1086.ENDIF "$(USE_JAVAVER)"!=""
1087.ENDIF			# "$(SOLAR_JAVA)"=="TRUE"
1088
1089.IF "$(COM)"=="GCC"
1090GXX_INCLUDE_PATH*:=$(COMPATH)/include/c++/$(CCVER)
1091.EXPORT : GXX_INCLUDE_PATH
1092CDEFS+= -DGXX_INCLUDE_PATH=$(GXX_INCLUDE_PATH)
1093.ENDIF
1094
1095# --- extend new environment ----------------------------------
1096CDEFS+= -DSUPD=$(UPD)
1097
1098# flags to enable build with symbols; required for crashdump feature
1099.IF ("$(ENABLE_CRASHDUMP)"!="" && "$(ENABLE_CRASHDUMP)"!="DUMMY") || "$(ENABLE_SYMBOLS)"!=""
1100CFLAGSENABLESYMBOLS_CC_ONLY*=$(CFLAGSENABLESYMBOLS)
1101CFLAGSCXX+=$(CFLAGSENABLESYMBOLS)
1102CFLAGSCC+=$(CFLAGSENABLESYMBOLS_CC_ONLY)
1103.ENDIF          # ("$(ENABLE_CRASHDUMP)"!="" && "$(ENABLE_CRASHDUMP)"!="DUMMY") || "$(ENABLE_SYMBOLS)"!=""
1104
1105.IF "$(profile)"!=""
1106CDEFS+= $(CDEFSPROF)
1107CFLAGS+= $(CFLAGSPROF)
1108.IF "$(WST)"!=""
1109LINKFLAGS=$(LINKFLAGSWST)
1110LINKCFLAGS=$(LINKFLAGSWST)
1111.ELSE
1112LINKFLAGSADD+=$(LINKFLAGSPROF)
1113.ENDIF
1114.ENDIF
1115
1116.IF "$(debug)"!=""
1117JAVAFLAGS+=$(JAVAFLAGSDEBUG)
1118CDEFS+= $(CDEFSDEBUG)
1119CFLAGS+= $(CFLAGSDEBUG)
1120LINKFLAGSADD+= $(LINKFLAGSDEBUG)
1121.ENDIF
1122
1123.IF "$(dbgutil)"!=""
1124CDEFS+=$(CDEFSDBGUTIL)
1125CFLAGS+=$(CFLAGSDBGUTIL)
1126RSCDEFS+=-DDBG_UTIL
1127.ENDIF
1128
1129.IF "$(product)"!=""
1130CDEFS+= -DPRODUCT -DNDEBUG
1131RSCDEFS+= -DPRODUCT
1132RSCDEFS+= -DNDEBUG
1133.ENDIF
1134
1135.IF "$(DBG_LEVEL)"!=""
1136CDEFS+=-DOSL_DEBUG_LEVEL=$(DBG_LEVEL)
1137RSCDEFS+=-DOSL_DEBUG_LEVEL=$(DBG_LEVEL)
1138.ENDIF
1139
1140.IF "$(optimize)"!=""
1141CDEFS+=$(CDEFSOPT)
1142CFLAGS+=$(CFLAGSOPT)
1143LINKFLAGSADD+=$(LINKFLAGSOPT)
1144.ELSE
1145CFLAGS+=$(CFLAGSNOOPT)
1146.ENDIF
1147
1148.IF "$(ENABLE_EXCEPTIONS)"!=""
1149GLOBAL_EXCEPTIONS_FLAGS+=$(CFLAGSEXCEPTIONS)
1150GLOBAL_EXCEPTIONS_FLAGS+=-DEXCEPTIONS_ON
1151.ELSE
1152GLOBAL_EXCEPTIONS_FLAGS+=$(CFLAGS_NO_EXCEPTIONS)
1153GLOBAL_EXCEPTIONS_FLAGS+=-DEXCEPTIONS_OFF
1154.ENDIF
1155# used if an object appears in the EXCEPTIONSFILES list
1156# see also rules.mk
1157LOCAL_EXCEPTIONS_FLAGS+=$(CFLAGSEXCEPTIONS)
1158LOCAL_EXCEPTIONS_FLAGS+=-DEXCEPTIONS_ON
1159
1160.IF "$(ENABLE_LAYOUT)" == "TRUE"
1161CDEFS+=-DENABLE_LAYOUT=1
1162.ELSE # ENABLE_LAYOUT != TRUE
1163CFLAGS+=-DENABLE_LAYOUT=0
1164.ENDIF # ENABLE_LAYOUT != TRUE
1165
1166.IF "$(ENABLE_LAYOUT_EXPERIMENTAL)" == "TRUE"
1167CDEFS+=-DENABLE_LAYOUT_EXPERIMENTAL=1
1168.ELSE # ENABLE_LAYOUT_EXPERIMENTAL != TRUE
1169CFLAGS+=-DENABLE_LAYOUT_EXPERIMENTAL=0
1170.ENDIF # ENABLE_LAYOUT_EXPERIMENTAL != TRUE
1171
1172# compose flags and defines for GUI
1173.IF "$(TARGETTYPE)"=="GUI"
1174CDEFS+= $(CDEFSGUI)
1175CFLAGSSLO+=$(CFLAGSSLOGUIMT)
1176CDEFSSLO+=$(CDEFSSLOMT)
1177LINKFLAGSAPP=$(LINKFLAGSAPPGUI)
1178LINKFLAGSSHL=$(LINKFLAGSSHLGUI)
1179STDOBJ=$(STDOBJGUI)
1180STDSLO=$(STDSLOGUI)
1181
1182CDEFSOBJ+= $(CDEFSMT) $(CDEFSOBJMT)
1183CFLAGSOBJ+=$(CFLAGSOBJGUIMT)
1184STDLIB=$(STDLIBGUIMT)
1185STDSHL=$(STDSHLGUIMT)
1186
1187.ENDIF
1188
1189# compose flags and defines for CUI
1190.IF "$(TARGETTYPE)" == "CUI" || "$(TARGETTYPE)"=="cui"
1191CDEFS+= $(CDEFSCUI)
1192CFLAGSSLO+=$(CFLAGSSLOCUIMT)
1193CDEFSSLO+=$(CDEFSSLOMT)
1194LINKFLAGSAPP=$(LINKFLAGSAPPCUI)
1195LINKFLAGSSHL=$(LINKFLAGSSHLCUI)
1196STDOBJ=$(STDOBJCUI)
1197STDSLO=$(STDSLOCUI)
1198
1199CDEFSOBJ+=$(CDEFSMT) $(CDEFSOBJMT)
1200CFLAGSOBJ+=$(CFLAGSOBJCUIMT)
1201STDLIB=$(STDLIBCUIMT)
1202STDSHL=$(STDSHLCUIMT)
1203
1204.ENDIF
1205
1206.EXPORT : PICSWITCH
1207
1208.IF "$(USE_SYSTEM_STL)"=="YES"
1209LIBSTLPORT=""
1210.ENDIF
1211
1212.IF "$(NO_DEFAULT_STL)"==""
1213STDLIB+=$(LIBSTLPORT)
1214STDSHL+=$(LIBSTLPORT)
1215.ENDIF			# "$(NO_DEFAULT_STL)"==""
1216
1217# fill up unresolved symbols not found else where
1218.IF "$(FILLUPARC)"!=""
1219STDLIB+=$(FILLUPARC)
1220STDSHL+=$(FILLUPARC)
1221.ENDIF			# "$(FILUPARC)"!=""
1222
1223.IF "$(SOLAR_JAVA)"!=""
1224CDEFS+=$(JAVADEF)
1225.ENDIF          # "$(SOLAR_JAVA)"!=""
1226
1227.INCLUDE .IGNORE: $(UPD)$(LAST_MINOR).mk
1228
1229# Once all modules on a given platform compile without warnings, the specific
1230# .mk file for that platform should set COMPILER_WARN_ERRORS=TRUE and no longer
1231# set MODULES_WITH_WARNINGS, and once no platform sets MODULES_WITH_WARNINGS any
1232# longer, this code can go away:
1233.IF "$(MODULES_WITH_WARNINGS)" != ""
1234MODULES_WITH_WARNINGS_1 := $(foreach,i,$(MODULES_WITH_WARNINGS) .$(i).)
1235MODULES_WITH_WARNINGS_2 := $(subst,.$(PRJNAME)., $(MODULES_WITH_WARNINGS_1))
1236.IF "$(MODULES_WITH_WARNINGS_1)" == "$(MODULES_WITH_WARNINGS_2)"
1237COMPILER_WARN_ERRORS = TRUE
1238.ENDIF
1239.ENDIF
1240
1241CFLAGSWARNCXX *= $(CFLAGSWARNCC)
1242CFLAGSWALLCXX *= $(CFLAGSWALLCC)
1243CFLAGSWERRCXX *= $(CFLAGSWERRCC)
1244
1245.IF "$(ENVWARNFLAGS)"==""
1246.IF "$(COMPILER_WARN_ALL)"==""
1247CFLAGSCC+=$(CFLAGSWARNCC)
1248CFLAGSCXX+=$(CFLAGSWARNCXX)
1249.ELSE
1250CFLAGSCC+=$(CFLAGSWALLCC)
1251CFLAGSCXX+=$(CFLAGSWALLCXX)
1252.ENDIF
1253.IF "$(COMPILER_WARN_ERRORS)"!="" && "$(EXTERNAL_WARNINGS_NOT_ERRORS)"==""
1254CFLAGSCC+=$(CFLAGSWERRCC)
1255CFLAGSCXX+=$(CFLAGSWERRCXX)
1256.ENDIF
1257.ELSE			# "$(ENVWARNFLAGS)"==""
1258CFLAGSAPPEND+=$(ENVWARNFLAGS)
1259.ENDIF			# "$(ENVWARNFLAGS)"==""
1260
1261CDEFS+= $(ADDCDEFS)
1262CDEFS+= $(ENVCDEFS)
1263CFLAGS+= $(CFLAGSCALL) $(ENVCFLAGS)
1264CFLAGSCXX+= $(ENVCFLAGSCXX)
1265# andersrum wg. -TPxxxx
1266CFLAGSINCXX+:=$(ENVCFLAGSINCXX)
1267LIBFLAGS+= $(ENVLIBFLAGS)
1268LINKFLAGSADD+= $(ENVLINKFLAGS)
1269RSCFLAGS+= $(ENVRSCFLAGS)
1270RSCDEFS+= $(ENVRSCDEFS)
1271# RSCLINKFLAGS+= $(ENVRSCLINKFLAGS)
1272RCFLAGS+= $(ENVRCFLAGS)
1273RCLINKFLAGS+= $(ENVRCLINKFLAGS)
1274
1275LINKFLAGSRUNPATH_URELIB*=
1276LINKFLAGSRUNPATH_UREBIN*=
1277LINKFLAGSRUNPATH_OOO*=
1278LINKFLAGSRUNPATH_SDK*=
1279LINKFLAGSRUNPATH_BRAND*=
1280LINKFLAGSRUNPATH_OXT*=
1281LINKFLAGSRUNPATH_BOXT*=
1282LINKFLAGSRUNPATH_NONE*=
1283
1284# make sure both linker variables are set
1285LINKC*=$(LINK)
1286LINKCFLAGS*=$(LINKFLAGS)
1287LINKFLAGS+=$(LINKFLAGSADD)
1288LINKCFLAGS+=$(LINKFLAGSADD)
1289
1290#defaults for UCR HEADER
1291UNOUCRBASE*=UCR
1292UNOUCROUT*=$(OUT)/inc/$(TARGET)
1293INCPRE+=-I$(UNOUCROUT)
1294UNOUCRRDB*=$(SOLARBINDIR)/types.rdb
1295
1296# location of trustedinfo.manifest for Windows Vista
1297.IF "$(COM)"=="MSC"
1298TRUSTED_MANIFEST_LOCATION*=$(SOLARENV)/inc
1299.ENDIF # "$(COM)"=="MSC"
1300
1301# --- Compiler -----------------------------------------------------
1302.INCLUDE : rules.mk
1303
1304# --- include typelists --------------------------------------------
1305
1306.IF "$(COMP1TYPELIST)"!=""
1307.INCLUDE .IGNORE : $(MISC)/$(COMP1TYPELIST).mk
1308$(COMP1TYPELIST)_XML2CMPTYPES:=$(shell @$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/xml2cmp -types stdout $(MISC)/$(COMP1TYPELIST)$($(WINVERSIONNAMES)_MAJOR).xml)
1309.ENDIF
1310
1311.IF "$(COMP2TYPELIST)"!=""
1312.INCLUDE .IGNORE : $(MISC)/$(COMP2TYPELIST).mk
1313$(COMP2TYPELIST)_XML2CMPTYPES:=$(shell @$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/xml2cmp -types stdout $(MISC)/$(COMP2TYPELIST)$($(WINVERSIONNAMES)_MAJOR).xml)
1314.ENDIF
1315
1316.IF "$(COMP3TYPELIST)"!=""
1317.INCLUDE .IGNORE : $(MISC)/$(COMP3TYPELIST).mk
1318$(COMP3TYPELIST)_XML2CMPTYPES:=$(shell @$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/xml2cmp -types stdout $(MISC)/$(COMP3TYPELIST)$($(WINVERSIONNAMES)_MAJOR).xml)
1319.ENDIF
1320
1321.IF "$(COMP4TYPELIST)"!=""
1322.INCLUDE .IGNORE : $(MISC)/$(COMP4TYPELIST).mk
1323$(COMP4TYPELIST)_XML2CMPTYPES:=$(shell @$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/xml2cmp -types stdout $(MISC)/$(COMP4TYPELIST)$($(WINVERSIONNAMES)_MAJOR).xml)
1324.ENDIF
1325
1326.IF "$(COMP5TYPELIST)"!=""
1327.INCLUDE .IGNORE : $(MISC)/$(COMP5TYPELIST).mk
1328$(COMP5TYPELIST)_XML2CMPTYPES:=$(shell @$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/xml2cmp -types stdout $(MISC)/$(COMP5TYPELIST)$($(WINVERSIONNAMES)_MAJOR).xml)
1329.ENDIF
1330
1331.IF "$(COMP6TYPELIST)"!=""
1332.INCLUDE .IGNORE : $(MISC)/$(COMP6TYPELIST).mk
1333$(COMP6TYPELIST)_XML2CMPTYPES:=$(shell @$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/xml2cmp -types stdout $(MISC)/$(COMP6TYPELIST)$($(WINVERSIONNAMES)_MAJOR).xml)
1334.ENDIF
1335
1336.IF "$(COMP7TYPELIST)"!=""
1337.INCLUDE .IGNORE : $(MISC)/$(COMP7TYPELIST).mk
1338$(COMP7TYPELIST)_XML2CMPTYPES:=$(shell @$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/xml2cmp -types stdout $(MISC)/$(COMP7TYPELIST)$($(WINVERSIONNAMES)_MAJOR).xml)
1339.ENDIF
1340
1341.IF "$(COMP8TYPELIST)"!=""
1342.INCLUDE .IGNORE : $(MISC)/$(COMP8TYPELIST).mk
1343$(COMP8TYPELIST)_XML2CMPTYPES:=$(shell @$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/xml2cmp -types stdout $(MISC)/$(COMP8TYPELIST)$($(WINVERSIONNAMES)_MAJOR).xml)
1344.ENDIF
1345
1346.IF "$(COMP9TYPELIST)"!=""
1347.INCLUDE .IGNORE : $(MISC)/$(COMP9TYPELIST).mk
1348$(COMP9TYPELIST)_XML2CMPTYPES:=$(shell @$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/xml2cmp -types stdout $(MISC)/$(COMP9TYPELIST)$($(WINVERSIONNAMES)_MAJOR).xml)
1349.ENDIF
1350
1351# some place to define these jars for SO environment
1352XML_APIS_JAR*=$(SOLARBINDIR)/xml-apis.jar
1353XERCES_JAR*=$(SOLARBINDIR)/xercesImpl.jar
1354
1355.IF "$(SYSTEM_CPPUNIT)" != "YES"
1356CPPUNIT_CFLAGS =
1357.END
1358
1359COMPONENTPREFIX_URE_NATIVE = vnd.sun.star.expand:$$URE_INTERNAL_LIB_DIR/
1360COMPONENTPREFIX_URE_JAVA = vnd.sun.star.expand:$$URE_INTERNAL_JAVA_DIR/
1361.IF "$(OS)" == "WNT"
1362COMPONENTPREFIX_BASIS_NATIVE = vnd.sun.star.expand:$$BRAND_BASE_DIR/program/
1363.ELSE
1364COMPONENTPREFIX_BASIS_NATIVE = vnd.sun.star.expand:$$OOO_BASE_DIR/program/
1365.END
1366COMPONENTPREFIX_BASIS_JAVA = vnd.sun.star.expand:$$OOO_BASE_DIR/program/classes/
1367COMPONENTPREFIX_BASIS_PYTHON = vnd.openoffice.pymodule:
1368COMPONENTPREFIX_INBUILD_NATIVE = \
1369    vnd.sun.star.expand:$$OOO_INBUILD_SHAREDLIB_DIR/
1370COMPONENTPREFIX_INBUILD_JAVA = vnd.sun.star.expand:$$OOO_INBUILD_JAR_DIR/
1371COMPONENTPREFIX_EXTENSION = ./
1372
1373# workaround for strange dmake bug:
1374# if the previous block was a rule or a target, "\#" isn't recognized
1375# as an escaped "#". if it was an assignment, escaping works...
1376some_unique_variable_name:=1
1377