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