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