Rbuild rationalization commit, umpteenth of infinite
authorKJK::Hyperion <hackbunny@reactos.org>
Thu, 16 Apr 2009 02:27:50 +0000 (02:27 +0000)
committerKJK::Hyperion <hackbunny@reactos.org>
Thu, 16 Apr 2009 02:27:50 +0000 (02:27 +0000)
modified   tools/rbuild/backend/mingw/mingw.cpp
modified   tools/rbuild/backend/mingw/mingw.h
modified   tools/rbuild/backend/mingw/modulehandler.cpp
modified   tools/rbuild/backend/mingw/modulehandler.h
modified   tools/rbuild/backend/mingw/rules.mak
added      tools/rbuild/compilerdirective.cpp
modified   tools/rbuild/compilerflag.cpp
modified   tools/rbuild/define.cpp
modified   tools/rbuild/include.cpp
modified   tools/rbuild/module.cpp
modified   tools/rbuild/pch.h
modified   tools/rbuild/project.cpp
modified   tools/rbuild/rbuild.dsp
modified   tools/rbuild/rbuild.h
modified   tools/rbuild/rbuild.mak
modified   tools/rbuild/rbuild.vcproj
modified   Makefile
modified   ReactOS-generic.rbuild
   Almost all build rules moved to a makefile.auto include (rules.mak). Size of makefile.auto reduced to about half
   The new rules correctly sort includes, defines and flags in priority order (built-in, project, module type, module, source file)
   The new rules don't duplicate flags anymore. Flag sets are defined once, as makefile variables, and then referred to by variable name
   Compiler-specific flags, includes and defines can now be set, for almost all compilers and tools
   <compilerflag>, <define> and <include> have a new "compiler" attribute, containing a comma-separated list of compilers the directive applies to
   C++ compiler renamed to "cxx", "cpp" now correctly refers to the C preprocessor (or work-alike, built-in preprocessors)
   Drop "overridable" attribute for <define>, as it never worked right
   New <redefine> tag: works like <define>, but undefines the variable before defining it. Several warnings suppressed thanks to it
   Slightly changed rule for resource file; conversion to object file now a separate phase that prints "[CVTRES]"
   Slightly changed definition of ${gas}
   Echo "[AS]" instead of "[GAS]"
   Echo "[RC]" for wrc

modified   include/crt/mingw32/intrin.h
   Now that the correct include paths are passed to the resource compiler, make headers more resource compiler-friendly

modified   dll/directx/wine/ddraw/ddraw.rbuild
   Apply GCC workaround for PSEH

modified   dll/directx/wine/wined3d/wined3d.rbuild
modified   dll/win32/riched20/riched20.rbuild
   -Wno-format no longer required

modified   dll/nls/idndl/idndl.rbuild
modified   dll/nls/idndl_redist/idndl_redist.rbuild
modified   dll/nls/normaliz_redist/normaliz_redist.rbuild
modified   lib/3rdparty/icu4ros/icu4ros.rbuild
modified   lib/nls/idna/idna.rbuild
modified   lib/nls/normalize/normalize.rbuild
modified   lib/nls/scripts/scripts.rbuild
   C++ compiler now identified by "cxx"

modified   drivers/storage/ide/uniata/uniata.rbuild
modified   drivers/wdm/audio/drivers/mpu401/mpu401.rbuild
modified   drivers/wdm/audio/drm/drmk/drmk.rbuild
   Disable exceptions and RTTI for kernel mode C++ code

modified   base/services/umpnpmgr/umpnpmgr.rbuild
modified   dll/cpl/ncpa/ncpa.rbuild
modified   dll/directx/amstream/amstream.rbuild
modified   dll/directx/dinput8/dinput8.rbuild
modified   dll/directx/dinput/dinput.rbuild
modified   dll/directx/qedit/qedit.rbuild
modified   dll/directx/quartz/quartz.rbuild
modified   dll/win32/advapi32/advapi32.rbuild
modified   dll/win32/atl/atl.rbuild
modified   dll/win32/avifil32/avifil32.rbuild
modified   dll/win32/browseui/browseui.rbuild
modified   dll/win32/comcat/comcat.rbuild
modified   dll/win32/crypt32/crypt32.rbuild
modified   dll/win32/hhctrl.ocx/hhctrl.ocx.rbuild
modified   dll/win32/imm32/imm32.rbuild
modified   dll/win32/inetcomm/inetcomm.rbuild
modified   dll/win32/localspl/localspl.rbuild
modified   dll/win32/mlang/mlang.rbuild
modified   dll/win32/msctf/msctf.rbuild
modified   dll/win32/mshtml/mshtml.rbuild
modified   dll/win32/msi/msi.rbuild
modified   dll/win32/mstask/mstask.rbuild
modified   dll/win32/msxml3/msxml3.rbuild
modified   dll/win32/ntmarta/ntmarta.rbuild
modified   dll/win32/objsel/objsel.rbuild
modified   dll/win32/ole32/ole32.rbuild
modified   dll/win32/oleaut32/oleaut32.rbuild
modified   dll/win32/pdh/pdh.rbuild
modified   dll/win32/rpcrt4/rpcrt4.rbuild
modified   dll/win32/shell32/shell32.rbuild
modified   dll/win32/shlwapi/shlwapi.rbuild
modified   dll/win32/urlmon/urlmon.rbuild
modified   dll/win32/wuapi/wuapi.rbuild
modified   include/reactos/idl/idl.rbuild
modified   dll/win32/kernel32/kernel32.rbuild
modified   dll/nls/idndl/idndl.rbuild
modified   lib/nls/idna/idna.rbuild
modified   lib/nls/normalize/normalize.rbuild
modified   lib/nls/scripts/scripts.rbuild
modified   dll/win32/inseng/inseng.rbuild
   Use <redefine> instead of <define> for version macros

modified   base/setup/usetup/usetup.rbuild
modified   base/system/autochk/autochk.rbuild
modified   base/system/smss/smss.rbuild
modified   dll/3rdparty/dxtn/dxtn.rbuild
modified   dll/keyboard/kbda1/kbda1.rbuild
modified   dll/keyboard/kbda2/kbda2.rbuild
modified   dll/keyboard/kbda3/kbda3.rbuild
modified   dll/keyboard/kbdal/kbdal.rbuild
modified   dll/keyboard/kbdarme/kbdarme.rbuild
modified   dll/keyboard/kbdarmw/kbdarmw.rbuild
modified   dll/keyboard/kbdaze/kbdaze.rbuild
modified   dll/keyboard/kbdazel/kbdazel.rbuild
modified   dll/keyboard/kbdbe/kbdbe.rbuild
modified   dll/keyboard/kbdbga/kbdbga.rbuild
modified   dll/keyboard/kbdbgm/kbdbgm.rbuild
modified   dll/keyboard/kbdbgt/kbdbgt.rbuild
modified   dll/keyboard/kbdblr/kbdblr.rbuild
modified   dll/keyboard/kbdbr/kbdbr.rbuild
modified   dll/keyboard/kbdbur/kbdbur.rbuild
modified   dll/keyboard/kbdcan/kbdcan.rbuild
modified   dll/keyboard/kbdcr/kbdcr.rbuild
modified   dll/keyboard/kbdcz1/kbdcz1.rbuild
modified   dll/keyboard/kbdcz/kbdcz.rbuild
modified   dll/keyboard/kbdda/kbdda.rbuild
modified   dll/keyboard/kbddv/kbddv.rbuild
modified   dll/keyboard/kbdes/kbdes.rbuild
modified   dll/keyboard/kbdest/kbdest.rbuild
modified   dll/keyboard/kbdfc/kbdfc.rbuild
modified   dll/keyboard/kbdfi/kbdfi.rbuild
modified   dll/keyboard/kbdfr/kbdfr.rbuild
modified   dll/keyboard/kbdgeo/kbdgeo.rbuild
modified   dll/keyboard/kbdgerg/kbdgerg.rbuild
modified   dll/keyboard/kbdgneo/kbdgneo.rbuild
modified   dll/keyboard/kbdgr/kbdgr.rbuild
modified   dll/keyboard/kbdgrist/kbdgrist.rbuild
modified   dll/keyboard/kbdhe/kbdhe.rbuild
modified   dll/keyboard/kbdheb/kbdheb.rbuild
modified   dll/keyboard/kbdhu/kbdhu.rbuild
modified   dll/keyboard/kbdic/kbdic.rbuild
modified   dll/keyboard/kbdinasa/kbdinasa.rbuild
modified   dll/keyboard/kbdinben/kbdinben.rbuild
modified   dll/keyboard/kbdindev/kbdindev.rbuild
modified   dll/keyboard/kbdinguj/kbdinguj.rbuild
modified   dll/keyboard/kbdinmal/kbdinmal.rbuild
modified   dll/keyboard/kbdir/kbdir.rbuild
modified   dll/keyboard/kbdit/kbdit.rbuild
modified   dll/keyboard/kbdja/kbdja.rbuild
modified   dll/keyboard/kbdkaz/kbdkaz.rbuild
modified   dll/keyboard/kbdko/kbdko.rbuild
modified   dll/keyboard/kbdla/kbdla.rbuild
modified   dll/keyboard/kbdlt1/kbdlt1.rbuild
modified   dll/keyboard/kbdlv/kbdlv.rbuild
modified   dll/keyboard/kbdmac/kbdmac.rbuild
modified   dll/keyboard/kbdne/kbdne.rbuild
modified   dll/keyboard/kbdno/kbdno.rbuild
modified   dll/keyboard/kbdpl1/kbdpl1.rbuild
modified   dll/keyboard/kbdpo/kbdpo.rbuild
modified   dll/keyboard/kbdro/kbdro.rbuild
modified   dll/keyboard/kbdru1/kbdru1.rbuild
modified   dll/keyboard/kbdru/kbdru.rbuild
modified   dll/keyboard/kbdsg/kbdsg.rbuild
modified   dll/keyboard/kbdsk1/kbdsk1.rbuild
modified   dll/keyboard/kbdsk/kbdsk.rbuild
modified   dll/keyboard/kbdsw/kbdsw.rbuild
modified   dll/keyboard/kbdtat/kbdtat.rbuild
modified   dll/keyboard/kbdth0/kbdth0.rbuild
modified   dll/keyboard/kbdth1/kbdth1.rbuild
modified   dll/keyboard/kbdth2/kbdth2.rbuild
modified   dll/keyboard/kbdth3/kbdth3.rbuild
modified   dll/keyboard/kbdtuf/kbdtuf.rbuild
modified   dll/keyboard/kbdtuq/kbdtuq.rbuild
modified   dll/keyboard/kbduk/kbduk.rbuild
modified   dll/keyboard/kbdur/kbdur.rbuild
modified   dll/keyboard/kbdurs/kbdurs.rbuild
modified   dll/keyboard/kbdus/kbdus.rbuild
modified   dll/keyboard/kbdusa/kbdusa.rbuild
modified   dll/keyboard/kbdusl/kbdusl.rbuild
modified   dll/keyboard/kbdusr/kbdusr.rbuild
modified   dll/keyboard/kbdusx/kbdusx.rbuild
modified   dll/keyboard/kbduzb/kbduzb.rbuild
modified   dll/keyboard/kbdvntc/kbdvntc.rbuild
modified   dll/keyboard/kbdycc/kbdycc.rbuild
modified   dll/keyboard/kbdycl/kbdycl.rbuild
modified   dll/ntdll/ntdll.rbuild
modified   dll/win32/crtdll/crtdll.rbuild
modified   dll/win32/dhcpcsvc/dhcpcsvc.rbuild
modified   dll/win32/dnsapi/dnsapi.rbuild
modified   dll/win32/fmifs/fmifs.rbuild
modified   dll/win32/gdi32/gdi32.rbuild
modified   dll/win32/lpk/lpk.rbuild
modified   dll/win32/msvcrt/msvcrt.rbuild
modified   dll/win32/opengl32/opengl32.rbuild
modified   dll/win32/psapi/psapi.rbuild
modified   dll/win32/rasdlg/rasdlg.rbuild
modified   dll/win32/rasman/rasman.rbuild
modified   dll/win32/samlib/samlib.rbuild
modified   dll/win32/shimgvw/shimgvw.rbuild
modified   dll/win32/smdll/smdll.rbuild
modified   dll/win32/twain_32/twain_32.rbuild
modified   dll/win32/uext2/uext2.rbuild
modified   dll/win32/ufat/ufat.rbuild
modified   dll/win32/ufatx/ufatx.rbuild
modified   dll/win32/untfs/untfs.rbuild
modified   dll/win32/user32/user32.rbuild
modified   dll/win32/winspool/winspool.rbuild
modified   dll/win32/ws2_32/ws2_32.rbuild
modified   dll/win32/ws2help/ws2help.rbuild
modified   dll/win32/wshirda/wshirda.rbuild
modified   drivers/directx/dxapi/dxapi.rbuild
modified   drivers/directx/dxgthk/dxgthk.rbuild
modified   hal/halarm/generic/generic.rbuild
modified   hal/halarm/up/halup.rbuild
modified   hal/halppc/generic/generic.rbuild
modified   hal/halppc/up/halup.rbuild
modified   hal/halx86/generic/generic.rbuild
modified   hal/halx86/hal_generic.rbuild
modified   hal/halx86/hal_generic_pc.rbuild
modified   hal/halx86/hal_generic_up.rbuild
modified   hal/halx86/halmp.rbuild
modified   hal/halx86/halup.rbuild
modified   hal/halx86/halxbox.rbuild
modified   lib/3rdparty/libwine/libwine.rbuild
modified   lib/epsapi/epsapi.rbuild
modified   lib/fslib/ext2lib/ext2lib.rbuild
modified   lib/fslib/ntfslib/ntfslib.rbuild
modified   lib/fslib/vfatlib/vfatlib.rbuild
modified   lib/fslib/vfatxlib/vfatxlib.rbuild
modified   lib/ntdllsys/ntdllsys.rbuild
modified   lib/sdk/crt/crt.rbuild
modified   lib/sdk/dxguid/dxguid.rbuild
modified   lib/sdk/nt/nt.rbuild
modified   lib/sdk/strmiids/strmiids.rbuild
modified   lib/sdk/uuid/uuid.rbuild
modified   lib/smlib/smlib.rbuild
modified   lib/win32ksys/win32ksys.rbuild
modified   ntoskrnl/ntoskrnl-generic.rbuild
modified   subsystems/csr/csrsrv/csrsrv.rbuild
modified   subsystems/ntvdm/ntvdm.rbuild
modified   subsystems/win32/csrss/win32csr/win32csr.rbuild
modified   dll/win32/kernel32/kernel32.rbuild
modified   lib/drivers/oskittcp/oskittcp.rbuild
   Goodbye _DISABLE_TIDENTS, __USE_W32API

svn path=/trunk/; revision=40538

209 files changed:
reactos/Makefile
reactos/ReactOS-generic.rbuild
reactos/base/services/umpnpmgr/umpnpmgr.rbuild
reactos/base/setup/usetup/usetup.rbuild
reactos/base/system/autochk/autochk.rbuild
reactos/base/system/smss/smss.rbuild
reactos/dll/3rdparty/dxtn/dxtn.rbuild
reactos/dll/cpl/ncpa/ncpa.rbuild
reactos/dll/directx/amstream/amstream.rbuild
reactos/dll/directx/dinput/dinput.rbuild
reactos/dll/directx/dinput8/dinput8.rbuild
reactos/dll/directx/qedit/qedit.rbuild
reactos/dll/directx/quartz/quartz.rbuild
reactos/dll/directx/wine/ddraw/ddraw.rbuild
reactos/dll/directx/wine/wined3d/wined3d.rbuild
reactos/dll/keyboard/kbda1/kbda1.rbuild
reactos/dll/keyboard/kbda2/kbda2.rbuild
reactos/dll/keyboard/kbda3/kbda3.rbuild
reactos/dll/keyboard/kbdal/kbdal.rbuild
reactos/dll/keyboard/kbdarme/kbdarme.rbuild
reactos/dll/keyboard/kbdarmw/kbdarmw.rbuild
reactos/dll/keyboard/kbdaze/kbdaze.rbuild
reactos/dll/keyboard/kbdazel/kbdazel.rbuild
reactos/dll/keyboard/kbdbe/kbdbe.rbuild
reactos/dll/keyboard/kbdbga/kbdbga.rbuild
reactos/dll/keyboard/kbdbgm/kbdbgm.rbuild
reactos/dll/keyboard/kbdbgt/kbdbgt.rbuild
reactos/dll/keyboard/kbdblr/kbdblr.rbuild
reactos/dll/keyboard/kbdbr/kbdbr.rbuild
reactos/dll/keyboard/kbdbur/kbdbur.rbuild
reactos/dll/keyboard/kbdcan/kbdcan.rbuild
reactos/dll/keyboard/kbdcr/kbdcr.rbuild
reactos/dll/keyboard/kbdcz/kbdcz.rbuild
reactos/dll/keyboard/kbdcz1/kbdcz1.rbuild
reactos/dll/keyboard/kbdda/kbdda.rbuild
reactos/dll/keyboard/kbddv/kbddv.rbuild
reactos/dll/keyboard/kbdes/kbdes.rbuild
reactos/dll/keyboard/kbdest/kbdest.rbuild
reactos/dll/keyboard/kbdfc/kbdfc.rbuild
reactos/dll/keyboard/kbdfi/kbdfi.rbuild
reactos/dll/keyboard/kbdfr/kbdfr.rbuild
reactos/dll/keyboard/kbdgeo/kbdgeo.rbuild
reactos/dll/keyboard/kbdgerg/kbdgerg.rbuild
reactos/dll/keyboard/kbdgneo/kbdgneo.rbuild
reactos/dll/keyboard/kbdgr/kbdgr.rbuild
reactos/dll/keyboard/kbdgrist/kbdgrist.rbuild
reactos/dll/keyboard/kbdhe/kbdhe.rbuild
reactos/dll/keyboard/kbdheb/kbdheb.rbuild
reactos/dll/keyboard/kbdhu/kbdhu.rbuild
reactos/dll/keyboard/kbdic/kbdic.rbuild
reactos/dll/keyboard/kbdinasa/kbdinasa.rbuild
reactos/dll/keyboard/kbdinben/kbdinben.rbuild
reactos/dll/keyboard/kbdindev/kbdindev.rbuild
reactos/dll/keyboard/kbdinguj/kbdinguj.rbuild
reactos/dll/keyboard/kbdinmal/kbdinmal.rbuild
reactos/dll/keyboard/kbdir/kbdir.rbuild
reactos/dll/keyboard/kbdit/kbdit.rbuild
reactos/dll/keyboard/kbdja/kbdja.rbuild
reactos/dll/keyboard/kbdkaz/kbdkaz.rbuild
reactos/dll/keyboard/kbdko/kbdko.rbuild
reactos/dll/keyboard/kbdla/kbdla.rbuild
reactos/dll/keyboard/kbdlt1/kbdlt1.rbuild
reactos/dll/keyboard/kbdlv/kbdlv.rbuild
reactos/dll/keyboard/kbdmac/kbdmac.rbuild
reactos/dll/keyboard/kbdne/kbdne.rbuild
reactos/dll/keyboard/kbdno/kbdno.rbuild
reactos/dll/keyboard/kbdpl1/kbdpl1.rbuild
reactos/dll/keyboard/kbdpo/kbdpo.rbuild
reactos/dll/keyboard/kbdro/kbdro.rbuild
reactos/dll/keyboard/kbdru/kbdru.rbuild
reactos/dll/keyboard/kbdru1/kbdru1.rbuild
reactos/dll/keyboard/kbdsg/kbdsg.rbuild
reactos/dll/keyboard/kbdsk/kbdsk.rbuild
reactos/dll/keyboard/kbdsk1/kbdsk1.rbuild
reactos/dll/keyboard/kbdsw/kbdsw.rbuild
reactos/dll/keyboard/kbdtat/kbdtat.rbuild
reactos/dll/keyboard/kbdth0/kbdth0.rbuild
reactos/dll/keyboard/kbdth1/kbdth1.rbuild
reactos/dll/keyboard/kbdth2/kbdth2.rbuild
reactos/dll/keyboard/kbdth3/kbdth3.rbuild
reactos/dll/keyboard/kbdtuf/kbdtuf.rbuild
reactos/dll/keyboard/kbdtuq/kbdtuq.rbuild
reactos/dll/keyboard/kbduk/kbduk.rbuild
reactos/dll/keyboard/kbdur/kbdur.rbuild
reactos/dll/keyboard/kbdurs/kbdurs.rbuild
reactos/dll/keyboard/kbdus/kbdus.rbuild
reactos/dll/keyboard/kbdusa/kbdusa.rbuild
reactos/dll/keyboard/kbdusl/kbdusl.rbuild
reactos/dll/keyboard/kbdusr/kbdusr.rbuild
reactos/dll/keyboard/kbdusx/kbdusx.rbuild
reactos/dll/keyboard/kbduzb/kbduzb.rbuild
reactos/dll/keyboard/kbdvntc/kbdvntc.rbuild
reactos/dll/keyboard/kbdycc/kbdycc.rbuild
reactos/dll/keyboard/kbdycl/kbdycl.rbuild
reactos/dll/nls/idndl/idndl.rbuild
reactos/dll/nls/idndl_redist/idndl_redist.rbuild
reactos/dll/nls/normaliz_redist/normaliz_redist.rbuild
reactos/dll/ntdll/ntdll.rbuild
reactos/dll/win32/advapi32/advapi32.rbuild
reactos/dll/win32/atl/atl.rbuild
reactos/dll/win32/avifil32/avifil32.rbuild
reactos/dll/win32/browseui/browseui.rbuild
reactos/dll/win32/comcat/comcat.rbuild
reactos/dll/win32/crtdll/crtdll.rbuild
reactos/dll/win32/crypt32/crypt32.rbuild
reactos/dll/win32/dhcpcsvc/dhcpcsvc.rbuild
reactos/dll/win32/dnsapi/dnsapi.rbuild
reactos/dll/win32/fmifs/fmifs.rbuild
reactos/dll/win32/gdi32/gdi32.rbuild
reactos/dll/win32/hhctrl.ocx/hhctrl.ocx.rbuild
reactos/dll/win32/imm32/imm32.rbuild
reactos/dll/win32/inetcomm/inetcomm.rbuild
reactos/dll/win32/inseng/inseng.rbuild
reactos/dll/win32/jscript/jscript.rbuild
reactos/dll/win32/kernel32/kernel32.rbuild
reactos/dll/win32/localspl/localspl.rbuild
reactos/dll/win32/lpk/lpk.rbuild
reactos/dll/win32/mlang/mlang.rbuild
reactos/dll/win32/msctf/msctf.rbuild
reactos/dll/win32/mshtml/mshtml.rbuild
reactos/dll/win32/msi/msi.rbuild
reactos/dll/win32/mstask/mstask.rbuild
reactos/dll/win32/msvcrt/msvcrt.rbuild
reactos/dll/win32/msxml3/msxml3.rbuild
reactos/dll/win32/ntmarta/ntmarta.rbuild
reactos/dll/win32/objsel/objsel.rbuild
reactos/dll/win32/ole32/ole32.rbuild
reactos/dll/win32/oleaut32/oleaut32.rbuild
reactos/dll/win32/opengl32/opengl32.rbuild
reactos/dll/win32/pdh/pdh.rbuild
reactos/dll/win32/psapi/psapi.rbuild
reactos/dll/win32/rasdlg/rasdlg.rbuild
reactos/dll/win32/rasman/rasman.rbuild
reactos/dll/win32/riched20/riched20.rbuild
reactos/dll/win32/rpcrt4/rpcrt4.rbuild
reactos/dll/win32/samlib/samlib.rbuild
reactos/dll/win32/shell32/shell32.rbuild
reactos/dll/win32/shimgvw/shimgvw.rbuild
reactos/dll/win32/shlwapi/shlwapi.rbuild
reactos/dll/win32/smdll/smdll.rbuild
reactos/dll/win32/twain_32/twain_32.rbuild
reactos/dll/win32/uext2/uext2.rbuild
reactos/dll/win32/ufat/ufat.rbuild
reactos/dll/win32/ufatx/ufatx.rbuild
reactos/dll/win32/untfs/untfs.rbuild
reactos/dll/win32/urlmon/urlmon.rbuild
reactos/dll/win32/user32/user32.rbuild
reactos/dll/win32/winspool/winspool.rbuild
reactos/dll/win32/ws2_32/ws2_32.rbuild
reactos/dll/win32/ws2help/ws2help.rbuild
reactos/dll/win32/wshirda/wshirda.rbuild
reactos/dll/win32/wuapi/wuapi.rbuild
reactos/drivers/directx/dxapi/dxapi.rbuild
reactos/drivers/directx/dxgthk/dxgthk.rbuild
reactos/drivers/storage/ide/uniata/uniata.rbuild
reactos/drivers/wdm/audio/drivers/mpu401/mpu401.rbuild
reactos/drivers/wdm/audio/drm/drmk/drmk.rbuild
reactos/hal/halarm/generic/generic.rbuild
reactos/hal/halarm/up/halup.rbuild
reactos/hal/halppc/generic/generic.rbuild
reactos/hal/halppc/up/halup.rbuild
reactos/hal/halx86/generic/generic.rbuild
reactos/hal/halx86/hal_generic.rbuild
reactos/hal/halx86/hal_generic_pc.rbuild
reactos/hal/halx86/hal_generic_up.rbuild
reactos/hal/halx86/halmp.rbuild
reactos/hal/halx86/halup.rbuild
reactos/hal/halx86/halxbox.rbuild
reactos/include/crt/mingw32/intrin.h
reactos/include/reactos/idl/idl.rbuild
reactos/lib/3rdparty/icu4ros/icu4ros.rbuild
reactos/lib/3rdparty/libwine/libwine.rbuild
reactos/lib/drivers/oskittcp/oskittcp.rbuild
reactos/lib/epsapi/epsapi.rbuild
reactos/lib/fslib/ext2lib/ext2lib.rbuild
reactos/lib/fslib/ntfslib/ntfslib.rbuild
reactos/lib/fslib/vfatlib/vfatlib.rbuild
reactos/lib/fslib/vfatxlib/vfatxlib.rbuild
reactos/lib/nls/idna/idna.rbuild
reactos/lib/nls/normalize/normalize.rbuild
reactos/lib/nls/scripts/scripts.rbuild
reactos/lib/ntdllsys/ntdllsys.rbuild
reactos/lib/sdk/crt/crt.rbuild
reactos/lib/sdk/dxguid/dxguid.rbuild
reactos/lib/sdk/nt/nt.rbuild
reactos/lib/sdk/strmiids/strmiids.rbuild
reactos/lib/sdk/uuid/uuid.rbuild
reactos/lib/smlib/smlib.rbuild
reactos/lib/win32ksys/win32ksys.rbuild
reactos/ntoskrnl/ntoskrnl-generic.rbuild
reactos/subsystems/csr/csrsrv/csrsrv.rbuild
reactos/subsystems/ntvdm/ntvdm.rbuild
reactos/subsystems/win32/csrss/win32csr/win32csr.rbuild
reactos/tools/rbuild/backend/mingw/mingw.cpp
reactos/tools/rbuild/backend/mingw/mingw.h
reactos/tools/rbuild/backend/mingw/modulehandler.cpp
reactos/tools/rbuild/backend/mingw/modulehandler.h
reactos/tools/rbuild/backend/mingw/rules.mak
reactos/tools/rbuild/compilerdirective.cpp [new file with mode: 0644]
reactos/tools/rbuild/compilerflag.cpp
reactos/tools/rbuild/define.cpp
reactos/tools/rbuild/include.cpp
reactos/tools/rbuild/module.cpp
reactos/tools/rbuild/pch.h
reactos/tools/rbuild/project.cpp
reactos/tools/rbuild/rbuild.dsp
reactos/tools/rbuild/rbuild.h
reactos/tools/rbuild/rbuild.mak
reactos/tools/rbuild/rbuild.vcproj

