Make winkd somewhat portable.
[reactos.git] / reactos / ntoskrnl / ntoskrnl-generic.rbuild
index ab039c9..d4db736 100644 (file)
@@ -2,7 +2,7 @@
 <!DOCTYPE module SYSTEM "../tools/rbuild/project.dtd">
 <group xmlns:xi="http://www.w3.org/2001/XInclude">
        <bootstrap installbase="$(CDOUTPUT)" />
-       <importlibrary definition="ntoskrnl.spec.def" />
+       <importlibrary definition="ntoskrnl.pspec" />
        <define name="_DISABLE_TIDENTS" />
        <define name="__NTOSKRNL__" />
        <define name="_NTOSKRNL_" />
        <library>bootvid</library>
        <library>wdmguid</library>
        <dependency>bugcodes</dependency>
+       <!-- See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38269
        <directory name="include">
-               <pch>ntoskrnl.h</pch>
+               <pch>precomp.h</pch>
        </directory>
+       -->
        <directory name="ke">
                <if property="ARCH" value="i386">
                        <directory name="i386">
                                <file>ctxhelp.S</file>
                        </directory>
                </if>
+               <if property="ARCH" value="amd64">
+                       <directory name="amd64">
+                               <file first="true">boot.S</file>
+                               <file>context.c</file>
+                               <file>cpu.c</file>
+                               <file>ctxswitch.S</file>
+                               <file>except.c</file>
+                               <file>interrupt.c</file>
+                               <file>irql.c</file>
+                               <file>kiinit.c</file>
+                               <file>spinlock.c</file>
+                               <file>stubs.c</file>
+                               <file>thrdini.c</file>
+                               <file>trap.S</file>
+                       </directory>
+               </if>
                <file>apc.c</file>
                <file>balmgr.c</file>
                <file>bug.c</file>
                                <file>cmhardwr.c</file>
                        </directory>
                </if>
+               <if property="ARCH" value="amd64">
+                       <directory name="i386">
+                               <file>cmhardwr.c</file>
+                       </directory>
+               </if>
                <if property="ARCH" value="arm">
                        <directory name="arm">
                                <file>cmhardwr.c</file>
                                </directory>
                        </if>
                        <if property="KDBG" value="1">
-                               <file>kdb.c</file>
-                               <file>kdb_cli.c</file>
-                               <file>kdb_expr.c</file>
+                               <ifnot property="ARCH" value="amd64">
+                                       <file>kdb.c</file>
+                                       <file>kdb_cli.c</file>
+                                       <file>kdb_expr.c</file>
+                               </ifnot>
                                <file>kdb_keyboard.c</file>
                                <file>kdb_serial.c</file>
+                               <if property="ARCH" value="amd64">
+                                       <directory name="amd64">
+                                               <file>kdb.c</file>
+                                       </directory>
+                               </if>
                        </if>
                        <if property="DBG_OR_KDBG" value="true">
                                <file>kdb_symbols.c</file>
                                </if>
                                <file>kdbg.c</file>
                        </directory>
+                       <if property="ARCH" value="amd64">
+                               <directory name="amd64">
+                                       <file>kd.c</file>
+                               </directory>
+                       </if>
                        <file>kdinit.c</file>
                        <file>kdio.c</file>
                        <file>kdmain.c</file>
                        <file>kdlock.c</file>
                        <file>kdprint.c</file>
                        <file>kdtrap.c</file>
+                       <if property="ARCH" value="i386">
+                               <directory name="i386">
+                                       <file>kd-i386.c</file>
+                               </directory>
+                       </if>
+                       <if property="ARCH" value="amd64">
+                               <directory name="amd64">
+                                       <file>kd-amd64.c</file>
+                               </directory>
+                       </if>
                </directory>
        </if>
        <directory name="lpc">
                                <file>page.c</file>
                        </directory>
                </if>
+               <if property="ARCH" value="amd64">
+                       <directory name="amd64">
+                               <file>page.c</file>
+                       </directory>
+               </if>
                <file>anonmem.c</file>
                <file>balance.c</file>
                <file>cont.c</file>
                                <file>psctx.c</file>
                        </directory>
                </if>
+               <if property="ARCH" value="amd64">
+                       <directory name="amd64">
+                               <file>psctx.c</file>
+                       </directory>
+               </if>
                <file>debug.c</file>
                <file>job.c</file>
                <file>kill.c</file>
                <file>wmi.c</file>
        </directory>
        <file>ntoskrnl.rc</file>
-       <file>ntoskrnl.spec</file>
        <linkerscript>ntoskrnl_$(ARCH).lnk</linkerscript>
+
+       <!-- See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38054#c7 -->
+       <compilerflag>-fno-unit-at-a-time</compilerflag>
 </group>