f0e5895d5b
* commit 'ooo/DEV300_m101': (500 commits) masterfix DEV300: #i10000# remove hard dep masterfix DEV300: #i10000# usage of L10N build_type masterfix DEV300: #i10000# usage of L10N build_type masterfix DEV300: #i100000# dep. fix masterfix DEV300: #i10000# removed one hard dep masterfix DEV300: #i10000# fixed patch handling masterfix DEV300: #i10000# new configure DEV300 masterfix DEV300: #i10000# nawk -> awk l10nmove: adjust repository handling l10nmove: fixed regex l10nmove: minor fixes l10nmove: add l10n repo to gb_REPOS DEV300 masterfix: gnumake3: subsequenttests requires in environment ab80: Adding changes of cws mib21, ab77, ab77run2, dr77i to dev300 DEV300 masterfix: #i10000#: windows: more bizare hacks ... locales34: have a matching configure as well DEV300 locales34: back out change from autoreconf gnumake3: JunitTest.mk: bizarre hacks to make it work on windows ... Conflicts: configure configure.in instsetoo_native/prj/build.lst instsetoo_native/util/makefile.mk instsetoo_native/util/openoffice.lst instsetoo_native/util/pack.lst ooo.lst scp2/source/canvas/canvascommons.scp scp2/source/canvas/mtfrenderer.scp scp2/source/ooo/common_brand.scp scp2/source/ooo/directory_ooo.scp scp2/source/ooo/file_library_ooo.scp scp2/source/ooo/file_ooo.scp scp2/source/ooo/makefile.mk scp2/source/ooo/module_hidden_ooo.scp scp2/source/ooo/module_langpack.ulf scp2/source/ooo/ure.scp scp2/source/python/file_python.scp scp2/source/sdkoo/sdkoo.scp scp2/source/templates/module_langpack_accessories_templates.sct scp2/source/templates/module_langpack_accessories_templates_root.sct set_soenv.in soldep/bootstrp/appdef.cxx soldep/bootstrp/dep.cxx soldep/bootstrp/hashtbl.cxx soldep/bootstrp/makefile.mk soldep/bootstrp/minormk.cxx soldep/bootstrp/prj.cxx soldep/bootstrp/prodmap.cxx soldep/inc/dep.hxx soldep/inc/minormk.hxx soldep/inc/prodmap.hxx soldep/inc/soldep/appdef.hxx soldep/inc/soldep/connctr.hxx soldep/inc/soldep/depper.hxx soldep/inc/soldep/depwin.hxx soldep/inc/soldep/hashtbl.hxx soldep/inc/soldep/objwin.hxx soldep/inc/soldep/prj.hxx soldep/inc/soldep/sdtresid.hxx soldep/inc/soldep/soldep.hxx soldep/inc/soldep/soldlg.hxx soldep/inc/soldep/tbox.hxx soldep/prj/d.lst soldep/source/connctr.cxx soldep/source/depapp.hxx soldep/source/depper.cxx soldep/source/depwin.cxx soldep/source/makefile.mk soldep/source/objwin.cxx soldep/source/soldep.cxx soldep/source/soldlg.cxx soldep/source/soldlg.src soldep/source/tbox.cxx solenv/bin/build.pl solenv/bin/cws.pl solenv/bin/make_installer.pl solenv/bin/mhids.pl solenv/bin/modules/CwsConfig.pm solenv/bin/modules/RepositoryHelper.pm solenv/bin/modules/installer/regmerge.pm solenv/bin/modules/installer/scriptitems.pm solenv/bin/modules/installer/servicesfile.pm solenv/bin/modules/installer/simplepackage.pm solenv/bin/modules/installer/substfilenamefiles.pm solenv/config/ssolar.cmn solenv/inc/_tg_rslb.mk solenv/inc/extension_post.mk solenv/inc/libs.mk solenv/inc/minor.mk solenv/inc/postset.mk solenv/inc/settings.mk solenv/inc/tg_rslb.mk solenv/inc/unxlng.mk solenv/inc/wntmsc.mk soltools/HIDCompiler/hidclex.l stlport/prj/d.lst stlport/systemstlguards/postextstl.h
387 lines
11 KiB
Makefile
Executable file
387 lines
11 KiB
Makefile
Executable file
#*************************************************************************
|
|
#
|
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
#
|
|
# Copyright 2000, 2010 Oracle and/or its affiliates.
|
|
#
|
|
# OpenOffice.org - a multi-platform office productivity suite
|
|
#
|
|
# This file is part of OpenOffice.org.
|
|
#
|
|
# OpenOffice.org is free software: you can redistribute it and/or modify
|
|
# it under the terms of the GNU Lesser General Public License version 3
|
|
# only, as published by the Free Software Foundation.
|
|
#
|
|
# OpenOffice.org is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU Lesser General Public License version 3 for more details
|
|
# (a copy is included in the LICENSE file that accompanied this code).
|
|
#
|
|
# You should have received a copy of the GNU Lesser General Public License
|
|
# version 3 along with OpenOffice.org. If not, see
|
|
# <http://www.openoffice.org/license.html>
|
|
# for a copy of the LGPLv3 License.
|
|
#
|
|
#*************************************************************************
|
|
|
|
# mk file for $(OS)$(COM)$(CPU)$(COMEX) == WNTMSC[IX]{12,13}
|
|
|
|
FULL_DESK=TRUE
|
|
JAVAFLAGSDEBUG=-g
|
|
|
|
.IF "$(CL_X64)" == ""
|
|
ASM=ml
|
|
AFLAGS=/c /Cp /coff /safeseh
|
|
.ELSE
|
|
ASM=ml64
|
|
AFLAGS=/c /Cp
|
|
.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*=
|
|
|
|
CC*:=cl
|
|
.IF "$(bndchk)" != ""
|
|
CXX*=nmcl
|
|
.ELSE
|
|
.IF "$(truetime)" != ""
|
|
CXX*=nmcl /NMttOn
|
|
.ELSE
|
|
CXX*:=cl
|
|
.ENDIF
|
|
.ENDIF # "$(bndchk)" != ""
|
|
|
|
.IF "$(stoponerror)" != ""
|
|
CXX+= /NMstoponerror
|
|
.ENDIF
|
|
|
|
.IF "$(nmpass)" != ""
|
|
CXX+= /NMpass
|
|
.ENDIF
|
|
|
|
.IF "$(ttinlines)" != ""
|
|
CXX+= /NMttInlines
|
|
.ENDIF
|
|
|
|
.IF "$(ttnolines)" != ""
|
|
CXX+= /NMttNoLines
|
|
.ENDIF
|
|
|
|
.IF "$(VERBOSE)" != "TRUE"
|
|
NOLOGO*=-nologo
|
|
.ENDIF
|
|
|
|
.IF "$(VERBOSE)" != "TRUE"
|
|
COMPILE_ECHO_SWITCH=-n
|
|
COMPILE_ECHO_FILE=
|
|
.ENDIF
|
|
|
|
# Flags for COMEX == 11
|
|
|
|
# disable "warning C4675: resolved overload was found by argument-dependent
|
|
# lookup":
|
|
# -wd4251 -wd4275 -wd4290 -wd4675 -wd4786 -wd4800
|
|
CFLAGS+=-Zm500 -Zc:forScope,wchar_t- -GR
|
|
|
|
# Stack buffer overrun detection.
|
|
CFLAGS+=-GS
|
|
|
|
CFLAGS+=-c -nologo -Gs $(NOLOGO)
|
|
|
|
.IF "$(CL_X64)" == ""
|
|
CDEFS+= -D_X86_=1 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_NON_CONFORMING_SWPRINTFS -D_SCL_SECURE_NO_WARNINGS
|
|
.ELSE
|
|
CDEFS+= -D_AMD64_=1 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_NON_CONFORMING_SWPRINTFS -D_SCL_SECURE_NO_WARNINGS
|
|
.ENDIF
|
|
|
|
.IF "$(product)" != ""
|
|
CFLAGS+= -Gy
|
|
.ENDIF # "$(product)" != ""
|
|
|
|
# flags to enable build with symbols; required for crashdump feature
|
|
#CFLAGSENABLESYMBOLS=-Zi -Fd$(MISC)/_ooo_st_$(TARGET).PDB
|
|
CFLAGSENABLESYMBOLS=-Z7 -Yd
|
|
|
|
.IF "$(bndchk)" != ""
|
|
.IF "$(debug)" == ""
|
|
CFLAGS+= -Z7
|
|
.ENDIF
|
|
.ENDIF
|
|
|
|
.IF "$(truetime)" != ""
|
|
.IF "$(debug)" == ""
|
|
CFLAGS+= -Z7
|
|
.ENDIF
|
|
.ENDIF
|
|
|
|
.IF "$(FULL_DESK)"!=""
|
|
CDEFS+=-DFULL_DESK
|
|
RSCDEFS+=-DFULL_DESK
|
|
.ENDIF
|
|
|
|
CFLAGSEXCEPTIONS=-EHa
|
|
CFLAGS_NO_EXCEPTIONS=
|
|
|
|
.IF "$(CL_X64)" == ""
|
|
# enable boost support for __cdecl (SAL_CALL) C++-UNO interface methods
|
|
CDEFS+=-DBOOST_MEM_FN_ENABLE_CDECL
|
|
.ENDIF
|
|
|
|
# with the current debug switches PCH won't work
|
|
# anyway. so keep the existing .pch intact and don't
|
|
# touch it
|
|
.IF "$(debug)"!=""
|
|
ENABLE_PCH:=
|
|
.ENDIF "$(debug)"!=""
|
|
|
|
CFLAGS_CREATE_PCH=-I$(INCPCH) -Fo$(SLO)/pchname.obj -Ycprecompiled_$(PRJNAME).hxx -DPRECOMPILED_HEADERS
|
|
CFLAGS_USE_PCH=-I$(INCPCH) -Yuprecompiled_$(PRJNAME).hxx -Fp$(SLO)/pch/precompiled_$(PRJNAME).hxx$(PCHPOST) -DPRECOMPILED_HEADERS
|
|
CFLAGS_USE_EXCEPTIONS_PCH=-I$(INCPCH) -Yuprecompiled_$(PRJNAME).hxx -Fp$(SLO)/pch_ex/precompiled_$(PRJNAME).hxx$(PCHPOST) -DPRECOMPILED_HEADERS
|
|
.IF "$(CALL_CDECL)"=="TRUE"
|
|
CFLAGSCALL=-Gd
|
|
.ELSE # "$(CALL_CDECL)"=="TRUE"
|
|
CFLAGSCALL=-Gz
|
|
.ENDIF # "$(CALL_CDECL)"=="TRUE"
|
|
|
|
CFLAGSCC=$(ARCH_FLAGS)
|
|
.IF "$(DYNAMIC_CRT)"!=""
|
|
CDEFSSLOMT+=-DWIN32 -D_MT -D_DLL
|
|
CDEFSSLOMT+=-DWIN32 -D_MT -D_DLL
|
|
.IF "$(NO_DYNAMIC_OBJ)"==""
|
|
CDEFSOBJMT+=-DWIN32 -D_MT -D_DLL
|
|
CDEFSOBJMT+=-DWIN32 -D_MT -D_DLL
|
|
.ELSE
|
|
CDEFSOBJMT+=-DWIN32 -D_MT
|
|
CDEFSOBJMT+=-DWIN32 -D_MT
|
|
.ENDIF # "$(NO_DYNAMIC_OBJ)"==""
|
|
.ELSE
|
|
CDEFSSLOMT+=-DWIN32 -D_MT
|
|
CDEFSSLOMT+=-DWIN32 -D_MT
|
|
CDEFSOBJMT+=-DWIN32 -D_MT
|
|
CDEFSOBJMT+=-DWIN32 -D_MT
|
|
.ENDIF # "$(DYNAMIC_CRT)"!=""
|
|
|
|
CFLAGSPROF=-Gh -Fd$(MISC)/$(@:b).pdb
|
|
CFLAGSDEBUG=-Zi -Fd$(MISC)/$(@:b).pdb
|
|
CFLAGSDBGUTIL=
|
|
.IF "$(VC_STANDARD)"==""
|
|
CFLAGSOPT=-Oxs -Oy-
|
|
CFLAGSNOOPT=-Od
|
|
.ELSE # "$(VC_STANDARD)"==""
|
|
CFLAGSOPT=
|
|
CFLAGSNOOPT=
|
|
.ENDIF # "$(VC_STANDARD)"==""
|
|
CFLAGSOUTOBJ=-Fo
|
|
|
|
# For C and C++, certain warnings are disabled globally, as they result in
|
|
# spurious warnings and are hard or impossible to workaround:
|
|
# - "warning C4061: enumerate in switch of enum is not explicitly handled by a
|
|
# case label",
|
|
# - "warning C4127: conditional expression is constant",
|
|
# - "warning C4191: unsafe conversion from function type to function type",
|
|
# - "warning C4217: member template functions cannot be used for copy-assignment
|
|
# or copy-construction",
|
|
# - "warning C4250: 'class1' : inherits 'class2::member' via dominance",
|
|
# - "warning C4355: 'this' used in base member initializer list",
|
|
# - "warning C4511: copy constructor could not be generated",
|
|
# - "warning C4512: assignment operator could not be generated",
|
|
# - "warning C4514: unreferenced inline function has been removed",
|
|
# - "warning C4611: interaction between '_setjmp' and C++ object destruction is
|
|
# non-portable",
|
|
# - "warning C4625: copy constructor could not be generated because a base class
|
|
# copy constructor is inaccessible",
|
|
# - "warning C4626: assignment operator could not be generated because a base
|
|
# class assignment operator is inaccessible",
|
|
# - "warning C4675: resolved overload was found by argument-dependent lookup",
|
|
# - "warning C4710: function not inlined",
|
|
# - "warning C4711: function selected for automatic inline expansion",
|
|
# - "warning C4820: padding added after member".
|
|
# - "warning C4503: 'identifier' : decorated name length exceeded, name was truncated"
|
|
# (http://msdn2.microsoft.com/en-us/library/074af4b6.aspx)
|
|
# - "warning C4180: qualifier applied to function type has no meaning; ignored"
|
|
# (frequently seen with a recent boost)
|
|
# For C, certain warnings from system headers (stdlib.h etc.) have to be
|
|
# disabled globally (for C++, this is not necessary, as the system headers are
|
|
# wrapped by STLport):
|
|
# - "warning C4255: no function prototype given: converting
|
|
# '()' to '(void)'".
|
|
# - "warning C4365: conversion from ... to ... signed/unsigned mismatch"
|
|
|
|
CFLAGSWARNCXX=-Wall -wd4061 -wd4127 -wd4191 -wd4217 -wd4250 -wd4251 -wd4275 \
|
|
-wd4290 -wd4294 -wd4355 -wd4511 -wd4512 -wd4514 -wd4611 -wd4625 -wd4626 \
|
|
-wd4640 -wd4675 -wd4710 -wd4711 -wd4786 -wd4800 -wd4820 -wd4503 -wd4619 \
|
|
-wd4365 -wd4668 -wd4738 -wd4826 -wd4350 -wd4505 -wd4692 -wd4189 -wd4005 \
|
|
-wd4180
|
|
CFLAGSWARNCC=$(CFLAGSWARNCXX) -wd4255
|
|
CFLAGSWALLCC=$(CFLAGSWARNCC)
|
|
CFLAGSWALLCXX=$(CFLAGSWARNCXX)
|
|
CFLAGSWERRCC=-WX
|
|
|
|
# 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 :=
|
|
|
|
CDEFS+=-D_MT -DWINVER=0x0500 -D_WIN32_WINNT=0x0500 -D_WIN32_IE=0x0500
|
|
.IF "$(COMEX)" == "11"
|
|
_VC_MANIFEST_BASENAME=__VC80
|
|
.ELSE
|
|
_VC_MANIFEST_BASENAME=__VC90
|
|
.ENDIF
|
|
|
|
.IF "$(CL_X64)" == ""
|
|
LINK=link /MACHINE:IX86 /IGNORE:4102 /IGNORE:4197
|
|
.ELSE
|
|
LINK=link /MACHINE:X64
|
|
.ENDIF
|
|
# do *not* add $(NOLOGO) to LINK or LINKFLAGS. Strangely, the wntmsci12 linker links fine then, but exits with
|
|
# a return value 1, which makes dmake think it failed
|
|
.IF "$(PRODUCT)"!="full"
|
|
.ELSE
|
|
LINKFLAGS=/MAP /OPT:NOREF
|
|
.ENDIF
|
|
|
|
# excetion handling protection
|
|
.IF "$(CL_X64)" == ""
|
|
LINKFLAGS+=-safeseh
|
|
.ENDIF
|
|
|
|
# enable DEP
|
|
LINKFLAGS+=-nxcompat
|
|
|
|
# enable ASLR
|
|
LINKFLAGS+=-dynamicbase
|
|
|
|
.IF "$(linkinc)" != ""
|
|
LINKFLAGS+=-NODEFAULTLIB -INCREMENTAL:YES -DEBUG
|
|
MAPFILE=
|
|
_VC_MANIFEST_INC=1
|
|
.ELSE # "$(linkinc)" != ""
|
|
_VC_MANIFEST_INC=0
|
|
.IF "$(PRODUCT)"!="full"
|
|
LINKFLAGS+= -NODEFAULTLIB -DEBUG
|
|
.ELSE # "$(PRODUCT)"!="full"
|
|
LINKFLAGS+= -NODEFAULTLIB -RELEASE -DEBUG -INCREMENTAL:NO
|
|
.ENDIF # "$(PRODUCT)"!="full"
|
|
MAPFILE=-out:$$@
|
|
.ENDIF # "$(linkinc)" != ""
|
|
|
|
.IF "$(bndchk)" != ""
|
|
LINK=nmlink $(COMMENTFLAG) $(NOLOGO) /MACHINE:IX86
|
|
LINKFLAGS=-NODEFAULTLIB -DEBUG
|
|
.ENDIF
|
|
|
|
.IF "$(truetime)" != ""
|
|
LINK=nmlink /NMttOn $(COMMENTFLAG) $(NOLOGO) /MACHINE:IX86
|
|
LINKFLAGS=-NODEFAULTLIB -DEBUG
|
|
.ENDIF
|
|
|
|
.IF "$(COMEX)" == "11"
|
|
LINKFLAGSAPPGUI=/SUBSYSTEM:WINDOWS,4.0
|
|
LINKFLAGSSHLGUI=/SUBSYSTEM:WINDOWS,4.0 /DLL
|
|
.ELSE
|
|
LINKFLAGSAPPGUI=/SUBSYSTEM:WINDOWS
|
|
LINKFLAGSSHLGUI=/SUBSYSTEM:WINDOWS /DLL
|
|
.ENDIF # "$(COMEX)" == "11"
|
|
LINKFLAGSAPPCUI=/SUBSYSTEM:CONSOLE /BASE:0x1b000000
|
|
LINKFLAGSSHLCUI=/SUBSYSTEM:CONSOLE /DLL
|
|
LINKFLAGSTACK=/STACK:
|
|
LINKFLAGSPROF=/DEBUG:mapped,partial /DEBUGTYPE:coff cap.lib
|
|
LINKFLAGSWST=/DEBUG:mapped,partial /DEBUGTYPE:coff wst.lib /NODEFAULTLIB
|
|
LINKFLAGSDEBUG=-DEBUG
|
|
LINKFLAGSOPT=
|
|
|
|
UWINAPILIB*=uwinapi.lib
|
|
.IF "$(DYNAMIC_CRT)"!=""
|
|
.IF "$(USE_DEBUG_RUNTIME)" != ""
|
|
LIBCMT=msvcrtd.lib
|
|
LIBCPMT=msvcprtd.lib
|
|
.ELSE # "$(USE_DEBUG_RUNTIME)" != ""
|
|
LIBCMT=msvcrt.lib
|
|
LIBCPMT=msvcprt.lib
|
|
.ENDIF # "$(USE_DEBUG_RUNTIME)" != ""
|
|
.ELSE # "$(DYNAMIC_CRT)"!=""
|
|
.IF "$(USE_DEBUG_RUNTIME)" != ""
|
|
LIBCMT=libcmtd.lib
|
|
LIBCPMT=libcpmtd.lib
|
|
CDEFS+=-D_DEBUG
|
|
.ELSE # "$(USE_DEBUG_RUNTIME)" != ""
|
|
LIBCMT=libcmt.lib
|
|
LIBCPMT=libcpmt.lib
|
|
.ENDIF # "$(USE_DEBUG_RUNTIME)" != ""
|
|
.ENDIF # "$(DYNAMIC_CRT)"!=""
|
|
|
|
STDOBJVCL=$(L)/salmain.obj
|
|
STDOBJGUI=
|
|
STDSLOGUI=
|
|
STDOBJCUI=
|
|
STDSLOCUI=
|
|
|
|
STDLIBGUIMT=$(LIBCMT) $(LIBCPMT) $(UWINAPILIB) kernel32.lib user32.lib oldnames.lib
|
|
STDLIBCUIMT=$(LIBCMT) $(LIBCPMT) $(UWINAPILIB) kernel32.lib user32.lib oldnames.lib
|
|
STDSHLGUIMT=$(LIBCMT) $(LIBCPMT) $(UWINAPILIB) kernel32.lib user32.lib oldnames.lib
|
|
STDSHLCUIMT=$(LIBCMT) $(LIBCPMT) $(UWINAPILIB) kernel32.lib user32.lib oldnames.lib
|
|
|
|
LIBMGR=lib $(NOLOGO)
|
|
IMPLIB=lib
|
|
LIBFLAGS=
|
|
|
|
.IF "$(CL_X64)" == ""
|
|
IMPLIBFLAGS=-machine:IX86
|
|
.ELSE
|
|
IMPLIBFLAGS=-machine:X64
|
|
.ENDIF
|
|
|
|
MAPSYM=
|
|
MAPSYMFLAGS=
|
|
|
|
RC=rc
|
|
RCFLAGS=-r -DWIN32 -fo$@ $(RCFILES)
|
|
RCLINK=rc
|
|
RCLINKFLAGS=
|
|
RCSETVERSION=
|
|
|
|
MT=mt.exe
|
|
MTFLAGS=$(NOLOGO)
|
|
|
|
|
|
.IF "$(CL_X64)" == ""
|
|
DLLPOSTFIX=mi
|
|
.ELSE
|
|
DLLPOSTFIX=mx
|
|
.ENDIF
|
|
PCHPOST=.pch
|
|
|
|
CSC*=$(FLIPCMD) csc
|
|
VBC*=vbc
|
|
|
|
ADVAPI32LIB=advapi32.lib
|
|
SHELL32LIB=shell32.lib
|
|
GDI32LIB=gdi32.lib
|
|
OLE32LIB=ole32.lib
|
|
OLEAUT32LIB=oleaut32.lib
|
|
UUIDLIB=uuid.lib
|
|
WINSPOOLLIB=winspool.lib
|
|
IMM32LIB=imm32.lib
|
|
VERSIONLIB=version.lib
|
|
WINMMLIB=winmm.lib
|
|
WSOCK32LIB=wsock32.lib
|
|
MPRLIB=mpr.lib
|
|
WS2_32LIB=ws2_32.lib
|
|
KERNEL32LIB=kernel32.lib
|
|
USER32LIB=user32.lib
|
|
COMDLG32LIB=comdlg32.lib
|
|
COMCTL32LIB=comctl32.lib
|
|
CRYPT32LIB=crypt32.lib
|
|
GDIPLUSLIB=gdiplus.lib
|
|
DBGHELPLIB=dbghelp.lib
|
|
MSILIB=msi.lib
|
|
DDRAWLIB=ddraw.lib
|
|
SHLWAPILIB=shlwapi.lib
|
|
URLMONLIB=urlmon.lib
|
|
WININETLIB=wininet.lib
|
|
OLDNAMESLIB=oldnames.lib
|
|
MSIMG32LIB=msimg32.lib
|
|
PROPSYSLIB=propsys.lib
|