* LinkerFlag tag support
* Build addsys, libwine.a, user32.dll, advapi32.dll, gdi32.dll, msvcrt.dll, and welcome.exe
Modified: branches/xmlbuildsystem/reactos/ReactOS.xml
Added: branches/xmlbuildsystem/reactos/iface/addsys/addsys.xml
Modified: branches/xmlbuildsystem/reactos/iface/addsys/genw32k.c
Added: branches/xmlbuildsystem/reactos/iface/native/genntdll.xml
Deleted: branches/xmlbuildsystem/reactos/iface/native/module.xml
Added: branches/xmlbuildsystem/reactos/lib/advapi32/advapi32.xml
Modified: branches/xmlbuildsystem/reactos/lib/directory.xml
Added: branches/xmlbuildsystem/reactos/lib/gdi32/gdi32.xml
Added: branches/xmlbuildsystem/reactos/lib/libwine/libwine.xml
Modified: branches/xmlbuildsystem/reactos/lib/msvcrt/misc/dllmain.c
Modified: branches/xmlbuildsystem/reactos/lib/msvcrt/misc/environ.c
Added: branches/xmlbuildsystem/reactos/lib/msvcrt/msvcrt.xml
Added: branches/xmlbuildsystem/reactos/lib/user32/user32.xml
Added: branches/xmlbuildsystem/reactos/subsys/directory.xml
Added: branches/xmlbuildsystem/reactos/subsys/system/directory.xml
Added: branches/xmlbuildsystem/reactos/subsys/system/welcome/welcome.xml
Modified: branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/mingw.cpp
Modified: branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/mingw.h
Modified: branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/modulehandler.cpp
Modified: branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/modulehandler.h
Modified: branches/xmlbuildsystem/reactos/tools/rbuild/include.cpp
Added: branches/xmlbuildsystem/reactos/tools/rbuild/linkerflag.cpp
Modified: branches/xmlbuildsystem/reactos/tools/rbuild/makefile
Modified: branches/xmlbuildsystem/reactos/tools/rbuild/module.cpp
Modified: branches/xmlbuildsystem/reactos/tools/rbuild/project.cpp
Modified: branches/xmlbuildsystem/reactos/tools/rbuild/rbuild.h
Modified: branches/xmlbuildsystem/reactos/tools/rbuild/test.h
Modified: branches/xmlbuildsystem/reactos/tools/rbuild/tests/alltests.cpp
Added: branches/xmlbuildsystem/reactos/tools/rbuild/tests/data/linkerflag.xml
Added: branches/xmlbuildsystem/reactos/tools/rbuild/tests/linkerflagtest.cpp

Modified: branches/xmlbuildsystem/reactos/ReactOS.xml
--- branches/xmlbuildsystem/reactos/ReactOS.xml	2005-01-15 10:37:01 UTC (rev 13054)
+++ branches/xmlbuildsystem/reactos/ReactOS.xml	2005-01-15 13:52:36 UTC (rev 13055)
@@ -30,8 +30,11 @@
 		<xi:include href="hal/directory.xml" />
 	</directory>
 	<directory name="iface">
+		<directory name="addsys">
+			<xi:include href="iface/addsys/addsys.xml" />
+		</directory>
 		<directory name="native">
-			<xi:include href="iface/native/module.xml" />
+			<xi:include href="iface/native/genntdll.xml" />
 		</directory>
 	</directory>
 	<directory name="lib">
@@ -40,4 +43,7 @@
 	<directory name="ntoskrnl">
 		<xi:include href="ntoskrnl/ntoskrnl.xml" />
 	</directory>
+	<directory name="subsys">
+		<xi:include href="subsys/directory.xml" />
+	</directory>
 </project>
Property changes on: branches/xmlbuildsystem/reactos/iface/addsys
___________________________________________________________________
Name: svn:ignore
   - genw32k
genw32k.exe
   + addsys
addsys.exe

Added: branches/xmlbuildsystem/reactos/iface/addsys/addsys.xml
--- branches/xmlbuildsystem/reactos/iface/addsys/addsys.xml	2005-01-15 10:37:01 UTC (rev 13054)
+++ branches/xmlbuildsystem/reactos/iface/addsys/addsys.xml	2005-01-15 13:52:36 UTC (rev 13055)
@@ -0,0 +1,14 @@
+<module name="addsys" type="buildtool">
+	<include base="addsys">.</include>
+	<file>genw32k.c</file>
+	<invoke>
+		<input>
+			<inputfile>w32ksvc.db</inputfile>
+		</input>
+		<output>
+			<outputfile>../../subsys/win32k/main/svctab.c</outputfile>
+			<outputfile>../../lib/gdi32/misc/win32k.c</outputfile>
+			<outputfile>../../lib/user32/misc/win32k.c</outputfile>
+		</output>
+	</invoke>
+</module>