index 1ac53b3..7370bfa 100644 (file)
@@ -220,12 +220,14 @@ ifeq ($(HALFVERBOSEECHO),yes)
   ECHO_CC      =@echo $(QUOTE)[CC]       $<$(QUOTE)
   ECHO_HOSTCC  =@echo $(QUOTE)[HOST-CC]  $<$(QUOTE)
   ECHO_CL      =@echo $(QUOTE)[CL]       $<$(QUOTE)
-  ECHO_GAS     =@echo $(QUOTE)[GAS]      $<$(QUOTE)
+  ECHO_AS      =@echo $(QUOTE)[AS]       $<$(QUOTE)
   ECHO_NASM    =@echo $(QUOTE)[NASM]     $<$(QUOTE)
   ECHO_AR      =@echo $(QUOTE)[AR]       $@$(QUOTE)
   ECHO_HOSTAR  =@echo $(QUOTE)[HOST-AR]  $@$(QUOTE)
   ECHO_WINEBLD =@echo $(QUOTE)[WINEBLD]  $@$(QUOTE)
   ECHO_WRC     =@echo $(QUOTE)[WRC]      $@$(QUOTE)
+  ECHO_RC      =@echo $(QUOTE)[RC]       $@$(QUOTE)
+  ECHO_CVTRES  =@echo $(QUOTE)[CVTRES]   $@$(QUOTE)
   ECHO_WIDL    =@echo $(QUOTE)[WIDL]     $@$(QUOTE)
   ECHO_BIN2RES =@echo $(QUOTE)[BIN2RES]  $<$(QUOTE)
   ECHO_DLLTOOL =@echo $(QUOTE)[DLLTOOL]  $@$(QUOTE)
@@ -256,12 +258,14 @@ else
   ECHO_CPP     =
   ECHO_CC      =
   ECHO_HOSTCC  =
-  ECHO_GAS     =
+  ECHO_AS      =
   ECHO_NASM    =
   ECHO_AR      =
   ECHO_HOSTAR  =
   ECHO_WINEBLD =
   ECHO_WRC     =
+  ECHO_RC      =
+  ECHO_CVTRES  =
   ECHO_WIDL    =
   ECHO_BIN2RES =
   ECHO_DLLTOOL =
@@ -315,6 +319,7 @@ ifeq ($(TARGET_CPP),)
 endif
 gcc = $(Q)$(TARGET_CC)
 gpp = $(Q)$(TARGET_CPP)
+gas = $(Q)$(TARGET_CC) -x assembler-with-cpp
 ld = $(Q)$(PREFIX_)ld
 nm = $(Q)$(PREFIX_)nm
 objdump = $(Q)$(PREFIX_)objdump
index f4915c9..38310d6 100644 (file)
        <property name="VERSION_TARGET" value="NT52" />
 
        <if property="VERSION_TARGET" value="NT4">
-               <define name="WINVER" overridable="true">0x400</define>
+               <define name="WINVER">0x400</define>
                <define name="_WIN32_IE">0x600</define>
-               <define name="_WIN32_WINNT" overridable="true">0x400</define>
+               <define name="_WIN32_WINNT">0x400</define>
                <define name="_WIN32_WINDOWS">0x400</define>
                <define name="_SETUPAPI_VER">0x400</define>
        </if>
 
        <if property="VERSION_TARGET" value="NT5">
-               <define name="WINVER" overridable="true">0x500</define>
+               <define name="WINVER">0x500</define>
                <define name="_WIN32_IE">0x600</define>
-               <define name="_WIN32_WINNT" overridable="true">0x500</define>
+               <define name="_WIN32_WINNT">0x500</define>
                <define name="_WIN32_WINDOWS">0x500</define>
                <define name="_SETUPAPI_VER">0x500</define>
        </if>
 
        <if property="VERSION_TARGET" value="NT51">
-               <define name="WINVER" overridable="true">0x501</define>
+               <define name="WINVER">0x501</define>
                <define name="_WIN32_IE">0x600</define>
-               <define name="_WIN32_WINNT" overridable="true">0x501</define>
+               <define name="_WIN32_WINNT">0x501</define>
                <define name="_WIN32_WINDOWS">0x501</define>
                <define name="_SETUPAPI_VER">0x501</define>
        </if>
 
        <if property="VERSION_TARGET" value="NT52">
-               <define name="WINVER" overridable="true">0x502</define>
+               <define name="WINVER">0x502</define>
                <define name="_WIN32_IE">0x600</define>
-               <define name="_WIN32_WINNT" overridable="true">0x502</define>
+               <define name="_WIN32_WINNT">0x502</define>
                <define name="_WIN32_WINDOWS">0x502</define>
                <define name="_SETUPAPI_VER">0x502</define>
        </if>
 
        <if property="VERSION_TARGET" value="NT6">
-               <define name="WINVER" overridable="true">0x600</define>
+               <define name="WINVER">0x600</define>
                <define name="_WIN32_IE">0x600</define>
-               <define name="_WIN32_WINNT" overridable="true">0x600</define>
+               <define name="_WIN32_WINNT">0x600</define>
                <define name="_WIN32_WINDOWS">0x600</define>
                <define name="_SETUPAPI_VER">0x600</define>
        </if>
                <xi:include href="tools/tools.rbuild" />
        </directory>
 
-       <compilerflag compiler="cpp">-Wno-non-virtual-dtor</compilerflag>
+       <compilerflag compiler="cxx">-Wno-non-virtual-dtor</compilerflag>
 </group>
index 6b474c1..36d2d74 100644 (file)
@@ -3,7 +3,7 @@
 <module name="umpnpmgr" type="win32cui" installbase="system32" installname="umpnpmgr.exe" unicode="yes">
        <include base="umpnpmgr">.</include>
        <include base="pnp_server">.</include>
-       <define name="_WIN32_WINNT">0x600</define>
+       <redefine name="_WIN32_WINNT">0x600</redefine>
        <library>pnp_server</library>
        <library>ntdll</library>
        <library>kernel32</library>
index a417469..7dc44c1 100644 (file)
@@ -6,7 +6,6 @@
        <include base="zlib">.</include>
        <include base="inflib">.</include>
        <include base="ReactOS">include/reactos/drivers</include>
-       <define name="_DISABLE_TIDENTS" />
        <define name="__NO_CTYPE_INLINES" />
        <library>zlib</library>
        <library>inflib</library>
index 8f287f6..f2464ae 100644 (file)
@@ -2,7 +2,6 @@
 <!DOCTYPE module SYSTEM "../../../tools/rbuild/project.dtd">
 <module name="autochk" type="nativecui" installbase="system32" installname="autochk.exe">
        <include base="autochk">.</include>
-       <define name="_DISABLE_TIDENTS" />
        <library>nt</library>
        <library>ntdll</library>
        <file>autochk.c</file>
index 015b591..e305e15 100644 (file)
@@ -3,7 +3,6 @@
 <module name="smss" type="nativecui" installbase="system32" installname="smss.exe">
        <include base="smss">.</include>
        <include base="ReactOS">include/reactos/subsys</include>
-       <define name="_DISABLE_TIDENTS" />
        <library>nt</library>
        <library>smlib</library>
        <library>ntdll</library>
index dd49edc..325a559 100644 (file)
@@ -1,7 +1,6 @@
 <module name="dxtn" type="win32dll" entrypoint="0" installbase="system32" installname="dxtn.dll" allowwarnings="true" crt="msvcrt">
        <importlibrary definition="dxtn.spec" />
        <include base="dxtn">.</include>
-       <define name="__USE_W32API" />
        <file>fxt1.c</file>
        <file>dxtn.c</file>
        <file>wrapper.c</file>
index 7f3ff14..75ff5ac 100644 (file)
@@ -4,7 +4,7 @@
        <importlibrary definition="ncpa.spec" />
        <include base="ncpa">.</include>
 
-       <define name="_WIN32_WINNT">0x600</define>
+       <redefine name="_WIN32_WINNT">0x600</redefine>
 
        <library>kernel32</library>
        <library>advapi32</library>
index 3411607..f836a52 100644 (file)
@@ -3,7 +3,7 @@
        <importlibrary definition="amstream.spec" />
        <include base="amstream">.</include>
        <include base="ReactOS">include/reactos/wine</include>
-       <define name="_WIN32_WINNT">0x600</define>
+       <redefine name="_WIN32_WINNT">0x600</redefine>
        <define name="__WINESRC__" />
        <file>amstream.c</file>
        <file>main.c</file>
index 127853b..ceef78f 100644 (file)
@@ -3,7 +3,7 @@
 <module name="dinput" type="win32dll" baseaddress="${BASEADDRESS_DINPUT}" installbase="system32" installname="dinput.dll" unicode="yes">
        <autoregister infsection="OleControlDlls" type="DllRegisterServer" />
        <importlibrary definition="dinput.spec" />
-       <define name="_WIN32_WINNT">0x600</define>
+       <redefine name="_WIN32_WINNT">0x600</redefine>
        <include base="dinput">.</include>
        <include base="ReactOS">include/reactos/wine</include>
        <library>wine</library>
index 687473c..64a9d2e 100644 (file)
@@ -3,7 +3,7 @@
 <module name="dinput8" type="win32dll" entrypoint="0" baseaddress="${BASEADDRESS_DINPUT8}" installbase="system32" installname="dinput8.dll" unicode="yes">
        <autoregister infsection="OleControlDlls" type="DllRegisterServer" />
        <importlibrary definition="dinput8.spec" />
-       <define name="_WIN32_WINNT">0x600</define>
+       <redefine name="_WIN32_WINNT">0x600</redefine>
        <include base="dinput8">.</include>
        <include base="ReactOS">include/reactos/wine</include>
        <library>wine</library>
index 4d08625..5d28c91 100644 (file)
@@ -3,7 +3,7 @@
        <importlibrary definition="qedit.spec" />
        <include base="qedit">.</include>
        <include base="ReactOS">include/reactos/wine</include>
-       <define name="_WIN32_WINNT">0x600</define>
+       <redefine name="_WIN32_WINNT">0x600</redefine>
        <define name="__WINESRC__" />
        <file>main.c</file>
        <file>mediadet.c</file>
index 381bf1d..18d70e5 100644 (file)
@@ -6,7 +6,7 @@
        <importlibrary definition="quartz.spec" />
        <include base="quartz">.</include>
        <include base="ReactOS">include/reactos/wine</include>
-       <define name="_WIN32_WINNT">0x600</define>
+       <redefine name="_WIN32_WINNT">0x600</redefine>
        <library>wine</library>
        <library>uuid</library>
        <library>advapi32</library>
index 9f9b1c9..1a09e11 100644 (file)
@@ -40,4 +40,7 @@
        <file>viewport.c</file>
 
        <dependency>wineheaders</dependency>
+
+       <!-- See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38054#c7 -->
+       <compilerflag>-fno-unit-at-a-time</compilerflag>
 </module>
index d16f0c1..9d0f789 100644 (file)
@@ -2,7 +2,6 @@
 <!DOCTYPE module SYSTEM "../../../../tools/rbuild/project.dtd">
 <module name="wined3d" type="win32dll" installbase="system32" installname="wined3d.dll" allowwarnings ="true" crt="msvcrt">
        <importlibrary definition="wined3d.spec" />
-       <compilerflag compiler="cc">-Wno-format</compilerflag>
        <include base="wined3d">.</include>
        <include base="ReactOS">include/reactos/wine</include>
        <define name="__WINESRC__" />
index d21878b..31d033d 100644 (file)
@@ -3,7 +3,6 @@
 <module name="kbda1" type="keyboardlayout" entrypoint="0" installbase="system32" installname="kbda1.dll">
        <importlibrary definition="kbda1.spec" />
        <include base="ntoskrnl">include</include>
-       <define name="_DISABLE_TIDENTS" />
        <file>kbda1.c</file>
        <file>kbda1.rc</file>
 </module>
index b3a1cf5..4cf31cc 100644 (file)
@@ -3,7 +3,6 @@
 <module name="kbda2" type="keyboardlayout" entrypoint="0" installbase="system32" installname="kbda2.dll">
        <importlibrary definition="kbda2.spec" />
        <include base="ntoskrnl">include</include>
-       <define name="_DISABLE_TIDENTS" />
        <file>kbda2.c</file>
        <file>kbda2.rc</file>
 </module>
index 706f49e..9d7c0d0 100644 (file)
@@ -3,7 +3,6 @@
 <module name="kbda3" type="keyboardlayout" entrypoint="0" installbase="system32" installname="kbda3.dll">
        <importlibrary definition="kbda3.spec" />
        <include base="ntoskrnl">include</include>
-       <define name="_DISABLE_TIDENTS" />
        <file>kbda3.c</file>
        <file>kbda3.rc</file>
 </module>
index d077399..073cb69 100644 (file)
@@ -3,7 +3,6 @@
 <module name="kbdal" type="keyboardlayout" entrypoint="0" installbase="system32" installname="kbdal.dll">
        <importlibrary definition="kbdal.spec" />
        <include base="ntoskrnl">include</include>
-       <define name="_DISABLE_TIDENTS" />
        <file>kbdal.c</file>
        <file>kbdal.rc</file>
 </module>
index 4c3cece..5b05747 100644 (file)
@@ -3,7 +3,6 @@
 <module name="kbdarme" type="keyboardlayout" entrypoint="0" installbase="system32" installname="kbdarme.dll">
        <importlibrary definition="kbdarme.spec" />
        <include base="ntoskrnl">include</include>
-       <define name="_DISABLE_TIDENTS" />
        <file>kbdarme.c</file>
        <file>kbdarme.rc</file>
 </module>
index d4537a8..2564cce 100644 (file)
@@ -3,7 +3,6 @@
 <module name="kbdarmw" type="keyboardlayout" entrypoint="0" installbase="system32" installname="kbdarmw.dll">
        <importlibrary definition="kbdarmw.spec" />
        <include base="ntoskrnl">include</include>
-       <define name="_DISABLE_TIDENTS" />
        <file>kbdarmw.c</file>
        <file>kbdarmw.rc</file>
 </module>
index 4e68b5f..dc9396f 100644 (file)
@@ -3,7 +3,6 @@
 <module name="kbdaze" type="keyboardlayout" entrypoint="0" installbase="system32" installname="kbdaze.dll">
        <importlibrary definition="kbdaze.spec" />
        <include base="ntoskrnl">include</include>
-       <define name="_DISABLE_TIDENTS" />
        <file>kbdaze.c</file>
        <file>kbdaze.rc</file>
 </module>
index 9237dc3..bce7694 100644 (file)
@@ -3,7 +3,6 @@
 <module name="kbdazel" type="keyboardlayout" entrypoint="0" installbase="system32" installname="kbdazel.dll">
        <importlibrary definition="kbdazel.spec" />
        <include base="ntoskrnl">include</include>
-       <define name="_DISABLE_TIDENTS" />
        <file>kbdazel.c</file>
        <file>kbdazel.rc</file>
 </module>
index e6970dc..7e5eb92 100644 (file)
@@ -3,7 +3,6 @@
 <module name="kbdbe" type="keyboardlayout" entrypoint="0" installbase="system32" installname="kbdbe.dll">
        <importlibrary definition="kbdbe.spec" />
        <include base="ntoskrnl">include</include>
-       <define name="_DISABLE_TIDENTS" />
        <file>kbdbe.c</file>
        <file>kbdbe.rc</file>
 </module>
index 1c0ec90..544bb45 100644 (file)
@@ -3,7 +3,6 @@
 <module name="kbdbga" type="keyboardlayout" entrypoint="0" installbase="system32" installname="kbdbga.dll">
        <importlibrary definition="kbdbga.spec" />
        <include base="ntoskrnl">include</include>
-       <define name="_DISABLE_TIDENTS" />
        <file>kbdbga.c</file>
        <file>kbdbga.rc</file>
 </module>
index a7ff22d..8b55a01 100644 (file)
@@ -3,7 +3,6 @@
 <module name="kbdbgm" type="keyboardlayout" entrypoint="0" installbase="system32" installname="kbdbgm.dll">
        <importlibrary definition="kbdbgm.spec" />
        <include base="ntoskrnl">include</include>
-       <define name="_DISABLE_TIDENTS" />
        <file>kbdbgm.c</file>
        <file>kbdbgm.rc</file>
 </module>
index 1be0f36..63592e5 100644 (file)
@@ -3,7 +3,6 @@
 <module name="kbdbgt" type="keyboardlayout" entrypoint="0" installbase="system32" installname="kbdbgt.dll">
        <importlibrary definition="kbdbgt.spec" />
        <include base="ntoskrnl">include</include>
-       <define name="_DISABLE_TIDENTS" />
        <file>kbdbgt.c</file>
        <file>kbdbgt.rc</file>
 </module>
index 4124f94..21815ed 100644 (file)
@@ -3,7 +3,6 @@
 <module name="kbdblr" type="keyboardlayout" entrypoint="0" installbase="system32" installname="kbdblr.dll">
        <importlibrary definition="kbdblr.spec" />
        <include base="ntoskrnl">include</include>
-       <define name="_DISABLE_TIDENTS" />
        <file>kbdblr.c</file>
        <file>kbdblr.rc</file>
 </module>
index 245bc53..72ff9ab 100644 (file)
@@ -3,7 +3,6 @@
 <module name="kbdbr" type="keyboardlayout" entrypoint="0" installbase="system32" installname="kbdbr.dll">
        <importlibrary definition="kbdbr.spec" />
        <include base="ntoskrnl">include</include>
-       <define name="_DISABLE_TIDENTS" />
        <file>kbdbr.c</file>
        <file>kbdbr.rc</file>
 </module>
index b273739..a452a07 100644 (file)
@@ -3,7 +3,6 @@
 <module name="kbdbur" type="keyboardlayout" entrypoint="0" installbase="system32" installname="kbdbur.dll">
        <importlibrary definition="kbdbur.spec" />
        <include base="ntoskrnl">include</include>
-       <define name="_DISABLE_TIDENTS" />
        <file>kbdbur.c</file>
        <file>kbdbur.rc</file>
 </module>
index a599c0c..31a1183 100644 (file)
@@ -3,7 +3,6 @@
 <module name="kbdcan" type="keyboardlayout" entrypoint="0" installbase="system32" installname="kbdcan.dll">
        <importlibrary definition="kbdcan.spec" />
        <include base="ntoskrnl">include</include>
-       <define name="_DISABLE_TIDENTS" />
        <file>kbdcan.c</file>
        <file>kbdcan.rc</file>
 </module>
index 04d8b7f..32784f9 100644 (file)
@@ -3,7 +3,6 @@
 <module name="kbdcr" type="keyboardlayout" entrypoint="0" installbase="system32" installname="kbdcr.dll">
        <importlibrary definition="kbdcr.spec" />
        <include base="ntoskrnl">include</include>
-       <define name="_DISABLE_TIDENTS" />
        <file>kbdcr.c</file>
        <file>kbdcr.rc</file>
 </module>
index a1da582..639fbc8 100644 (file)
@@ -3,7 +3,6 @@
 <module name="kbdcz" type="keyboardlayout" entrypoint="0" installbase="system32" installname="kbdcz.dll">
        <importlibrary definition="kbdcz.spec" />
        <include base="ntoskrnl">include</include>
-       <define name="_DISABLE_TIDENTS" />
        <file>kbdcz.c</file>
        <file>kbdcz.rc</file>
 </module>
index 004eae0..01a3ed1 100644 (file)
@@ -3,7 +3,6 @@
 <module name="kbdcz1" type="keyboardlayout" entrypoint="0" installbase="system32" installname="kbdcz1.dll">
        <importlibrary definition="kbdcz1.spec" />
        <include base="ntoskrnl">include</include>
-       <define name="_DISABLE_TIDENTS" />
        <file>kbdcz1.c</file>
        <file>kbdcz1.rc</file>
 </module>
index 655cfa8..4c6337a 100644 (file)
@@ -3,7 +3,6 @@
 <module name="kbdda" type="keyboardlayout" entrypoint="0" installbase="system32" installname="kbdda.dll">
        <importlibrary definition="kbdda.spec" />
        <include base="ntoskrnl">include</include>
-       <define name="_DISABLE_TIDENTS" />
        <file>kbdda.c</file>
        <file>kbdda.rc</file>
 </module>
index c67a0a6..5acfd24 100644 (file)
@@ -3,7 +3,6 @@
 <module name="kbddv" type="keyboardlayout" entrypoint="0" installbase="system32" installname="kbddv.dll">
        <importlibrary definition="kbddv.spec" />
        <include base="ntoskrnl">include</include>
-       <define name="_DISABLE_TIDENTS" />
        <file>kbddv.c</file>
        <file>kbddv.rc</file>
 </module>
index fa3363c..b580af9 100644 (file)
@@ -3,7 +3,6 @@
 <module name="kbdes" type="keyboardlayout" entrypoint="0" installbase="system32" installname="kbdes.dll">
        <importlibrary definition="kbdes.spec" />
        <include base="ntoskrnl">include</include>
-       <define name="_DISABLE_TIDENTS" />
        <file>kbdes.c</file>
        <file>kbdes.rc</file>
 </module>
index f898f9b..b979a0c 100644 (file)
@@ -3,7 +3,6 @@
 <module name="kbdest" type="keyboardlayout" entrypoint="0" installbase="system32" installname="kbdest.dll">
        <importlibrary definition="kbdest.spec" />
        <include base="ntoskrnl">include</include>
-       <define name="_DISABLE_TIDENTS" />
        <file>kbdest.c</file>
        <file>kbdest.rc</file>
 </module>
index bd8a500..9459811 100644 (file)
@@ -3,7 +3,6 @@
 <module name="kbdfc" type="keyboardlayout" entrypoint="0" installbase="system32" installname="kbdfc.dll">
        <importlibrary definition="kbdfc.spec" />
        <include base="ntoskrnl">include</include>
-       <define name="_DISABLE_TIDENTS" />
        <file>kbdfc.c</file>
        <file>kbdfc.rc</file>
 </module>
index 4f6321f..1089de6 100644 (file)
@@ -3,7 +3,6 @@
 <module name="kbdfi" type="keyboardlayout" entrypoint="0" installbase="system32" installname="kbdfi.dll">
        <importlibrary definition="kbdfi.spec" />
        <include base="ntoskrnl">include</include>
-       <define name="_DISABLE_TIDENTS" />
        <file>kbdfi.c</file>
        <file>kbdfi.rc</file>
 </module>
index 048e121..f6319af 100644 (file)
@@ -3,7 +3,6 @@
 <module name="kbdfr" type="keyboardlayout" entrypoint="0" installbase="system32" installname="kbdfr.dll">
        <importlibrary definition="kbdfr.spec" />
        <include base="ntoskrnl">include</include>
-       <define name="_DISABLE_TIDENTS" />
        <file>kbdfr.c</file>
        <file>kbdfr.rc</file>
 </module>
index f69c36f..853dbb4 100644 (file)
@@ -3,7 +3,6 @@
 <module name="kbdgeo" type="keyboardlayout" entrypoint="0" installbase="system32" installname="kbdgeo.dll">
        <importlibrary definition="kbdgeo.spec" />
        <include base="ntoskrnl">include</include>
-       <define name="_DISABLE_TIDENTS" />
        <file>kbdgeo.c</file>
        <file>kbdgeo.rc</file>
 </module>
index 2f64740..684cdce 100644 (file)
@@ -3,7 +3,6 @@
 <module name="kbdgerg" type="keyboardlayout" entrypoint="0" installbase="system32" installname="kbdgerg.dll">
        <importlibrary definition="kbdgerg.spec" />
        <include base="ntoskrnl">include</include>
-       <define name="_DISABLE_TIDENTS" />
        <file>kbdgerg.c</file>
        <file>kbdgerg.rc</file>
 </module>
index 9c5c381..4b43e91 100644 (file)
@@ -3,7 +3,6 @@
 <module name="kbdgneo" type="keyboardlayout" entrypoint="0" installbase="system32" installname="kbdgneo.dll">
        <importlibrary definition="kbdgneo.spec" />
        <include base="ntoskrnl">include</include>
-       <define name="_DISABLE_TIDENTS" />
        <file>kbdgneo.c</file>
        <file>kbdgneo.rc</file>
 </module>
index dce5253..246cfb3 100644 (file)
@@ -3,7 +3,6 @@
 <module name="kbdgr" type="keyboardlayout" entrypoint="0" installbase="system32" installname="kbdgr.dll">
        <importlibrary definition="kbdgr.spec" />
        <include base="ntoskrnl">include</include>
-       <define name="_DISABLE_TIDENTS" />
        <file>kbdgr.c</file>
        <file>kbdgr.rc</file>
 </module>
index 6b67df6..e8978cf 100644 (file)
@@ -3,7 +3,6 @@
 <module name="kbdgrist" type="keyboardlayout" entrypoint="0" installbase="system32" installname="kbdgrist.dll">
        <importlibrary definition="kbdgrist.spec" />
        <include base="ntoskrnl">include</include>
-       <define name="_DISABLE_TIDENTS" />
        <file>kbdgrist.c</file>
        <file>kbdgrist.rc</file>
 </module>
index 1666ba7..32f2b71 100644 (file)
@@ -3,7 +3,6 @@
 <module name="kbdhe" type="keyboardlayout" entrypoint="0" installbase="system32" installname="kbdhe.dll">
        <importlibrary definition="kbdhe.spec" />
        <include base="ntoskrnl">include</include>
-       <define name="_DISABLE_TIDENTS" />
        <file>kbdhe.c</file>
        <file>kbdhe.rc</file>
 </module>
index 3a202ea..8320aa4 100644 (file)
@@ -3,7 +3,6 @@
 <module name="kbdheb" type="keyboardlayout" entrypoint="0" installbase="system32" installname="kbdheb.dll">
        <importlibrary definition="kbdheb.spec" />
        <include base="ntoskrnl">include</include>
-       <define name="_DISABLE_TIDENTS" />
        <file>kbdheb.c</file>
        <file>kbdheb.rc</file>
 </module>
index e99544b..dd1a3b6 100644 (file)
@@ -3,7 +3,6 @@
 <module name="kbdhu" type="keyboardlayout" entrypoint="0" installbase="system32" installname="kbdhu.dll">
        <importlibrary definition="kbdhu.spec" />
        <include base="ntoskrnl">include</include>
-       <define name="_DISABLE_TIDENTS" />
        <file>kbdhu.c</file>
        <file>kbdhu.rc</file>
 </module>
index 060fda6..c784c17 100644 (file)
@@ -3,7 +3,6 @@
 <module name="kbdic" type="keyboardlayout" entrypoint="0" installbase="system32" installname="kbdic.dll">
        <importlibrary definition="kbdic.spec" />
        <include base="ntoskrnl">include</include>
-       <define name="_DISABLE_TIDENTS" />
        <file>kbdic.c</file>
        <file>kbdic.rc</file>
 </module>
index 108c8af..bf312f1 100644 (file)
@@ -3,7 +3,6 @@
 <module name="kbdinasa" type="keyboardlayout" entrypoint="0" installbase="system32" installname="kbdinasa.dll">
        <importlibrary definition="kbdinasa.spec" />
        <include base="ntoskrnl">include</include>
