1## @file
2#  Intrinsic Routines Wrapper Library Instance.
3#
4#  Copyright (c) 2010 - 2014, Intel Corporation. All rights reserved.<BR>
5#  This program and the accompanying materials
6#  are licensed and made available under the terms and conditions of the BSD License
7#  which accompanies this distribution.  The full text of the license may be found at
8#  http://opensource.org/licenses/bsd-license.php
9#
10#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
12#
13##
14
15[Defines]
16  INF_VERSION                    = 0x00010005
17  BASE_NAME                      = BaseIntrinsicLib
18  MODULE_UNI_FILE                = BaseIntrinsicLib.uni
19  FILE_GUID                      = 63850097-3E97-4c4f-A52D-C811A0106105
20  MODULE_TYPE                    = BASE
21  VERSION_STRING                 = 1.0
22  LIBRARY_CLASS                  = IntrinsicLib
23
24#
25# The following information is for reference only and not required by the build tools.
26#
27#  VALID_ARCHITECTURES           = IA32 X64 IPF
28#
29
30[Sources]
31  MemoryIntrinsics.c
32
33[Sources.IA32]
34  CopyMem.c
35
36  Ia32/MathLShiftS64.c      | MSFT
37  Ia32/MathRShiftU64.c      | MSFT
38
39  Ia32/MathLShiftS64.c      | INTEL
40  Ia32/MathRShiftU64.c      | INTEL
41
42  Ia32/MathLShiftS64.S      | GCC
43  Ia32/MathRShiftU64.S      | GCC
44
45[Sources.X64]
46  CopyMem.c
47
48[Sources.IPF]
49  CopyMem.c | MSFT
50  CopyMem.c | INTEL
51#
52# In tools_def.txt, GCC rename symbol name memcpy to be CopyMem for IPF,
53# i.e. "DEFINE GCC_IPF_SYMRENAME_FLAGS     = --redefine-sym memcpy=CopyMem",
54# so there will be no source file CopyMem.c for GCC compiler family.
55#
56
57[Packages]
58  MdePkg/MdePkg.dec
59
60[LibraryClasses]
61  BaseMemoryLib
62
63[BuildOptions]
64   #
65   # Override MSFT build option to remove /Oi and /GL
66   #
67   MSFT:DEBUG_VS2003_IA32_CC_FLAGS        == /nologo /c /WX /W4 /Gs32768 /Gy /D UNICODE /O1b2 /FIAutoGen.h /EHs-c- /GR- /GF /GX- /Zi /Gm
68   MSFT:RELEASE_VS2003_IA32_CC_FLAGS      == /nologo /c /WX /W4 /Gs32768 /Gy /D UNICODE /O1b2 /FIAutoGen.h /EHs-c- /GR- /GF /GX-
69   MSFT:DEBUG_VS2003xASL_IA32_CC_FLAGS    == /nologo /c /WX /W4 /Gs32768 /Gy /D UNICODE /O1b2 /FIAutoGen.h /EHs-c- /GR- /GF /GX- /Zi /Gm
70   MSFT:RELEASE_VS2003xASL_IA32_CC_FLAGS  == /nologo /c /WX /W4 /Gs32768 /Gy /D UNICODE /O1b2 /FIAutoGen.h /EHs-c- /GR- /GF /GX-
71   MSFT:DEBUG_DDK3790_IA32_CC_FLAGS       == /nologo /c /WX /Gy /Gs32768 /D UNICODE /O1b2 /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm
72   MSFT:RELEASE_DDK3790_IA32_CC_FLAGS     == /nologo /c /WX /Gy /Gs32768 /D UNICODE /O1b2 /FIAutoGen.h /EHs-c- /GR- /GF
73   MSFT:DEBUG_DDK3790xASL_IA32_CC_FLAGS   == /nologo /c /WX /Gy /Gs32768 /D UNICODE /O1b2 /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm
74   MSFT:RELEASE_DDK3790xASL_IA32_CC_FLAGS == /nologo /c /WX /Gy /Gs32768 /D UNICODE /O1b2 /FIAutoGen.h /EHs-c- /GR- /GF
75   MSFT:DEBUG_*_IA32_CC_FLAGS             == /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2 /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm
76   MSFT:RELEASE_*_IA32_CC_FLAGS           == /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2 /FIAutoGen.h /EHs-c- /GR- /GF
77   MSFT:DEBUG_*_X64_CC_FLAGS              == /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1b2s /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm
78   MSFT:RELEASE_*_X64_CC_FLAGS            == /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1b2s /Gy /FIAutoGen.h /EHs-c- /GR- /GF
79   MSFT:DEBUG_*_IPF_CC_FLAGS              == /nologo /c /WX /GS- /X /W4 /EHs-c- /GR- /Gy /Os /FIAutoGen.h /QIPF_fr32 /Zi
80   MSFT:RELEASE_*_IPF_CC_FLAGS            == /nologo /c /WX /GS- /X /W4 /EHs-c- /GR- /Gy /Os /FIAutoGen.h /QIPF_fr32
81  INTEL:*_*_*_CC_FLAGS                    =  /Oi-
82    GCC:*_*_*_CC_FLAGS                    =  -fno-builtin