Modified: branches/xmlbuildsystem/reactos/iface/addsys/genw32k.c
--- branches/xmlbuildsystem/reactos/iface/addsys/genw32k.c	2005-01-15 10:37:01 UTC (rev 13054)
+++ branches/xmlbuildsystem/reactos/iface/addsys/genw32k.c	2005-01-15 13:52:36 UTC (rev 13055)
@@ -299,11 +299,11 @@
 void usage(char * argv0)
 {
 	printf("Usage: %s w32ksvc.db w32k.lst ssdt.h win32k.c win32k.c\n"
-	       "  w32ksvc.db    input file(system calls database)\n"
 	       "  w32k.lst      system functions database\n"
 	       "  ssdt.h        WIN32K service table\n"
 	       "  win32k.c      GDI32 stubs\n"
-	       "  win32k.c      USER32 stubs\n",
+	       "  win32k.c      USER32 stubs\n"
+	       "  w32ksvc.db    input file(system calls database)\n",
 		argv0
 		);
 }
@@ -322,34 +322,34 @@
 		return(1);
 	}
 
-	in = fopen(argv[1],"rb");
-	if (in == NULL)
-	{
-		perror("Failed to open input file (system calls database)");
-		return(1);
-	}
-
-	out1 = fopen(argv[2],"wb");
+	out1 = fopen(argv[1],"wb");
 	if (out1 == NULL)
 	{
 		perror("Failed to open output file (WIN32K service table)");
 		return(1);
 	}
 
-	out2 = fopen(argv[3],"wb");
+	out2 = fopen(argv[2],"wb");
 	if (out2 == NULL)
 	{
 		perror("Failed to open output file (GDI32 stubs)");
 		return(1);
 	}
 
-	out3 = fopen(argv[4],"wb");
+	out3 = fopen(argv[3],"wb");
 	if (out3 == NULL)
 	{
 		perror("Failed to open output file (USER32 stubs)");
 		return(1);
 	}
 
+	in = fopen(argv[4],"rb");
+	if (in == NULL)
+	{
+		perror("Failed to open input file (system calls database)");
+		return(1);
+	}
+
 	ret = process(in,out2,out3);
 	rewind(in);
 	ret = makeSystemServiceTable(in, out1);

Copied: branches/xmlbuildsystem/reactos/iface/native/genntdll.xml (from rev 12972, branches/xmlbuildsystem/reactos/iface/native/module.xml)

Deleted: branches/xmlbuildsystem/reactos/iface/native/module.xml
--- branches/xmlbuildsystem/reactos/iface/native/module.xml	2005-01-15 10:37:01 UTC (rev 13054)
+++ branches/xmlbuildsystem/reactos/iface/native/module.xml	2005-01-15 13:52:36 UTC (rev 13055)
@@ -1,14 +0,0 @@
-<module name="genntdll" type="buildtool">
-	<include base="genntdll">.</include>
-	<file>genntdll.c</file>
-	<invoke>
-		<input>
-			<inputfile>sysfuncs.lst</inputfile>
-		</input>
-		<output>
-			<outputfile>../../lib/ntdll/napi.c</outputfile>
-			<outputfile>../../include/ntdll/napi.h</outputfile>
-			<outputfile>../../ntoskrnl/nt/zw.c</outputfile>
-		</output>
-	</invoke>
-</module>

Added: branches/xmlbuildsystem/reactos/lib/advapi32/advapi32.xml
--- branches/xmlbuildsystem/reactos/lib/advapi32/advapi32.xml	2005-01-15 10:37:01 UTC (rev 13054)
+++ branches/xmlbuildsystem/reactos/lib/advapi32/advapi32.xml	2005-01-15 13:52:36 UTC (rev 13055)
@@ -0,0 +1,47 @@
+<module name="advapi32" type="win32dll">
+	<importlibrary definition="advapi32.def" />
+	<include base="advapi32">.</include>
+	<define name="__USE_W32API" />
+	<define name="WINVER">0x600</define>
+	<define name="_WIN32_IE">0x0500</define>
+	<define name="_WIN32_WINNT">0x0501</define>
+	<library>ntdll</library>
+	<library>kernel32</library>
+	<directory name="crypt">
+		<file>crypt.c</file>
+		<file>crypt_des.c</file>
+		<file>crypt_lmhash.c</file>
+		<file>crypt_md4.c</file>
+		<file>crypt_md5.c</file>
+		<file>crypt_sha.c</file>
+	</directory>
+	<directory name="misc">
+		<file>dllmain.c</file>
+		<file>hwprofiles.c</file>
+		<file>logon.c</file>
+		<file>shutdown.c</file>
+		<file>sysfunc.c</file>
+	</directory>
+	<directory name="reg">
+		<file>reg.c</file>
+	</directory>
+	<directory name="sec">
+		<file>ac.c</file>
+		<file>audit.c</file>
+		<file>lsa.c</file>
+		<file>misc.c</file>
+		<file>sec.c</file>
+		<file>sid.c</file>
+		<file>trustee.c</file>
+	</directory>
+	<directory name="service">
+		<file>eventlog.c</file>
+		<file>scm.c</file>
+		<file>sctrl.c</file>
+		<file>undoc.c</file>
+	</directory>
+	<directory name="token">
+		<file>privilege.c</file>
+		<file>token.c</file>
+	</directory>
+</module>

