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