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