-       <define name="_DISABLE_TIDENTS" />
        <file>kbdinasa.c</file>
        <file>kbdinasa.rc</file>
 </module>
index ab3ece5..72bd07d 100644 (file)
@@ -3,7 +3,6 @@
 <module name="kbdinben" type="keyboardlayout" entrypoint="0" installbase="system32" installname="kbdinben.dll">
        <importlibrary definition="kbdinben.spec" />
        <include base="ntoskrnl">include</include>
-       <define name="_DISABLE_TIDENTS" />
        <file>kbdinben.c</file>
        <file>kbdinben.rc</file>
 </module>
index 4fcd9dd..67b1104 100644 (file)
@@ -3,7 +3,6 @@
 <module name="kbdindev" type="keyboardlayout" entrypoint="0" installbase="system32" installname="kbdindev.dll">
        <importlibrary definition="kbdindev.spec" />
        <include base="ntoskrnl">include</include>
-       <define name="_DISABLE_TIDENTS" />
        <file>kbdindev.c</file>
        <file>kbdindev.rc</file>
 </module>
index 949c0c3..c584273 100644 (file)
@@ -3,7 +3,6 @@
 <module name="kbdinguj" type="keyboardlayout" entrypoint="0" installbase="system32" installname="kbdinguj.dll">
        <importlibrary definition="kbdinguj.spec" />
        <include base="ntoskrnl">include</include>
-       <define name="_DISABLE_TIDENTS" />
        <file>kbdinguj.c</file>
        <file>kbdinguj.rc</file>
 </module>
index e654261..4830413 100644 (file)
@@ -3,7 +3,6 @@
 <module name="kbdinmal" type="keyboardlayout" entrypoint="0" installbase="system32" installname="kbdinmal.dll">
        <importlibrary definition="kbdinmal.spec" />
        <include base="ntoskrnl">include</include>
-       <define name="_DISABLE_TIDENTS" />
        <file>kbdinmal.c</file>
        <file>kbdinmal.rc</file>
 </module>
index 01d5f2d..787f7d5 100644 (file)
@@ -3,7 +3,6 @@
 <module name="kbdir" type="keyboardlayout" entrypoint="0" installbase="system32" installname="kbdir.dll">
        <importlibrary definition="kbdir.spec" />
        <include base="ntoskrnl">include</include>
-       <define name="_DISABLE_TIDENTS" />
        <file>kbdir.c</file>
        <file>kbdir.rc</file>
 </module>
index de85dfe..136233a 100644 (file)
@@ -3,7 +3,6 @@
 <module name="kbdit" type="keyboardlayout" entrypoint="0" installbase="system32" installname="kbdit.dll">
        <importlibrary definition="kbdit.spec" />
        <include base="ntoskrnl">include</include>
-       <define name="_DISABLE_TIDENTS" />
        <file>kbdit.c</file>
        <file>kbdit.rc</file>
 </module>
index 96b5478..40e6b66 100644 (file)
@@ -3,7 +3,6 @@
 <module name="kbdja" type="keyboardlayout" entrypoint="0" installbase="system32" installname="kbdja.dll">
        <importlibrary definition="kbdja.spec" />
        <include base="ntoskrnl">include</include>
-       <define name="_DISABLE_TIDENTS" />
        <file>kbdja.c</file>
        <file>kbdja.rc</file>
 </module>
index 4ea0ded..3aba85c 100644 (file)
@@ -3,7 +3,6 @@
 <module name="kbdkaz" type="keyboardlayout" entrypoint="0" installbase="system32" installname="kbdkaz.dll">
        <importlibrary definition="kbdkaz.spec" />
        <include base="ntoskrnl">include</include>
-       <define name="_DISABLE_TIDENTS" />
        <file>kbdkaz.c</file>
        <file>kbdkaz.rc</file>
 </module>
index 19bcb0f..a448d4f 100644 (file)
@@ -3,7 +3,6 @@
 <module name="kbdko" type="keyboardlayout" entrypoint="0" installbase="system32" installname="kbdko.dll">
        <importlibrary definition="kbdko.spec" />
        <include base="ntoskrnl">include</include>
-       <define name="_DISABLE_TIDENTS" />
        <file>kbdko.c</file>
        <file>kbdko.rc</file>
 </module>
index c6dc9ff..543e4c2 100644 (file)
@@ -3,7 +3,6 @@
 <module name="kbdla" type="keyboardlayout" entrypoint="0" installbase="system32" installname="kbdla.dll">
        <importlibrary definition="kbdla.spec" />
        <include base="ntoskrnl">include</include>
-       <define name="_DISABLE_TIDENTS" />
        <file>kbdla.c</file>
        <file>kbdla.rc</file>
 </module>
index 20f79ff..e65ce45 100644 (file)
@@ -3,7 +3,6 @@
 <module name="kbdlt1" type="keyboardlayout" entrypoint="0" installbase="system32" installname="kbdlt1.dll" allowwarnings="true">
        <importlibrary definition="kbdlt1.spec" />
        <include base="ntoskrnl">include</include>
-       <define name="_DISABLE_TIDENTS" />
        <file>kbdlt1.c</file>
        <file>kbdlt1.rc</file>
 </module>
index d832f6b..20e5c90 100644 (file)
@@ -3,7 +3,6 @@
 <module name="kbdlv" type="keyboardlayout" entrypoint="0" installbase="system32" installname="kbdlv.dll">
        <importlibrary definition="kbdlv.spec" />
        <include base="ntoskrnl">include</include>
-       <define name="_DISABLE_TIDENTS" />
        <file>kbdlv.c</file>
        <file>kbdlv.rc</file>
 </module>
index dd11d03..f6d2ed5 100644 (file)
@@ -3,7 +3,6 @@
 <module name="kbdmac" type="keyboardlayout" entrypoint="0" installbase="system32" installname="kbdmac.dll">
        <importlibrary definition="kbdmac.spec" />
        <include base="ntoskrnl">include</include>
-       <define name="_DISABLE_TIDENTS" />
        <file>kbdmac.c</file>
        <file>kbdmac.rc</file>
 </module>
index 6ae67a4..6eab2d3 100644 (file)
@@ -3,7 +3,6 @@
 <module name="kbdne" type="keyboardlayout" entrypoint="0" installbase="system32" installname="kbdne.dll">
        <importlibrary definition="kbdne.spec" />
        <include base="ntoskrnl">include</include>
-       <define name="_DISABLE_TIDENTS" />
        <file>kbdne.c</file>
        <file>kbdne.rc</file>
 </module>
index 144cbac..49e0b73 100644 (file)
@@ -3,7 +3,6 @@
 <module name="kbdno" type="keyboardlayout" entrypoint="0" installbase="system32" installname="kbdno.dll">
        <importlibrary definition="kbdno.spec" />
        <include base="ntoskrnl">include</include>
-       <define name="_DISABLE_TIDENTS" />
        <file>kbdno.c</file>
        <file>kbdno.rc</file>
 </module>
index 1f8afcb..36b4b2e 100644 (file)
@@ -3,7 +3,6 @@
 <module name="kbdpl1" type="keyboardlayout" entrypoint="0" installbase="system32" installname="kbdpl1.dll">
        <importlibrary definition="kbdpl1.spec" />
        <include base="ntoskrnl">include</include>
-       <define name="_DISABLE_TIDENTS" />
        <file>kbdpl1.c</file>
        <file>kbdpl1.rc</file>
 </module>
index 1630eea..c8c4002 100644 (file)
@@ -3,7 +3,6 @@
 <module name="kbdpo" type="keyboardlayout" entrypoint="0" installbase="system32" installname="kbdpo.dll">
        <importlibrary definition="kbdpo.spec" />
        <include base="ntoskrnl">include</include>
-       <define name="_DISABLE_TIDENTS" />
        <file>kbdpo.c</file>
        <file>kbdpo.rc</file>
 </module>
index 7ea37f7..f8e7af6 100644 (file)
@@ -3,7 +3,6 @@
 <module name="kbdro" type="keyboardlayout" entrypoint="0" installbase="system32" installname="kbdro.dll">
        <importlibrary definition="kbdro.spec" />
        <include base="ntoskrnl">include</include>
-       <define name="_DISABLE_TIDENTS" />
        <file>kbdro.c</file>
        <file>kbdro.rc</file>
 </module>
index d49aebb..95a6641 100644 (file)
@@ -3,7 +3,6 @@
 <module name="kbdru" type="keyboardlayout" entrypoint="0" installbase="system32" installname="kbdru.dll">
        <importlibrary definition="kbdru.spec" />
        <include base="ntoskrnl">include</include>
-       <define name="_DISABLE_TIDENTS" />
        <file>kbdru.c</file>
        <file>kbdru.rc</file>
 </module>
index a71d3e8..150ebaf 100644 (file)
@@ -3,7 +3,6 @@
 <module name="kbdru1" type="keyboardlayout" entrypoint="0" installbase="system32" installname="kbdru1.dll">
        <importlibrary definition="kbdru1.spec" />
        <include base="ntoskrnl">include</include>
-       <define name="_DISABLE_TIDENTS" />
        <file>kbdru1.c</file>
        <file>kbdru1.rc</file>
 </module>
index 56cde30..4c5ac0c 100644 (file)
@@ -3,7 +3,6 @@
 <module name="kbdsg" type="keyboardlayout" entrypoint="0" installbase="system32" installname="kbdsg.dll">
        <importlibrary definition="kbdsg.spec" />
        <include base="ntoskrnl">include</include>
-       <define name="_DISABLE_TIDENTS" />
        <file>kbdsg.c</file>
        <file>kbdsg.rc</file>
 </module>
index 3792993..fb0a45c 100644 (file)
@@ -3,7 +3,6 @@
 <module name="kbdsk" type="keyboardlayout" entrypoint="0" installbase="system32" installname="kbdsk.dll">
        <importlibrary definition="kbdsk.spec" />
        <include base="ntoskrnl">include</include>
-       <define name="_DISABLE_TIDENTS" />
        <file>kbdsk.c</file>
        <file>kbdsk.rc</file>
 </module>
index 35ada29..8ff34ac 100644 (file)
@@ -3,7 +3,6 @@
 <module name="kbdsk1" type="keyboardlayout" entrypoint="0" installbase="system32" installname="kbdsk1.dll">
        <importlibrary definition="kbdsk1.spec" />
        <include base="ntoskrnl">include</include>
-       <define name="_DISABLE_TIDENTS" />
        <file>kbdsk1.c</file>
        <file>kbdsk1.rc</file>
 </module>
index 1645764..137fff9 100644 (file)
@@ -3,7 +3,6 @@
 <module name="kbdsw" type="keyboardlayout" entrypoint="0" installbase="system32" installname="kbdsw.dll">
        <importlibrary definition="kbdsw.spec" />
        <include base="ntoskrnl">include</include>
-       <define name="_DISABLE_TIDENTS" />
        <file>kbdsw.c</file>
        <file>kbdsw.rc</file>
 </module>
index 52e17cf..e6f23cd 100644 (file)
@@ -3,7 +3,6 @@
 <module name="kbdtat" type="keyboardlayout" entrypoint="0" installbase="system32" installname="kbdtat.dll">
        <importlibrary definition="kbdtat.spec" />
        <include base="ntoskrnl">include</include>
-       <define name="_DISABLE_TIDENTS" />
        <file>kbdtat.c</file>
        <file>kbdtat.rc</file>
 </module>
index 19c88fa..af6bbfe 100644 (file)
@@ -3,7 +3,6 @@
 <module name="kbdth0" type="keyboardlayout" entrypoint="0" installbase="system32" installname="kbdth0.dll">
        <importlibrary definition="kbdth0.spec" />
        <include base="ntoskrnl">include</include>
-       <define name="_DISABLE_TIDENTS" />
        <file>kbdth0.c</file>
        <file>kbdth0.rc</file>
 </module>
index cba8a7c..50a7679 100644 (file)
@@ -3,7 +3,6 @@
 <module name="kbdth1" type="keyboardlayout" entrypoint="0" installbase="system32" installname="kbdth1.dll">
        <importlibrary definition="kbdth1.spec" />
        <include base="ntoskrnl">include</include>
-       <define name="_DISABLE_TIDENTS" />
        <file>kbdth1.c</file>
        <file>kbdth1.rc</file>
 </module>
index bc12af6..b86aa31 100644 (file)
@@ -3,7 +3,6 @@
 <module name="kbdth2" type="keyboardlayout" entrypoint="0" installbase="system32" installname="kbdth2.dll">
        <importlibrary definition="kbdth2.spec" />
        <include base="ntoskrnl">include</include>
-       <define name="_DISABLE_TIDENTS" />
        <file>kbdth2.c</file>
        <file>kbdth2.rc</file>
 </module>
index 1488a51..e166f08 100644 (file)
@@ -3,7 +3,6 @@
 <module name="kbdth3" type="keyboardlayout" entrypoint="0" installbase="system32" installname="kbdth3.dll">
        <importlibrary definition="kbdth3.spec" />
        <include base="ntoskrnl">include</include>
-       <define name="_DISABLE_TIDENTS" />
        <file>kbdth3.c</file>
        <file>kbdth3.rc</file>
 </module>
index 0e51c02..56efedb 100644 (file)
@@ -3,7 +3,6 @@
 <module name="kbdtuf" type="keyboardlayout" entrypoint="0" installbase="system32" installname="kbdtuf.dll">
        <importlibrary definition="kbdtuf.spec" />
        <include base="ntoskrnl">include</include>
-       <define name="_DISABLE_TIDENTS" />
        <file>kbdtuf.c</file>
        <file>kbdtuf.rc</file>
 </module>
index 65de4c0..58281d9 100644 (file)
@@ -3,7 +3,6 @@
 <module name="kbdtuq" type="keyboardlayout" entrypoint="0" installbase="system32" installname="kbdtuq.dll">
        <importlibrary definition="kbdtuq.spec" />
        <include base="ntoskrnl">include</include>
-       <define name="_DISABLE_TIDENTS" />
        <file>kbdtuq.c</file>
        <file>kbdtuq.rc</file>
 </module>
index 0e627d4..ac8308b 100644 (file)
@@ -3,7 +3,6 @@
 <module name="kbduk" type="keyboardlayout" entrypoint="0" installbase="system32" installname="kbduk.dll">
        <importlibrary definition="kbduk.spec" />
        <include base="ntoskrnl">include</include>
-       <define name="_DISABLE_TIDENTS" />
        <file>kbduk.c</file>
        <file>kbduk.rc</file>
 </module>
index d12c966..3de9877 100644 (file)
@@ -3,7 +3,6 @@
 <module name="kbdur" type="keyboardlayout" entrypoint="0" installbase="system32" installname="kbdur.dll">
        <importlibrary definition="kbdur.spec" />
        <include base="ntoskrnl">include</include>
-       <define name="_DISABLE_TIDENTS" />
        <file>kbdur.c</file>
        <file>kbdur.rc</file>
 </module>
index 3248704..e92e369 100644 (file)
@@ -3,7 +3,6 @@
 <module name="kbdurs" type="keyboardlayout" entrypoint="0" installbase="system32" installname="kbdurs.dll">
        <importlibrary definition="kbdurs.spec" />
        <include base="ntoskrnl">include</include>
-       <define name="_DISABLE_TIDENTS" />
        <file>kbdurs.c</file>
        <file>kbdurs.rc</file>
 </module>
index 087d453..88b0f3c 100644 (file)
@@ -3,7 +3,6 @@
 <module name="kbdus" type="keyboardlayout" entrypoint="0" installbase="system32" installname="kbdus.dll">
        <importlibrary definition="kbdus.spec" />
        <include base="ntoskrnl">include</include>
-       <define name="_DISABLE_TIDENTS" />
        <file>kbdus.c</file>
        <file>kbdus.rc</file>
 </module>
index d38ccd1..74af468 100644 (file)
@@ -3,7 +3,6 @@
 <module name="kbdusa" type="keyboardlayout" entrypoint="0" installbase="system32" installname="kbdusa.dll">
        <importlibrary definition="kbdusa.spec" />
        <include base="ntoskrnl">include</include>
-       <define name="_DISABLE_TIDENTS" />
        <file>kbdusa.c</file>
        <file>kbdusa.rc</file>
 </module>
index 792c779..5cab9fa 100644 (file)
@@ -3,7 +3,6 @@
 <module name="kbdusl" type="keyboardlayout" entrypoint="0" installbase="system32" installname="kbdusl.dll">
        <importlibrary definition="kbdusl.spec" />
        <include base="ntoskrnl">include</include>
-       <define name="_DISABLE_TIDENTS" />
        <file>kbdusl.c</file>
        <file>kbdusl.rc</file>
 </module>
index 6ab80b1..5be9009 100644 (file)
@@ -3,7 +3,6 @@
 <module name="kbdusr" type="keyboardlayout" entrypoint="0" installbase="system32" installname="kbdusr.dll">
        <importlibrary definition="kbdusr.spec" />
        <include base="ntoskrnl">include</include>
-       <define name="_DISABLE_TIDENTS" />
        <file>kbdusr.c</file>
        <file>kbdusr.rc</file>
 </module>
index e23ca92..1cc3aa2 100644 (file)
@@ -3,7 +3,6 @@
 <module name="kbdusx" type="keyboardlayout" entrypoint="0" installbase="system32" installname="kbdusx.dll">
        <importlibrary definition="kbdusx.spec" />
        <include base="ntoskrnl">include</include>
-       <define name="_DISABLE_TIDENTS" />
        <file>kbdusx.c</file>
        <file>kbdusx.rc</file>
 </module>
index ba6fd5e..90a1166 100644 (file)
@@ -3,7 +3,6 @@
 <module name="kbduzb" type="keyboardlayout" entrypoint="0" installbase="system32" installname="kbduzb.dll">
        <importlibrary definition="kbduzb.spec" />
        <include base="ntoskrnl">include</include>
-       <define name="_DISABLE_TIDENTS" />
        <file>kbduzb.c</file>
        <file>kbduzb.rc</file>
 </module>
index 66c82a5..65566f9 100644 (file)
@@ -3,7 +3,6 @@
 <module name="kbdvntc" type="keyboardlayout" entrypoint="0" installbase="system32" installname="kbdvntc.dll">
        <importlibrary definition="kbdvntc.spec" />
        <include base="ntoskrnl">include</include>
-       <define name="_DISABLE_TIDENTS" />
        <file>kbdvntc.c</file>
        <file>kbdvntc.rc</file>
 </module>
index 2be63d9..36fe9bf 100644 (file)
@@ -3,7 +3,6 @@
 <module name="kbdycc" type="keyboardlayout" entrypoint="0" installbase="system32" installname="kbdycc.dll">
        <importlibrary definition="kbdycc.spec" />
        <include base="ntoskrnl">include</include>
-       <define name="_DISABLE_TIDENTS" />
        <file>kbdycc.c</file>
        <file>kbdycc.rc</file>
 </module>
index f79c1e7..f188c31 100644 (file)
@@ -3,7 +3,6 @@
 <module name="kbdycl" type="keyboardlayout" entrypoint="0" installbase="system32" installname="kbdycl.dll">
        <importlibrary definition="kbdycl.spec" />
        <include base="ntoskrnl">include</include>
-       <define name="_DISABLE_TIDENTS" />
        <file>kbdycl.c</file>
        <file>kbdycl.rc</file>
 </module>
index 9da6354..562fb5e 100644 (file)
@@ -2,9 +2,9 @@
 <!DOCTYPE module SYSTEM "../../../tools/rbuild/project.dtd">
 <module name="idndl" type="win32dll" installname="idndl.dll" entrypoint="0">
        <library>kernel32</library>
-       <compilerflag compiler="cpp">-fno-exceptions</compilerflag>
-       <compilerflag compiler="cpp">-fno-rtti</compilerflag>
-       <define name="WINVER">0x600</define>
+       <compilerflag compiler="cxx">-fno-exceptions</compilerflag>
+       <compilerflag compiler="cxx">-fno-rtti</compilerflag>
+       <redefine name="WINVER">0x600</redefine>
        <file>idndl.cpp</file>
        <importlibrary definition="idndl.def" />
 </module>
index b5826dc..1fb4dbf 100644 (file)
@@ -3,8 +3,8 @@
 <module name="idndl_redist" type="win32dll" installname="idndl_redist.dll" crt="libcntpr">
        <library>kernel32</library>
        <library>scripts</library>
-       <compilerflag compiler="cpp">-fno-exceptions</compilerflag>
-       <compilerflag compiler="cpp">-fno-rtti</compilerflag>
+       <compilerflag compiler="cxx">-fno-exceptions</compilerflag>
+       <compilerflag compiler="cxx">-fno-rtti</compilerflag>
        <linkerflag>--entry=0</linkerflag>
        <include base="icu4ros">icu/source/common</include>
        <include base="scripts">.</include>
index 2876cc0..7f37225 100644 (file)
@@ -9,8 +9,8 @@
        <library>idna</library>
        <library>normaliz_redist_data</library>
        <library>kernel32</library>
-       <compilerflag compiler="cpp">-fno-exceptions</compilerflag>
-       <compilerflag compiler="cpp">-fno-rtti</compilerflag>
+       <compilerflag compiler="cxx">-fno-exceptions</compilerflag>
+       <compilerflag compiler="cxx">-fno-rtti</compilerflag>
        <include base="icu4ros">icu/source/common</include>
        <importlibrary definition="normaliz.def" />
        <file>normaliz.cpp</file>
index 124e2e4..0ed2710 100644 (file)
@@ -11,7 +11,6 @@
                <include base="ntdll" root="intermediate"></include>
                <include base="ReactOS">include/reactos/subsys</include>
                <define name="__NTDLL__" />
-               <define name="_DISABLE_TIDENTS" />
                <define name="_NTOSKRNL_" />
                <define name="__NO_CTYPE_INLINES" />
                <library>rtl</library>
index bf1e94b..50e4872 100644 (file)
@@ -6,7 +6,7 @@
        <include base="lsa_client">.</include>
        <include base="eventlog_client">.</include>
 
-       <define name="_WIN32_WINNT">0x600</define>
+       <redefine name="_WIN32_WINNT">0x600</redefine>
 
        <define name="_ADVAPI32_" />
        <library>scm_client</library>
index e98915e..6bb3a5c 100644 (file)
@@ -7,7 +7,7 @@
        <include base="atl">.</include>
        <include base="ReactOS">include/reactos/wine</include>
        <define name="__WINESRC__" />
-       <define name="_WIN32_WINNT">0x600</define>
+       <redefine name="_WIN32_WINNT">0x600</redefine>
        <file>atl_ax.c</file>
        <file>atl_main.c</file>
        <file>registrar.c</file>
index 49e524c..864b133 100644 (file)
@@ -7,7 +7,7 @@
        <include base="avifil32">.</include>
        <include base="ReactOS">include/reactos/wine</include>
        <define name="__WINESRC__" />
-       <define name="_WIN32_WINNT">0x600</define>
+       <redefine name="_WIN32_WINNT">0x600</redefine>
        <file>acmstream.c</file>
        <file>api.c</file>
        <file>avifile.c</file>
index 881c743..8a3a289 100644 (file)
@@ -7,7 +7,7 @@
        <include base="ReactOS">include/reactos/wine</include>
        <include base="explorer_new">.</include>
        <define name="__WINESRC__" />
-       <define name="_WIN32_WINNT">0x600</define>
+       <redefine name="_WIN32_WINNT">0x600</redefine>
        <library>wine</library>
        <library>ole32</library>
        <library>user32</library>
index 1d936cb..8355869 100644 (file)
@@ -6,7 +6,7 @@
        <include base="comcat">.</include>
        <include base="ReactOS">include/reactos/wine</include>
        <define name="__WINESRC__" />
-       <define name="_WIN32_WINNT">0x600</define>
+       <redefine name="_WIN32_WINNT">0x600</redefine>
        <library>wine</library>
        <library>ole32</library>
        <library>user32</library>
index dbc5554..47d0fde 100644 (file)
@@ -2,7 +2,6 @@
        <importlibrary definition="crtdll.def" />
        <include base="crtdll">.</include>
        <include base="crt">include</include>
-       <define name="_DISABLE_TIDENTS" />
        <define name="USE_MSVCRT_PREFIX" />
        <define name="_MSVCRT_LIB_" />
        <define name="_MSVCRT_" />
index bb613bf..3c276b9 100644 (file)
@@ -3,7 +3,7 @@
        <include base="crypt32">.</include>
        <include base="ReactOS">include/reactos/wine</include>
        <define name="__WINESRC__" />
-       <define name="_WIN32_WINNT">0x600</define>
+       <redefine name="_WIN32_WINNT">0x600</redefine>
        <library>wine</library>
        <library>user32</library>
        <library>advapi32</library>
index d664f66..3f850f2 100644 (file)
@@ -1,7 +1,6 @@
 <module name="dhcpcsvc" type="win32dll" baseaddress="${BASEADDRESS_DHCPCSVC}" installbase="system32" installname="dhcpcsvc.dll">
        <importlibrary definition="dhcpcsvc.spec" />
        <include base="dhcpcsvc">include</include>
-       <define name="_DISABLE_TIDENTS" />
        <library>ntdll</library>
        <library>kernel32</library>
        <library>ws2_32</library>
index 9b65fc5..08acd54 100644 (file)
@@ -3,7 +3,6 @@
        <include base="dnsapi">include</include>
        <include base="adns">src</include>
        <include base="adns">adns_win32</include>
-       <define name="_DISABLE_TIDENTS" />
        <define name="ADNS_JGAA_WIN32" />
        <library>adns</library>
        <library>ntdll</library>
index 39170c3..c5a16d4 100644 (file)
@@ -1,7 +1,6 @@
 <module name="fmifs" type="win32dll" entrypoint="InitializeFmIfs@12" baseaddress="${BASEADDRESS_FMIFS}" installbase="system32" installname="fmifs.dll">
        <importlibrary definition="fmifs.spec" />
        <include base="fmifs">.</include>
-       <define name="_DISABLE_TIDENTS" />
        <library>ntdll</library>
        <library>kernel32</library>
        <file>chkdsk.c</file>
index e407d5a..ba5b650 100644 (file)
@@ -1,7 +1,6 @@
 <module name="gdi32" type="win32dll" baseaddress="${BASEADDRESS_GDI32}" installbase="system32" installname="gdi32.dll" unicode="yes" crt="dll" allowwarnings="true">
        <importlibrary definition="gdi32.spec" />
        <include base="gdi32">include</include>
-       <define name="_DISABLE_TIDENTS" />
        <define name="LANGPACK" />
        <library>user32</library>
        <library>kernel32</library>
index 13c9f76..abfce65 100644 (file)
@@ -8,7 +8,7 @@
        <include base="ReactOS">include/reactos/wine</include>
        <include base="ReactOS" root="intermediate">include/reactos</include>
        <define name="__WINESRC__" />
-       <define name="_WIN32_WINNT">0x600</define>
+       <redefine name="_WIN32_WINNT">0x600</redefine>
        <dependency>wineheaders</dependency>
        <file>chm.c</file>
        <file>content.c</file>
index c0cd3c6..2a15eb0 100644 (file)
@@ -6,7 +6,7 @@
        <include base="imm32">.</include>
        <include base="ReactOS">include/reactos/wine</include>
        <define name="__WINESRC__" />
-       <define name="_WIN32_WINNT">0x600</define>
+       <redefine name="_WIN32_WINNT">0x600</redefine>
        <file>imm.c</file>
        <file>version.rc</file>
        <library>wine</library>
index e47321f..a82aea1 100644 (file)
@@ -7,7 +7,7 @@
        <include base="inetcomm">.</include>
        <include base="ReactOS">include/reactos/wine</include>
        <define name="__WINESRC__" />
