#************************************************************** # # Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file # distributed with this work for additional information # regarding copyright ownership. The ASF licenses this file # to you under the Apache License, Version 2.0 (the # "License"); you may not use this file except in compliance # with the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, # software distributed under the License is distributed on an # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY # KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. # #************************************************************** # --- OS2-Environment ---------------------------------------------- #change output dir name using the object binary format. #.IF "$(aout)"=="" #OUTFMT=omf #.ELSE #OUTFMT=aout #.ENDIF #OUTPATH+=OUTFMT #INPATH+=OUTFMT #GVERDIR+=OUTFMT # mk file for os2gcci ASM=as AFLAGS= # until we get a solution to libc ticket#251, use dmik's -q option. EMXOMFOPT = -q .EXPORT : EMXOMFOPT #//YD SOLAR_JAVA=TRUE JAVAFLAGSDEBUG=-g # filter for supressing verbose messages from linker #not needed at the moment #LINKOUTPUT_FILTER=" |& $(SOLARENV)/bin/msg_filter" .IF "$(ttt)"!="" CDEFS+=-E .ENDIF # _PTHREADS is needed for the stl CDEFS+=-DX86 -D_REENTRANT -DNEW_SOLAR -D_USE_NAMESPACE=1 -DSTLPORT_VERSION=400 # this is a platform with JAVA support .IF "$(SOLAR_JAVA)"!="" JAVADEF=-DSOLAR_JAVA .IF "$(debug)"=="" JAVA_RUNTIME=javai.lib .ELSE JAVA_RUNTIME=javai_g.lib .ENDIF .ENDIF # architecture dependent flags for the C and C++ compiler that can be changed by # exporting the variable ARCH_FLAGS="..." in the shell, which is used to start build ARCH_FLAGS*= # name of C++ Compiler CXX*=g++ # name of C Compiler CC*=gcc # flags for C and C++ Compiler CFLAGS+=-c # flags for the C++ Compiler CFLAGSCC= $(ARCH_FLAGS) .IF "$(aout)"=="" CFLAGS+=-Zomf .ENDIF # Flags for enabling exception handling CFLAGSEXCEPTIONS=-fexceptions # Flags for disabling exception handling CFLAGS_NO_EXCEPTIONS=-fno-exceptions CFLAGSCXX= -frtti $(ARCH_FLAGS) CFLAGSCXX+= -Wno-ctor-dtor-privacy -fmessage-length=0 PICSWITCH:= # Compiler flags for compiling static object in single threaded environment with graphical user interface CFLAGSOBJGUIST=-Zcrtdll # Compiler flags for compiling static object in single threaded environment with character user interface CFLAGSOBJCUIST=-Zcrtdll # Compiler flags for compiling static object in multi threaded environment with graphical user interface CFLAGSOBJGUIMT=-Zcrtdll # Compiler flags for compiling static object in multi threaded environment with character user interface CFLAGSOBJCUIMT=-Zcrtdll # Compiler flags for compiling shared object in multi threaded environment with graphical user interface CFLAGSSLOGUIMT=$(PICSWITCH) -Zdll -Zcrtdll # Compiler flags for compiling shared object in multi threaded environment with character user interface CFLAGSSLOCUIMT=$(PICSWITCH) -Zdll -Zcrtdll # Compiler flags for profiling CFLAGSPROF= # Compiler flags for debugging CFLAGSDEBUG=-g CFLAGSDBGUTIL= # Compiler flags for enabling optimazations CFLAGSOPT=-s -O1 -march=pentium -mtune=pentium4 # Compiler flags for disabling optimazations CFLAGSNOOPT=-O0 # Compiler flags for discibing the output path CFLAGSOUTOBJ=-o # Warnings switched off for CXX: # - doubunder: we have many identifiers containing double underscores, some of # them in the stable UDK API we cannot change # - inllargeuse: "function is too large and will not be expanded inline" is # merely a hint # - inllargeint: "function is too large to generate inline, consider writing # it yourself" is merely a hint # - notemsource: "could not find source for function" appears to be spurious # - reftotemp: warns about calling non-const functions on temporary objects, # something legally done by boost::scoped_array::reset, for example # (this_type(p).swap(*this)) # - truncwarn: "conversion of 64 bit type value to smaller type causes # truncation" at least with CC 5.8 is reported only at the end of a # compilation unit that uses std::hash_map (see # sfx2/source/toolbox/imgmgr.cxx:1.27) and thus unfortunately needs to be # disabled globally CFLAGSWARNCC= CFLAGSWARNCXX=+w2 -erroff=doubunder,inllargeuse,inllargeint,notemsource,reftotemp,truncwarn CFLAGSWARNCXX= CFLAGSWALLCC=$(CFLAGSWARNCC) CFLAGSWALLCXX=$(CFLAGSWARNCXX) CFLAGSWERRCC=-errwarn=%all CFLAGSWERRCXX=-xwe # Once all modules on this platform compile without warnings, set # COMPILER_WARN_ERRORS=TRUE here instead of setting MODULES_WITH_WARNINGS (see # settings.mk): MODULES_WITH_WARNINGS := \ b_server \ basctl \ basebmp \ canvas \ chart2 \ cppcanvas \ desktop \ devtools \ dxcanvas \ extensions \ filter \ glcanvas \ lingu \ r_tools \ sc \ sd \ slideshow \ starmath \ svx \ sw \ writerperfect \ xmlsecurity # switches for dynamic and static linking STATIC = DYNAMIC = # this is needed to allow stl headers to include os2.h instead of svpm.h # in earlier stages of project build. Once svpm.h is in place, we can # compile without this flag. .IF "$(STL_OS2_BUILDING)" != "" CFLAGS+=-DSTL_OS2_BUILDING CFLAGSCXX+=-DSTL_OS2_BUILDING .ENDIF CFLAGS+=$(LIBXML_CFLAGS) -I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/os2 CFLAGSCXX+=$(LIBXML_CFLAGS) -I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/os2 # name of linker LINK*=gcc # default linker flags LINKFLAGS= -Zbin-files -Zmap #27/01/06 bin-files confuses transex/rsc work, removed. LINKFLAGS= -Zno-fork -Zhigh-mem -Zmap .IF "$(OS2_ARGS_WILD)" != "" LINKFLAGS+=-Zargs-wild -Zargs-resp .ENDIF .IF "$(aout)"=="" #LINKFLAGS+= -Zlinker /NOI -Zlinker /PACKD:65536 -Zlinker /EXEPACK:2 #LINKFLAGS+= -Zlinker /NOExtdictionary LINKFLAGS+= -Zomf LINKFLAGS+= -Zlinker "DISABLE 1121" .ENDIF # linker flags for linking applications .IF "$(aout)"=="" #LINKFLAGSAPPGUI= -Zlinker /PM:PM -Zstack 0x2000 #LINKFLAGSAPPCUI= -Zlinker /PM:VIO .ELSE LINKFLAGSAPPGUI= LINKFLAGSAPPCUI= .ENDIF # linker flags for linking shared libraries LINKFLAGSSHLGUI= -Zdll #-Zsym LINKFLAGSSHLCUI= -Zdll #-Zsym .IF "$(aout)"=="" LINKFLAGSTACK=-Zlinker /STACK: LINKFLAGSPROF= #LINKFLAGSDEBUG=-Zlinker /DEBUG LINKFLAGSDEBUG=-g LINKFLAGSOPT=-g .ELSE LINKFLAGSTACK=-Zstack LINKFLAGSPROF= LINKFLAGSDEBUG=-g LINKFLAGSOPT=-s .ENDIF .IF "$(NO_BSYMBOLIC)"=="" .IF "$(PRJNAME)" != "envtest" LINKFLAGSSHLGUI+= LINKFLAGSSHLCUI+= .ENDIF .ENDIF # "$(NO_BSYMBOLIC)"=="" LINKVERSIONMAPFLAG=-Wl,--version-script SONAME_SWITCH=-Wl,-h # Sequence of libs does matter ! #STDLIBCPP=stdc++ supc++ gcc_eh #STDLIBCPP=stdc++ gcc432 STDLIBCPP=-lstdc++ -lgcc_so_d # default objectfilenames to link STDOBJVCL=$(L)/salmain.o STDOBJGUI= STDSLOGUI= STDOBJCUI= STDSLOCUI= # libraries for linking applications STDLIBCUIST=$(STDLIBCPP) STDLIBGUIMT=$(STDLIBCPP) STDLIBCUIMT=$(STDLIBCPP) STDLIBGUIST=$(STDLIBCPP) # libraries for linking shared libraries STDSHLGUIMT=$(STDLIBCPP) STDSHLCUIMT=$(STDLIBCPP) LIBSTLPORT=$(DYNAMIC) LIBSTLPORTST=$(STATIC) $(DYNAMIC) # name of library manager LIBMGR=ar LIBFLAGS=-crv .IF "$(aout)"=="" LIBMGR=emxomfar -p2048 .ENDIF # tool for generating import libraries IMPLIB=emximp -p2048 IMPLIBFLAGS=-o MAPSYM=mapsym MAPSYMFLAGS= RC=wrc -q -bt=os2 -i$(PATH_EMXPGCC)\include RCFLAGS=-r $(RCFILES) -fo=$@ RCLINK=wrc -bt=os2 RCLINKFLAGS= RCSETVERSION= # platform specific identifier for shared libs DLLPOSTFIX= DLLPRE=lib DLLPOST=.dll