reactos/subsystems/win32/win32k/win32k.rbuild

208 lines
5.2 KiB
Plaintext
Raw Normal View History

<?xml version="1.0"?>
<!DOCTYPE group SYSTEM "../../../tools/rbuild/project.dtd">
<group>
<module name="win32k" type="kernelmodedriver" installbase="system32" installname="win32k.sys" crt="libcntpr">
<importlibrary definition="win32k.pspec" />
<library>pseh</library>
<library>ntoskrnl</library>
<library>hal</library>
<library>ftfd</library>
<library>dxguid</library>
<file>win32k.rc</file>
<include base="win32k">.</include>
<include base="win32k">include</include>
<include base="win32k" root="intermediate">.</include>
!!! ATTENTION EVERYONE - do a make clean after getting this revision !!! !!! ATTENTION PSEH USERS - new features & a change in rules !!! modified include/reactos/libs/pseh/framebased.h modified include/reactos/libs/pseh/framebased/internal.h deleted include/reactos/libs/pseh/setjmp.h modified lib/pseh/framebased.c deleted lib/pseh/i386/setjmp.asm modified lib/pseh/pseh.rbuild Big PSEH revamp. If God is kind and merciful, this might be the last revision to PSEH ever !!! RULE CHANGE !!! Obsoleted _SEH_NO_NATIVE_NLG, do NOT use it anymore, it will now cause fatal compile-time errors !!! RULE CHANGE !!! As a side effect to the fix for a bug where a _SEH_TRY nested in a _SEH_HANDLE would lead to stack corruption, using "return" or "goto" from anywhere inside a PSEH block is now FORBIDDEN; all code that already did has been fixed in this revision !!! NEW FEATURE !!! To leave a PSEH block from anywhere inside it, use the new _SEH_YIELD(<statement>) macro; examples: _SEH_YIELD(return value), _SEH_YIELD(goto label), _SEH_YIELD(returnvalue = value; goto label); ALWAYS ensure a _SEH_YIELD() leads outside the top-level _SEH_TRY block - do NOT goto into an ancestor _SEH_TRY block!!! Also note that _SEH_YIELD() disables SEH protection for the enclosed statement, so do NOT perform operations that might throw exceptions inside a _SEH_YIELD(); finally, ensure the enclosed statement does NOT allow execution to continue, or _SEH_YIELD() will get in an infinite loop; bear with me, for I have done the impossible, so don't expect miracles Don't use a fake setjmp/longjmp *ever*, too dangerous; removed _SEHLongJmp & _SEHSetJmp, obsoleted _SEH_NO_NATIVE_NLG On GCC, use __builtin_setjmp/__builtin_longjmp instead of setjmp/longjmp; they produce efficient code that plays well with optimizations, require no external library and are designed specifically for exception handling; should result in faster code and no hidden bugs Use inline code to enter/leave trylevels; yields much better binary code Inline handlers inside _SEH_PortableFrame_t instead of pointing to them; yields better code for the most common usages Turn all top-level statements generated by macros from bare scopes into for loops, to ensure they are used correctly as stand-alone statements Removed bitrotten old syntax, because it wasn't being used nor maintained modified dll/3rdparty/freetype/freetype.rbuild modified dll/win32/kernel32/kernel32.rbuild modified drivers/network/tcpip/tcpip.rbuild modified lib/drivers/ip/ip.rbuild modified lib/rtl/rtl.rbuild modified ntoskrnl/ntoskrnl.rbuild modified subsystems/win32/win32k/win32k.rbuild Removed obsolete _SEH_NO_NATIVE_NLG define modified drivers/network/afd/afd/lock.c modified drivers/network/afd/afd/tdi.c modified subsystems/csr/csrsrv/api.c modified subsystems/win32/win32k/ntuser/clipboard.c modified subsystems/win32/win32k/ntuser/window.c Use the new _SEH_YIELD macro to return/goto from SEH blocks modified tools/rbuild/backend/mingw/modulehandler.cpp modified tools/rbuild/backend/mingw/modulehandler.h modified tools/rbuild/module.cpp modified tools/rbuild/project.dtd modified tools/rbuild/rbuild.h Don't use the obsolete _SEH_NO_NATIVE_NLG flag anymore Only add underscores to imported symbols when module is marked underscoresymbols="true"; fixes debugsup and, indirectly, PSEH tracing modified lib/3rdparty/mingw/mingw.rbuild Build with underscoresymbols="true" svn path=/trunk/; revision=26224
2007-04-01 00:07:25 +00:00
<include base="ntoskrnl">include</include>
<include base="freetype">include</include>
<include base="ReactOS">include/reactos/subsys</include>
<include base="ReactOS">include/reactos/drivers</include>
<compilerflag compilerset="gcc">-fms-extensions</compilerflag>
<compilerflag compilerset="msc">/wd4276</compilerflag>
<define name="LANGPACK" />
<define name="_WIN32K_" />
<pch>pch.h</pch>
<directory name="dib" root="intermediate">
<file>dib8gen.c</file>
<file>dib16gen.c</file>
<file>dib32gen.c</file>
</directory>
<directory name="dib">
<file>dib1bpp.c</file>
<file>dib4bpp.c</file>
<file>dib8bpp.c</file>
<file>dib16bpp.c</file>
<file>dib24bpp.c</file>
<file>dib32bpp.c</file>
<file>dib.c</file>
<file>floodfill.c</file>
<file>stretchblt.c</file>
<if property="ARCH" value="i386">
<directory name="i386">
<file>dib24bpp_hline.s</file>
<file>dib32bpp_hline.s</file>
<file>dib32bpp_colorfill.s</file>
</directory>
</if>
<ifnot property="ARCH" value="i386">
<file>dib24bppc.c</file>
<file>dib32bppc.c</file>
</ifnot>
</directory>
<directory name="eng">
<file>alphablend.c</file>
<file>bitblt.c</file>
<file>engbrush.c</file>
<file>engevent.c</file>
<file>clip.c</file>
<file>copybits.c</file>
<file>debug.c</file>
<file>device.c</file>
<file>driverobj.c</file>
<file>error.c</file>
<file>float.c</file>
<if property="ARCH" value="i386">
<directory name="i386">
<file>floatobj.S</file>
</directory>
</if>
<file>gradient.c</file>
<file>ldevobj.c</file>
<file>lineto.c</file>
<file>mapping.c</file>
<file>mem.c</file>
<file>engmisc.c</file>
<file>mouse.c</file>
<file>paint.c</file>
<file>pdevobj.c</file>
<file>perfcnt.c</file>
<file>rlecomp.c</file>
<file>semaphor.c</file>
<file>sort.c</file>
<file>string.c</file>
<file>stretchblt.c</file>
<file>surface.c</file>
<file>transblt.c</file>
<file>engwindow.c</file>
<file>xlate.c</file>
</directory>
<directory name="main">
<file>dllmain.c</file>
</directory>
<directory name="misc">
<file>driver.c</file>
<file>err.c</file>
<file>file.c</file>
<file>math.c</file>
<file>rtlstr.c</file>
<file>copy.c</file>
<file>registry.c</file>
<file>usrheap.c</file>
<if property="ARCH" value="i386">
<directory name="i386">
<file>cos_asm.s</file>
<file>sin_asm.s</file>
<file>atan2_asm.s</file>
<file>floor_asm.s</file>
<file>ceil_asm.s</file>
</directory>
</if>
</directory>
<directory name="ntddraw">
<file>ddraw.c</file>
<file>dd.c</file>
<file>ddsurf.c</file>
<file>d3d.c</file>
<file>dvp.c</file>
<file>mocomp.c</file>
<file>eng.c</file>
<file>dxeng.c</file>
</directory>
<directory name="ntuser">
<file>accelerator.c</file>
<file>callback.c</file>
<file>callproc.c</file>
<file>caret.c</file>
<file>class.c</file>
<file>clipboard.c</file>
<file>csr.c</file>
<file>cursoricon.c</file>
<file>defwnd.c</file>
<file>desktop.c</file>
<file>display.c</file>
<file>event.c</file>
<file>focus.c</file>
<file>guicheck.c</file>
<file>hook.c</file>
<file>hotkey.c</file>
<file>input.c</file>
<file>keyboard.c</file>
<file>kbdlayout.c</file>
<file>menu.c</file>
<file>message.c</file>
<file>metric.c</file>
<file>misc.c</file>
<file>monitor.c</file>
<file>msgqueue.c</file>
<file>ntstubs.c</file>
<file>ntuser.c</file>
<file>painting.c</file>
<file>prop.c</file>
<file>scrollbar.c</file>
<file>session.c</file>
<file>simplecall.c</file>
<file>sysparams.c</file>
<file>timer.c</file>
<file>useratom.c</file>
<file>vis.c</file>
<file>windc.c</file>
<file>window.c</file>
<file>winpos.c</file>
<file>winsta.c</file>
<file>object.c</file>
</directory>
<directory name="objects">
<file>arc.c</file>
<file>bezier.c</file>
<file>bitblt.c</file>
<file>bitmaps.c</file>
<file>brush.c</file>
<file>cliprgn.c</file>
<file>coord.c</file>
<file>dcattr.c</file>
<file>dclife.c</file>
<file>dcobjs.c</file>
<file>dcstate.c</file>
<file>dcutil.c</file>
<file>device.c</file>
<file>dibobj.c</file>
<file>drawing.c</file>
<file>fillshap.c</file>
<file>font.c</file>
<file>freetype.c</file>
<file>gdibatch.c</file>
<file>gdiobj.c</file>
<file>icm.c</file>
<file>line.c</file>
<file>metafile.c</file>
<file>palette.c</file>
<file>path.c</file>
<file>pen.c</file>
<file>polyfill.c</file>
<file>print.c</file>
<file>rect.c</file>
<file>region.c</file>
<file>stockobj.c</file>
<file>text.c</file>
<file>wingl.c</file>
<file>xformobj.c</file>
</directory>
<directory name="stubs">
<file>stubs.c</file>
<file>umpdstubs.c</file>
</directory>
</module>
</group>