-       <define name="_WIN32_WINNT">0x600</define>
+       <redefine name="_WIN32_WINNT">0x600</redefine>
        <file>imaptransport.c</file>
        <file>inetcomm_main.c</file>
        <file>internettransport.c</file>
index cfcef82..a41d0c8 100644 (file)
@@ -4,7 +4,7 @@
        <include base="inseng">.</include>
        <include base="ReactOS">include/reactos/wine</include>
        <define name="__WINESRC__" />
-       <define name="_WIN32_WINNT">0x600</define>
+       <redefine name="_WIN32_WINNT">0x600</redefine>
        <file>inseng_main.c</file>
        <file>regsvr.c</file>
        <library>wine</library>
index 4f18caa..80c3d6c 100644 (file)
@@ -3,7 +3,7 @@
        <autoregister infsection="OleControlDlls" type="DllRegisterServer" />
        <importlibrary definition="jscript.spec" />
        <include base="jscript">.</include>
-       <include base="jscript" root="intermediate">.</include>
+       <include base="jscript" root="intermediate" compiler="rc">.</include>
        <include base="ReactOS">include/reactos/wine</include>
        <define name="__WINESRC__" />
        <define name="RPC_NO_WINDOWS_H" />
index 40fc2b3..be474c6 100644 (file)
@@ -6,8 +6,7 @@
                <include base="kernel32_base">include</include>
                <include base="ReactOS">include/reactos/subsys</include>
                <define name="_KERNEL32_" />
-               <define name="_DISABLE_TIDENTS" />
-               <define name="_WIN32_WINNT">0x0600</define>
+               <redefine name="_WIN32_WINNT">0x0600</redefine>
                <define name="__NO_CTYPE_INLINES" />
                <define name="NTDDI_VERSION">0x05020100</define>
                <dependency>errcodes</dependency>
                        </if>
                </directory>
 
-               <compilerflag compiler="cpp">-fno-exceptions</compilerflag>
-               <compilerflag compiler="cpp">-fno-rtti</compilerflag>
+               <compilerflag compiler="cxx">-fno-exceptions</compilerflag>
+               <compilerflag compiler="cxx">-fno-rtti</compilerflag>
 
                <directory name="misc">
                        <file>icustubs.cpp</file>
                <include base="kernel32">.</include>
                <include base="kernel32" root="intermediate">.</include>
                <include base="kernel32">include</include>
-               <define name="_DISABLE_TIDENTS" />
                <library>kernel32_base</library>
                <library>wine</library>
                <library>pseh</library>
index 6c9ebed..0ae57f3 100644 (file)
@@ -3,7 +3,7 @@
        <include base="localspl">.</include>
        <include base="ReactOS">include/reactos/wine</include>
        <define name="__WINESRC__" />
-       <define name="_WIN32_WINNT">0x600</define>
+       <redefine name="_WIN32_WINNT">0x600</redefine>
        <file>localmon.c</file>
        <file>localspl_main.c</file>
        <file>provider.c</file>
index 44d703b..317e522 100644 (file)
@@ -1,7 +1,6 @@
 <module name="lpk" type="win32dll" baseaddress="${BASEADDRESS_LPK}" installbase="system32" installname="lpk.dll" unicode="yes">
        <importlibrary definition="lpk.spec" />
        <include base="lpk">include</include>
-       <define name="_DISABLE_TIDENTS" />
        <define name="LANGPACK" />
        <library>ntdll</library>
        <library>kernel32</library>
index b53438c..20baacb 100644 (file)
@@ -7,7 +7,7 @@
        <include base="mlang">.</include>
        <include base="ReactOS">include/reactos/wine</include>
        <define name="__WINESRC__" />
-       <define name="_WIN32_WINNT">0x600</define>
+       <redefine name="_WIN32_WINNT">0x600</redefine>
        <file>mlang.c</file>
        <file>regsvr.c</file>
        <library>wine</library>
index aad46f2..32a5d02 100644 (file)
@@ -4,7 +4,7 @@
        <include base="msctf">.</include>
        <include base="ReactOS">include/reactos/wine</include>
        <define name="__WINESRC__" />
-       <define name="_WIN32_WINNT">0x600</define>
+       <redefine name="_WIN32_WINNT">0x600</redefine>
        <file>categorymgr.c</file>
        <file>context.c</file>
        <file>documentmgr.c</file>
index 06d8ac0..ead2dcb 100644 (file)
@@ -7,7 +7,7 @@
        <include base="mshtml">.</include>
        <include base="ReactOS">include/reactos/wine</include>
        <define name="__WINESRC__" />
-       <define name="_WIN32_WINNT">0x600</define>
+       <redefine name="_WIN32_WINNT">0x600</redefine>
        <file>conpoint.c</file>
        <file>dispex.c</file>
        <file>editor.c</file>
index 663ae89..a92bc40 100644 (file)
@@ -7,7 +7,7 @@
        <include base="msi">.</include>
        <include base="ReactOS">include/reactos/wine</include>
        <define name="__WINESRC__" />
-       <define name="_WIN32_WINNT">0x600</define>
+       <redefine name="_WIN32_WINNT">0x600</redefine>
        <file>action.c</file>
        <file>alter.c</file>
        <file>appsearch.c</file>
index 1e5e6ec..503eaf3 100644 (file)
@@ -7,8 +7,8 @@
        <include base="mstask">.</include>
        <include base="ReactOS">include/reactos/wine</include>
        <define name="__WINESRC__" />
-       <define name="WINVER">0x600</define>
-       <define name="_WIN32_WINNT">0x600</define>
+       <redefine name="WINVER">0x600</redefine>
+       <redefine name="_WIN32_WINNT">0x600</redefine>
        <file>factory.c</file>
        <file>mstask_main.c</file>
        <file>task.c</file>
index 1e05811..38e0c58 100644 (file)
@@ -2,7 +2,6 @@
        <importlibrary definition="msvcrt.def" />
        <include base="msvcrt">.</include>
        <include base="crt">include</include>
-       <define name="_DISABLE_TIDENTS" />
        <define name="USE_MSVCRT_PREFIX" />
        <define name="_MSVCRT_" />
        <define name="_MSVCRT_LIB_" />
index 13d93da..09bc907 100644 (file)
@@ -7,7 +7,7 @@
        <include base="msxml3" root="intermediate">.</include>
        <dependency>msxml3_v1</dependency>
        <define name="__WINESRC__" />
-       <define name="_WIN32_WINNT">0x601</define>
+       <redefine name="_WIN32_WINNT">0x601</redefine>
        <define name="LIBXML_STATIC" />
        <library>libxml2</library>
        <library>libxslt</library>
index e04fa19..8a80e31 100644 (file)
@@ -2,7 +2,7 @@
        <importlibrary definition="ntmarta.spec" />
        <include base="ntmarta">.</include>
        <define name="__WINESRC__" />
-       <define name="_WIN32_WINNT">0x600</define>
+       <redefine name="_WIN32_WINNT">0x600</redefine>
        <library>ntdll</library>
        <library>kernel32</library>
        <library>advapi32</library>
index 4298f36..ab90ff9 100644 (file)
@@ -7,7 +7,7 @@
        <include base="objsel">.</include>
        <include base="ReactOS">include/reactos/wine</include>
        <define name="__WINESRC__" />
-       <define name="_WIN32_WINNT">0x600</define>
+       <redefine name="_WIN32_WINNT">0x600</redefine>
        <library>wine</library>
        <library>ole32</library>
        <library>user32</library>
index 66221ec..a341cb2 100644 (file)
@@ -7,7 +7,7 @@
        <include base="ole32">.</include>
        <include base="ReactOS">include/reactos/wine</include>
        <define name="__WINESRC__" />
-       <define name="_WIN32_WINNT">0x600</define>
+       <redefine name="_WIN32_WINNT">0x600</redefine>
        <define name="_OLE32_" />
        <define name="ENTRY_PREFIX">OLE32_</define>
        <define name="PROXY_CLSID">CLSID_PSFactoryBuffer</define>
index fe4acf1..5d5c184 100644 (file)
@@ -8,7 +8,7 @@
        <include base="ReactOS">include/reactos/libs/libjpeg</include>
        <include base="ReactOS">include/reactos/wine</include>
        <define name="__WINESRC__" />
-       <define name="_WIN32_WINNT">0x600</define>
+       <redefine name="_WIN32_WINNT">0x600</redefine>
        <define name="PROXY_CLSID">CLSID_PSDispatch</define>
        <define name="COM_NO_WINDOWS_H"/>
        <define name="_OLEAUT32_"/>
index 6836100..96d6453 100644 (file)
@@ -1,6 +1,5 @@
 <module name="opengl32" type="win32dll" baseaddress="${BASEADDRESS_OPENGL32}" installbase="system32" installname="opengl32.dll" unicode="yes" crt="msvcrt">
        <importlibrary definition="opengl32.spec" />
-       <define name="_DISABLE_TIDENTS" />
        <library>ntdll</library>
        <library>kernel32</library>
        <library>gdi32</library>
index e79416c..8b32582 100644 (file)
@@ -3,7 +3,7 @@
         <include base="pdh">.</include>
         <include base="ReactOS">include/reactos/wine</include>
         <define name="__WINESRC__" />
-        <define name="_WIN32_WINNT">0x600</define>
+        <redefine name="_WIN32_WINNT">0x600</redefine>
         <library>wine</library>
         <library>kernel32</library>
         <library>ntdll</library>
index 2532d8e..dc87815 100644 (file)
@@ -2,7 +2,6 @@
        <importlibrary definition="psapi.spec" />
        <include base="psapi">.</include>
        <include base="psapi">include</include>
-       <define name="_DISABLE_TIDENTS" />
        <library>epsapi</library>
        <library>pseh</library>
        <library>ntdll</library>
index a903c55..4a12179 100644 (file)
@@ -1,7 +1,6 @@
 <module name="rasdlg" type="win32dll" baseaddress="${BASEADDRESS_RASDLG}" installbase="system32" installname="rasdlg.dll">
        <importlibrary definition="rasdlg.spec" />
        <include base="rasdlg">.</include>
-       <define name="_DISABLE_TIDENTS" />
        <library>wine</library>
        <library>kernel32</library>
        <library>ntdll</library>
index c2e6da7..c177d0e 100644 (file)
@@ -1,7 +1,6 @@
 <module name="rasman" type="win32dll" baseaddress="${BASEADDRESS_RASMAN}" installbase="system32" installname="rasman.dll">
        <importlibrary definition="rasman.spec" />
        <include base="rasman">.</include>
-       <define name="_DISABLE_TIDENTS" />
        <library>wine</library>
        <library>kernel32</library>
        <library>ntdll</library>
index ed098ad..b96c517 100644 (file)
@@ -3,7 +3,6 @@
 <group>
 <module name="riched20" type="win32dll" baseaddress="${BASEADDRESS_RICHED20}" installbase="system32" installname="riched20.dll" allowwarnings="true">
        <importlibrary definition="riched20.spec" />
-       <compilerflag compiler="cc">-Wno-format</compilerflag>
        <include base="riched20">.</include>
        <include base="ReactOS">include/reactos/wine</include>
        <define name="__WINESRC__" />
index a50ef3f..bdddd42 100644 (file)
@@ -3,7 +3,7 @@
        <importlibrary definition="rpcrt4.spec" />
        <include base="rpcrt4">.</include>
        <include base="ReactOS">include/reactos/wine</include>
-       <define name="_WIN32_WINNT">0x600</define>
+       <redefine name="_WIN32_WINNT">0x600</redefine>
        <define name="_RPCRT4_" />
        <define name="COM_NO_WINDOWS_H" />
        <define name="MSWMSG" />
index e5e0ba3..32c5727 100644 (file)
@@ -1,7 +1,6 @@
 <module name="samlib" type="win32dll" baseaddress="${BASEADDRESS_SAMLIB}" installbase="system32" installname="samlib.dll">
        <importlibrary definition="samlib.spec" />
        <include base="samlib">.</include>
-       <define name="_DISABLE_TIDENTS" />
        <library>ntdll</library>
        <library>kernel32</library>
        <library>advapi32</library>
index 76ab0c8..0c3c558 100644 (file)
@@ -6,7 +6,7 @@
        <include base="ReactOS">include/reactos/wine</include>
        <define name="_SHELL32_" />
        <define name="COM_NO_WINDOWS_H" />
-       <define name="_WIN32_WINNT">0x600</define>
+       <redefine name="_WIN32_WINNT">0x600</redefine>
        <library>wine</library>
        <library>uuid</library>
        <library>recyclebin</library>
index 8d42f9a..719baf6 100644 (file)
@@ -1,7 +1,6 @@
 <module name="shimgvw" type="win32dll" baseaddress="${BASEADDRESS_SHIMGVW}" installbase="system32" installname="shimgvw.dll">
        <importlibrary definition="shimgvw.spec" />
        <include base="shimgvw">.</include>
-       <define name="_DISABLE_TIDENTS" />
        <library>kernel32</library>
        <library>advapi32</library>
        <library>comctl32</library>
index fe27241..dc89c3e 100644 (file)
@@ -5,7 +5,7 @@
        <importlibrary definition="shlwapi.spec" />
        <include base="shlwapi">.</include>
        <include base="ReactOS">include/reactos/wine</include>
-       <define name="_WIN32_WINNT">0x600</define>
+       <redefine name="_WIN32_WINNT">0x600</redefine>
        <define name="__WINESRC__" />
        <file>assoc.c</file>
        <file>clist.c</file>
index b36561f..b4cb35e 100644 (file)
@@ -2,7 +2,6 @@
        <importlibrary definition="smdll.spec" />
        <include base="smdll">.</include>
        <include base="ReactOS">include/reactos/subsys</include>
-       <define name="_DISABLE_TIDENTS" />
        <library>smlib</library>
        <library>ntdll</library>
        <file>dllmain.c</file>
index 00eea41..78eafaa 100644 (file)
@@ -1,7 +1,6 @@
 <module name="twain_32" type="win32dll" baseaddress="${BASEADDRESS_TWAIN_32}" installbase="system32" installname="twain_32.dll" allowwarnings="true" crt="msvcrt">
        <importlibrary definition="twain_32.def" />
        <include base="twain_32">.</include>
-       <define name="_DISABLE_TIDENTS" />
        <library>wine</library>
        <library>ntdll</library>
        <library>kernel32</library>
index dbf7a0a..0a5dbda 100644 (file)
@@ -1,7 +1,6 @@
 <module name="uext2" type="win32dll" baseaddress="${BASEADDRESS_UEXT2}" installbase="system32" installname="uext2.dll">
        <importlibrary definition="uext2.def" />
        <include base="uext2">.</include>
-       <define name="_DISABLE_TIDENTS" />
        <library>ext2lib</library>
        <library>ntdll</library>
        <file>uext2.c</file>
index 2bc3e58..ed6e989 100644 (file)
@@ -1,7 +1,6 @@
 <module name="ufat" type="win32dll" baseaddress="${BASEADDRESS_UFAT}" installbase="system32" installname="ufat.dll">
        <importlibrary definition="ufat.def" />
        <include base="ufat">.</include>
-       <define name="_DISABLE_TIDENTS" />
        <library>vfatlib</library>
        <library>ntdll</library>
        <file>ufat.c</file>
index b3a721f..b99f238 100644 (file)
@@ -1,7 +1,6 @@
 <module name="ufatx" type="win32dll" entrypoint="0" baseaddress="${BASEADDRESS_UFAT}" installbase="system32" installname="ufatx.dll">
        <importlibrary definition="ufatx.def" />
        <include base="ufatx">.</include>
-       <define name="_DISABLE_TIDENTS" />
        <library>vfatxlib</library>
        <library>ntdll</library>
        <file>ufatx.rc</file>
index 5a57c7a..fa62099 100644 (file)
@@ -1,7 +1,6 @@
 <module name="untfs" type="win32dll" baseaddress="${BASEADDRESS_UNTFS}" installbase="system32" installname="untfs.dll">
        <importlibrary definition="untfs.def" />
        <include base="untfs">.</include>
-       <define name="_DISABLE_TIDENTS" />
        <library>ntfslib</library>
        <library>ntdll</library>
        <file>untfs.c</file>
index 0c92317..2a6525e 100644 (file)
@@ -7,7 +7,7 @@
        <include base="urlmon">.</include>
        <include base="ReactOS">include/reactos/wine</include>
        <define name="__WINESRC__" />
-       <define name="_WIN32_WINNT">0x600</define>
+       <redefine name="_WIN32_WINNT">0x600</redefine>
        <file>bindctx.c</file>
        <file>binding.c</file>
        <file>bindprot.c</file>
index 51dee24..de0f8d3 100644 (file)
@@ -3,7 +3,6 @@
        <include base="user32">.</include>
        <include base="user32">include</include>
        <include base="ReactOS">include/reactos/subsys</include>
-       <define name="_DISABLE_TIDENTS" />
        <library>wine</library>
        <library>gdi32</library>
        <library>kernel32</library>
index 21f1734..09fa7a6 100644 (file)
@@ -2,7 +2,6 @@
        <importlibrary definition="winspool.spec" />
        <include base="winspool">.</include>
        <include base="ReactOS">include/reactos/wine</include>
-       <define name="_DISABLE_TIDENTS" />
        <library>ntdll</library>
        <library>kernel32</library>
        <library>advapi32</library>
index 38197cf..849ed1c 100644 (file)
@@ -2,7 +2,6 @@
        <importlibrary definition="ws2_32.spec" />
        <include base="ws2_32">include</include>
        <include base="ReactOS">include/reactos/wine</include>
-       <define name="_DISABLE_TIDENTS" />
        <define name="LE" />
        <library>wine</library>
        <library>ntdll</library>
index 6f3a0a6..79378b0 100644 (file)
@@ -1,7 +1,6 @@
 <module name="ws2help" type="win32dll" baseaddress="${BASEADDRESS_WS2HELP}" installbase="system32" installname="ws2help.dll" unicode="yes">
        <importlibrary definition="ws2help.def" />
        <include base="ws2help">.</include>
-       <define name="_DISABLE_TIDENTS" />
        <library>ntdll</library>
        <library>kernel32</library>
        <library>ws2_32</library>
index 530cc21..2e2fe61 100644 (file)
@@ -1,7 +1,6 @@
 <module name="wshirda" type="win32dll" baseaddress="${BASEADDRESS_WSHIRDA}" installbase="system32" installname="wshirda.dll" unicode="yes">
        <importlibrary definition="wshirda.spec" />
        <include base="wshirda">.</include>
-       <define name="_DISABLE_TIDENTS" />
        <library>ntdll</library>
        <library>kernel32</library>
        <library>ws2_32</library>
index 3b85106..bca3990 100644 (file)
@@ -4,7 +4,7 @@
        <include base="wuapi">.</include>
        <include base="ReactOS">include/reactos/wine</include>
        <define name="__WINESRC__" />
-       <define name="_WIN32_WINNT">0x600</define>
+       <redefine name="_WIN32_WINNT">0x600</redefine>
        <file>downloader.c</file>
        <file>installer.c</file>
        <file>main.c</file>
index 9282be2..b7bd1d0 100644 (file)
@@ -4,7 +4,6 @@
 installbase="system32/drivers" installname="dxapi.sys">
        <importlibrary definition="dxapi.spec" />
        <include base="dxapi">.</include>
-       <define name="__USE_W32API" />
        <define name="_DXAPI_" />
        <library>ntoskrnl</library>
        <library>hal</library>
index 4fbb8c1..4bf33cb 100644 (file)
@@ -4,7 +4,6 @@
 installbase="system32/drivers" installname="dxgthk.sys">
        <importlibrary definition="dxgthk.spec" />
        <include base="dxgthk">.</include>
-       <define name="__USE_W32API" />
        <library>win32k</library>
        <file>main.c</file>
        <file>dxgthk.rc</file>
index cecef35..6f9b500 100644 (file)
@@ -4,6 +4,8 @@
        <bootstrap installbase="$(CDOUTPUT)" />
        <include base="uniata">.</include>
        <include base="uniata">inc</include>
+       <compilerflag compiler="cxx">-fno-exceptions</compilerflag>
+       <compilerflag compiler="cxx">-fno-rtti</compilerflag>
        <!-- define name="_DEBUG" /-->
        <library>ntoskrnl</library>
        <library>hal</library>
index 8cc3b71..6d1cfe8 100644 (file)
@@ -3,6 +3,8 @@
 <module name="mpu401" type="kernelmodedriver" installbase="system32/drivers" installname="mpu401.sys" allowwarnings="true">
        <include base="mpu401">.</include>
        <include base="mpu401">..</include>
+       <compilerflag compiler="cxx">-fno-exceptions</compilerflag>
+       <compilerflag compiler="cxx">-fno-rtti</compilerflag>
        <library>ntoskrnl</library>
        <library>portcls</library>
        <file>mpu401.rc</file>
index c8ad81a..33f6c8f 100644 (file)
@@ -4,6 +4,8 @@
        <include base="drmk">.</include>
        <include base="drmk">..</include>
        <include base="drmk">../include</include>
+       <compilerflag compiler="cxx">-fno-exceptions</compilerflag>
+       <compilerflag compiler="cxx">-fno-rtti</compilerflag>
        <importlibrary definition="drmk.spec" />
        <library>ntoskrnl</library>
        <define name="BUILDING_DRMK" />
index a68b11e..5f4ec64 100644 (file)
@@ -3,7 +3,6 @@
 <module name="halarm_generic" type="objectlibrary">
        <include base="halarm_generic">../include</include>
        <include base="ntoskrnl">include</include>
-       <define name="_DISABLE_TIDENTS" />
        <define name="_NTHAL_" />
        <file>hal.c</file>
        <pch>../include/hal.h</pch>
index 6f4179d..00b6da4 100644 (file)
@@ -5,7 +5,6 @@
        <bootstrap installbase="$(CDOUTPUT)" nameoncd="hal.dll" />
        <include base="halarm_generic">../include</include>
        <include base="ntoskrnl">include</include>
-       <define name="_DISABLE_TIDENTS" />
        <define name="_NTHAL_" />
        <library>halarm_generic</library>
        <library>ntoskrnl</library>
index 190ac67..e105231 100644 (file)
@@ -3,7 +3,6 @@
 <module name="halppc_generic" type="objectlibrary">
        <include base="halppc_generic">../include</include>
        <include base="ntoskrnl">include</include>
-       <define name="_DISABLE_TIDENTS" />
        <define name="_NTHAL_" />
        <file>beep.c</file>
        <file>bus.c</file>
index e834b31..fde7583 100644 (file)
@@ -5,7 +5,6 @@
        <bootstrap installbase="$(CDOUTPUT)" nameoncd="hal.dll" />
        <include base="halppc_generic">../include</include>
        <include base="ntoskrnl">include</include>
-       <define name="_DISABLE_TIDENTS" />
        <define name="_NTHAL_" />
        <library>halppc_generic</library>
        <library>ntoskrnl</library>
index a89f6f6..e2fb683 100644 (file)
@@ -4,7 +4,6 @@
        <module name="hal_generic" type="objectlibrary">
                <include base="hal_generic">../include</include>
                <include base="ntoskrnl">include</include>
-               <define name="_DISABLE_TIDENTS" />
                <define name="_NTHAL_" />
                <file>beep.c</file>
                <file>bios.c</file>
@@ -27,7 +26,6 @@
        <module name="hal_generic_up" type="objectlibrary">
                <include base="hal_generic_up">../include</include>
                <include base="ntoskrnl">include</include>
-               <define name="_DISABLE_TIDENTS" />
                <define name="_NTHAL_" />
                <file>irq.S</file>
                <file>processor.c</file>
@@ -36,7 +34,6 @@
        <module name="hal_generic_pc" type="objectlibrary">
                <include base="hal_generic_pc">../include</include>
                <include base="ntoskrnl">include</include>
-               <define name="_DISABLE_TIDENTS" />
                <define name="_NTHAL_" />
                <file>pci.c</file>
        </module>
index 0c680aa..ce26242 100644 (file)
@@ -4,7 +4,6 @@
        <module name="hal_generic" type="objectlibrary">
                <include>include</include>
                <include base="ntoskrnl">include</include>
-               <define name="_DISABLE_TIDENTS" />
                <define name="_NTHAL_" />
                <directory name="generic">
                        <file>beep.c</file>
index 3571a42..576aa28 100644 (file)
@@ -4,7 +4,6 @@
        <module name="hal_generic_pc" type="objectlibrary">
                <include>include</include>
                <include base="ntoskrnl">include</include>
-               <define name="_DISABLE_TIDENTS" />
                <define name="_NTHAL_" />
                <directory name="generic">
                        <file>pci.c</file>
index abb58c3..11fb20e 100644 (file)
@@ -4,7 +4,6 @@
        <module name="hal_generic_up" type="objectlibrary">
                <include>include</include>
                <include base="ntoskrnl">include</include>
-               <define name="_DISABLE_TIDENTS" />
                <define name="_NTHAL_" />
                <directory name="generic">
                        <file>irq.S</file>
index d806406..9ba7c68 100644 (file)
@@ -6,7 +6,6 @@
                <bootstrap installbase="$(CDOUTPUT)" />
                <include>include</include>
                <include base="ntoskrnl">include</include>
-               <define name="_DISABLE_TIDENTS" />
                <define name="CONFIG_SMP" />
                <define name="_NTHAL_" />
                <library>hal_generic</library>
index 26ed546..319db42 100644 (file)
@@ -6,7 +6,6 @@
                <bootstrap installbase="$(CDOUTPUT)" />
                <include>include</include>
                <include base="ntoskrnl">include</include>
-               <define name="_DISABLE_TIDENTS" />
                <define name="_NTHAL_" />
                <library>hal_generic</library>
                <library>hal_generic_up</library>
index 396b1fc..c842c31 100644 (file)
@@ -5,7 +5,6 @@
                <importlibrary base="hal" definition="hal.pspec" />
                <include>include</include>
                <include base="ntoskrnl">include</include>
-               <define name="_DISABLE_TIDENTS" />
                <define name="_NTHAL_" />
                <define name="SARCH_XBOX" />
                <library>hal_generic</library>
index c04cd2f..76e4dd2 100644 (file)
@@ -28,6 +28,8 @@
 #ifndef KJK_INTRIN_H_
 #define KJK_INTRIN_H_
 
+#ifndef RC_INVOKED
+
 #ifndef __GNUC__
 #error Unsupported compiler
 #endif
@@ -93,4 +95,6 @@
 
 #endif
 
+#endif
+
 /* EOF */
index d46450e..3746bbe 100644 (file)
@@ -2,11 +2,11 @@
 <!DOCTYPE group SYSTEM "../../../tools/rbuild/project.dtd">
 <group>
 <module name="pnp_server" type="rpcserver">
-       <define name="_WIN32_WINNT">0x600</define>
+       <redefine name="_WIN32_WINNT">0x600</redefine>
        <file>pnp.idl</file>
 </module>
 <module name="pnp_client" type="rpcclient">
-       <define name="_WIN32_WINNT">0x600</define>
+       <redefine name="_WIN32_WINNT">0x600</redefine>
        <file>pnp.idl</file>
 </module>
 <module name="scm_server" type="rpcserver">
index 2634068..a263af5 100644 (file)
@@ -5,8 +5,8 @@
        <define name="U_HAVE_INTTYPES_H" />
        <define name="UCONFIG_NO_FILE_IO">1</define>
        <define name="ICU_NO_USER_DATA_OVERRIDE">1</define>
