<screen>
C:\><userinput>scons -Q</userinput>
rc /fores.res res.rc
- cl /nologo /c test_stuff.c /Fotest_stuff.obj
+ cl /Fotest_stuff.obj /c test_stuff.c /nologo
link /nologo /OUT:tests\test_stuff.exe test_stuff.obj res.res
</screen>
<screen>
C:\><userinput>scons -Q</userinput>
- cl /nologo /c goodbye.c /Fogoodbye.obj
- cl /nologo /c hello.c /Fohello.obj
+ cl /Fogoodbye.obj /c goodbye.c /nologo
+ cl /Fohello.obj /c hello.c /nologo
link /nologo /OUT:hello.exe /LIBPATH:\usr\dir1 /LIBPATH:dir2 foo1.lib foo2.lib hello.obj goodbye.obj
</screen>
<screen>
C:\><userinput>scons -Q hello.exe</userinput>
- cl /nologo /Iinclude /I\home\project\inc /c hello.c /Fohello.obj
+ cl /Fohello.obj /c hello.c /nologo /Iinclude /I\home\project\inc
link /nologo /OUT:hello.exe hello.obj
</screen>
<screen>
C:\><userinput>scons -Q</userinput>
- cl /nologo /c hello.c /Fohello.obj
+ cl /Fohello.obj /c hello.c /nologo
link /nologo /OUT:new_hello.exe hello.obj
</screen>
<screen>
C:\><userinput>scons -Q</userinput>
- cl /nologo /c file1.c /Fofile1.obj
- cl /nologo /c file2.c /Fofile2.obj
- cl /nologo /c prog.c /Foprog.obj
+ cl /Fofile1.obj /c file1.c /nologo
+ cl /Fofile2.obj /c file2.c /nologo
+ cl /Foprog.obj /c prog.c /nologo
link /nologo /OUT:program.exe prog.obj file1.obj file2.obj
</screen>
<screen>
C:\><userinput>scons -Q</userinput>
- cl /nologo /c f1.c /Fof1.obj
- cl /nologo /c f2.c /Fof2.obj
- cl /nologo /c f3.c /Fof3.obj
+ cl /Fof1.obj /c f1.c /nologo
+ cl /Fof2.obj /c f2.c /nologo
+ cl /Fof3.obj /c f3.c /nologo
lib /nologo /OUT:foo.lib f1.obj f2.obj f3.obj
</screen>
<screen>
C:\><userinput>scons -Q</userinput>
- cl /nologo /c f1.c /Fof1.obj
- cl /nologo /c f2.c /Fof2.obj
- cl /nologo /c f3.c /Fof3.obj
+ cl /Fof1.obj /c f1.c /nologo
+ cl /Fof2.obj /c f2.c /nologo
+ cl /Fof3.obj /c f3.c /nologo
link /nologo /dll /out:foo.dll /implib:foo.lib f1.obj f2.obj f3.obj
RegServerFunc(target, source, env)
</screen>
<screen>
C:\><userinput>scons -Q</userinput>
- cl /nologo /c f1.c /Fof1.obj
- cl /nologo /c f2.c /Fof2.obj
- cl /nologo /c f3.c /Fof3.obj
+ cl /Fof1.obj /c f1.c /nologo
+ cl /Fof2.obj /c f2.c /nologo
+ cl /Fof3.obj /c f3.c /nologo
lib /nologo /OUT:foo.lib f1.obj f2.obj f3.obj
- cl /nologo /c prog.c /Foprog.obj
+ cl /Foprog.obj /c prog.c /nologo
link /nologo /OUT:prog.exe /LIBPATH:. foo.lib bar.lib prog.obj
</screen>
<screen>
C:\><userinput>scons -Q</userinput>
- cl /nologo /c prog.c /Foprog.obj
+ cl /Foprog.obj /c prog.c /nologo
link /nologo /OUT:prog.exe /LIBPATH:\usr\lib /LIBPATH:\usr\local\lib m.lib prog.obj
</screen>
<!-- The link command is too wide in the PDF version.
XXX ParseDepends()
XXX Platform()
XXX SConsignFile()
- XXX SideEffect()
XXX Tools()
XXX GetOption('duplicate')
<screen>
C:\><userinput>scons -Q</userinput>
- cl -DGOODBYE /c goodbye.c /Fogoodbye.obj
- cl -DHELLO /c hello.c /Fohello.obj
+ cl /Fogoodbye.obj /c goodbye.c -DGOODBYE
+ cl /Fohello.obj /c hello.c -DHELLO
link /nologo /OUT:hello.exe hello.obj goodbye.obj
</screen>
C:\><userinput>scons -Q</userinput>
The object file is: hello.obj
The program file is: hello.exe
- cl /nologo /c hello.c /Fohello.obj
+ cl /Fohello.obj /c hello.c /nologo
link /nologo /OUT:hello.exe hello.obj
</screen>
CPPPATH ['/opt/include']
LIBPATH ['/opt/lib']
LIBS ['foo']
- cl /nologo /I\opt\include /c f1.c /Fof1.obj
+ cl /Fof1.obj /c f1.c /nologo /I\opt\include
link /nologo /OUT:f1.exe /LIBPATH:\opt\lib foo.lib f1.obj
</screen>
scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Building targets ...
- cl /nologo /c hello.c /Fohello.obj
+ cl /Fohello.obj /c hello.c /nologo
link /nologo /OUT:hello.exe hello.obj
scons: done building targets.
</screen>
scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Building targets ...
- cl /nologo /c hello.c /Fohello.obj
+ cl /Fohello.obj /c hello.c /nologo
scons: done building targets.
</screen>
scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Building targets ...
- cl /nologo /c hello.c /Fohello.obj
+ cl /Fohello.obj /c hello.c /nologo
link /nologo /OUT:hello.exe hello.obj
scons: done building targets.
C:\><userinput>scons -c</userinput>
scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Building targets ...
- cl /nologo /c hello.c /Fohello.obj
+ cl /Fohello.obj /c hello.c /nologo
link /nologo /OUT:hello.exe hello.obj
scons: done building targets.
</screen>
<screen>
C:\><userinput>scons -Q</userinput>
- cl /nologo /c hello.c /Fohello.obj
+ cl /Fohello.obj /c hello.c /nologo
link /nologo /OUT:hello.exe hello.obj
</screen>
{ 'BUILDERS': {'_InternalInstall': <function InstallBuilderWrapper at 0x700000>, 'Object': <SCons.Builder.CompositeBuilder instance at 0x700000>, 'PCH': <SCons.Builder.BuilderBase instance at 0x700000>, 'RES': <SCons.Builder.BuilderBase instance at 0x700000>, 'SharedObject': <SCons.Builder.CompositeBuilder instance at 0x700000>, 'StaticObject': <SCons.Builder.CompositeBuilder instance at 0x700000>, '_InternalInstallAs': <function InstallAsBuilderWrapper at 0x700000>},
'CC': 'cl',
'CCCOM': <SCons.Action.FunctionAction instance at 0x700000>,
- 'CCCOMFLAGS': '$CPPFLAGS $_CPPDEFFLAGS $_CPPINCFLAGS /c $SOURCES /Fo$TARGET $CCPCHFLAGS $CCPDBFLAGS',
'CCFLAGS': ['/nologo'],
'CCPCHFLAGS': ['${(PCH and "/Yu%s /Fp%s"%(PCHSTOP or "",File(PCH))) or ""}'],
'CCPDBFLAGS': ['${(PDB and "/Z7") or ""}'],
'.spp',
'.SPP'],
'CXX': '$CC',
- 'CXXCOM': '$CXX $CXXFLAGS $CCCOMFLAGS',
+ 'CXXCOM': '$CXX /Fo$TARGET /c $SOURCES $CXXFLAGS $CCFLAGS $_CCCOMCOM',
'CXXFILESUFFIX': '.cc',
'CXXFLAGS': ['$CCFLAGS', '$(', '/TP', '$)'],
'DSUFFIXES': ['.d'],
'RC': 'rc',
'RCCOM': <SCons.Action.FunctionAction instance at 0x700000>,
'RCFLAGS': [],
+ 'RCSUFFIXES': ['.rc', '.rc2'],
'RDirs': <SCons.Defaults.Variable_Method_Caller instance at 0x700000>,
'SCANNERS': [],
'SHCC': '$CC',
'SHCCFLAGS': ['$CCFLAGS'],
'SHCFLAGS': ['$CFLAGS'],
'SHCXX': '$CXX',
- 'SHCXXCOM': '$SHCXX $SHCXXFLAGS $CCCOMFLAGS',
+ 'SHCXXCOM': '$SHCXX /Fo$TARGET /c $SOURCES $SHCXXFLAGS $SHCCFLAGS $_CCCOMCOM',
'SHCXXFLAGS': ['$CXXFLAGS'],
'SHELL': None,
'SHLIBPREFIX': '',
'TEMPFILE': <class SCons.Platform.TempFileMunge at 0x700000>,
'TEMPFILEPREFIX': '@',
'TOOLS': ['msvc', 'install', 'install'],
+ '_CCCOMCOM': '$CPPFLAGS $_CPPDEFFLAGS $_CPPINCFLAGS $CCPCHFLAGS $CCPDBFLAGS',
'_CPPDEFFLAGS': '${_defines(CPPDEFPREFIX, CPPDEFINES, CPPDEFSUFFIX, __env__)}',
'_CPPINCFLAGS': '$( ${_concat(INCPREFIX, CPPPATH, INCSUFFIX, __env__, RDirs, TARGET, SOURCE)} $)',
'_LIBDIRFLAGS': '$( ${_concat(LIBDIRPREFIX, LIBPATH, LIBDIRSUFFIX, __env__, RDirs, TARGET, SOURCE)} $)',
% <userinput>scons -Q --debug=stacktrace</userinput>
scons: *** Source `prog.c' not found, needed by target `prog.o'. Stop.
scons: internal stack trace:
- File "bootstrap/src/engine/SCons/Job.py", line 198, in start
- File "bootstrap/src/engine/SCons/Script/Main.py", line 169, in prepare
- File "bootstrap/src/engine/SCons/Taskmaster.py", line 184, in prepare
+ File "bootstrap/src/engine/SCons/Job.py", line 197, in start
+ File "bootstrap/src/engine/SCons/Script/Main.py", line 167, in prepare
+ File "bootstrap/src/engine/SCons/Taskmaster.py", line 182, in prepare
File "bootstrap/src/engine/SCons/Executor.py", line 171, in prepare
</screen>
<screen>
C:\><userinput>scons -Q OS=windows</userinput>
Install file: "build/windows/world/world.h" as "export/windows/include/world.h"
- cl /nologo /Iexport\windows\include /c build\windows\hello\hello.c /Fobuild\windows\hello\hello.obj
- cl /nologo /Iexport\windows\include /c build\windows\world\world.c /Fobuild\windows\world\world.obj
+ cl /Fobuild\windows\hello\hello.obj /c build\windows\hello\hello.c /nologo /Iexport\windows\include
+ cl /Fobuild\windows\world\world.obj /c build\windows\world\world.c /nologo /Iexport\windows\include
lib /nologo /OUT:build\windows\world\world.lib build\windows\world\world.obj
Install file: "build/windows/world/world.lib" as "export/windows/lib/world.lib"
link /nologo /OUT:build\windows\hello\hello.exe /LIBPATH:export\windows\lib world.lib build\windows\hello\hello.obj