Modified: branches/xmlbuildsystem/reactos/lib/directory.xml
--- branches/xmlbuildsystem/reactos/lib/directory.xml	2005-01-15 10:37:01 UTC (rev 13054)
+++ branches/xmlbuildsystem/reactos/lib/directory.xml	2005-01-15 13:52:36 UTC (rev 13055)
@@ -1,3 +1,9 @@
+<directory name="advapi32">
+	<xi:include href="advapi32/advapi32.xml" />
+</directory>
+<directory name="gdi32">
+	<xi:include href="gdi32/gdi32.xml" />
+</directory>
 <directory name="kernel32">
 	<xi:include href="kernel32/kernel32.xml" />
 </directory>
@@ -4,6 +10,12 @@
 <directory name="kjs">
 	<xi:include href="kjs/kjs.xml" />
 </directory>
+<directory name="libwine">
+	<xi:include href="libwine/libwine.xml" />
+</directory>
+<directory name="msvcrt">
+	<xi:include href="msvcrt/msvcrt.xml" />
+</directory>
 <directory name="ntdll">
 	<xi:include href="ntdll/ntdll.xml" />
 </directory>
@@ -19,3 +31,6 @@
 <directory name="string">
 	<xi:include href="string/string.xml" />
 </directory>
+<directory name="user32">
+	<xi:include href="user32/user32.xml" />
+</directory>

Added: branches/xmlbuildsystem/reactos/lib/gdi32/gdi32.xml
--- branches/xmlbuildsystem/reactos/lib/gdi32/gdi32.xml	2005-01-15 10:37:01 UTC (rev 13054)
+++ branches/xmlbuildsystem/reactos/lib/gdi32/gdi32.xml	2005-01-15 13:52:36 UTC (rev 13055)
@@ -0,0 +1,35 @@
+<module name="gdi32" type="win32dll">
+	<dependency>addsys</dependency>
+	<importlibrary definition="gdi32.def" />
+	<include base="gdi32">include</include>
+	<define name="_DISABLE_TIDENTS" />
+	<define name="UNICODE" />
+	<define name="__USE_W32API" />
+	<define name="WINVER">0x0600</define>
+	<define name="_WIN32_WINNT">0x0501</define>
+	<library>ntdll</library>
+	<library>rosrtl</library>
+	<library>kernel32</library>
+	<library>advapi32</library>
+	<directory name="main">
+		<file>dllmain.c</file>
+	</directory>
+	<directory name="misc">
+		<file>heap.c</file>
+		<file>misc.c</file>
+		<file>stubs.c</file>
+		<file>stubsa.c</file>
+		<file>stubsw.c</file>
+		<file>win32k.c</file>
+		<file>wingl.c</file>
+	</directory>
+	<directory name="objects">
+		<file>bitblt.c</file>
+		<file>dc.c</file>
+		<file>font.c</file>
+		<file>linedda.c</file>
+		<file>metafile.c</file>
+		<file>region.c</file>
+		<file>text.c</file>
+	</directory>
+</module>

Added: branches/xmlbuildsystem/reactos/lib/libwine/libwine.xml
--- branches/xmlbuildsystem/reactos/lib/libwine/libwine.xml	2005-01-15 10:37:01 UTC (rev 13054)
+++ branches/xmlbuildsystem/reactos/lib/libwine/libwine.xml	2005-01-15 13:52:36 UTC (rev 13055)
@@ -0,0 +1,5 @@
+<module name="wine" type="staticlibrary">
+	<define name="_DISABLE_TIDENTS" />
+	<define name="__REACTOS__" />
+	<file>debug.c</file>
+</module>

Modified: branches/xmlbuildsystem/reactos/lib/msvcrt/misc/dllmain.c
--- branches/xmlbuildsystem/reactos/lib/msvcrt/misc/dllmain.c	2005-01-15 10:37:01 UTC (rev 13054)
+++ branches/xmlbuildsystem/reactos/lib/msvcrt/misc/dllmain.c	2005-01-15 13:52:36 UTC (rev 13055)
@@ -91,8 +91,8 @@
             return FALSE;
         }
 
-        _acmdln = strdup(GetCommandLineA());
-        _wcmdln = wcsdup(GetCommandLineW());
+        _acmdln = _strdup(GetCommandLineA());
+        _wcmdln = _wcsdup(GetCommandLineW());
 
         /* FIXME: more initializations... */
 

Modified: branches/xmlbuildsystem/reactos/lib/msvcrt/misc/environ.c
--- branches/xmlbuildsystem/reactos/lib/msvcrt/misc/environ.c	2005-01-15 10:37:01 UTC (rev 13054)
+++ branches/xmlbuildsystem/reactos/lib/msvcrt/misc/environ.c	2005-01-15 13:52:36 UTC (rev 13055)
@@ -165,9 +165,9 @@
    for (envptr = original_environment; count > 1; newenvptr++, count--)
    {
       if (wide)
-         *newenvptr = (char*)wcsdup((wchar_t*)*envptr++);
+         *newenvptr = (char*)_wcsdup((wchar_t*)*envptr++);
       else
-         *newenvptr = strdup(*envptr++);
+         *newenvptr = _strdup(*envptr++);
       if (*newenvptr == NULL)
       {
          for (newenvptr--; newenvptr >= newenv; newenvptr--);
@@ -243,7 +243,7 @@
    /* Find the option we're trying to modify. */
    for (index = 0, wenvptr = _wenviron; *wenvptr != NULL; wenvptr++, index++)
    {
-      if (!wcsnicmp(*wenvptr, option, epos - option))
+      if (!_wcsnicmp(*wenvptr, option, epos - option))
       {
          found = 1;
          break;
@@ -277,7 +277,7 @@
    else
    {
       /* Make a copy of the option that we will store in the environment block. */
-      woption = wcsdup((wchar_t*)option);
+      woption = _wcsdup((wchar_t*)option);
       if (woption == NULL)
       {
          free(name);

Added: branches/xmlbuildsystem/reactos/lib/msvcrt/msvcrt.xml
--- branches/xmlbuildsystem/reactos/lib/msvcrt/msvcrt.xml	2005-01-15 10:37:01 UTC (rev 13054)
+++ branches/xmlbuildsystem/reactos/lib/msvcrt/msvcrt.xml	2005-01-15 13:52:36 UTC (rev 13055)
@@ -0,0 +1,443 @@
+<module name="msvcrt" type="win32dll">
+	<linkerflag>-nostartfiles</linkerflag>
+	<linkerflag>--enable-stdcall-fixup</linkerflag>
+	<linkerflag>-lgcc</linkerflag>
+	<importlibrary definition="msvcrt.def" />
+	<include base="msvcrt">.</include>
+	<define name="_DISABLE_TIDENTS" />
+	<define name="__USE_W32API" />
+	<define name="_WIN32_IE">0x600</define>
+	<define name="_WIN32_WINNT">0x501</define>
+	<define name="__REACTOS__" />
+	<define name="USE_MSVCRT_PREFIX" />
+	<define name="_MSVCRT_LIB_" />
+	<define name="_MT" />
+	<library>wine</library>
+	<library>string</library>
+	<library>kernel32</library>
+	<library>ntdll</library>
+	<directory name="conio">
+		<file>cgets.c</file>
+		<file>cprintf.c</file>
+		<file>cputs.c</file>
+		<file>cscanf.c</file>
+		<file>getch.c</file>
+		<file>getche.c</file>
+		<file>kbhit.c</file>
+		<file>putch.c</file>
+		<file>ungetch.c</file>
+	</directory>
+	<directory name="ctype">
+		<file>ctype.c</file>
+		<file>isalnum.c</file>
+		<file>isalpha.c</file>
+		<file>isascii.c</file>
+		<file>iscntrl.c</file>
+		<file>iscsym.c</file>
+		<file>isctype.c</file>
+		<file>isdigit.c</file>
+		<file>isgraph.c</file>
+		<file>islower.c</file>
+		<file>isprint.c</file>
+		<file>ispunct.c</file>
+		<file>isspace.c</file>
+		<file>isupper.c</file>
+		<file>isxdigit.c</file>
+		<file>toascii.c</file>
+		<file>tolower.c</file>
+		<file>toupper.c</file>
+	</directory>
+	<directory name="direct">
+		<file>chdir.c</file>
+		<file>chdrive.c</file>
+		<file>getcwd.c</file>
+		<file>getdcwd.c</file>
+		<file>getdfree.c</file>
+		<file>getdrive.c</file>
+		<file>mkdir.c</file>
+		<file>rmdir.c</file>
+		<file>wchdir.c</file>
+		<file>wgetcwd.c</file>
+		<file>wgetdcwd.c</file>
+		<file>wmkdir.c</file>
+		<file>wrmdir.c</file>
+	</directory>
+	<directory name="except">
+		<file>abnorter.c</file>
+		<file>exhand2.c</file>
+		<file>matherr.c</file>
+		<file>seh.s</file>
+		<file>unwind.c</file>
+		<file>xcptfil.c</file>
+	</directory>
+	<directory name="float">
+		<file>chgsign.c</file>
+		<file>clearfp.c</file>
+		<file>cntrlfp.c</file>
+		<file>copysign.c</file>
+		<file>fpclass.c</file>
+		<file>fpecode.c</file>
+		<file>fpreset.c</file>
+		<file>isnan.c</file>
+		<file>logb.c</file>
+		<file>nafter.c</file>
+		<file>scalb.c</file>
+		<file>statfp.c</file>
+	</directory>
+	<directory name="io">
+		<file>access.c</file>
+		<file>chmod.c</file>
+		<file>chsize.c</file>
+		<file>close.c</file>
+		<file>commit.c</file>
+		<file>create.c</file>
+		<file>dup2.c</file>
+		<file>dup.c</file>
+		<file>eof.c</file>
+		<file>filelen.c</file>
+		<file>fileleni.c</file>
+		<file>find.c</file>
+		<file>fmode.c</file>
+		<file>isatty.c</file>
+		<file>locking.c</file>
+		<file>lseek.c</file>
+		<file>lseeki64.c</file>
+		<file>mktemp.c</file>
+		<file>open.c</file>
+		<file>pipe.c</file>
+		<file>read.c</file>
+		<file>setmode.c</file>
+		<file>sopen.c</file>
+		<file>stubs.c</file>
+		<file>tell.c</file>
+		<file>telli64.c</file>
+		<file>umask.c</file>
+		<file>unlink.c</file>
+		<file>utime.c</file>
+		<file>waccess.c</file>
+		<file>wchmod.c</file>
+		<file>wcreate.c</file>
+		<file>wfind.c</file>
+		<file>wmktemp.c</file>
+		<file>wopen.c</file>
+		<file>write.c</file>
+		<file>wunlink.c</file>
+		<file>wutime.c</file>
+	</directory>
+	<directory name="locale">
+		<file>locale.c</file>
+	</directory>
+	<directory name="math">
+		<file>acos.c</file>
+		<file>adjust.c</file>
+		<file>asin.c</file>
+		<file>atan2.c</file>
+		<file>atan.c</file>
+		<file>cabs.c</file>
+		<file>ceil.c</file>
+		<file>cos.c</file>
+		<file>cosh.c</file>
+		<file>exp.c</file>
+		<file>fabs.c</file>
+		<file>floor.c</file>
+		<file>fmod.c</file>
+		<file>frexp.c</file>
+		<file>huge_val.c</file>
+		<file>hypot.c</file>
+		<file>j0_y0.c</file>
+		<file>j1_y1.c</file>
+		<file>jn_yn.c</file>
+		<file>ldexp.c</file>
+		<file>log10.c</file>
+		<file>log.c</file>
+		<file>math.c</file>
+		<file>modf.c</file>
+		<file>pow.c</file>
+		<file>sin.c</file>
+		<file>sinh.c</file>
+		<file>sqrt.c</file>
+		<file>stubs.c</file>
+		<file>tan.c</file>
+		<file>tanh.c</file>
+	</directory>
+	<directory name="mbstring">
+		<file>hanzen.c</file>
+		<file>ischira.c</file>
+		<file>iskana.c</file>
+		<file>iskmoji.c</file>
+		<file>iskpun.c</file>
+		<file>islead.c</file>
+		<file>islwr.c</file>
+		<file>ismbal.c</file>
+		<file>ismbaln.c</file>
+		<file>ismbc.c</file>
+		<file>ismbgra.c</file>
+		<file>ismbkaln.c</file>
+		<file>ismblead.c</file>
+		<file>ismbpri.c</file>
+		<file>ismbpun.c</file>
+		<file>ismbtrl.c</file>
+		<file>isuppr.c</file>
+		<file>jistojms.c</file>
+		<file>jmstojis.c</file>
+		<file>mbbtype.c</file>
+		<file>mbccpy.c</file>
+		<file>mbclen.c</file>
+		<file>mbscat.c</file>
+		<file>mbschr.c</file>
+		<file>mbscmp.c</file>
+		<file>mbscoll.c</file>
+		<file>mbscpy.c</file>
+		<file>mbscspn.c</file>
+		<file>mbsdec.c</file>
+		<file>mbsdup.c</file>
+		<file>mbsicmp.c</file>
+		<file>mbsicoll.c</file>
+		<file>mbsinc.c</file>
+		<file>mbslen.c</file>
+		<file>mbslwr.c</file>
+		<file>mbsncat.c</file>
+		<file>mbsnccnt.c</file>
+		<file>mbsncmp.c</file>
+		<file>mbsncoll.c</file>
+		<file>mbsncpy.c</file>
+		<file>mbsnextc.c</file>
+		<file>mbsnicmp.c</file>
+		<file>mbsnicoll.c</file>
+		<file>mbsninc.c</file>
+		<file>mbsnset.c</file>
+		<file>mbspbrk.c</file>
+		<file>mbsrchr.c</file>
+		<file>mbsrev.c</file>
+		<file>mbsset.c</file>
+		<file>mbsspn.c</file>
+		<file>mbsspnp.c</file>
+		<file>mbsstr.c</file>
+		<file>mbstok.c</file>
+		<file>mbstrlen.c</file>
+		<file>mbsupr.c</file>
+	</directory>
+	<directory name="misc">
+		<file>amsg.c</file>
+		<file>assert.c</file>
+		<file>crtmain.c</file>
+		<file>dllmain.c</file>
+		<file>environ.c</file>
+		<file>getargs.c</file>
+		<file>initterm.c</file>
+		<file>lock.c</file>
+		<file>purecall.c</file>
+		<file>stubs.c</file>
+		<file>tls.c</file>
+	</directory>
+	<directory name="process">
+		<file>_cwait.c</file>
+		<file>_system.c</file>
+		<file>dll.c</file>
+		<file>process.c</file>
+		<file>procid.c</file>
+		<file>thread.c</file>
+		<file>threadid.c</file>
+		<file>threadx.c</file>
+	</directory>
+	<directory name="search">
+		<file>lfind.c</file>
+		<file>lsearch.c</file>
+	</directory>
+	<directory name="setjmp">
+		<directory name="i386">
+			<file>setjmp.s</file>
+		</directory>
+	</directory>
+	<directory name="signal">
+		<file>signal.c</file>
+	</directory>
+	<directory name="stdio">
+		<file>allocfil.c</file>
+		<file>clearerr.c</file>
+		<file>fclose.c</file>
+		<file>fdopen.c</file>
+		<file>feof.c</file>
+		<file>ferror.c</file>
+		<file>fflush.c</file>
+		<file>fgetc.c</file>
+		<file>fgetchar.c</file>
+		<file>fgetpos.c</file>
+		<file>fgets.c</file>
+		<file>fgetws.c</file>
+		<file>filbuf.c</file>
+		<file>fileno.c</file>
+		<file>flsbuf.c</file>
+		<file>fopen.c</file>
+		<file>fprintf.c</file>
+		<file>fputc.c</file>
+		<file>fputchar.c</file>
+		<file>fputs.c</file>
+		<file>fread.c</file>
+		<file>freopen.c</file>
+		<file>fscanf.c</file>
+		<file>fseek.c</file>
+		<file>fsetpos.c</file>
+		<file>fsopen.c</file>
+		<file>ftell.c</file>
+		<file>fwalk.c</file>
+		<file>fwrite.c</file>
+		<file>getc.c</file>
+		<file>getchar.c</file>
+		<file>gets.c</file>
+		<file>getw.c</file>
+		<file>perror.c</file>
+		<file>popen.c</file>
+		<file>printf.c</file>
+		<file>putc.c</file>
+		<file>putchar.c</file>
+		<file>puts.c</file>
+		<file>putw.c</file>
+		<file>remove.c</file>
+		<file>rename.c</file>
+		<file>rewind.c</file>
+		<file>rmtmp.c</file>
+		<file>scanf.c</file>
+		<file>setbuf.c</file>
+		<file>setvbuf.c</file>
+		<file>sprintf.c</file>
+		<file>sscanf.c</file>
+		<file>stdhnd.c</file>
+		<file>tempnam.c</file>
+		<file>tmpfile.c</file>
+		<file>tmpnam.c</file>
+		<file>ungetc.c</file>
+		<file>vfprintf.c</file>
+		<file>vfscanf.c</file>
+		<file>vfwprint.c</file>
+		<file>vprintf.c</file>
+		<file>vscanf.c</file>
+		<file>vsprintf.c</file>
+		<file>vsscanf.c</file>
+		<file>wfdopen.c</file>
+		<file>wrename.c</file>
+		<file>wtempnam.c</file>
+		<file>wtmpnam.c</file>
+	</directory>
+	<directory name="stdlib">
+		<file>abort.c</file>
+		<file>abs.c</file>
+		<file>atexit.c</file>
+		<file>atof.c</file>
+		<file>atoi.c</file>
+		<file>atoi64.c</file>
+		<file>atol.c</file>
+		<file>atold.c</file>
+		<file>bsearch.c</file>
+		<file>div.c</file>
+		<file>ecvt.c</file>
+		<file>ecvtbuf.c</file>
+		<file>errno.c</file>
+		<file>fcvt.c</file>
+		<file>fcvtbuf.c</file>
+		<file>fullpath.c</file>
+		<file>gcvt.c</file>
+		<file>getenv.c</file>
+		<file>itoa.c</file>
+		<file>itow.c</file>
+		<file>labs.c</file>
+		<file>ldiv.c</file>
+		<file>makepath.c</file>
+		<file>malloc.c</file>
+		<file>mbstowcs.c</file>
+		<file>mbtowc.c</file>
+		<file>obsol.c</file>
+		<file>putenv.c</file>
+		<file>qsort.c</file>
+		<file>rand.c</file>
+		<file>rot.c</file>
+		<file>senv.c</file>
+		<file>splitp.c</file>
+		<file>strtod.c</file>
+		<file>strtol.c</file>
+		<file>strtold.c</file>
+		<file>strtoll.c</file>
+		<file>strtoul.c</file>
+		<file>strtoull.c</file>
+		<file>swab.c</file>
+		<file>wcstod.c</file>
+		<file>wcstol.c</file>
+		<file>wcstom.c</file>
+		<file>wcstomb.c</file>
+		<file>wcstombs.c</file>
+		<file>wcstoul.c</file>
+		<file>wctomb.c</file>
+		<file>wfulpath.c</file>
+		<file>witoa.c</file>
+		<file>witow.c</file>
+		<file>wmakpath.c</file>
+		<file>wputenv.c</file>
+		<file>wsenv.c</file>
+		<file>wsplitp.c</file>
+		<file>wtoi.c</file>
+		<file>wtoi64.c</file>
+		<file>_exit.c</file>
+	</directory>
+	<directory name="string">
+		<file>lasttok.c</file>
+		<file>memicmp.c</file>
+		<file>strcoll.c</file>
+		<file>strdup.c</file>
+		<file>strerror.c</file>
+		<file>stricmp.c</file>
+		<file>strlwr.c</file>
+		<file>strncoll.c</file>
+		<file>strnicmp.c</file>
+		<file>strpbrk.c</file>
+		<file>strrev.c</file>
+		<file>strset.c</file>
+		<file>strstr.c</file>
+		<file>strtok.c</file>
+		<file>strupr.c</file>
+		<file>strxfrm.c</file>
+	</directory>
+	<directory name="sys_stat">
+		<file>fstat.c</file>
+		<file>fstati64.c</file>
+		<file>futime.c</file>
+		<file>stat.c</file>
+		<file>wstat.c</file>
+	</directory>
+	<directory name="time">
+		<file>clock.c</file>
+		<file>ctime.c</file>
+		<file>difftime.c</file>
+		<file>ftime.c</file>
+		<file>strdate.c</file>
+		<file>strftime.c</file>
+		<file>strtime.c</file>
+		<file>time.c</file>
+		<file>tz_vars.c</file>
+		<file>wctime.c</file>
+		<file>wstrdate.c</file>
+		<file>wstrtime.c</file>
+	</directory>
+	<directory name="wine">
+		<file>cpp.c</file>
+		<file>cppexcept.c</file>
+		<file>heap.c</file>
+		<file>thread.c</file>
+	</directory>
+	<directory name="wstring">
+		<file>wcscoll.c</file>
+		<file>wcscspn.c</file>
+		<file>wcsdup.c</file>
+		<file>wcsicmp.c</file>
+		<file>wcslwr.c</file>
+		<file>wcsnicmp.c</file>
+		<file>wcspbrk.c</file>
+		<file>wcsrev.c</file>
+		<file>wcsset.c</file>
+		<file>wcsspn.c</file>
+		<file>wcsstr.c</file>
+		<file>wcstok.c</file>
+		<file>wcsupr.c</file>
+		<file>wcsxfrm.c</file>
+		<file>wlasttok.c</file>
+	</directory>
+</module>

Added: branches/xmlbuildsystem/reactos/lib/user32/user32.xml
--- branches/xmlbuildsystem/reactos/lib/user32/user32.xml	2005-01-15 10:37:01 UTC (rev 13054)
+++ branches/xmlbuildsystem/reactos/lib/user32/user32.xml	2005-01-15 13:52:36 UTC (rev 13055)
@@ -0,0 +1,74 @@
+<module name="user32" type="win32dll">
+	<dependency>addsys</dependency>
+	<importlibrary definition="user32.def" />
+	<include base="user32">include</include>
+	<define name="_DISABLE_TIDENTS" />
+	<define name="UNICODE" />
+	<define name="__REACTOS__" />
+	<define name="__USE_W32API" />
+	<define name="WINVER">0x0600</define>
+	<define name="_WIN32_WINNT">0x0501</define>
+	<library>wine</library>
+	<library>ntdll</library>
+	<library>gdi32</library>
+	<library>rosrtl</library>
+	<library>kernel32</library>
+	<library>advapi32</library>
+	<directory name="controls">
+		<file>button.c</file>
+		<file>combo.c</file>
+		<file>edit.c</file>
+		<file>icontitle.c</file>
+		<file>listbox.c</file>
+		<file>regcontrol.c</file>
+		<file>scrollbar.c</file>
+		<file>static.c</file>
+	</directory>
+	<directory name="misc">
+		<file>dde.c</file>
+		<file>ddeclient.c</file>
+		<file>ddeserver.c</file>
+		<file>desktop.c</file>
+		<file>display.c</file>
+		<file>dllmain.c</file>
+		<file>exit.c</file>
+		<file>exticon.c</file>
+		<file>misc.c</file>
+		<file>object.c</file>
+		<file>resources.c</file>
+		<file>strpool.c</file>
+		<file>stubs.c</file>
+		<file>timer.c</file>
+		<file>win32k.c</file>
+		<file>winhelp.c</file>
+		<file>winsta.c</file>
+		<file>wsprintf.c</file>
+	</directory>
+	<directory name="windows">
+		<file>accel.c</file>
+		<file>bitmap.c</file>
+		<file>caret.c</file>
+		<file>class.c</file>
+		<file>clipboard.c</file>
+		<file>cursor.c</file>
+		<file>dc.c</file>
+		<file>defwnd.c</file>
+		<file>dialog.c</file>
+		<file>draw.c</file>
+		<file>font.c</file>
+		<file>hook.c</file>
+		<file>icon.c</file>
+		<file>input.c</file>
+		<file>mdi.c</file>
+		<file>menu.c</file>
+		<file>message.c</file>
+		<file>messagebox.c</file>
+		<file>nonclient.c</file>
+		<file>paint.c</file>
+		<file>prop.c</file>
+		<file>rect.c</file>
+		<file>text.c</file>
+		<file>window.c</file>
+		<file>winpos.c</file>
+	</directory>
+</module>

Added: branches/xmlbuildsystem/reactos/subsys/directory.xml
--- branches/xmlbuildsystem/reactos/subsys/directory.xml	2005-01-15 10:37:01 UTC (rev 13054)
+++ branches/xmlbuildsystem/reactos/subsys/directory.xml	2005-01-15 13:52:36 UTC (rev 13055)
@@ -0,0 +1,3 @@
+<directory name="system">
+	<xi:include href="system/directory.xml" />
+</directory>

Added: branches/xmlbuildsystem/reactos/subsys/system/directory.xml
--- branches/xmlbuildsystem/reactos/subsys/system/directory.xml	2005-01-15 10:37:01 UTC (rev 13054)
+++ branches/xmlbuildsystem/reactos/subsys/system/directory.xml	2005-01-15 13:52:36 UTC (rev 13055)
@@ -0,0 +1,3 @@
+<directory name="welcome">
+	<xi:include href="welcome/welcome.xml" />
+</directory>

Added: branches/xmlbuildsystem/reactos/subsys/system/welcome/welcome.xml
--- branches/xmlbuildsystem/reactos/subsys/system/welcome/welcome.xml	2005-01-15 10:37:01 UTC (rev 13054)
+++ branches/xmlbuildsystem/reactos/subsys/system/welcome/welcome.xml	2005-01-15 13:52:36 UTC (rev 13055)
@@ -0,0 +1,9 @@
+<module name="welcome" type="win32gui">
+	<define name="_WIN32_IE">0x0501</define>
+	<define name="_WIN32_WINNT">0x0501</define>
+	<define name="__USE_W32API" />
+	<library>kernel32</library>
+	<library>gdi32</library>
+	<library>user32</library>
+	<file>welcome.c</file>
+</module>

Modified: branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/mingw.cpp
--- branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/mingw.cpp	2005-01-15 10:37:01 UTC (rev 13054)
+++ branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/mingw.cpp	2005-01-15 13:52:36 UTC (rev 13055)
@@ -129,6 +129,20 @@
 	}
 }
 
+string
+MingwBackend::GenerateProjectLFLAGS ()
+{
+	string lflags;
+	for ( size_t i = 0; i < ProjectNode.linkerFlags.size (); i++ )
+	{
+		LinkerFlag& linkerFlag = *ProjectNode.linkerFlags[i];
+		if ( lflags.length () > 0 )
+			lflags += " ";
+		lflags += linkerFlag.flag;
+	}
+	return lflags;
+}
+
 void
 MingwBackend::GenerateGlobalVariables ()
 {
@@ -146,6 +160,7 @@
 		ProjectNode.includes,
 		ProjectNode.defines,
 		ProjectNode.ifs );
+	fprintf ( fMakefile, "PROJECT_LFLAGS = %s\n", GenerateProjectLFLAGS ().c_str () );
 	fprintf ( fMakefile, "\n" );
 
 	fprintf ( fMakefile, ".PHONY: clean\n\n" );

Modified: branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/mingw.h
--- branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/mingw.h	2005-01-15 10:37:01 UTC (rev 13054)
+++ branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/mingw.h	2005-01-15 13:52:36 UTC (rev 13055)
@@ -21,6 +21,7 @@
 		const std::vector<Include*>& includes,
 		const std::vector<Define*>& defines,
 		const std::vector<If*>& ifs );
+	std::string GenerateProjectLFLAGS ();
 	void GenerateGlobalVariables ();
 	void GenerateAllTarget ();
 	FILE* fMakefile;

Modified: branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/modulehandler.cpp
--- branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/modulehandler.cpp	2005-01-15 10:37:01 UTC (rev 13054)
+++ branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/modulehandler.cpp	2005-01-15 13:52:36 UTC (rev 13055)
@@ -265,15 +265,38 @@
 	return parameters;
 }
 
+
+string
+MingwModuleHandler::GenerateLinkerParametersFromVector ( const vector<LinkerFlag*>& linkerFlags ) const
+{
+	string parameters;
+	for ( size_t i = 0; i < linkerFlags.size (); i++ )
+	{
+		LinkerFlag& linkerFlag = *linkerFlags[i];
+		if ( parameters.length () > 0 )
+			parameters += " ";
+		parameters += linkerFlag.flag;
+	}
+	return parameters;
+}
+
+string
+MingwModuleHandler::GenerateLinkerParameters ( const Module& module ) const
+{
+	return GenerateLinkerParametersFromVector ( module.linkerFlags );
+}
+
 void
 MingwModuleHandler::GenerateMacros (
-	const char* op,
+	const char* assignmentOperation,
 	const vector<File*>& files,
 	const vector<Include*>& includes,
 	const vector<Define*>& defines,
+	const vector<LinkerFlag*>* linkerFlags,
 	const vector<If*>& ifs,
 	const string& cflags_macro,
 	const string& nasmflags_macro,
+	const string& linkerflags_macro,
 	const string& objs_macro) const
 {
 	size_t i;
@@ -284,7 +307,7 @@
 			fMakefile,
 			"%s %s",
 			cflags_macro.c_str(),
-			op );
+			assignmentOperation );
 		for ( i = 0; i < includes.size(); i++ )
 		{
 			fprintf (
@@ -307,14 +330,28 @@
 		}
 		fprintf ( fMakefile, "\n" );
 	}
-
+	
+	if ( linkerFlags != NULL )
+	{
+		string linkerParameters = GenerateLinkerParametersFromVector ( *linkerFlags );
+		if ( linkerParameters.size () > 0 )
+		{
+			fprintf (
+				fMakefile,
+				"%s %s %s\n",
+				linkerflags_macro.c_str (),
+				assignmentOperation,
+				linkerParameters.c_str() );
+		}
+	}
+	
 	if ( files.size() )
 	{
 		fprintf (
 			fMakefile,
 			"%s %s",
 			objs_macro.c_str(),
[truncated at 1000 lines; 641 more skipped]