-       <compilerflag compiler="cpp">-fno-exceptions</compilerflag>
-       <compilerflag compiler="cpp">-fno-rtti</compilerflag>
+       <compilerflag compiler="cxx">-fno-exceptions</compilerflag>
+       <compilerflag compiler="cxx">-fno-rtti</compilerflag>
        <include base="icu4ros">icu/source/common</include>
        <include base="icu4ros">icu/source/i18n</include>
        <file>stubs.cpp</file>
index f12b530..3b139cf 100644 (file)
@@ -3,7 +3,6 @@
 <group>
 <module name="wine" type="staticlibrary">
        <include base="ReactOS">include/reactos/wine</include>
-       <define name="_DISABLE_TIDENTS" />
        <define name="__WINESRC__" />
        <file>config.c</file>
        <file>debug_ros.c</file>
@@ -12,7 +11,6 @@
 </module>
 <module name="wineldr" type="staticlibrary">
        <include base="ReactOS">include/reactos/wine</include>
-       <define name="_DISABLE_TIDENTS" />
        <define name="__WINESRC__" />
        <file>loader.c</file>
 </module>
index 35bdebd..809ccf6 100644 (file)
@@ -3,7 +3,6 @@
 <module name="oskittcp" type="staticlibrary">
        <define name="__NTDRIVER__"/>
        <define name="KERNEL"/>
-       <define name="_DISABLE_TIDENTS"/>
        <define name="__NO_CTYPE_INLINES" />
        <include base="oskittcp">include/freebsd</include>
        <include base="oskittcp">include/freebsd/sys/include</include>
index 2ed79fd..787b716 100644 (file)
@@ -1,7 +1,6 @@
 <?xml version="1.0"?>
 <!DOCTYPE module SYSTEM "../../tools/rbuild/project.dtd">
 <module name="epsapi" type="objectlibrary">
-       <define name="_DISABLE_TIDENTS" />
        <directory name="enum">
                <file>drivers.c</file>
                <file>modules.c</file>
index affa25a..853d7f2 100644 (file)
@@ -2,7 +2,6 @@
 <!DOCTYPE module SYSTEM "../../../tools/rbuild/project.dtd">
 <module name="ext2lib" type="staticlibrary">
        <include base="ext2lib">.</include>
-       <define name="_DISABLE_TIDENTS" />
        <file>Badblock.c</file>
        <file>Bitmap.c</file>
        <file>Disk.c</file>
index 345246d..40edefe 100644 (file)
@@ -2,6 +2,5 @@
 <!DOCTYPE module SYSTEM "../../../tools/rbuild/project.dtd">
 <module name="ntfslib" type="staticlibrary">
        <include base="ntfslib">.</include>
-       <define name="_DISABLE_TIDENTS" />
        <file>ntfslib.c</file>
 </module>
\ No newline at end of file
index f84c671..1d40958 100644 (file)
@@ -2,7 +2,6 @@
 <!DOCTYPE module SYSTEM "../../../tools/rbuild/project.dtd">
 <module name="vfatlib" type="staticlibrary">
        <include base="vfatlib">.</include>
-       <define name="_DISABLE_TIDENTS" />
        <file>fat12.c</file>
        <file>fat16.c</file>
        <file>fat32.c</file>
index 5ba66aa..bc7736c 100644 (file)
@@ -2,7 +2,6 @@
 <!DOCTYPE module SYSTEM "../../../tools/rbuild/project.dtd">
 <module name="vfatxlib" type="staticlibrary">
        <include base="vfatxlib">.</include>
-       <define name="_DISABLE_TIDENTS" />
        <file>fatx.c</file>
        <file>vfatxlib.c</file>
 </module>
index 3409d52..5b32d70 100644 (file)
@@ -3,10 +3,10 @@
 <module name="idna" type="staticlibrary">
        <library>icu4ros</library>
 
-       <define name="WINVER">0x600</define>
+       <redefine name="WINVER">0x600</redefine>
 
-       <compilerflag compiler="cpp">-fno-exceptions</compilerflag>
-       <compilerflag compiler="cpp">-fno-rtti</compilerflag>
+       <compilerflag compiler="cxx">-fno-exceptions</compilerflag>
+       <compilerflag compiler="cxx">-fno-rtti</compilerflag>
        <include base="icu4ros">icu/source/common</include>
        <file>idna.cpp</file>
        <file>nameprep.cpp</file>
index ddee907..8e581f3 100644 (file)
@@ -2,11 +2,9 @@
 <!DOCTYPE module SYSTEM "../../../tools/rbuild/project.dtd">
 <module name="normalize" type="staticlibrary">
        <library>icu4ros</library>
-
-       <define name="WINVER">0x600</define>
-
-       <compilerflag compiler="cpp">-fno-exceptions</compilerflag>
-       <compilerflag compiler="cpp">-fno-rtti</compilerflag>
+       <redefine name="WINVER">0x600</redefine>
+       <compilerflag compiler="cxx">-fno-exceptions</compilerflag>
+       <compilerflag compiler="cxx">-fno-rtti</compilerflag>
        <include base="icu4ros">icu/source/common</include>
        <file>normalize.cpp</file>
 </module>
index a169418..669e2ed 100644 (file)
@@ -2,11 +2,9 @@
 <!DOCTYPE module SYSTEM "../../../tools/rbuild/project.dtd">
 <module name="scripts" type="staticlibrary">
        <library>icu4ros</library>
-
-       <define name="WINVER">0x600</define>
-
-       <compilerflag compiler="cpp">-fno-exceptions</compilerflag>
-       <compilerflag compiler="cpp">-fno-rtti</compilerflag>
+       <redefine name="WINVER">0x600</redefine>
+       <compilerflag compiler="cxx">-fno-exceptions</compilerflag>
+       <compilerflag compiler="cxx">-fno-rtti</compilerflag>
        <include base="icu4ros">icu/source/common</include>
        <file>scripts.cpp</file>
 </module>
index 07d6b62..920dc14 100644 (file)
@@ -1,7 +1,6 @@
 <?xml version="1.0"?>
 <!DOCTYPE module SYSTEM "../../tools/rbuild/project.dtd">
 <module name="ntdllsys" type="staticlibrary">
-       <define name="_DISABLE_TIDENTS" />
        <directory name="." root="intermediate">
                <file>ntdll.S</file>
        </directory>
index c8c1910..cd08f31 100644 (file)
@@ -19,7 +19,6 @@
        <library>chkstk</library>
        <include base="crt">.</include>
        <include base="crt">include</include>
-       <define name="_DISABLE_TIDENTS" />
        <define name="__MINGW_IMPORT">extern</define>
        <define name="USE_MSVCRT_PREFIX" />
        <define name="_MSVCRT_LIB_" />
index 5e73ad4..9a6a6c4 100644 (file)
@@ -1,6 +1,5 @@
 <?xml version="1.0"?>
 <!DOCTYPE module SYSTEM "../../../tools/rbuild/project.dtd">
 <module name="dxguid" type="staticlibrary">
-       <define name="_DISABLE_TIDENTS" />
        <file>dxguid-mingw.c</file>
 </module>
index 93957d3..5a8ed05 100644 (file)
@@ -1,6 +1,5 @@
 <?xml version="1.0"?>
 <!DOCTYPE module SYSTEM "../../../tools/rbuild/project.dtd">
 <module name="nt" type="staticlibrary">
-       <define name="_DISABLE_TIDENTS" />
        <file>entry_point.c</file>
 </module>
index 4fdde36..046ff2a 100644 (file)
@@ -1,6 +1,5 @@
 <?xml version="1.0"?>
 <!DOCTYPE module SYSTEM "../../../tools/rbuild/project.dtd">
 <module name="strmiids" type="staticlibrary">
-       <define name="_DISABLE_TIDENTS" />
        <file>strmiids.c</file>
 </module>
index 6326513..6c68748 100644 (file)
@@ -2,6 +2,5 @@
 <!DOCTYPE module SYSTEM "../../../tools/rbuild/project.dtd">
 <module name="uuid" type="staticlibrary">
        <include base="ReactOS">include/reactos/wine</include>
-       <define name="_DISABLE_TIDENTS" />
        <file>uuid.c</file>
 </module>
index 4e0eb78..733ff2f 100644 (file)
@@ -3,7 +3,6 @@
 <module name="smlib" type="staticlibrary">
        <include base="smlib">.</include>
        <include base="ReactOS">include/reactos/subsys</include>
-       <define name="_DISABLE_TIDENTS" />
        <file>connect.c</file>
        <file>execpgm.c</file>
        <file>compses.c</file>
index 65accf1..4ada178 100644 (file)
@@ -1,7 +1,6 @@
 <?xml version="1.0"?>
 <!DOCTYPE module SYSTEM "../../tools/rbuild/project.dtd">
 <module name="win32ksys" type="staticlibrary">
-       <define name="_DISABLE_TIDENTS" />
        <directory name="." root="intermediate">
                <file>win32k.S</file>
        </directory>
index 273e482..18cefa3 100644 (file)
@@ -3,7 +3,6 @@
 <group xmlns:xi="http://www.w3.org/2001/XInclude">
        <bootstrap installbase="$(CDOUTPUT)" />
        <importlibrary definition="ntoskrnl.pspec" />
-       <define name="_DISABLE_TIDENTS" />
        <define name="__NTOSKRNL__" />
        <define name="_NTOSKRNL_" />
        <define name="_NTSYSTEM_" />
index 1238af7..3a215fd 100644 (file)
@@ -5,7 +5,6 @@
        <include base="csrsrv">.</include>
        <include base="csr">.</include>
        <include base="ReactOS">include/reactos/subsys</include>
-       <define name="_DISABLE_TIDENTS" />
        <library>ntdll</library>
        <library>pseh</library>
        <file>api.c</file>
index 31b50e8..b291042 100644 (file)
@@ -2,7 +2,6 @@
 <!DOCTYPE module SYSTEM "../../tools/rbuild/project.dtd">
 <module name="ntvdm" type="win32cui" installbase="system32" installname="ntvdm.exe">
        <include base="ntvdm">.</include>
-       <define name="_DISABLE_TIDENTS" />
        <library>ntdll</library>
        <library>kernel32</library>
        <library>user32</library>
index bcccf39..a48226d 100644 (file)
@@ -7,7 +7,6 @@
        <include base="ReactOS">include/reactos/subsys</include>
        <include base="ReactOS">include/reactos/drivers</include>
        <include base="console">.</include>
-       <define name="_DISABLE_TIDENTS" />
        <library>ntdll</library>
        <library>kernel32</library>
        <library>user32</library>
index 1f5b438..9a514fe 100644 (file)
@@ -256,6 +256,9 @@ MingwBackend::ProcessModules ()
        vector<MingwModuleHandler*> v;
        size_t i;
 
+       for ( std::map<std::string, Module*>::iterator p = ProjectNode.modules.begin (); p != ProjectNode.modules.end (); ++ p )
+               fprintf ( fMakefile, "%s_TYPE:=%u\n", p->second->name.c_str(), p->second->type );
+
        for ( std::map<std::string, Module*>::iterator p = ProjectNode.modules.begin (); p != ProjectNode.modules.end (); ++ p )
        {
                Module& module = *p->second;
@@ -385,28 +388,7 @@ MingwBackend::GenerateHeader () const
 }
 
 void
-MingwBackend::GenerateProjectCFlagsMacro ( const char* assignmentOperation,
-                                           const IfableData& data ) const
-{
-       set<string> used_defs;
-
-       if ( data.includes.size () > 0 )
-               fprintf (
-                       fMakefile,
-                       "PROJECT_CINCLUDES %s %s\n",
-                       assignmentOperation,
-                       MingwModuleHandler::GenerateGccIncludeParametersFromVector ( data.includes ).c_str ());
-
-       if ( data.defines.size () > 0 )
-               fprintf (
-                       fMakefile,
-                       "PROJECT_CDEFINES %s %s\n",
-                       assignmentOperation,
-                       MingwModuleHandler::GenerateGccDefineParametersFromVector ( data.defines, used_defs ).c_str ());
-}
-
-void
-MingwBackend::GenerateGlobalCFlagsAndProperties (
+MingwBackend::GenerateGlobalProperties (
        const char* assignmentOperation,
        const IfableData& data ) const
 {
@@ -421,86 +403,6 @@ MingwBackend::GenerateGlobalCFlagsAndProperties (
                                prop.value.c_str() );
                }
        }
-
-       if ( data.includes.size() || data.defines.size() )
-       {
-               GenerateProjectCFlagsMacro ( assignmentOperation,
-                                            data );
-       }
-}
-
-void
-MingwBackend::GenerateProjectGccOptionsMacro ( const char* assignmentOperation,
-                                               IfableData& data ) const
-{
-       size_t i;
-
-       fprintf (
-               fMakefile,
-               "PROJECT_GCCOPTIONS %s",
-               assignmentOperation );
-
-       for ( i = 0; i < data.compilerFlags.size(); i++ )
-       {
-               if ( data.compilerFlags[i]->compiler == CompilerTypeDontCare )
-               {
-                       fprintf (
-                               fMakefile,
-                               " %s",
-                               data.compilerFlags[i]->flag.c_str() );
-               }
-       }
-
-       fputs ( "\n", fMakefile );
-
-       // TODO: reference these from somewhere
-       fprintf (
-               fMakefile,
-               "PROJECT_GCC_CFLAGS %s",
-               assignmentOperation );
-
-       for ( i = 0; i < data.compilerFlags.size(); i++ )
-       {
-               if ( data.compilerFlags[i]->compiler == CompilerTypeCC )
-               {
-                       fprintf (
-                               fMakefile,
-                               " %s",
-                               data.compilerFlags[i]->flag.c_str() );
-               }
-       }
-
-       fputs ( "\n", fMakefile );
-
-       fprintf (
-               fMakefile,
-               "PROJECT_GCC_CXXFLAGS %s",
-               assignmentOperation );
-
-       for ( i = 0; i < data.compilerFlags.size(); i++ )
-       {
-               if ( data.compilerFlags[i]->compiler == CompilerTypeCPP )
-               {
-                       fprintf (
-                               fMakefile,
-                               " %s",
-                               data.compilerFlags[i]->flag.c_str() );
-               }
-       }
-
-       fputs ( "\n", fMakefile );
-}
-
-void
-MingwBackend::GenerateProjectGccOptions (
-       const char* assignmentOperation,
-       IfableData& data ) const
-{
-       if ( data.compilerFlags.size() )
-       {
-               GenerateProjectGccOptionsMacro ( assignmentOperation,
-                                                data );
-       }
 }
 
 string
@@ -535,14 +437,45 @@ MingwBackend::GenerateGlobalVariables () const
                  "PREFIX := %s\n",
                  compilerPrefix.c_str () );
        fprintf ( fMakefile,
-                 "nasm := %s\n",
+                 "nasm := $(Q)%s\n",
                  nasmCommand.c_str () );
 
-       GenerateGlobalCFlagsAndProperties ( "=", ProjectNode.non_if_data );
-       GenerateProjectGccOptions ( "=", ProjectNode.non_if_data );
+       GenerateGlobalProperties ( "=", ProjectNode.non_if_data );
+
+       fprintf ( fMakefile, "PROJECT_CFLAGS += -Wall\n" );
+       fprintf ( fMakefile, "PROJECT_CXXFLAGS += -Wall\n" );
+       fprintf ( fMakefile, "ifneq ($(OARCH),)\n" );
+       fprintf ( fMakefile, "PROJECT_CFLAGS += -march=$(OARCH)\n" );
+       fprintf ( fMakefile, "PROJECT_CXXFLAGS += -march=$(OARCH)\n" );
+       fprintf ( fMakefile, "endif\n" );
+       fprintf ( fMakefile, "ifneq ($(TUNE),)\n" );
+       fprintf ( fMakefile, "PROJECT_CFLAGS += -mtune=$(TUNE)\n" );
+       fprintf ( fMakefile, "PROJECT_CXXFLAGS += -mtune=$(TUNE)\n" );
+       fprintf ( fMakefile, "endif\n" );
 
-       fprintf ( fMakefile, "PROJECT_RCFLAGS := $(PROJECT_CINCLUDES) $(PROJECT_CDEFINES)\n" );
-       fprintf ( fMakefile, "PROJECT_WIDLFLAGS := $(PROJECT_CINCLUDES) $(PROJECT_CDEFINES)\n" );
+       fprintf ( fMakefile, "PROJECT_CFLAGS += -g%s\n", Environment::GetArch() == "amd64" ? "dwarf-2" : "stabs+" );
+       fprintf ( fMakefile, "PROJECT_CXXFLAGS += -g%s\n", Environment::GetArch() == "amd64" ? "dwarf-2" : "stabs+" );
+       fprintf ( fMakefile, "PROJECT_ASFLAGS += -g%s\n", Environment::GetArch() == "amd64" ? "dwarf-2" : "stabs+" );
+
+       MingwModuleHandler::GenerateParameters ( "PROJECT", "+=", ProjectNode.non_if_data );
+       MingwModuleHandler::GenerateParameters ( "PROJECT_HOST", "+=", ProjectNode.host_non_if_data );
+
+       if ( usePipe )
+       {
+               fprintf ( fMakefile, "PROJECT_CFLAGS += -pipe\n" );
+               fprintf ( fMakefile, "PROJECT_CXXFLAGS += -pipe\n" );
+               fprintf ( fMakefile, "PROJECT_ASFLAGS += -pipe\n" );
+       }
+
+       // Because RosBE gcc is built to suck
+       fputs ( "BUILTIN_HOST_CINCLUDES+= $(HOST_CFLAGS)\n", fMakefile );
+       fputs ( "BUILTIN_HOST_CPPINCLUDES+= $(HOST_CFLAGS)\n", fMakefile );
+       fputs ( "BUILTIN_HOST_CXXINCLUDES+= $(HOST_CPPFLAGS)\n", fMakefile );
+
+       // Would be nice to have our own C++ runtime
+       fputs ( "BUILTIN_CXXINCLUDES+= $(TARGET_CPPFLAGS)\n", fMakefile );
+
+       // TODO: linker flags
        fprintf ( fMakefile, "PROJECT_LFLAGS := '$(shell ${TARGET_CC} -print-libgcc-file-name)' %s\n", GenerateProjectLFLAGS ().c_str () );
        fprintf ( fMakefile, "PROJECT_LPPFLAGS := '$(shell ${TARGET_CPP} -print-file-name=libstdc++.a)' '$(shell ${TARGET_CPP} -print-file-name=libgcc.a)' '$(shell ${TARGET_CPP} -print-file-name=libmingw32.a)' '$(shell ${TARGET_CPP} -print-file-name=libmingwex.a)' '$(shell ${TARGET_CPP} -print-file-name=libcoldname.a)'\n" );
        /* hack to get libgcc_eh.a, should check mingw version or something */
@@ -550,15 +483,38 @@ MingwBackend::GenerateGlobalVariables () const
        {
            fprintf ( fMakefile, "PROJECT_LPPFLAGS += '$(shell ${TARGET_CPP} -print-file-name=libgcc_eh.a)'\n" );
        }
-       fprintf ( fMakefile, "PROJECT_GCCOPTIONS += -Wall\n" );
-       fprintf ( fMakefile, "ifneq ($(OARCH),)\n" );
-       fprintf ( fMakefile, "PROJECT_GCCOPTIONS += -march=$(OARCH)\n" );
-       fprintf ( fMakefile, "endif\n" );
-       fprintf ( fMakefile, "ifneq ($(TUNE),)\n" );
-       fprintf ( fMakefile, "PROJECT_GCCOPTIONS += -mtune=$(TUNE)\n" );
-       fprintf ( fMakefile, "endif\n" );
-       fprintf ( fMakefile, "PROJECT_CFLAGS = $(PROJECT_GCCOPTIONS) $(PROJECT_GCC_CFLAGS)\n" );
-       fprintf ( fMakefile, "PROJECT_CXXFLAGS = $(PROJECT_GCCOPTIONS) $(PROJECT_GCC_CXXFLAGS)\n" );
+
+       // TODO: use symbolic names for module types
+       for ( size_t i = 0; i < sizeof(ModuleHandlerInformations) / sizeof(ModuleHandlerInformations[0]); ++ i )
+       {
+               if ( ModuleHandlerInformations[i].cflags && ModuleHandlerInformations[i].cflags[0] )
+               {
+                               fprintf ( fMakefile,
+                                                 "MODULETYPE%d_%sFLAGS:=%s\n",
+                                                 i,
+                                                 "C",
+                                                 ModuleHandlerInformations[i].cflags );
+               }
+
+               if ( ModuleHandlerInformations[i].cflags && ModuleHandlerInformations[i].cflags[0] )
+               {
+                               fprintf ( fMakefile,
+                                                 "MODULETYPE%d_%sFLAGS:=%s\n",
+                                                 i,
+                                                 "CXX",
+                                                 ModuleHandlerInformations[i].cflags );
+               }
+
+               if ( ModuleHandlerInformations[i].nasmflags && ModuleHandlerInformations[i].nasmflags[0] )
+               {
+                               fprintf ( fMakefile,
+                                                 "MODULETYPE%d_%sFLAGS:=%s\n",
+                                                 i,
+                                                 "NASM",
+                                                 ModuleHandlerInformations[i].nasmflags );
+               }
+       }
+
        fprintf ( fMakefile, "\n" );
 }
 
index aeb7bb6..10a9f60 100644 (file)
@@ -62,14 +62,8 @@ private:
        void CreateMakefile ();
        void CloseMakefile () const;
        void GenerateHeader () const;
-       void GenerateProjectCFlagsMacro ( const char* assignmentOperation,
-                                         const IfableData& data ) const;
-       void GenerateGlobalCFlagsAndProperties ( const char* op,
-                                                const IfableData& data ) const;
-       void GenerateProjectGccOptionsMacro ( const char* assignmentOperation,
-                                             IfableData& data ) const;
-       void GenerateProjectGccOptions ( const char* assignmentOperation,
-                                        IfableData& data ) const;
+       void GenerateGlobalProperties ( const char* assignmentOperation,
+                                                                         const IfableData& data ) const;
        std::string GenerateProjectLFLAGS () const;
        void GenerateDirectories ();
        void GenerateGlobalVariables () const;
index ba471d3..da32c18 100644 (file)
@@ -543,6 +543,69 @@ MingwModuleHandler::GenerateDependsTarget () const
                  module.name.c_str () );
 }
 
+static
+const char * const CompilerPrefixTable [ CompilerTypesCount ] =
+{
+       "C",
+       "CXX",
+       "CPP",
+       "AS",
+       "MIDL",
+       "RC",
+       "NASM",
+};
+
+/* static */ void
+MingwModuleHandler::GenerateParameters (
+       const char* prefix,
+       const char* assignmentOperation,
+       const IfableData& data )
+{
+       for ( unsigned type = CompilerTypeCC; type < CompilerTypesCount; ++ type )
+       {
+               CompilerType compiler = static_cast < CompilerType > ( type );
+
+               // Includes
+               std::string includes = GenerateIncludeParametersFromVector ( data.includes, compiler );
+
+               if ( includes.size() )
+               {
+                       fprintf ( fMakefile,
+                                         "%s_%sINCLUDES%s%s\n",
+                                         prefix,
+                                         CompilerPrefixTable [ compiler ],
+                                         assignmentOperation,
+                                         includes.c_str () );
+               }
+
+               // Defines
+               std::string defines = GenerateDefineParametersFromVector ( data.defines, compiler );
+
+               if ( defines.size() )
+               {
+                       fprintf ( fMakefile,
+                                         "%s_%sDEFINES%s%s\n",
+                                         prefix,
+                                         CompilerPrefixTable [ compiler ],
+                                         assignmentOperation,
+                                         defines.c_str () );
+               }
+
+               // Flags
+               std::string flags = GenerateCompilerParametersFromVector ( data.compilerFlags, compiler );
+
+               if ( flags.size() )
+               {
+                       fprintf ( fMakefile,
+                                         "%s_%sFLAGS%s%s\n",
+                                         prefix,
+                                         CompilerPrefixTable [ compiler ],
+                                         assignmentOperation,
+                                         flags.c_str () );
+               }
+       }
+}
+
 /* static */ string
 MingwModuleHandler::GenerateGccDefineParametersFromVector (
        const vector<Define*>& defines,
@@ -555,24 +618,69 @@ MingwModuleHandler::GenerateGccDefineParametersFromVector (
                Define& define = *defines[i];
                if (used_defs.find(define.name) != used_defs.end())
                        continue;
+               if (define.redefine)
+               {
+                       if (parameters.length () > 0)
+                               parameters += " ";
+                       parameters += "-U";
+                       parameters += define.name;
+               }
                if (parameters.length () > 0)
                        parameters += " ";
-               if (define.name.find('(') != string::npos)
+               if (define.arguments.length ())
                        parameters += "$(QT)";
                parameters += "-D";
                parameters += define.name;
+               parameters += define.arguments;
                if (define.value.length () > 0)
                {
                        parameters += "=";
                        parameters += define.value;
                }
-               if (define.name.find('(') != string::npos)
+               if (define.arguments.length ())
                        parameters += "$(QT)";
                used_defs.insert(used_defs.begin(),define.name);
        }
        return parameters;
 }
 
+/* static */ string
+MingwModuleHandler::GenerateDefineParametersFromVector (
+       const std::vector<Define*>& defines,
+       CompilerType compiler )
+{
+       string parameters;
+
+       for ( size_t i = 0; i < defines.size (); i++ )
+       {
+               Define& define = *defines[i];
+               if (!define.IsCompilerSet (compiler))
+                       continue;
+               if (define.redefine)
+               {
+                       if (parameters.length () > 0)
+                               parameters += " ";
+                       parameters += "-U";
+                       parameters += define.name;
+               }
+               if (parameters.length () > 0)
+                       parameters += " ";
+               if (define.arguments.length ())
+                       parameters += "$(QT)";
+               parameters += "-D";
+               parameters += define.name;
+               parameters += define.arguments;
+               if (define.value.length () > 0)
+               {
+                       parameters += "=";
+                       parameters += define.value;
+               }
+               if (define.arguments.length ())
+                       parameters += "$(QT)";
+       }
+       return parameters;
+}
+
 string
 MingwModuleHandler::ConcatenatePaths (
        const string& path1,
@@ -587,27 +695,26 @@ MingwModuleHandler::ConcatenatePaths (
 }
 
 /* static */ string
-MingwModuleHandler::GenerateGccIncludeParametersFromVector ( const vector<Include*>& includes )
+MingwModuleHandler::GenerateIncludeParametersFromVector ( const vector<Include*>& includes, const CompilerType type )
 {
        string parameters, path_prefix;
        for ( size_t i = 0; i < includes.size (); i++ )
        {
                Include& include = *includes[i];
-               if ( parameters.length () > 0 )
-                       parameters += " ";
-               parameters += "-I" + backend->GetFullPath ( *include.directory );
+               if ( include.IsCompilerSet( type ) )
+                       parameters += " -I" + backend->GetFullPath ( *include.directory );
        }
        return parameters;
 }
 
-string
-MingwModuleHandler::GenerateCompilerParametersFromVector ( const vector<CompilerFlag*>& compilerFlags, const CompilerType type ) const
+/* static */ string
+MingwModuleHandler::GenerateCompilerParametersFromVector ( const vector<CompilerFlag*>& compilerFlags, const CompilerType type )
 {
        string parameters;
        for ( size_t i = 0; i < compilerFlags.size (); i++ )
        {
                CompilerFlag& compilerFlag = *compilerFlags[i];
-               if ( compilerFlag.compiler == type )
+               if ( compilerFlag.IsCompilerSet( type ) )
                        parameters += " " + compilerFlag.flag;
        }
        return parameters;
@@ -650,104 +757,6 @@ MingwModuleHandler::GenerateLinkerParameters () const
        return GenerateLinkerParametersFromVector ( module.linkerFlags );
 }
 
-void
-MingwModuleHandler::GenerateMacro (
-       const char* assignmentOperation,
-       const string& macro,
-       const IfableData& data,
-       set<const Define *> *used_defs,
-       bool generatingCompilerMacro )
-{
-       size_t i;
-       bool generateAssignment;
-
-       generateAssignment = (use_pch && module.pch != NULL ) || data.includes.size () > 0 || data.defines.size () > 0;
-       if ( generatingCompilerMacro )
-               generateAssignment |= data.compilerFlags.size () > 0;
-       if ( generateAssignment )
-       {
-               fprintf ( fMakefile,
-                         "%s %s",
-                         macro.c_str(),
-                         assignmentOperation );
-       }
-
-       const FileLocation *pchFilename = GetPrecompiledHeaderFilename ();
-       if ( pchFilename )
-       {
-               fprintf ( fMakefile,
-                         " -I%s",
-                         backend->GetFullPath ( *pchFilename ).c_str () );
-               delete pchFilename;
-       }
-
-       if ( generatingCompilerMacro )
-       {
-               string compilerParameters = GenerateCompilerParametersFromVector ( data.compilerFlags, CompilerTypeDontCare );
-               if ( compilerParameters.size () > 0 )
-               {
-                       fprintf (
-                               fMakefile,
-                               "%s",
-                               compilerParameters.c_str () );
-               }
-       }
-       for ( i = 0; i < data.includes.size(); i++ )
-       {
-               const Include& include = *data.includes[i];
-               const FileLocation* includeDirectory = include.directory;
-               fprintf (
-                       fMakefile,
-                       " -I%s",
-                       backend->GetFullPath ( *includeDirectory ).c_str() );
-       }
-       for ( i = 0; i < data.defines.size(); i++ )
-       {
-               const Define& define = *data.defines[i];
-               if ( used_defs )
-               {
-                       set<const Define *>::const_iterator last_define;
-                       for (last_define = used_defs->begin ();
-                            last_define != used_defs->end ();
-                            last_define++)
-                       {
-                               if ( (*last_define)->name != define.name )
-                                       continue;
-                               if ( !define.overridable )
-                               {
-                                       throw InvalidOperationException ( (*last_define)->node->location.c_str (),
-                                                                         0,
-                                                                         "Invalid override of define '%s', already defined at %s",
-                                                                         define.name.c_str (),
-                                                                         define.node->location.c_str () );
-                               }
-                               if ( backend->configuration.Verbose )
-                                       printf("%s: Overriding '%s' already defined at %s\n",
-                                               (*last_define)->node->location.c_str (), define.name.c_str (),
-                                               define.node->location.c_str () );
-                               break;
-                       }
-                       if ( last_define != used_defs->end () )
-                               continue;
-               }
-               fprintf (
-                       fMakefile,
-                       " -D%s",
-                       define.name.c_str() );
-               if (define.value.length () > 0)
-                       fprintf (
-                               fMakefile,
-                               "=%s",
-                               define.value.c_str() );
-               if ( used_defs )
-                       used_defs->insert( used_defs->begin (), &define );
-       }
-       if ( generateAssignment )
-       {
-               fprintf ( fMakefile, "\n" );
-       }
-}
-
 void
 MingwModuleHandler::GenerateMacros (
        const char* assignmentOperation,
@@ -755,18 +764,6 @@ MingwModuleHandler::GenerateMacros (
        const vector<LinkerFlag*>* linkerFlags,
        set<const Define *>& used_defs )
 {
-       fprintf ( fMakefile, "# MACROS\n" );
-       GenerateMacro ( assignmentOperation,
-                       commonflagsMacro,
-                       data,
-                       &used_defs,
-                       true );
-       GenerateMacro ( assignmentOperation,
-                       windresflagsMacro,
-                       data,
-                       NULL,
-                       false );
-
        if ( linkerFlags != NULL )
        {
                string linkerParameters = GenerateLinkerParametersFromVector ( *linkerFlags );
@@ -830,7 +827,6 @@ MingwModuleHandler::GenerateSourceMacros (
 {
        size_t i;
 
-       fprintf ( fMakefile, "# SOURCE MACROS\n" );
        const vector<CompilationUnit*>& compilationUnits = data.compilationUnits;
        vector<const FileLocation *> headers;
        if ( compilationUnits.size () > 0 )
@@ -877,7 +873,6 @@ MingwModuleHandler::GenerateObjectMacros (
        vector<const FileLocation *> headers;
        vector<const FileLocation *> mcheaders;
        vector<const FileLocation *> mcresources;
-       fprintf ( fMakefile, "# OBJECT MACROS\n" );
        if ( compilationUnits.size () > 0 )
        {
                for ( i = 0; i < compilationUnits.size (); i++ )
@@ -1043,7 +1038,16 @@ MingwModuleHandler::GetDlldataFilename() const
        return new FileLocation( IntermediateDirectory, dlldata_path, module.name + ".dlldata.c" );
 }
 
-/* caller needs to delete the returned object */
+const FileLocation*
+MingwModuleHandler::GetPrecompiledHeaderPath () const
+{
+       if ( !module.pch || !use_pch )
+               return NULL;
+       return new FileLocation ( IntermediateDirectory,
+                                 module.pch->file->relative_path,
+                                 ".gch_" + module.name );
+}
+
 const FileLocation*
 MingwModuleHandler::GetPrecompiledHeaderFilename () const
 {
@@ -1054,234 +1058,97 @@ MingwModuleHandler::GetPrecompiledHeaderFilename () const
                                  module.pch->file->name + ".gch" );
 }
 
-Rule arRule1 ( "$(intermediate_path_noext).a: $($(module_name)_OBJS)  $(dependencies) | $(intermediate_dir)\n",
-               "$(intermediate_path_noext).a",
-               "$(intermediate_dir)$(SEP)", NULL );
-Rule arRule2 ( "\t$(ECHO_AR)\n"
-              "\t${ar} -rc $@ $($(module_name)_OBJS) \n",
-              NULL );
-Rule arHostRule2 ( "\t$(ECHO_HOSTAR)\n"
-                   "\t${host_ar} -rc $@ $($(module_name)_OBJS)\n",
-                   NULL );
-Rule gasRule ( "$(source): ${$(module_name)_precondition}\n"
-               "ifeq ($(ROS_BUILDDEPS),full)\n"
-               "$(intermediate_path_unique).o.d: $(source) | $(intermediate_dir)\n"
-               "\t$(ECHO_DEPENDS)\n"
-               "\t${gcc} -x assembler-with-cpp -MF $@ -D__ASM__ $($(module_name)_CFLAGS) -M -MP -MT $@ $<\n"
-               "-include $(intermediate_path_unique).o.d\n"
-               "endif\n"
-               "$(intermediate_path_unique).o: $(source)$(if $(subst _full,,_$(ROS_BUILDDEPS)),, $(intermediate_path_unique).o.d) $(dependencies) | $(intermediate_dir)\n"
-               "\t$(ECHO_GAS)\n"
-               "\t${gcc} -x assembler-with-cpp -o $@ -D__ASM__ $($(module_name)_CFLAGS) -c $<\n",
-               "$(intermediate_path_unique).o",
-               "$(intermediate_path_unique).o.d",
-               "$(intermediate_dir)$(SEP)", NULL );
-Rule bootRule ( "$(source): ${$(module_name)_precondition}\n"
-                "$(module_output): $(source) $(dependencies) | $(OUTPUT)$(SEP)$(source_dir)\n"
-                "\t$(ECHO_NASM)\n"
-                "\t$(Q)${nasm} -f win32 $< -o $@ $($(module_name)_NASMFLAGS)\n",
-                "$(OUTPUT)$(SEP)$(source_dir)$(SEP)", NULL );
-Rule nasmRule ( "$(source): ${$(module_name)_precondition}\n"
-                "$(intermediate_path_unique).o: $(source) $(dependencies) | $(intermediate_dir)\n"
-                "\t$(ECHO_NASM)\n"
-                "\t$(Q)${nasm} -f win32 $< -o $@ $($(module_name)_NASMFLAGS)\n",
-                "$(intermediate_path_unique).o",
-                "$(intermediate_dir)$(SEP)", NULL );
-Rule windresRule ( "$(source): ${$(module_name)_precondition}\n"
-                                  "ifeq ($(ROS_BUILDDEPS),full)\n"
-                   "$(intermediate_path_unique).coff.d: $(source) | $(intermediate_dir) $(TEMPORARY)\n"
-                   "\t$(ECHO_DEPENDS)\n"
-                   "\t${gcc} -xc -M -MP -MT $@ -DRC_INVOKED ${$(module_name)_RCFLAGS} $(source) -MF $@\n"
-                   "-include $(intermediate_path_unique).coff.d\n"
-                   "endif\n"
-                   "$(intermediate_path_unique).coff: $(source)$(if $(subst _full,,_$(ROS_BUILDDEPS)),, $(intermediate_path_unique).coff.d) $(dependencies) $(WRC_TARGET) | $(intermediate_dir) $(TEMPORARY)\n"
-                   "\t$(ECHO_WRC)\n"
-                   "\t${gcc} -xc -E -DRC_INVOKED ${$(module_name)_RCFLAGS} $(source) > $(TEMPORARY)$(SEP)$(module_name).$(source_name_noext).rci.tmp\n"
-                   "\t$(Q)$(WRC_TARGET) ${$(module_name)_RCFLAGS} $(TEMPORARY)$(SEP)$(module_name).$(source_name_noext).rci.tmp $(TEMPORARY)$(SEP)$(module_name).$(source_name_noext).res.tmp\n"
-                   "\t-@${rm} $(TEMPORARY)$(SEP)$(module_name).$(source_name_noext).rci.tmp 2>$(NUL)\n"
-                   "\t${windres} $(TEMPORARY)$(SEP)$(module_name).$(source_name_noext).res.tmp -o $@\n"
-                   "\t-@${rm} $(TEMPORARY)$(SEP)$(module_name).$(source_name_noext).res.tmp 2>$(NUL)\n",
+Rule windresRule ( "$(eval $(call RBUILD_WRC_RULE,$(module_name),$(source),$(dependencies),$(compiler_flags)))\n",
                    "$(intermediate_path_unique).coff",
-                   "$(intermediate_path_unique).coff.d",
+                   "$(intermediate_path_unique).res",
+                   "$(intermediate_path_unique).res.d",
                    "$(intermediate_dir)$(SEP)", NULL );
-Rule wmcRule ( "$(intermediate_path_noext).rc $(INTERMEDIATE)$(SEP)include$(SEP)reactos$(SEP)$(source_name_noext).h: $(WMC_TARGET) $(source) | $(intermediate_dir)\n"
-               "\t$(ECHO_WMC)\n"
-               "\t$(Q)$(WMC_TARGET) -i -H $(INTERMEDIATE)$(SEP)include$(SEP)reactos$(SEP)$(source_name_noext).h -o $(intermediate_path_noext).rc $(source)\n",
-               "$(intermediate_path_noext).rc",
-               "$(INTERMEDIATE)$(SEP)include$(SEP)reactos$(SEP)$(source_name_noext).h",
-               "$(intermediate_dir)$(SEP)", NULL );
-Rule winebuildPDefRule ( "ifeq ($(ROS_BUILDDEPS),full)\n"
-                         "$(intermediate_path_unique).spec.d: $(source) | $(intermediate_dir)\n"
-                         "\t$(ECHO_DEPENDS)\n"
-                         "\t${gcc} -xc -M -MP -MT $@ ${$(module_name)_RCFLAGS} $(source) -MF $@\n\n"
-                         "-include $(intermediate_path_unique).spec.d\n"
-                         "endif\n"
-                         "$(intermediate_path_unique).spec: $(source)$(if $(subst _full,,_$(ROS_BUILDDEPS)),, $(intermediate_path_unique).spec.d) $(dependencies) | $(intermediate_dir)\n"
-                         "\t$(ECHO_CPP)\n"
-                         "\t${gcc} -xc -E ${$(module_name)_RCFLAGS} $(source) > $(intermediate_path_unique).spec\n\n"
-                                                "$(intermediate_path_unique).auto.def: $(intermediate_path_unique).spec $(WINEBUILD_TARGET) | $(intermediate_dir)\n"
-                         "\t$(ECHO_WINEBLD)\n"
-                         "\t$(Q)$(WINEBUILD_TARGET) $(WINEBUILD_FLAGS) -o $(intermediate_path_unique).auto.def --def -E $(intermediate_path_unique).spec --filename $(module_dllname)\n\n",
-                         "$(intermediate_path_unique).spec",
-                         "$(intermediate_path_unique).spec.d",
-                         "$(intermediate_path_unique).auto.def",
-                         "$(intermediate_dir)$(SEP)", NULL );
-Rule winebuildPRule ( "$(intermediate_path_unique).stubs.c: $(intermediate_path_unique).spec $(WINEBUILD_TARGET) | $(intermediate_dir)\n"
-                      "\t$(ECHO_WINEBLD)\n"
-                      "\t$(Q)$(WINEBUILD_TARGET) $(WINEBUILD_FLAGS) -o $@ --pedll $(intermediate_path_unique).spec --filename $(module_dllname)\n\n"
-                      "ifeq ($(ROS_BUILDDEPS),full)\n"
-                      "$(intermediate_path_unique).stubs.o.d: $(intermediate_path_unique).stubs.c | $(intermediate_dir)\n"
-                      "\t$(ECHO_DEPENDS)\n"
-                      "\t${gcc} -MF $@ $($(module_name)_CFLAGS)$(compiler_flags) -M -MP -MT $@ $<\n"
-                                         "-include $(intermediate_path_unique).stubs.o.d\n"
-                      "endif\n"
-                      "$(intermediate_path_unique).stubs.o: $(intermediate_path_unique).stubs.c$(if $(subst _full,,_$(ROS_BUILDDEPS)),, $(intermediate_path_unique).stubs.o.d) | $(intermediate_dir)\n"
-                      "\t$(ECHO_CC)\n"
-                      "\t${gcc} -o $@ $($(module_name)_CFLAGS)$(compiler_flags) -c $<\n",
+Rule winebuildPRule ( "$(eval $(call RBUILD_WINEBUILD_WITH_CPP_RULE,$(module_name),$(source),$(dependencies),$(compiler_flags),$(module_dllname)))\n",
                       "$(intermediate_path_unique).spec",
+                      "$(intermediate_path_unique).spec.d",
+                      "$(intermediate_path_unique).auto.def",
                       "$(intermediate_path_unique).stubs.c",
                       "$(intermediate_path_unique).stubs.o",
                       "$(intermediate_path_unique).stubs.o.d",
                       "$(intermediate_dir)$(SEP)", NULL );
-Rule winebuildDefRule ( "$(intermediate_path_unique).auto.def: $(source) $(dependencies) $(WINEBUILD_TARGET) | $(intermediate_dir)\n"
-                        "\t$(ECHO_WINEBLD)\n"
-                        "\t$(Q)$(WINEBUILD_TARGET) $(WINEBUILD_FLAGS) -o $(intermediate_path_unique).auto.def --def -E $(source) --filename $(module_dllname)\n\n",
-                        "$(intermediate_path_noext).spec",
-                        "$(intermediate_path_unique).auto.def",
-                        "$(intermediate_dir)$(SEP)", NULL );
-Rule winebuildRule ( "$(intermediate_path_unique).stubs.c: $(source) $(WINEBUILD_TARGET)\n"
-                     "\t$(ECHO_WINEBLD)\n"
-                     "\t$(Q)$(WINEBUILD_TARGET) $(WINEBUILD_FLAGS) -o $@ --pedll $(source) --filename $(module_dllname)\n"
-                     "ifeq ($(ROS_BUILDDEPS),full)\n"
-                     "$(intermediate_path_unique).stubs.o.d: $(intermediate_path_unique).stubs.c | $(intermediate_dir)\n"
-                     "\t$(ECHO_DEPENDS)\n"
-                     "\t${gcc} -MF $@ $($(module_name)_CFLAGS)$(compiler_flags) -M -MP -MT $@ $<\n"
-                     "-include $(intermediate_path_unique).stubs.o.d\n"
-                     "endif\n"
-                     "$(intermediate_path_unique).stubs.o: $(intermediate_path_unique).stubs.c$(if $(subst _full,,_$(ROS_BUILDDEPS)),, $(intermediate_path_unique).stubs.o.d) $(dependencies) | $(intermediate_dir)\n"
-                     "\t$(ECHO_CC)\n"
-                     "\t${gcc} -o $@ $($(module_name)_CFLAGS)$(compiler_flags) -c $<\n",
+Rule winebuildRule ( "$(eval $(call RBUILD_WINEBUILD_RULE,$(module_name),$(source),$(dependencies),$(compiler_flags),$(module_dllname)))\n",
+                     "$(intermediate_path_unique).auto.def",
                      "$(intermediate_path_unique).stubs.c",
                      "$(intermediate_path_unique).stubs.o",
                      "$(intermediate_path_unique).stubs.o.d",
                      "$(intermediate_dir)$(SEP)", NULL );
-Rule widlHeaderRule ( "$(source): ${$(module_name)_precondition}\n"
-                      "$(intermediate_path_noext).h: $(source) $(dependencies) $(WIDL_TARGET) | $(intermediate_dir)\n"
-                      "\t$(ECHO_WIDL)\n"
-                      "\t$(Q)$(WIDL_TARGET) $($(module_name)_WIDLFLAGS) -h -H $(intermediate_path_noext).h $(source)\n",
+Rule gasRule ( "$(eval $(call RBUILD_GAS_RULE,$(module_name),$(source),$(dependencies),$(compiler_flags)))\n",
+               "$(intermediate_path_unique).o",
+               "$(intermediate_path_unique).o.d", NULL );
+Rule gccRule ( "$(eval $(call RBUILD_GCC_RULE,$(module_name),$(source),$(dependencies),$(compiler_flags)))\n",
+               "$(intermediate_path_unique).o",
+               "$(intermediate_path_unique).o.d", NULL );
+Rule gccHostRule ( "$(eval $(call RBUILD_HOST_GCC_RULE,$(module_name),$(source),$(dependencies),$(compiler_flags)))\n",
+                   "$(intermediate_path_unique).o", NULL );
+Rule gppRule ( "$(eval $(call RBUILD_GPP_RULE,$(module_name),$(source),$(dependencies),$(compiler_flags)))\n",
+               "$(intermediate_path_unique).o",
+               "$(intermediate_path_unique).o.d", NULL );
+Rule gppHostRule ( "$(eval $(call RBUILD_HOST_GPP_RULE,$(module_name),$(source),$(dependencies),$(compiler_flags)))\n",
+                   "$(intermediate_path_unique).o", NULL );
+Rule widlHeaderRule ( "$(eval $(call RBUILD_WIDL_HEADER_RULE,$(module_name),$(source),$(dependencies),$(compiler_flags)))\n",
                       "$(intermediate_path_noext).h",
                       "$(intermediate_dir)$(SEP)", NULL );
-Rule widlInterfaceRule ( "$(source): ${$(module_name)_precondition}\n"
-                       "$(intermediate_path_noext)_i.c: $(source) $(dependencies) $(WIDL_TARGET) | $(intermediate_dir)\n"
-                       "\t$(ECHO_WIDL)\n"
-                       "\t$(Q)$(WIDL_TARGET) $($(module_name)_WIDLFLAGS) -u -U $(intermediate_path_noext)_i.c $(source)\n"
-                       "$(intermediate_path_noext)_i.o: $(intermediate_path_noext)_i.c $(dependencies) | $(intermediate_dir)\n"
-                       "\t$(ECHO_CC)\n"
-                       "\t${gcc} -o $@ $($(module_name)_CFLAGS)$(compiler_flags) -fno-unit-at-a-time -c $<\n",
-                       "$(intermediate_path_noext)_i.c",
-                       "$(intermediate_path_noext)_i.o",
-                       "$(intermediate_dir)$(SEP)", NULL );
-Rule widlServerRule ( "$(source): ${$(module_name)_precondition}\n"
-                                         "$(intermediate_path_noext)_s.c $(intermediate_path_noext)_s.h: $(source) $(dependencies) $(WIDL_TARGET) | $(intermediate_dir)\n"
-                      "\t$(ECHO_WIDL)\n"
-                      "\t$(Q)$(WIDL_TARGET) $($(module_name)_WIDLFLAGS) -h -H $(intermediate_path_noext)_s.h -s -S $(intermediate_path_noext)_s.c $(source)\n"
-                      "ifeq ($(ROS_BUILDDEPS),full)\n"
-                      "$(intermediate_path_noext)_s.o.d: $(intermediate_path_noext)_s.c | $(intermediate_dir)\n"
-                      "\t$(ECHO_DEPENDS)\n"
-                      "\t${gcc} -MF $@ $($(module_name)_CFLAGS)$(compiler_flags) -fno-unit-at-a-time -M -MP -MT $@ $<\n"
-                      "-include $(intermediate_path_noext)_s.o.d\n"
-                      "endif\n"
-                      "$(intermediate_path_noext)_s.o: $(intermediate_path_noext)_s.c $(intermediate_path_noext)_s.h$(if $(subst _full,,_$(ROS_BUILDDEPS)),, $(intermediate_path_noext)_s.o.d) $(dependencies) | $(intermediate_dir)\n"
-                      "\t$(ECHO_CC)\n"
-                      "\t${gcc} -o $@ $($(module_name)_CFLAGS)$(compiler_flags) -fno-unit-at-a-time -c $<\n",
+Rule widlServerRule ( "$(eval $(call RBUILD_WIDL_SERVER_RULE,$(module_name),$(source),$(dependencies),$(compiler_flags)))\n",
                       "$(intermediate_path_noext)_s.h",
                       "$(intermediate_path_noext)_s.c",
                       "$(intermediate_path_noext)_s.o",
-                      "$(intermediate_path_noext)_s.o.d",
                       "$(intermediate_dir)$(SEP)", NULL );
-Rule widlClientRule ( "$(source): ${$(module_name)_precondition}\n"
-                      "$(intermediate_path_noext)_c.c $(intermediate_path_noext)_c.h: $(source) $(dependencies) $(WIDL_TARGET) | $(intermediate_dir)\n"
-                      "\t$(ECHO_WIDL)\n"
-                      "\t$(Q)$(WIDL_TARGET) $($(module_name)_WIDLFLAGS) -h -H $(intermediate_path_noext)_c.h -c -C $(intermediate_path_noext)_c.c $(source)\n"
-                      "ifeq ($(ROS_BUILDDEPS),full)\n"
-                      "$(intermediate_path_noext)_c.o.d: $(intermediate_path_noext)_c.c | $(intermediate_dir)\n"
-                      "\t$(ECHO_DEPENDS)\n"
-                      "\t${gcc} -MF $@ $($(module_name)_CFLAGS)$(compiler_flags) -fno-unit-at-a-time -M -MP -MT $@ $<\n"
-                      "-include $(intermediate_path_noext)_c.o.d\n"
-                      "endif\n"
-                      "$(intermediate_path_noext)_c.o: $(intermediate_path_noext)_c.c $(intermediate_path_noext)_c.h$(if $(subst _full,,_$(ROS_BUILDDEPS)),, $(intermediate_path_noext)_c.o.d) $(dependencies) | $(intermediate_dir)\n"
-                      "\t$(ECHO_CC)\n"
-                      "\t${gcc} -o $@ $($(module_name)_CFLAGS)$(compiler_flags) -fno-unit-at-a-time -c $<\n",
+Rule widlClientRule ( "$(eval $(call RBUILD_WIDL_CLIENT_RULE,$(module_name),$(source),$(dependencies),$(compiler_flags)))\n",
                       "$(intermediate_path_noext)_c.h",
                       "$(intermediate_path_noext)_c.c",
                       "$(intermediate_path_noext)_c.o",
-                      "$(intermediate_path_noext)_c.o.d",
                       "$(intermediate_dir)$(SEP)", NULL );
-Rule widlProxyRule ( "$(source): ${$(module_name)_precondition}\n"
-                     "$(intermediate_path_noext)_p.c $(intermediate_path_noext)_p.h: $(source) $(dependencies) $(WIDL_TARGET) | $(intermediate_dir)\n"
-                     "\t$(ECHO_WIDL)\n"
-                     "\t$(Q)$(WIDL_TARGET) $($(module_name)_WIDLFLAGS) -h -H $(intermediate_path_noext)_p.h -p -P $(intermediate_path_noext)_p.c $(source)\n"
-                     "ifeq ($(ROS_BUILDDEPS),full)\n"
-                     "$(intermediate_path_noext)_p.o.d: $(intermediate_path_noext)_p.c | $(intermediate_dir)\n"
-                     "\t$(ECHO_DEPENDS)\n"
-                     "\t${gcc} -MF $@ $($(module_name)_CFLAGS)$(compiler_flags) -fno-unit-at-a-time -M -MP -MT $@ $<\n"
-                     "-include $(intermediate_path_noext)_p.o.d\n"
-                     "endif\n"
-                     "$(intermediate_path_noext)_p.o: $(intermediate_path_noext)_p.c $(intermediate_path_noext)_p.h$(if $(subst _full,,_$(ROS_BUILDDEPS)),, $(intermediate_path_noext)_p.o.d) $(dependencies) | $(intermediate_dir)\n"
-                     "\t$(ECHO_CC)\n"
-                     "\t${gcc} -o $@ $($(module_name)_CFLAGS)$(compiler_flags) -fno-unit-at-a-time -c $<\n",
+Rule widlProxyRule ( "$(eval $(call RBUILD_WIDL_PROXY_RULE,$(module_name),$(source),$(dependencies),$(compiler_flags)))\n",
                      "$(intermediate_path_noext)_p.h",
                      "$(intermediate_path_noext)_p.c",
                      "$(intermediate_path_noext)_p.o",
-                     "$(intermediate_path_noext)_p.o.d",
                      "$(intermediate_dir)$(SEP)", NULL );
-Rule widlDlldataRule ( "$(source):  $(dependencies) ${$(module_name)_precondition} $(WIDL_TARGET) | $(intermediate_dir)\n"
-                       "\t$(ECHO_WIDL)\n"
-                       "\t$(Q)$(WIDL_TARGET) $($(module_name)_WIDLFLAGS) --dlldata-only --dlldata=$(source) $(bare_dependencies)\n"
-                       "ifeq ($(ROS_BUILDDEPS),full)\n"
-                       "$(intermediate_path_noext).o.d: $(source) | $(intermediate_dir)\n"
-                       "\t$(ECHO_DEPENDS)\n"
-                       "\t${gcc} -MF $@ $($(module_name)_CFLAGS)$(compiler_flags) -M -MP -MT $@ $<\n"
-                       "-include $(intermediate_path_noext).o.d\n"
-                       "endif\n"
-                       "$(intermediate_path_noext).o: $(source)$(if $(subst _full,,_$(ROS_BUILDDEPS)),, $(intermediate_path_noext).o.d) $(dependencies) | $(intermediate_dir)\n"
-                       "\t$(ECHO_CC)\n"
-                       "\t${gcc} -o $@ $($(module_name)_CFLAGS)$(compiler_flags) -c $<\n",
-                       "$(intermediate_path_noext).o",
-                       "$(intermediate_path_noext).o.d", NULL );
-Rule widlTlbRule ( "$(source): ${$(module_name)_precondition}\n"
-                   "$(intermediate_dir)$(SEP)$(module_name).tlb: $(source) $(dependencies) $(WIDL_TARGET) | $(intermediate_dir)\n"
-                   "\t$(ECHO_WIDL)\n"
-                   "\t$(Q)$(WIDL_TARGET) $($(module_name)_WIDLFLAGS) -t -T $(intermediate_path_noext).tlb $(source)\n",
+Rule widlInterfaceRule ( "$(eval $(call RBUILD_WIDL_INTERFACE_RULE,$(module_name),$(source),$(dependencies),$(compiler_flags)))\n",
+                       "$(intermediate_path_noext)_i.c",
+                       "$(intermediate_path_noext)_i.o",
+                       "$(intermediate_dir)$(SEP)", NULL );
+Rule widlDlldataRule ( "$(eval $(call RBUILD_WIDL_DLLDATA_RULE,$(module_name),$(source),$(dependencies),$(compiler_flags),$(bare_dependencies)))\n",
+                       "$(intermediate_path_noext).o", NULL );
+Rule widlTlbRule ( "$(eval $(call RBUILD_WIDL_TLB_RULE,$(module_name),$(source),$(dependencies),$(compiler_flags)))\n",
                    "$(intermediate_dir)$(SEP)", NULL );
-Rule gccRule ( "$(eval $(call RBUILD_GCC_RULE,$(module_name),$(source),$(dependencies),$(compiler_flags)))\n",
-               "$(intermediate_path_unique).o",
-               "$(intermediate_path_unique).o.d", NULL );
-Rule gccHostRule ( "$(source): ${$(module_name)_precondition}\n"
-                                  "$(intermediate_path_unique).o: $(source) $(dependencies) | $(intermediate_dir)\n"
-                   "\t$(ECHO_HOSTCC)\n"
-                   "\t${host_gcc} -o $@ $($(module_name)_CFLAGS)$(compiler_flags) -c $<\n",
-                   "$(intermediate_path_unique).o", NULL );
-Rule gppRule ( "$(eval $(call RBUILD_GPP_RULE,$(module_name),$(source),$(dependencies),$(compiler_flags)))\n",
-               "$(intermediate_path_unique).o",
-               "$(intermediate_path_unique).o.d", NULL );
-Rule gppHostRule ( "$(source): ${$(module_name)_precondition}\n"
-                   "$(intermediate_path_unique).o: $(source) $(dependencies) | $(intermediate_dir)\n"
-                   "\t$(ECHO_HOSTCC)\n"
-                   "\t${host_gpp} -o $@ $($(module_name)_CXXFLAGS)$(compiler_flags) -c $<\n",
-                   "$(intermediate_path_unique).o", NULL );
-Rule pchRule ( "$(source): ${$(module_name)_precondition}\n"
-               "ifeq ($(ROS_BUILDDEPS),full)\n"
-                          "$(intermediate_dir)$(SEP).gch_$(module_name)$(SEP)$(source_name).gch.d: $(source) | $(intermediate_dir)\n"
-                          "\t$(ECHO_DEPENDS)\n"
-                          "\t$(pch_cc) -MF $@ $(pch_ccflags)$(compiler_flags) -x $(pch_language) -M -MP -MT $@ $<\n"
-                          "-include $(intermediate_dir)$(SEP).gch_$(module_name)$(SEP)$(source_name).gch.d\n"
-                          "endif\n"
-                          "$(intermediate_dir)$(SEP).gch_$(module_name)$(SEP)$(source_name).gch: $(source)$(if $(subst _full,,_$(ROS_BUILDDEPS)),, $(intermediate_dir)$(SEP).gch_$(module_name)$(SEP)$(source_name).gch.d) $(dependencies) | $(intermediate_dir)$(SEP).gch_$(module_name)\n"
-                          "\t$(ECHO_PCH)\n"
-                          "\t$(pch_cc) -o $@ $(pch_ccflags)$(compiler_flags) -x $(pch_language) -c $<\n",
+Rule pchRule ( "$(eval $(call RBUILD_GCC_PCH_RULE,$(module_name),$(source),$(dependencies),$(compiler_flags)))\n",
                           "$(intermediate_dir)$(SEP).gch_$(module_name)$(SEP)$(source_name).gch",
-                          "$(intermediate_dir)$(SEP).gch_$(module_name)$(SEP)$(source_name).gch.d", NULL );
+                          "$(intermediate_dir)$(SEP).gch_$(module_name)$(SEP)$(source_name).gch.d",
+                          "$(intermediate_dir)$(SEP).gch_$(module_name)$(SEP)", NULL );
+Rule pchCxxRule ( "$(eval $(call RBUILD_GPP_PCH_RULE,$(module_name),$(source),$(dependencies),$(compiler_flags)))\n",
+                             "$(intermediate_dir)$(SEP).gch_$(module_name)$(SEP)$(source_name).gch",
+                             "$(intermediate_dir)$(SEP).gch_$(module_name)$(SEP)$(source_name).gch.d",
+                             "$(intermediate_dir)$(SEP).gch_$(module_name)$(SEP)", NULL );
+Rule bootRule ( "$(eval $(call RBUILD_NASM,$(module_name),$(source),$(dependencies),,$(module_output)))\n",
+                "$(module_output)",
+                "$(OUTPUT)$(SEP)$(source_dir)$(SEP)", NULL );
+Rule nasmRule ( "$(eval $(call RBUILD_NASM,$(module_name),$(source),$(dependencies),,$(intermediate_path_unique).o))\n",
+                "$(intermediate_path_unique).o",
+                "$(intermediate_dir)$(SEP)", NULL );
+
+/* TODO: move these to rules.mak */
+Rule wmcRule ( "$(intermediate_path_noext).rc $(INTERMEDIATE)$(SEP)include$(SEP)reactos$(SEP)$(source_name_noext).h: $(WMC_TARGET) $(source) | $(intermediate_dir)\n"
+               "\t$(ECHO_WMC)\n"
+               "\t$(Q)$(WMC_TARGET) -i -H $(INTERMEDIATE)$(SEP)include$(SEP)reactos$(SEP)$(source_name_noext).h -o $(intermediate_path_noext).rc $(source)\n",
+               "$(intermediate_path_noext).rc",
+               "$(INTERMEDIATE)$(SEP)include$(SEP)reactos$(SEP)$(source_name_noext).h",
+               "$(intermediate_dir)$(SEP)", NULL );
+/* TODO: if possible, move these to rules.mak */
+Rule arRule1 ( "$(intermediate_path_noext).a: $($(module_name)_OBJS)  $(dependencies) | $(intermediate_dir)\n",
+               "$(intermediate_path_noext).a",
+               "$(intermediate_dir)$(SEP)", NULL );
+Rule arRule2 ( "\t$(ECHO_AR)\n"
+              "\t${ar} -rc $@ $($(module_name)_OBJS)\n",
+              NULL );
+Rule arHostRule2 ( "\t$(ECHO_HOSTAR)\n"
+                   "\t${host_ar} -rc $@ $($(module_name)_OBJS)\n",
+                   NULL );
+
 Rule emptyRule ( "", NULL );
 
 void
@@ -1293,13 +1160,6 @@ MingwModuleHandler::GenerateGccCommand (
        const FileLocation *pchFilename = GetPrecompiledHeaderFilename ();
        string dependencies = extraDependencies;
 
-       string flags;
-       string extension = GetExtension ( *sourceFile );
-       if ( extension == ".cc" || extension == ".cpp" || extension == ".cxx" )
-               flags = GenerateCompilerParametersFromVector ( module.non_if_data.compilerFlags, CompilerTypeCPP );
-       else
-               flags = GenerateCompilerParametersFromVector ( module.non_if_data.compilerFlags, CompilerTypeCC );
-
        if ( pchFilename )
        {
                dependencies += " " + backend->GetFullName ( *pchFilename );
@@ -1312,7 +1172,7 @@ MingwModuleHandler::GenerateGccCommand (
        if ( rpcDependencies.size () > 0 )
                dependencies += " " + v2s ( backend, rpcDependencies, 5 );
 
-       rule->Execute ( fMakefile, backend, module, sourceFile, clean_files, dependencies, flags );
+       rule->Execute ( fMakefile, backend, module, sourceFile, clean_files, dependencies );
 }
 
 string
@@ -1406,8 +1266,6 @@ MingwModuleHandler::GenerateCommands (
        size_t i;
        Rule *customRule = NULL;
 
-       fprintf ( fMakefile, "# COMMANDS\n" );
-
        for ( i = 0; i < sizeof ( rules ) / sizeof ( rules[0] ); i++ )
        {
                if ( rules[i].host != HostDontCare && rules[i].host != ModuleHandlerInformations[module.type].DefaultHost )
@@ -1735,8 +1593,6 @@ MingwModuleHandler::GenerateObjectFileTargets ( const IfableData& data )
        {
                GenerateCommands ( *compilationUnits[i],
                                   moduleDependencies );
-               fprintf ( fMakefile,
-                         "\n" );
        }
 
        vector<CompilationUnit*> sourceCompilationUnits;
@@ -1748,20 +1604,6 @@ MingwModuleHandler::GenerateObjectFileTargets ( const IfableData& data )
        }
        CleanupCompilationUnitVector ( sourceCompilationUnits );
 
-       SpecFileType spec = IsSpecDefinitionFile ();
-
-       if ( spec )
-       {
-               Rule * defRule;
-
-               if (spec == PSpec)
-                       defRule = &winebuildPRule;
-               else
-                       defRule = &winebuildRule;
-
-               defRule->Execute ( fMakefile, backend, module, module.importLibrary->source, clean_files );
-       }
-
        if ( module.type == RpcProxy )
        {
                widlDlldataRule.Execute ( fMakefile,
@@ -1783,22 +1625,6 @@ MingwModuleHandler::GenerateObjectFileTargets ()
 
                std::map<string, string> vars;
 
-               if ( ModuleHandlerInformations[module.type].DefaultHost == HostTrue )
-                       vars["pch_cc"] = "${host_gcc}";
-               else
-                       vars["pch_cc"] = "${gcc}";
-
-               if ( module.cplusplus )
-               {
-                       vars["pch_language"] = "c++-header";
-                       vars["pch_ccflags"] = cxxflagsMacro.c_str();
-               }
-               else
-               {
-                       vars["pch_language"] = "c-header";
-                       vars["pch_ccflags"] = cflagsMacro.c_str();
-               }
-
                /* WIDL generated headers may be used */
                string dependencies;
                vector<FileLocation> rpcDependencies;
@@ -1806,14 +1632,11 @@ MingwModuleHandler::GenerateObjectFileTargets ()
                if ( rpcDependencies.size () > 0 )
                        dependencies = " " + v2s ( backend, rpcDependencies, 5 );
 
-               pchRule.Execute ( fMakefile,
-                                                 backend,
-                                                 module,
-                                                 module.pch->file,
-                                                 clean_files,
-                                                 dependencies,
-                                                 GenerateCompilerParametersFromVector ( module.non_if_data.compilerFlags, module.cplusplus ? CompilerTypeCPP : CompilerTypeCC ).c_str(),
-                                                 vars );
+               if ( module.cplusplus )
+                       pchCxxRule.Execute ( fMakefile, backend, module, module.pch->file, clean_files, dependencies );
+               else
+                       pchRule.Execute ( fMakefile, backend, module, module.pch->file, clean_files, dependencies );
+
                fprintf ( fMakefile, "\n" );
        }
 
@@ -1871,12 +1694,6 @@ MingwModuleHandler::GetObjectsMacro ( const Module& module )
                          module.name.c_str () );
 }
 
-string
-MingwModuleHandler::GetLinkingDependenciesMacro () const
-{
-       return ssprintf ( "$(%s_LINKDEPS)", module.name.c_str () );
-}
-
 string
 MingwModuleHandler::GetLibsMacro () const
 {
@@ -1891,7 +1708,7 @@ MingwModuleHandler::GetLinkerMacro () const
 }
 
 string
-MingwModuleHandler::GetDebugFormat () const
+MingwModuleHandler::GetDebugFormat ()
 {
     if (Environment::GetArch() == "amd64")
     {
@@ -1919,7 +1736,8 @@ MingwModuleHandler::GenerateSourceMacro ()
 {
        sourcesMacro = ssprintf ( "%s_SOURCES", module.name.c_str ());
 
-       GenerateSourceMacros ( module.non_if_data );
+       if ( module.type == RpcProxy || module.type == Cabinet )
+               GenerateSourceMacros ( module.non_if_data );
 
        // future references to the macro will be to get its values
        sourcesMacro = ssprintf ("$(%s)", sourcesMacro.c_str ());
@@ -1939,7 +1757,6 @@ MingwModuleHandler::GenerateObjectMacro ()
 void
 MingwModuleHandler::GenerateTargetMacro ()
 {
-       fprintf ( fMakefile, "# TARGET MACRO\n" );
        fprintf ( fMakefile,
                "%s := %s\n",
                GetTargetMacro ( module, false ).c_str (),
@@ -2001,166 +1818,60 @@ MingwModuleHandler::GenerateOtherMacros ()
 {
        set<const Define *> used_defs;
 
-       fprintf ( fMakefile, "# OTHER MACROS\n" );
-
-       commonflagsMacro = ssprintf ("%s_COMMONFLAGS", module.name.c_str ());
-       cflagsMacro = ssprintf ("%s_CFLAGS", module.name.c_str ());
-       cxxflagsMacro = ssprintf ("%s_CXXFLAGS", module.name.c_str ());
-       nasmflagsMacro = ssprintf ("%s_NASMFLAGS", module.name.c_str ());
-       windresflagsMacro = ssprintf ("%s_RCFLAGS", module.name.c_str ());
-       widlflagsMacro = ssprintf ("%s_WIDLFLAGS", module.name.c_str ());
        linkerflagsMacro = ssprintf ("%s_LFLAGS", module.name.c_str ());
        libsMacro = ssprintf("%s_LIBS", module.name.c_str ());
-       linkDepsMacro = ssprintf ("%s_LINKDEPS", module.name.c_str ());
 
-       GenerateMacros (
-               "=",
-               module.non_if_data,
-               &module.linkerFlags,
-               used_defs );
+       const FileLocation * pchPath = GetPrecompiledHeaderPath ();
 
-       if ( ModuleHandlerInformations[module.type].DefaultHost == HostTrue )
+       if ( pchPath )
        {
-               GenerateMacros("+=", module.project.host_non_if_data, NULL, used_defs);
-       }
-       else
-       {
-               GenerateMacros (
-                       "+=",
-                       module.project.non_if_data,
-                       NULL,
-                       used_defs );
-       }
+               string pchPathStr = backend->GetFullName ( *pchPath );
+               delete pchPath;
 
-       if ( IsSpecDefinitionFile() )
-       {
-               vector<FileLocation> s;
-               GetSpecImplibDependencies ( s, module.importLibrary->source );
-
-               fprintf (
-                       fMakefile,
-                       "%s +=",
-                       linkDepsMacro.c_str() );
-               for ( size_t i = 0; i < s.size(); i++ )
-                       fprintf ( fMakefile,
-                                 " %s",
-                                 backend->GetFullName ( s[i] ).c_str () );
-               fprintf ( fMakefile, "\n" );
-       }
+               fprintf ( fMakefile,
+                                 "%s_%sINCLUDES+= -I%s\n",
+                                 module.name.c_str(),
+                                 CompilerPrefixTable[CompilerTypeCC],
+                                 pchPathStr.c_str() );
 
-       string globalCflags = " ";
-       globalCflags += ssprintf ("$(%s)", commonflagsMacro.c_str ());
-       if ( ModuleHandlerInformations[module.type].DefaultHost == HostFalse )
-       {
-               if ( module.dynamicCRT )
-                       globalCflags += " -D_DLL -D__USE_CRTIMP";
-       }
-       else
-               globalCflags += " -Wall -Wpointer-arith";
-       globalCflags += " -g" + MingwModuleHandler::GetDebugFormat ();
-       if ( backend->usePipe )
-               globalCflags += " -pipe";
-       if ( !module.allowWarnings )
-               globalCflags += " -Werror";
-       if ( ModuleHandlerInformations[module.type].DefaultHost == HostTrue )
-       {
-               if ( module.cplusplus )
-                       globalCflags += " $(HOST_CPPFLAGS)";
-               else
-                       globalCflags += " -Wno-strict-aliasing $(HOST_CFLAGS)";
-       }
-       else
-       {
-               if ( module.cplusplus )
-               {
-                       globalCflags += " $(TARGET_CPPFLAGS)";
-               }
-               else
-                       globalCflags += " -nostdinc";
+               fprintf ( fMakefile,
+                                 "%s_%sINCLUDES+= -I%s\n",
+                                 module.name.c_str(),
+                                 CompilerPrefixTable[CompilerTypeCXX],
+                                 pchPathStr.c_str() );
        }
 
-       // Always force disabling of sibling calls optimisation for GCC
-       // (TODO: Move to version-specific once this bug is fixed in GCC)
-       globalCflags += " -fno-optimize-sibling-calls";
+       const char * toolPrefix = "";
 
-       if ( ModuleHandlerInformations[module.type].DefaultHost == HostFalse )
-       {
-               fprintf (
-                       fMakefile,
-                       "%s +=%s\n",
-                       cflagsMacro.c_str (),
-                       (" $(PROJECT_CFLAGS)" + globalCflags).c_str () );
-
-               fprintf (
-                       fMakefile,
-                       "%s +=%s\n",
-                       cxxflagsMacro.c_str (),
-                       (" $(PROJECT_CXXFLAGS)" + globalCflags).c_str () );
-
-               fprintf (
-                       fMakefile,
-                       "%s += $(PROJECT_RCFLAGS)\n",
-                       windresflagsMacro.c_str () );
-
-               fprintf (
-                       fMakefile,
-                       "%s += $(PROJECT_WIDLFLAGS) -I%s\n",
-                       widlflagsMacro.c_str (),
-                       module.output->relative_path.c_str () );
+       if ( ModuleHandlerInformations[module.type].DefaultHost == HostTrue )
+               toolPrefix = "HOST_";
 
-               fprintf (
-                       fMakefile,
-                       "%s_LFLAGS := $(PROJECT_LFLAGS) $(%s_LFLAGS)\n",
-                       module.name.c_str (),
-                       module.name.c_str () );
-       }
-       else
+       // FIXME: this is very ugly and generates lots of useless entries
+       for ( unsigned type = CompilerTypeCC; type < CompilerTypesCount; ++ type )
        {
-               fprintf (
-                       fMakefile,
-                       "%s +=%s\n",
-                       cflagsMacro.c_str (),
-                       globalCflags.c_str () );
+               string flags;
 
-               fprintf (
-                       fMakefile,
-                       "%s +=%s\n",
-                       cxxflagsMacro.c_str (),
-                       globalCflags.c_str () );
+               if ( module.dynamicCRT )
+                       flags += ssprintf ( " $(%s%sFLAG_CRTDLL)", toolPrefix, CompilerPrefixTable[type] );
 
-               fprintf (
-                       fMakefile,
-                       "%s_LFLAGS += $(HOST_LFLAGS)\n",
-                       module.name.c_str () );
-       }
+               // FIXME: this duplicates the flag for CPP and C/CXX
+               if ( !module.allowWarnings )
+                       flags += ssprintf ( " $(%s%sFLAG_WERROR)", toolPrefix, CompilerPrefixTable[type] );
 
-       fprintf (
-               fMakefile,
-               "%s += $(%s)\n",
-               linkDepsMacro.c_str (),
-               libsMacro.c_str () );
+               if ( module.isUnicode )
+                       flags += ssprintf ( " $(%s%sFLAG_UNICODE)", toolPrefix, CompilerPrefixTable[type] );
 
-       const char *cflags = ModuleHandlerInformations[module.type].cflags;
-       if ( strlen( cflags ) > 0 )
-       {
-               fprintf ( fMakefile,
-                         "%s += %s\n\n",
-                         cflagsMacro.c_str (),
-                         cflags );
-               fprintf ( fMakefile,
-                         "%s += %s\n\n",
-                         cxxflagsMacro.c_str (),
-                         cflags );
+               if ( flags.size() )
+               {
+                       fprintf ( fMakefile,
+                                         "%s_%sFLAGS+=%s\n",
+                                         module.name.c_str(),
+                                         CompilerPrefixTable[type],
+                                         flags.c_str() );
+               }
        }
 
-       const char* nasmflags = ModuleHandlerInformations[module.type].nasmflags;
-       if ( strlen( nasmflags ) > 0 )
-       {
-               fprintf ( fMakefile,
-                         "%s += %s\n\n",
-                         nasmflagsMacro.c_str (),
-                         nasmflags );
-       }
+       GenerateParameters ( module.name.c_str(), "+=", module.non_if_data );
 
        const char *linkerflags = ModuleHandlerInformations[module.type].linkerflags;
        if ( strlen( linkerflags ) > 0 )
@@ -2171,14 +1882,26 @@ MingwModuleHandler::GenerateOtherMacros ()
                          linkerflags );
        }
 
-       fprintf ( fMakefile, "\n\n" );
+       // FIXME: make rules for linker, move standard flags there
+       if ( ModuleHandlerInformations[module.type].DefaultHost == HostFalse )
+       {
+               if ( module.cplusplus )
+                       fprintf ( fMakefile,
+                                         "%s+= $(PROJECT_LPPFLAGS)\n\n",
+                                         linkerflagsMacro.c_str () );
+               else
+                       fprintf ( fMakefile,
+                                         "%s+= $(PROJECT_LFLAGS)\n\n",
+                                         linkerflagsMacro.c_str () );
+       }
 
-       // future references to the macros will be to get their values
-       commonflagsMacro = ssprintf ("$(%s)", commonflagsMacro.c_str ());
-       cflagsMacro = ssprintf ("$(%s)", cflagsMacro.c_str ());
-       cxxflagsMacro = ssprintf ("$(%s)", cxxflagsMacro.c_str ());
-       nasmflagsMacro = ssprintf ("$(%s)", nasmflagsMacro.c_str ());
-       widlflagsMacro = ssprintf ("$(%s)", widlflagsMacro.c_str ());
+       GenerateMacros (
+               "+=",
+               module.non_if_data,
+               &module.linkerFlags,
+               used_defs );
+
+       fprintf ( fMakefile, "\n\n" );
 }
 
 void
@@ -2221,9 +1944,9 @@ MingwModuleHandler::GenerateRules ()
                Rule * defRule;
 
                if (spec == PSpec)
-                       defRule = &winebuildPDefRule;
+                       defRule = &winebuildPRule;
                else
-                       defRule = &winebuildDefRule;
+                       defRule = &winebuildRule;
 
                defRule->Execute ( fMakefile, backend, module, module.importLibrary->source, clean_files );
        }
@@ -2461,16 +2184,6 @@ MingwModuleHandler::GetSpecObjectDependencies (
                                                                                        GetBasename ( file->name ) + "_" + module.name + ".stubs.c" ) );
 }
 
-void
-MingwModuleHandler::GetSpecImplibDependencies (
-       vector<FileLocation>& dependencies,
-       const FileLocation *file ) const
-{
-       dependencies.push_back ( FileLocation ( IntermediateDirectory,
-                                                                                       file->relative_path,
-                                                                                       GetBasename ( file->name ) + "_" + module.name + ".auto.def" ) );
-}
-
 void
 MingwModuleHandler::GetMcObjectDependencies (
        vector<FileLocation>& dependencies,
@@ -2604,7 +2317,6 @@ MingwBuildToolModuleHandler::GenerateBuildToolModuleTarget ()
 {
        string targetMacro ( GetTargetMacro (module) );
        string objectsMacro = GetObjectsMacro ( module );
-       string linkDepsMacro = GetLinkingDependenciesMacro ();
        string libsMacro = GetLibsMacro ();
 
        GenerateRules ();
@@ -2621,7 +2333,7 @@ MingwBuildToolModuleHandler::GenerateBuildToolModuleTarget ()
        fprintf ( fMakefile, "%s: %s %s | %s\n",
                  targetMacro.c_str (),
                  objectsMacro.c_str (),
-                 linkDepsMacro.c_str (),
+                 libsMacro.c_str (),
                  backend->GetFullPath ( *target_file ).c_str () );
        fprintf ( fMakefile, "\t$(ECHO_HOSTLD)\n" );
        fprintf ( fMakefile,
@@ -2653,7 +2365,7 @@ MingwKernelModuleHandler::GenerateKernelModuleTarget ()
 {
        string targetMacro ( GetTargetMacro ( module ) );
        string workingDirectory = GetWorkingDirectory ( );
-       string linkDepsMacro = GetLinkingDependenciesMacro ();
+       string libsMacro = GetLibsMacro ();
 
        GenerateImportLibraryTargetIfNeeded ();
 
@@ -2661,7 +2373,7 @@ MingwKernelModuleHandler::GenerateKernelModuleTarget ()
        {
                GenerateRules ();
 
-               string dependencies = linkDepsMacro + " " + objectsMacro;
+               string dependencies = libsMacro + " " + objectsMacro;
 
                string linkerParameters = ssprintf ( "-subsystem=native -entry=%s -image-base=%s",
                                                     module.GetEntryPoint(!(Environment::GetArch() == "arm")).c_str (),
@@ -2704,7 +2416,7 @@ MingwKernelModeDLLModuleHandler::GenerateKernelModeDLLModuleTarget ()
 {
        string targetMacro ( GetTargetMacro ( module ) );
        string workingDirectory = GetWorkingDirectory ();
-       string linkDepsMacro = GetLinkingDependenciesMacro ();
+       string libsMacro = GetLibsMacro ();
 
        GenerateImportLibraryTargetIfNeeded ();
 
@@ -2712,7 +2424,7 @@ MingwKernelModeDLLModuleHandler::GenerateKernelModeDLLModuleTarget ()
        {
                GenerateRules ();
 
-               string dependencies = linkDepsMacro + " " + objectsMacro;
+               string dependencies = libsMacro + " " + objectsMacro;
 
                string linkerParameters = ssprintf ( "-subsystem=native -entry=%s -image-base=%s -file-alignment=0x1000 -section-alignment=0x1000 -shared",
                                                     module.GetEntryPoint(!(Environment::GetArch() == "arm")).c_str (),
@@ -2753,7 +2465,7 @@ MingwNativeDLLModuleHandler::GenerateNativeDLLModuleTarget ()
 {
        string targetMacro ( GetTargetMacro (module) );
        string workingDirectory = GetWorkingDirectory ( );
-       string linkDepsMacro = GetLinkingDependenciesMacro ();
+       string libsMacro = GetLibsMacro ();
 
        GenerateImportLibraryTargetIfNeeded ();
 
@@ -2761,7 +2473,7 @@ MingwNativeDLLModuleHandler::GenerateNativeDLLModuleTarget ()
        {
                GenerateRules ();
 
-               string dependencies = linkDepsMacro + " " + objectsMacro;
+               string dependencies = libsMacro + " " + objectsMacro;
 
                string linkerParameters = ssprintf ( "-subsystem=native -entry=%s -image-base=%s -file-alignment=0x1000 -section-alignment=0x1000 -shared",
                                                     module.GetEntryPoint(!(Environment::GetArch() == "arm")).c_str (),
@@ -2802,7 +2514,7 @@ MingwNativeCUIModuleHandler::GenerateNativeCUIModuleTarget ()
 {
        string targetMacro ( GetTargetMacro (module) );
        string workingDirectory = GetWorkingDirectory ( );
-       string linkDepsMacro = GetLinkingDependenciesMacro ();
+       string libsMacro = GetLibsMacro ();
 
        GenerateImportLibraryTargetIfNeeded ();
 
@@ -2810,7 +2522,7 @@ MingwNativeCUIModuleHandler::GenerateNativeCUIModuleTarget ()
        {
                GenerateRules ();
 
-               string dependencies = linkDepsMacro + " " + objectsMacro;
+               string dependencies = libsMacro + " " + objectsMacro;
 
                string linkerParameters = ssprintf ( "-subsystem=native -entry=%s -image-base=%s -file-alignment=0x1000 -section-alignment=0x1000",
                                                     module.GetEntryPoint(!(Environment::GetArch() == "arm")).c_str (),
@@ -2892,7 +2604,7 @@ MingwWin32DLLModuleHandler::GenerateWin32DLLModuleTarget ()
 {
        string targetMacro ( GetTargetMacro (module) );
        string workingDirectory = GetWorkingDirectory ( );
-       string linkDepsMacro = GetLinkingDependenciesMacro ();
+       string libsMacro = GetLibsMacro ();
 
        GenerateImportLibraryTargetIfNeeded ();
 
@@ -2900,7 +2612,7 @@ MingwWin32DLLModuleHandler::GenerateWin32DLLModuleTarget ()
        {
                GenerateRules ();
 
-               string dependencies = linkDepsMacro + " " + objectsMacro;
+               string dependencies = libsMacro + " " + objectsMacro;
 
                string linkerParameters = ssprintf ( "-subsystem=console -entry=%s -image-base=%s -file-alignment=0x1000 -section-alignment=0x1000 -shared",
                                                     module.GetEntryPoint(!(Environment::GetArch() == "arm")).c_str (),
@@ -2933,7 +2645,7 @@ MingwWin32OCXModuleHandler::GenerateWin32OCXModuleTarget ()
 {
        string targetMacro ( GetTargetMacro (module) );
        string workingDirectory = GetWorkingDirectory ( );
-       string linkDepsMacro = GetLinkingDependenciesMacro ();
+       string libsMacro = GetLibsMacro ();
 
        GenerateImportLibraryTargetIfNeeded ();
 
@@ -2941,7 +2653,7 @@ MingwWin32OCXModuleHandler::GenerateWin32OCXModuleTarget ()
        {
                GenerateRules ();
 
-               string dependencies = linkDepsMacro + " " + objectsMacro;
+               string dependencies = libsMacro + " " + objectsMacro;
 
                string linkerParameters = ssprintf ( "-subsystem=console -entry=%s -image-base=%s -file-alignment=0x1000 -section-alignment=0x1000 -shared",
                                                     module.GetEntryPoint(!(Environment::GetArch() == "arm")).c_str (),
@@ -2981,7 +2693,7 @@ MingwWin32CUIModuleHandler::GenerateWin32CUIModuleTarget ()
 {
        string targetMacro ( GetTargetMacro (module) );
        string workingDirectory = GetWorkingDirectory ( );
-       string linkDepsMacro = GetLinkingDependenciesMacro ();
+       string libsMacro = GetLibsMacro ();
 
        GenerateImportLibraryTargetIfNeeded ();
 
@@ -2989,7 +2701,7 @@ MingwWin32CUIModuleHandler::GenerateWin32CUIModuleTarget ()
        {
                GenerateRules ();
 
-               string dependencies = linkDepsMacro + " " + objectsMacro;
+               string dependencies = libsMacro + " " + objectsMacro;
 
                string linkerParameters = ssprintf ( "-subsystem=console -entry=%s -image-base=%s -file-alignment=0x1000 -section-alignment=0x1000",
                                                     module.GetEntryPoint(!(Environment::GetArch() == "arm")).c_str (),
@@ -3029,7 +2741,7 @@ MingwWin32GUIModuleHandler::GenerateWin32GUIModuleTarget ()
 {
        string targetMacro ( GetTargetMacro (module) );
        string workingDirectory = GetWorkingDirectory ( );
-       string linkDepsMacro = GetLinkingDependenciesMacro ();
+       string libsMacro = GetLibsMacro ();
 
        GenerateImportLibraryTargetIfNeeded ();
 
@@ -3037,7 +2749,7 @@ MingwWin32GUIModuleHandler::GenerateWin32GUIModuleTarget ()
        {
                GenerateRules ();
 
-               string dependencies = linkDepsMacro + " " + objectsMacro;
+               string dependencies = libsMacro + " " + objectsMacro;
 
                string linkerParameters = ssprintf ( "-subsystem=windows -entry=%s -image-base=%s -file-alignment=0x1000 -section-alignment=0x1000",
                                                     module.GetEntryPoint(!(Environment::GetArch() == "arm")).c_str (),
@@ -3069,6 +2781,7 @@ MingwBootLoaderModuleHandler::Process ()
 void
 MingwBootLoaderModuleHandler::GenerateBootLoaderModuleTarget ()
 {
+       fprintf ( fMakefile, "# BOOT LOADER MODULE TARGET\n" );
        string targetName ( module.output->name );
        string targetMacro ( GetTargetMacro (module) );
        string workingDirectory = GetWorkingDirectory ();
@@ -3077,17 +2790,15 @@ MingwBootLoaderModuleHandler::GenerateBootLoaderModuleTarget ()
                                module.name + ".junk.tmp" );
        CLEAN_FILE ( junk_tmp );
        string objectsMacro = GetObjectsMacro ( module );
-       string linkDepsMacro = GetLinkingDependenciesMacro ();
+       string libsMacro = GetLibsMacro ();
 
        GenerateRules ();
 
-       fprintf ( fMakefile, "# BOOT LOADER MODULE TARGET\n" );
-
        const FileLocation *target_file = GetTargetFilename ( module, NULL );
        fprintf ( fMakefile, "%s: %s %s | %s\n",
                  targetMacro.c_str (),
                  objectsMacro.c_str (),
-                 linkDepsMacro.c_str (),
+                 libsMacro.c_str (),
                  backend->GetFullPath ( *target_file ).c_str () );
 
        fprintf ( fMakefile, "\t$(ECHO_LD)\n" );
@@ -3098,7 +2809,7 @@ MingwBootLoaderModuleHandler::GenerateBootLoaderModuleTarget ()
                         "\t${gcc} -Wl,--subsystem,native -Wl,--section-start,startup=0x8000 -o %s %s %s %s\n",
                         backend->GetFullName ( junk_tmp ).c_str (),
                         objectsMacro.c_str (),
-                        linkDepsMacro.c_str (),
+                        libsMacro.c_str (),
                         GetLinkerMacro ().c_str ());
        }
        else
@@ -3107,7 +2818,7 @@ MingwBootLoaderModuleHandler::GenerateBootLoaderModuleTarget ()
                         "\t${gcc} -Wl,--subsystem,native -Wl,-Ttext,0x8000 -o %s %s %s %s\n",
                         backend->GetFullName ( junk_tmp ).c_str (),
                         objectsMacro.c_str (),
-                        linkDepsMacro.c_str (),
+                        libsMacro.c_str (),
                         GetLinkerMacro ().c_str ());
        }
        fprintf ( fMakefile,
@@ -3137,6 +2848,8 @@ MingwBootProgramModuleHandler::Process ()
 void
 MingwBootProgramModuleHandler::GenerateBootProgramModuleTarget ()
 {
+       fprintf ( fMakefile, "# BOOT PROGRAM MODULE TARGET\n" );
+
        string targetName ( module.output->name );
        string targetMacro ( GetTargetMacro (module) );
        string workingDirectory = GetWorkingDirectory ();
@@ -3153,18 +2866,16 @@ MingwBootProgramModuleHandler::GenerateBootProgramModuleTarget ()
        CLEAN_FILE ( junk_elf );
        CLEAN_FILE ( junk_cpy );
        string objectsMacro = GetObjectsMacro ( module );
-       string linkDepsMacro = GetLinkingDependenciesMacro ();
+       string libsMacro = GetLibsMacro ();
        const Module *payload = module.project.LocateModule ( module.payload );
 
        GenerateRules ();
 
-       fprintf ( fMakefile, "# BOOT PROGRAM MODULE TARGET\n" );
-
        const FileLocation *target_file = GetTargetFilename ( module, NULL );
        fprintf ( fMakefile, "%s: %s %s %s | %s\n",
                  targetMacro.c_str (),
                  objectsMacro.c_str (),
-                 linkDepsMacro.c_str (),
+                 libsMacro.c_str (),
                  payload->name.c_str (),
                  backend->GetFullPath ( *target_file ).c_str () );
 
@@ -3182,7 +2893,7 @@ MingwBootProgramModuleHandler::GenerateBootProgramModuleTarget ()
 
        fprintf ( fMakefile, "\t${ld} $(%s_LINKFORMAT) %s %s -o %s\n",
                module.buildtype.c_str (),
-               linkDepsMacro.c_str (),
+               libsMacro.c_str (),
                backend->GetFullName ( junk_tmp ).c_str (),
                backend->GetFullName ( junk_elf ).c_str () );
 
@@ -3627,7 +3338,7 @@ MingwTestModuleHandler::GenerateTestModuleTarget ()
 {
        string targetMacro ( GetTargetMacro ( module ) );
        string workingDirectory = GetWorkingDirectory ( );
-       string linkDepsMacro = GetLinkingDependenciesMacro ();
+       string libsMacro = GetLibsMacro ();
 
        GenerateImportLibraryTargetIfNeeded ();
 
@@ -3635,7 +3346,7 @@ MingwTestModuleHandler::GenerateTestModuleTarget ()
        {
                GenerateRules ();
 
-               string dependencies = linkDepsMacro + " " + objectsMacro;
+               string dependencies = libsMacro + " " + objectsMacro;
 
                string linkerParameters = ssprintf ( "-subsystem=console -entry=%s -image-base=%s -file-alignment=0x1000 -section-alignment=0x1000",
                                                     module.GetEntryPoint(!(Environment::GetArch() == "arm")).c_str (),
@@ -3674,11 +3385,11 @@ MingwCabinetModuleHandler::MingwCabinetModuleHandler (
 void
 MingwCabinetModuleHandler::Process ()
 {
+       fprintf ( fMakefile, "# CABINET MODULE TARGET\n" );
        string targetMacro ( GetTargetMacro (module) );
 
        GenerateRules ();
 
-       fprintf ( fMakefile, "# CABINET MODULE TARGET\n" );
        const FileLocation *target_file = GetTargetFilename ( module, NULL );
        fprintf ( fMakefile, "%s: $(CABMAN_TARGET) | %s\n",
                  targetMacro.c_str (),
@@ -3705,18 +3416,17 @@ MingwElfExecutableModuleHandler::Process ()
        string targetMacro ( GetTargetMacro (module) );
        string workingDirectory = GetWorkingDirectory ();
        string objectsMacro = GetObjectsMacro ( module );
-       string linkDepsMacro = GetLinkingDependenciesMacro ();
        string libsMacro = GetLibsMacro ();
        string debugFormat = GetDebugFormat ();
 
+       fprintf ( fMakefile, "# ELF EXECUTABLE TARGET\n" );
        GenerateRules ();
 
-       fprintf ( fMakefile, "# ELF EXECUTABLE TARGET\n" );
        const FileLocation *target_file = GetTargetFilename ( module, NULL );
        fprintf ( fMakefile, "%s: %s %s | %s\n",
                  targetMacro.c_str (),
                  objectsMacro.c_str (),
-                 linkDepsMacro.c_str (),
+                 libsMacro.c_str (),
                  backend->GetFullPath ( *target_file ).c_str () );
 
        fprintf ( fMakefile, "\t$(ECHO_BOOTPROG)\n" );
@@ -3729,4 +3439,5 @@ MingwElfExecutableModuleHandler::Process ()
                  targetMacro.c_str () );
 
        delete target_file;
+       fprintf ( fMakefile, "#/ELF EXECUTABLE TARGET\n" );
 }
index d6a529d..5b02cb9 100644 (file)
@@ -60,7 +60,13 @@ public:
                string_list* pclean_files );
 
        static std::string GenerateGccDefineParametersFromVector ( const std::vector<Define*>& defines, std::set<std::string> &used_defs );
-       static std::string GenerateGccIncludeParametersFromVector ( const std::vector<Include*>& includes );
+       static std::string GenerateDefineParametersFromVector ( const std::vector<Define*>& defines, CompilerType compiler );
+       static std::string GenerateCompilerParametersFromVector ( const std::vector<CompilerFlag*>& compilerFlags, const CompilerType type );
+       static std::string GenerateIncludeParametersFromVector ( const std::vector<Include*>& includes, CompilerType compiler );
+
+       static void GenerateParameters ( const char* prefix,
+                                                                        const char* assignmentOperation,
+                                                                        const IfableData& data );
 
        std::string GetModuleTargets ( const Module& module );
        void GetObjectsVector ( const IfableData& data,
@@ -102,7 +108,7 @@ protected:
        std::string GetLinkingDependenciesMacro () const;
        std::string GetLibsMacro () const;
        std::string GetLinkerMacro () const;
-       std::string GetDebugFormat () const;
+       static std::string GetDebugFormat ();
        void GenerateCleanObjectsAsYouGoCode () const;
        void GenerateRunRsymCode () const;
        void GenerateRunStripCode () const;
@@ -121,15 +127,9 @@ protected:
 private:
        std::string ConcatenatePaths ( const std::string& path1,
                                       const std::string& path2 ) const;
-       std::string GenerateCompilerParametersFromVector ( const std::vector<CompilerFlag*>& compilerFlags, const CompilerType type ) const;
        std::string GenerateLinkerParametersFromVector ( const std::vector<LinkerFlag*>& linkerFlags ) const;
        std::string GenerateImportLibraryDependenciesFromVector ( const std::vector<Library*>& libraries );
        std::string GenerateLinkerParameters () const;
-       void GenerateMacro ( const char* assignmentOperation,
-                            const std::string& macro,
-                            const IfableData& data,
-                            std::set<const Define *>* used_defs,
-                            bool generatingCompilerMacro );
        void GenerateMacros ( const char* op,
                              const IfableData& data,
                              const std::vector<LinkerFlag*>* linkerFlags,
@@ -137,6 +137,7 @@ private:
        void GenerateSourceMacros ( const IfableData& data );
        void GenerateObjectMacros ( const IfableData& data );
        const FileLocation* GetPrecompiledHeaderFilename () const;
+       const FileLocation* GetPrecompiledHeaderPath () const;
        const FileLocation* GetDlldataFilename () const;
        void GenerateGccCommand ( const FileLocation* sourceFile,
                                  const Rule *rule,
index 7b403ab..42fdd85 100644 (file)
@@ -6,39 +6,201 @@ RBUILD_compress_prefixes=${call RBUILD_compress_prefix,${call RBUILD_compress_pr
 RBUILD_strip_prefix=${subst >>>,,${subst >>>$($(2)),,>>>$(1)}}
 RBUILD_strip_prefixes=${subst >>>,,${subst >>>$(SEP),,>>>${call RBUILD_strip_prefix,${call RBUILD_strip_prefix,${call RBUILD_strip_prefix,${call RBUILD_strip_prefix,${call RBUILD_strip_prefix,$(1),INTERMEDIATE},OUTPUT},CDOUTPUT},TEMPORARY},INSTALL}}}
 
+#(source)
+RBUILD_intermediate_path_noext=${call RBUILD_intermediate_dir,$(1)}$(SEP)$(basename $(notdir $(1)))
+
 #(module, source)
-RBUILD_intermediate_path_unique=${call RBUILD_intermediate_dir,$(2)}$(SEP)$(basename $(notdir $(2)))_$(1)
+RBUILD_intermediate_path_unique=${call RBUILD_intermediate_path_noext,$(2)}_$(1)
 
 #(source)
 RBUILD_intermediate_dir=${call RBUILD_fullpath,$(value INTERMEDIATE)$(SEP)$(dir ${call RBUILD_strip_prefixes,$(1)})}
 
-#(module, source, dependencies, cflags)
-define RBUILD_GCC_RULE
+#(source)
+RBUILD_source_name=$(basename $(notdir $(1)))
+
+#(source)
+RBUILD_dir=${call RBUILD_fullpath,$(dir ${call RBUILD_compress_prefixes,$(1)})}
+
+# FIXME: when RosBE stops hijacking HOST_CFLAGS etc., add CFLAGS etc.
+
+#(module, flags, includes, compiler, prefix)
+RBUILD_compiler_flags=\
+$$(BUILTIN_$(5)$(4)FLAGS) \
+$$(PROJECT_$(5)$(4)FLAGS) \
+$$(MODULETYPE$($(1)_TYPE)_$(4)FLAGS) \
+$$($(1)_$(4)FLAGS) \
+$(2)
+
+#(module, flags, includes, compiler, prefix)
+RBUILD_compiler_flags_with_cpp=\
+$(3) \
+$$($(1)_$(4)INCLUDES) $$($(1)_CPPINCLUDES) \
+$$(MODULETYPE$($(1)_TYPE)_$(4)INCLUDES) $$(MODULETYPE$($(1)_TYPE)_CPPINCLUDES) \
+$$(PROJECT_$(5)$(4)INCLUDES) $$(PROJECT_$(5)CPPINCLUDES) \
+$$(BUILTIN_$(5)$(4)INCLUDES) $$(BUILTIN_$(5)CPPINCLUDES) \
+$$(BUILTIN_$(5)CPPDEFINES) $$(BUILTIN_$(5)CPPFLAGS) $$(BUILTIN_$(5)$(4)DEFINES) $$(BUILTIN_$(5)$(4)FLAGS) \
+$$(PROJECT_$(5)CPPDEFINES) $$(PROJECT_$(5)CPPFLAGS) $$(PROJECT_$(5)$(4)DEFINES) $$(PROJECT_$(5)$(4)FLAGS) \
+$$(MODULETYPE$($(1)_TYPE)_CPPDEFINES) $$(MODULETYPE$($(1)_TYPE)_CPPFLAGS) $$(MODULETYPE$($(1)_TYPE)_$(4)DEFINES) $$(MODULETYPE$($(1)_TYPE)_$(4)FLAGS) \
+$$($(1)_CPPDEFINES) $$($(1)_CPPFLAGS) $$($(1)_$(4)DEFINES) $$($(1)_$(4)FLAGS) \
+$(2)
+
+#(module, flags, includes, compiler, prefix)
+RBUILD_compiler_flags_builtin_cpp=\
+$(3) \
+$$($(1)_$(4)INCLUDES) $$($(1)_CPPINCLUDES) \
+$$(MODULETYPE$($(1)_TYPE)_$(4)INCLUDES) $$(MODULETYPE$($(1)_TYPE)_CPPINCLUDES) \
+$$(PROJECT_$(5)$(4)INCLUDES) $$(PROJECT_$(5)CPPINCLUDES) \
+$$(BUILTIN_$(5)$(4)INCLUDES) $$(BUILTIN_$(5)CPPINCLUDES) \
+$$(BUILTIN_$(5)CPPDEFINES) $$(BUILTIN_$(5)$(4)DEFINES) $$(BUILTIN_$(5)$(4)FLAGS) \
+$$(PROJECT_$(5)CPPDEFINES) $$(PROJECT_$(5)$(4)DEFINES) $$(PROJECT_$(5)$(4)FLAGS) \
+$$(MODULETYPE$($(1)_TYPE)_CPPDEFINES) $$(MODULETYPE$($(1)_TYPE)_$(4)DEFINES) $$(MODULETYPE$($(1)_TYPE)_$(4)FLAGS) \
+$$($(1)_CPPDEFINES) $$($(1)_$(4)DEFINES) $$($(1)_$(4)FLAGS) \
+$(2)
+
+#(module, flags, includes, compiler, prefix)
+RBUILD_compiler_flags_with_includes=\
+$(3) \
+$$($(1)_$(4)INCLUDES) $$($(1)_CPPINCLUDES) \
+$$(MODULETYPE$($(1)_TYPE)_$(4)INCLUDES) \
+$$(PROJECT_$(5)$(4)INCLUDES) \
+$$(BUILTIN_$(5)$(4)INCLUDES) \
+$$(BUILTIN_$(5)$(4)FLAGS) \
+$$(PROJECT_$(5)$(4)FLAGS) \
+$$(MODULETYPE$($(1)_TYPE)_$(4)FLAGS) \
+$$($(1)_$(4)FLAGS) \
+$(2)
+
+#(module, flags, includes, compiler, prefix)
+RBUILD_compiler_flags_cpp=\
+$(3) \
+$$($(1)_$(4)INCLUDES) $$($(1)_CPPINCLUDES) \
+$$(MODULETYPE$($(1)_TYPE)_$(4)INCLUDES) $$(MODULETYPE$($(1)_TYPE)_CPPINCLUDES) \
+$$(PROJECT_$(5)$(4)INCLUDES) $$(PROJECT_$(5)CPPINCLUDES) \
+$$(BUILTIN_$(5)$(4)INCLUDES) $$(BUILTIN_$(5)CPPINCLUDES) \
+$$(BUILTIN_$(5)CPPFLAGS) $$(BUILTIN_$(5)CPPDEFINES) $$(BUILTIN_$(5)$(4)DEFINES) \
+$$(PROJECT_$(5)CPPFLAGS) $$(PROJECT_$(5)CPPDEFINES) $$(PROJECT_$(5)$(4)DEFINES) \
+$$(MODULETYPE$($(1)_TYPE)_CPPFLAGS) $$(MODULETYPE$($(1)_TYPE)_CPPDEFINES) $$(MODULETYPE$($(1)_TYPE)_$(4)DEFINES) \
+$$($(1)_CPPFLAGS) $$($(1)_CPPDEFINES) $$($(1)_$(4)DEFINES) \
+$(2)
+
+#(module, flags, includes)
+RBUILD_cflags=${call RBUILD_compiler_flags_with_cpp,$(1),$(2),$(3),C}
+RBUILD_cxxflags=${call RBUILD_compiler_flags_with_cpp,$(1),$(2),$(3),CXX}
+RBUILD_asflags=${call RBUILD_compiler_flags_with_cpp,$(1),$(2),$(3),AS}
+RBUILD_nasmflags=${call RBUILD_compiler_flags_builtin_cpp,$(1),$(2),$(3),NASM}
+RBUILD_rc_pp_flags=${call RBUILD_compiler_flags_cpp,$(1),-DRC_INVOKED=1 -D__WIN32__=1 -D__FLAT__=1,$(3) -I.,RC}
+RBUILD_rc_flags=${call RBUILD_compiler_flags_with_includes,$(1),$(2),$(3),RC}
+RBUILD_spec_pp_flags=${call RBUILD_compiler_flags_cpp,$(1),,$(3),SPEC}
+RBUILD_spec_flags=${call RBUILD_compiler_flags,$(1),$(2),,SPEC}
+RBUILD_midlflags=${call RBUILD_compiler_flags_builtin_cpp,$(1),$(2),$(3),MIDL}
+RBUILD_host_cflags=${call RBUILD_compiler_flags_with_cpp,$(1),$(2),$(3),C,HOST_}
+RBUILD_host_cxxflags=${call RBUILD_compiler_flags_with_cpp,$(1),$(2),$(3),CXX,HOST_}
+
+CFLAG_WERROR:=-Werror
+CFLAG_CRTDLL:=-D_DLL -D__USE_CRTIMP
+
+CXXFLAG_WERROR:=-Werror
+CXXFLAG_CRTDLL:=-D_DLL -D__USE_CRTIMP
+
+CPPFLAG_WERROR:=-Werror
+CPPFLAG_UNICODE:=-DUNICODE -D_UNICODE
+
+RCFLAG_UNICODE:=-DUNICODE -D_UNICODE
+
+BUILTIN_ASDEFINES+= -D__ASM__
+BUILTIN_CPPFLAGS+= -nostdinc
+BUILTIN_CFLAGS+= -fno-optimize-sibling-calls
+BUILTIN_CXXFLAGS+= -fno-optimize-sibling-calls
+BUILTIN_RCFLAGS+= --nostdinc
+BUILTIN_RCDEFINES+= -DRC_INVOKED
+BUILTIN_NASMFLAGS+= -f win32
+
+#(module, source, dependencies, cflags, output)
+define RBUILD_GCC
 
 $(2): $${$(1)_precondition}
 
 ifeq ($(ROS_BUILDDEPS),full)
 
-${call RBUILD_intermediate_path_unique,$(1),$(2)}.o.d: $(2) | ${call RBUILD_intermediate_dir,$(2)}
+$(5).d: $(2) | ${call RBUILD_dir,$(5)}
        $$(ECHO_DEPENDS)
-       $${gcc} -MF $$@ $$($(1)_CFLAGS) $(4) -M -MP -MT $$@ $$<
+       $${gcc} -MF $$@ ${call RBUILD_cflags,$(1),$(4)} -M -MP -MT $$@ $$<
 
--include ${call RBUILD_intermediate_path_unique,$(1),$(2)}.o.d
+-include $(5).d
 
-${call RBUILD_intermediate_path_unique,$(1),$(2)}.o: $(2) ${call RBUILD_intermediate_path_unique,$(1),$(2)}.o.d $(3) | ${call RBUILD_intermediate_dir,$(2)}
+$(5): $(2) $(5).d $(3) | ${call RBUILD_dir,$(5)}
        $$(ECHO_CC)
-       $${gcc} -o $$@ $$($(1)_CFLAGS) $(4) -c $$<
+       $${gcc} -o $$@ ${call RBUILD_cflags,$(1),$(4)} -c $$<
 
 else
 
-${call RBUILD_intermediate_path_unique,$(1),$(2)}.o: $(2) $(3) | ${call RBUILD_intermediate_dir,$(2)}
+$(5): $(2) $(3) | ${call RBUILD_dir,$(5)}
        $$(ECHO_CC)
-       $${gcc} -o $$@ $$($(1)_CFLAGS) $(4) -c $$<
+       $${gcc} -o $$@ ${call RBUILD_cflags,$(1),$(4)} -c $$<
+
+endif
+
+endef
+
+#(module, source, dependencies, cflags, output)
+define RBUILD_GAS
+
+$(2): $${$(1)_precondition}
+
+ifeq ($(ROS_BUILDDEPS),full)
+
+$(5).d: $(2) | ${call RBUILD_dir,$(5)}
+       $$(ECHO_DEPENDS)
+       $${gas} -MF $$@ ${call RBUILD_asflags,$(1),$(4)} -M -MP -MT $$@ $$<
+
+-include $(5).d
+
+$(5): $(2) $(5).d $(3) | ${call RBUILD_dir,$(5)}
+       $$(ECHO_AS)
+       $${gas} -o $$@ ${call RBUILD_asflags,$(1),$(4)} -c $$<
+
+else
+
+$(5): $(2) $(3) | ${call RBUILD_dir,$(5)}
+       $$(ECHO_AS)
+       $${gas} -o $$@ ${call RBUILD_asflags,$(1),$(4)} -c $$<
+
+endif
+
+endef
+
+#(module, source, dependencies, cflags, output)
+define RBUILD_GPP
+
+$(2): $${$(1)_precondition}
+
+ifeq ($(ROS_BUILDDEPS),full)
+
+$(5).d: $(2) | ${call RBUILD_dir,$(5)}
+       $$(ECHO_DEPENDS)
+       $${gpp} -MF $$@ ${call RBUILD_cxxflags,$(1),$(4)} -M -MP -MT $$@ $$<
+
+-include $(5).d
+
+$(5): $(2) $(5).d $(3) | ${call RBUILD_dir,$(5)}
+       $$(ECHO_CC)
+       $${gpp} -o $$@ ${call RBUILD_cxxflags,$(1),$(4)} -c $$<
+
+else
+
+$(5): $(2) $(3) | ${call RBUILD_dir,$(5)}