Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
M
mesa
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Labels
Merge Requests
1
Merge Requests
1
Analytics
Analytics
Repository
Value Stream
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Commits
Open sidebar
virgl-es
mesa
Commits
4f17bd27
Commit
4f17bd27
authored
Mar 12, 2008
by
José Fonseca
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
scons: Faithfully mimic every WINDDK builtin compiler/linker option.
parent
8fd633b5
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
108 additions
and
60 deletions
+108
-60
SConstruct
SConstruct
+7
-19
winddk.py
winddk.py
+101
-41
No files found.
SConstruct
View file @
4f17bd27
...
...
@@ -113,17 +113,9 @@ if gcc:
env
.
Append
(
CXXFLAGS
=
'-fmessage-length=0'
)
if
msvc
:
env
.
Append
(
CFLAGS
=
'/W3'
)
if
debug
:
cflags
=
[
'/Od'
,
# disable optimizations
'/Oy-'
,
# disable frame pointer omission
]
else
:
cflags
=
[
'/Ox'
,
# maximum optimizations
'/Os'
,
# favor code space
]
cflags
=
[
#'/Wp64', # enable 64 bit porting warnings
]
env
.
Append
(
CFLAGS
=
cflags
)
env
.
Append
(
CXXFLAGS
=
cflags
)
# Put debugging information in a separate .pdb file for each object file as
...
...
@@ -132,14 +124,7 @@ if msvc:
# Defines
if
debug
:
if
gcc
:
env
.
Append
(
CPPDEFINES
=
[
'DEBUG'
])
if
msvc
:
env
.
Append
(
CPPDEFINES
=
[
(
'DBG'
,
'1'
),
(
'DEBUG'
,
'1'
),
(
'_DEBUG'
,
'1'
),
])
env
.
Append
(
CPPDEFINES
=
[
'DEBUG'
])
else
:
env
.
Append
(
CPPDEFINES
=
[
'NDEBUG'
])
...
...
@@ -217,6 +202,9 @@ if platform not in ('winddk',):
'Xfixes'
,
])
# for debugging
#print env.Dump()
Export
(
'env'
)
...
...
winddk.py
View file @
4f17bd27
...
...
@@ -89,6 +89,105 @@ def get_winddk_paths(env, version=None):
exe_path
=
string
.
join
(
exe_paths
,
os
.
pathsep
)
return
(
include_path
,
lib_path
,
exe_path
)
def
set_winddk_flags
(
env
):
"""Mimic WINDDK's builtin flags.
See also:
- WINDDK's bin/makefile.new i386mk.inc for more info.
- buildchk_wxp_x86.log files, generated by the WINDDK's build
- http://alter.org.ua/docs/nt_kernel/vc8_proj/
"""
cppdefines
=
[
(
'_X86_'
,
'1'
),
(
'i386'
,
'1'
),
'STD_CALL'
,
(
'CONDITION_HANDLING'
,
'1'
),
(
'NT_INST'
,
'0'
),
(
'WIN32'
,
'100'
),
(
'_NT1X_'
,
'100'
),
(
'WINNT'
,
'1'
),
(
'_WIN32_WINNT'
,
'0x0501'
),
# minimum required OS version
(
'WINVER'
,
'0x0501'
),
(
'_WIN32_IE'
,
'0x0603'
),
(
'WIN32_LEAN_AND_MEAN'
,
'1'
),
(
'DEVL'
,
'1'
),
(
'__BUILDMACHINE__'
,
'WinDDK'
),
(
'FPO'
,
'0'
),
]
if
env
.
get
(
'DEBUG'
,
False
):
cppdefines
+=
[
(
'DBG'
,
1
),
]
env
.
Append
(
CPPDEFINES
=
cppdefines
)
# See also:
# - http://msdn2.microsoft.com/en-us/library/y0zzbyt4.aspx
# - cl /?
cflags
=
[
'/Zl'
,
# omit default library name in .OBJ
'/Zp8'
,
# 8bytes struct member alignment
'/Gy'
,
# separate functions for linker
'/Gm-'
,
# disable minimal rebuild
'/W3'
,
# warning level
'/WX'
,
# treat warnings as errors
'/Gz'
,
# __stdcall Calling convention
'/GX-'
,
# disable C++ EH
'/GR-'
,
# disable C++ RTTI
'/GF'
,
# enable read-only string pooling
'/GS'
,
# enable security checks
'/G6'
,
# optimize for PPro, P-II, P-III
'/Ze'
,
# enable extensions
#'/Gi-', # ???
'/QIfdiv-'
,
# disable Pentium FDIV fix
#'/hotpatch', # ???
#'/Z7', #enable old-style debug info
]
if
env
.
get
(
'debug'
,
False
):
cflags
+=
[
'/Od'
,
# disable optimizations
'/Oi'
,
# enable intrinsic functions
'/Oy-'
,
# disable frame pointer omission
]
else
:
cflags
+=
[
'/Ox'
,
# maximum optimizations
'/Oi'
,
# enable intrinsic functions
'/Os'
,
# favor code space
]
env
.
Append
(
CFLAGS
=
cflags
)
env
.
Append
(
CXXFLAGS
=
cflags
)
# See also:
# - http://msdn2.microsoft.com/en-us/library/y0zzbyt4.aspx
env
.
Append
(
LINKFLAGS
=
[
'/merge:_PAGE=PAGE'
,
'/merge:_TEXT=.text'
,
'/section:INIT,d'
,
'/opt:ref'
,
'/opt:icf'
,
'/ignore:4198,4010,4037,4039,4065,4070,4078,4087,4089,4221'
,
'/incremental:no'
,
'/fullbuild'
,
'/release'
,
'/nodefaultlib'
,
'/wx'
,
'/debug'
,
'/debugtype:cv'
,
'/version:5.1'
,
'/osversion:5.1'
,
'/functionpadmin:5'
,
'/safeseh'
,
'/pdbcompress'
,
'/stack:0x40000,0x1000'
,
'/driver'
,
'/align:0x80'
,
'/subsystem:native,5.01'
,
'/base:0x10000'
,
'/entry:DrvEnableDriver'
,
])
def
validate_vars
(
env
):
"""Validate the PCH and PCHSTOP construction variables."""
if
env
.
has_key
(
'PCH'
)
and
env
[
'PCH'
]:
...
...
@@ -215,47 +314,7 @@ def generate(env):
SCons
.
Tool
.
mslink
.
generate
(
env
)
# See also:
# - WINDDK's bin/makefile.new i386mk.inc for more info.
# - http://alter.org.ua/docs/nt_kernel/vc8_proj/
env
.
Append
(
CPPDEFINES
=
[
'WIN32'
,
'_WINDOWS'
,
(
'i386'
,
'1'
),
(
'_X86_'
,
'1'
),
'STD_CALL'
,
(
'CONDITION_HANDLING'
,
'1'
),
(
'NT_INST'
,
'0'
),
(
'_NT1X_'
,
'100'
),
(
'WINNT'
,
'1'
),
(
'_WIN32_WINNT'
,
'0x0500'
),
# minimum required OS version
(
'WIN32_LEAN_AND_MEAN'
,
'1'
),
(
'DEVL'
,
'1'
),
(
'FPO'
,
'1'
),
])
cflags
=
[
'/GF'
,
# Enable String Pooling
'/GX-'
,
# Disable C++ Exceptions
'/Zp8'
,
# 8bytes struct member alignment
#'/GS-', # No Buffer Security Check
'/GR-'
,
# Disable Run-Time Type Info
'/Gz'
,
# __stdcall Calling convention
]
env
.
Append
(
CFLAGS
=
cflags
)
env
.
Append
(
CXXFLAGS
=
cflags
)
env
.
Append
(
LINKFLAGS
=
[
'/DEBUG'
,
'/NODEFAULTLIB'
,
'/SUBSYSTEM:NATIVE'
,
'/INCREMENTAL:NO'
,
#'/DRIVER',
#'-subsystem:native,4.00',
'-base:0x10000'
,
'-entry:DrvEnableDriver'
,
])
set_winddk_flags
(
env
)
if
not
env
.
has_key
(
'ENV'
):
env
[
'ENV'
]
=
{}
...
...
@@ -275,3 +334,4 @@ def generate(env):
def
exists
(
env
):
return
env
.
Detect
(
'cl'
)
# vim:set sw=4 et:
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment