[ros-diffs] [cfinck] 31700: - Add an "architecture.h" file, which includes architecture-dependent constants. Currently, I only added the root architecture path on the CD (ARCH_CD_ROOT), which is needed in some components. - Make freeldr and usetup use this path, so the Boot-CD and Live-CD become bootable again. - Change the boot sectors to search for the loader in the "I386" directory. - Rename GetArch() to GetArchName(), also add GetArchCdPath() for getting the root architecture path on the CD in rbuild. - Skip creating the "Profiles" directory and its subdirectories. The Live-CD works flawlessy without it and its content is completely ignored by Explorer anyway. - Create the "CREDITS" file in the root "reactos" directory, people expect it there. Remove our current "CREDITS" file. - Fix indentation of "creditsgenerator.cpp"

cfinck at svn.reactos.org cfinck at svn.reactos.org
Thu Jan 10 12:48:53 CET 2008


Author: cfinck
Date: Thu Jan 10 14:48:52 2008
New Revision: 31700

URL: http://svn.reactos.org/svn/reactos?rev=31700&view=rev
Log:
- Add an "architecture.h" file, which includes architecture-dependent constants. Currently, I only added the root architecture path on the CD (ARCH_CD_ROOT), which is needed in some components.
- Make freeldr and usetup use this path, so the Boot-CD and Live-CD become bootable again.
- Change the boot sectors to search for the loader in the "I386" directory.
- Rename GetArch() to GetArchName(), also add GetArchCdPath() for getting the root architecture path on the CD in rbuild.
- Skip creating the "Profiles" directory and its subdirectories.
  The Live-CD works flawlessy without it and its content is completely ignored by Explorer anyway.
- Create the "CREDITS" file in the root "reactos" directory, people expect it there. Remove our current "CREDITS" file.
- Fix indentation of "creditsgenerator.cpp"

Added:
    branches/rbuild/reactos/include/reactos/architecture.h   (with props)
Removed:
    branches/rbuild/reactos/CREDITS
Modified:
    branches/rbuild/reactos/   (props changed)
    branches/rbuild/reactos/base/setup/usetup/bootsup.c
    branches/rbuild/reactos/base/setup/usetup/interface/usetup.c
    branches/rbuild/reactos/base/setup/usetup/partlist.c
    branches/rbuild/reactos/base/setup/usetup/usetup.h
    branches/rbuild/reactos/boot/freeldr/bootsect/isoboot.asm
    branches/rbuild/reactos/boot/freeldr/bootsect/isobtrt.asm
    branches/rbuild/reactos/boot/freeldr/freeldr/reactos/reactos.c
    branches/rbuild/reactos/tools/rbuild/backend/mingw/modulehandler.cpp
    branches/rbuild/reactos/tools/rbuild/backend/mingw/modulehandler.h
    branches/rbuild/reactos/tools/rbuild/creditsgenerator.cpp
    branches/rbuild/reactos/tools/rbuild/project.cpp
    branches/rbuild/reactos/tools/rbuild/rbuild.h

Propchange: branches/rbuild/reactos/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Thu Jan 10 14:48:52 2008
@@ -12,3 +12,4 @@
 *.suo
 versionreport.xml
 config.rbuild
+CREDITS

Removed: branches/rbuild/reactos/CREDITS
URL: http://svn.reactos.org/svn/reactos/branches/rbuild/reactos/CREDITS?rev=31699&view=auto
==============================================================================
--- branches/rbuild/reactos/CREDITS (original)
+++ branches/rbuild/reactos/CREDITS (removed)
@@ -1,69 +1,0 @@
-ReactOS is available thanks to the work of:
-
-Aleksey Bragin <aleksey at reactos org>
-Alex Ionescu <alex.ionescu at reactos.org>
-Andrew Greenwood <lists at silverblade.co.uk>
-Andrew Munger <waxdragon at gmail.com>
-Arindam Das
-Art Yerkes <ayerkes at speakeasy.net>
-Ariadne
-Brandon Turner (turnerb7 at msu.edu)
-Brian Palmer <brianp at sginet.com>
-Casper S. Hornstrup <chorns at users.sourceforge.net>
-Christoph von Wittich (christoph_vw at reactos.org)
-David Welch <welch at cwcom.net>
-Emanuele Aliberti <ea at iol.it>
-Eric Kohl <ekohl at rz-online.de>
-Eugene Ingerman <geneing at myrealbox.com>
-Filip Navara <xnavara at volny.cz>
-Frederik Leemans
-Ge van Geldorp <ge at gse.nl>
-Ged Murphy <gedmurphy at reactos.org>
-Guido de Jong
-Gunnar Andre' Dalsnes <hardon at online.no>
-Hans Kremer
-Hartmut Birr <hartmut.birr at gmx.de>
-Hernan Ochoa
-Herve Poussineau <hpoussin at reactos.com>
-Iwan Fatahi <i_fatahi at hotmail.com>
-James B. Tabor <jimtabor at adsl-64-217-116-74.dsl.hstntx.swbell.net>
-Jason Eager
-Jason Filby <jasonfilby at yahoo.com>
-Jason Weiler
-Jean Michault
-Jim Noeth
-Johannes Anderwald <johannes.anderwald at student.tugraz.at> 
-Jonathan Wilson <jonwil at tpgi.com.au>
-Jurgen van Gael <jurgen.vangael at student.kuleuven.ac.be>
-KJK::Hyperion <noog at libero.it>
-Klemens R. Friedl <klemens_friedl at gmx.net>
-Maarten Bosma <maarten.paul at bosma.de>
-Magnus Olsen (magnus at greatlord.com)
-Mark Tempel <mtempel at visi.com>
-Mark Weaver <mark at npsl.co.uk>
-Martin Fuchs <martin-fuchs at gmx.net>
-Marty Dill <mdill at uvic.ca>
-Matt Pyne
-Mike Nordell ("tamlin")
-Nathan Woods <npwoods at mess.org>
-Pablo Borobia <pborobia at gmail.com>
-Paolo Pantaleo <paolopan at freemail.it>
-Phillip Susi <phreak at iag.net>
-Rex Jolliff <rex at lvcablemodem.com>
-Richard Campbell <betam4x at gmail.com>
-Robert Bergkvist <fragdance at hotmail.com>
-Robert Dickenson <robd at reactos.org>
-Royce Mitchell III <royce3 at ev1.net>
-Saveliy Tretiakov <saveliyt at mail.ru>
-Steven Edwards <steven_ed4153 at yahoo.com>
-Thomas Weidenmueller <w3seek at users.sourceforge.net>
-Timo Kreuzer <timo.kreuzer at reactos.org>
-Victor Kirhenshtein <sauros at iname.com>
-Vizzini <vizzini at plasmic.com>
-
-
-Graphic Design from
-
-Mindflyer <mf at mufunyo.net> 
-Tango Desktop Project (http://tango-project.org)
-Everaldo (http://everaldo.com)

Modified: branches/rbuild/reactos/base/setup/usetup/bootsup.c
URL: http://svn.reactos.org/svn/reactos/branches/rbuild/reactos/base/setup/usetup/bootsup.c?rev=31700&r1=31699&r2=31700&view=diff
==============================================================================
--- branches/rbuild/reactos/base/setup/usetup/bootsup.c (original)
+++ branches/rbuild/reactos/base/setup/usetup/bootsup.c Thu Jan 10 14:48:52 2008
@@ -1836,7 +1836,7 @@
 
 		/* Copy FreeLoader to the boot partition */
 		wcscpy(SrcPath, SourceRootPath->Buffer);
-		wcscat(SrcPath, L"\\loader\\freeldr.sys");
+		wcscat(SrcPath, L"\\" ARCH_CD_ROOT "\\loader\\freeldr.sys");
 		wcscpy(DstPath, SystemRootPath->Buffer);
 		wcscat(DstPath, L"\\freeldr.sys");
 
@@ -1870,7 +1870,7 @@
 			{
 				/* Install FAT32 bootcode */
 				wcscpy(SrcPath, SourceRootPath->Buffer);
-				wcscat(SrcPath, L"\\loader\\fat32.bin");
+				wcscat(SrcPath, L"\\" ARCH_CD_ROOT "\\loader\\fat32.bin");
 				wcscpy(DstPath, SystemRootPath->Buffer);
 				wcscat(DstPath, L"\\bootsect.ros");
 
@@ -1888,7 +1888,7 @@
 			{
 				/* Install FAT16 bootcode */
 				wcscpy(SrcPath, SourceRootPath->Buffer);
-				wcscat(SrcPath, L"\\loader\\fat.bin");
+				wcscat(SrcPath, L"\\" ARCH_CD_ROOT "\\loader\\fat.bin");
 				wcscpy(DstPath, SystemRootPath->Buffer);
 				wcscat(DstPath, L"\\bootsect.ros");
 
@@ -1941,7 +1941,7 @@
 
 		/* Copy FreeLoader to the boot partition */
 		wcscpy(SrcPath, SourceRootPath->Buffer);
-		wcscat(SrcPath, L"\\loader\\freeldr.sys");
+		wcscat(SrcPath, L"\\" ARCH_CD_ROOT "\\loader\\freeldr.sys");
 		wcscpy(DstPath, SystemRootPath->Buffer);
 		wcscat(DstPath, L"\\freeldr.sys");
 
@@ -1988,7 +1988,7 @@
 				PartitionType == PARTITION_FAT32_XINT13)
 			{
 				wcscpy(SrcPath, SourceRootPath->Buffer);
-				wcscat(SrcPath, L"\\loader\\fat32.bin");
+				wcscat(SrcPath, L"\\" ARCH_CD_ROOT "\\loader\\fat32.bin");
 
 				DPRINT1("Install FAT32 bootcode: %S ==> %S\n", SrcPath, SystemRootPath->Buffer);
 				Status = InstallFat32BootCodeToDisk(SrcPath,
@@ -2002,7 +2002,7 @@
 			else
 			{
 				wcscpy(SrcPath, SourceRootPath->Buffer);
-				wcscat(SrcPath, L"\\loader\\fat.bin");
+				wcscat(SrcPath, L"\\" ARCH_CD_ROOT "\\loader\\fat.bin");
 
 				DPRINT1("Install FAT bootcode: %S ==> %S\n", SrcPath, SystemRootPath->Buffer);
 				Status = InstallFat16BootCodeToDisk(SrcPath,
@@ -2036,7 +2036,7 @@
 
 		/* Copy FreeLoader to the boot partition */
 		wcscpy(SrcPath, SourceRootPath->Buffer);
-		wcscat(SrcPath, L"\\loader\\freeldr.sys");
+		wcscat(SrcPath, L"\\" ARCH_CD_ROOT "\\loader\\freeldr.sys");
 		wcscpy(DstPath, SystemRootPath->Buffer);
 		wcscat(DstPath, L"\\freeldr.sys");
 
@@ -2083,7 +2083,7 @@
 				PartitionType == PARTITION_FAT32_XINT13)
 			{
 				wcscpy(SrcPath, SourceRootPath->Buffer);
-				wcscat(SrcPath, L"\\loader\\fat32.bin");
+				wcscat(SrcPath, L"\\" ARCH_CD_ROOT "\\loader\\fat32.bin");
 
 				DPRINT("Install FAT32 bootcode: %S ==> %S\n", SrcPath, SystemRootPath->Buffer);
 				Status = InstallFat32BootCodeToDisk(SrcPath,
@@ -2097,7 +2097,7 @@
 			else
 			{
 				wcscpy(SrcPath, SourceRootPath->Buffer);
-				wcscat(SrcPath, L"\\loader\\fat.bin");
+				wcscat(SrcPath, L"\\" ARCH_CD_ROOT "\\loader\\fat.bin");
 
 				DPRINT("Install FAT bootcode: %S ==> %S\n", SrcPath, SystemRootPath->Buffer);
 				Status = InstallFat16BootCodeToDisk(SrcPath,
@@ -2143,7 +2143,7 @@
 
   /* Copy FreeLoader to the boot partition */
   wcscpy(SrcPath, SourceRootPath->Buffer);
-  wcscat(SrcPath, L"\\loader\\freeldr.sys");
+  wcscat(SrcPath, L"\\" ARCH_CD_ROOT "\\loader\\freeldr.sys");
 
   wcscpy(DstPath, L"\\Device\\Floppy0\\freeldr.sys");
 
@@ -2169,7 +2169,7 @@
 
   /* Install FAT12/16 boosector */
   wcscpy(SrcPath, SourceRootPath->Buffer);
-  wcscat(SrcPath, L"\\loader\\fat.bin");
+  wcscat(SrcPath, L"\\" ARCH_CD_ROOT "\\loader\\fat.bin");
 
   wcscpy(DstPath, L"\\Device\\Floppy0");
 

Modified: branches/rbuild/reactos/base/setup/usetup/interface/usetup.c
URL: http://svn.reactos.org/svn/reactos/branches/rbuild/reactos/base/setup/usetup/interface/usetup.c?rev=31700&r1=31699&r2=31700&view=diff
==============================================================================
--- branches/rbuild/reactos/base/setup/usetup/interface/usetup.c (original)
+++ branches/rbuild/reactos/base/setup/usetup/interface/usetup.c Thu Jan 10 14:48:52 2008
@@ -2359,7 +2359,7 @@
                  || (PartEntry->PartInfo[0].PartitionType == PARTITION_FAT32))
                 {
                     wcscpy(PathBuffer, SourceRootPath.Buffer);
-                    wcscat(PathBuffer, L"\\loader\\fat32.bin");
+                    wcscat(PathBuffer, L"\\" ARCH_CD_ROOT "\\loader\\fat32.bin");
 
                     DPRINT("Install FAT32 bootcode: %S ==> %S\n", PathBuffer,
                         DestinationRootPath.Buffer);
@@ -2377,7 +2377,7 @@
                 else
                 {
                     wcscpy(PathBuffer, SourceRootPath.Buffer);
-                    wcscat(PathBuffer, L"\\loader\\fat.bin");
+                    wcscat(PathBuffer, L"\\" ARCH_CD_ROOT "\\loader\\fat.bin");
 
                     DPRINT("Install FAT bootcode: %S ==> %S\n", PathBuffer,
                         DestinationRootPath.Buffer);

Modified: branches/rbuild/reactos/base/setup/usetup/partlist.c
URL: http://svn.reactos.org/svn/reactos/branches/rbuild/reactos/base/setup/usetup/partlist.c?rev=31700&r1=31699&r2=31700&view=diff
==============================================================================
--- branches/rbuild/reactos/base/setup/usetup/partlist.c (original)
+++ branches/rbuild/reactos/base/setup/usetup/partlist.c Thu Jan 10 14:48:52 2008
@@ -2504,7 +2504,7 @@
               DiskEntry1->BiosDiskNumber == 0)
 	    {
 	      wcscpy (SrcPath, SourceRootPath.Buffer);
-	      wcscat (SrcPath, L"\\loader\\dosmbr.bin");
+	      wcscat (SrcPath, L"\\" ARCH_CD_ROOT "\\loader\\dosmbr.bin");
 
 	      DPRINT ("Install MBR bootcode: %S ==> %S\n",
 		       SrcPath, DstPath);

Modified: branches/rbuild/reactos/base/setup/usetup/usetup.h
URL: http://svn.reactos.org/svn/reactos/branches/rbuild/reactos/base/setup/usetup/usetup.h?rev=31700&r1=31699&r2=31700&view=diff
==============================================================================
--- branches/rbuild/reactos/base/setup/usetup/usetup.h (original)
+++ branches/rbuild/reactos/base/setup/usetup/usetup.h Thu Jan 10 14:48:52 2008
@@ -51,6 +51,9 @@
 /* ReactOS Version */
 #include <reactos/buildno.h>
 
+/* Architecture header */
+#include <reactos/architecture.h>
+
 /* Internal Headers */
 #include "interface/consup.h"
 #include "partlist.h"

Modified: branches/rbuild/reactos/boot/freeldr/bootsect/isoboot.asm
URL: http://svn.reactos.org/svn/reactos/branches/rbuild/reactos/boot/freeldr/bootsect/isoboot.asm?rev=31700&r1=31699&r2=31700&view=diff
==============================================================================
--- branches/rbuild/reactos/boot/freeldr/bootsect/isoboot.asm (original)
+++ branches/rbuild/reactos/boot/freeldr/bootsect/isoboot.asm Thu Jan 10 14:48:52 2008
@@ -961,7 +961,7 @@
 diskerr_msg:	db 'Disk error ', 0
 ondrive_str:	db ', drive ', 0
 err_bootfailed	db CR, LF, 'Boot failed: press a key to retry...'
-isolinux_dir	db '\LOADER', 0
+isolinux_dir	db '\I386\LOADER', 0
 no_dir_msg	db 'Could not find the LOADER directory.', CR, LF, 0
 isolinux_bin	db 'SETUPLDR.SYS', 0
 no_isolinux_msg	db 'Could not find SETUPLDR.SYS.', CR, LF, 0

Modified: branches/rbuild/reactos/boot/freeldr/bootsect/isobtrt.asm
URL: http://svn.reactos.org/svn/reactos/branches/rbuild/reactos/boot/freeldr/bootsect/isobtrt.asm?rev=31700&r1=31699&r2=31700&view=diff
==============================================================================
--- branches/rbuild/reactos/boot/freeldr/bootsect/isobtrt.asm (original)
+++ branches/rbuild/reactos/boot/freeldr/bootsect/isobtrt.asm Thu Jan 10 14:48:52 2008
@@ -928,7 +928,7 @@
 diskerr_msg:	db 'Disk error ', 0
 ondrive_str:	db ', drive ', 0
 err_bootfailed	db CR, LF, 'Boot failed: press a key to retry...'
-isolinux_dir	db '\LOADER', 0
+isolinux_dir	db '\I386\LOADER', 0
 no_dir_msg	db 'Could not find the LOADER directory.', CR, LF, 0
 isolinux_bin	db 'SETUPLDR.SYS', 0
 no_isolinux_msg	db 'Could not find SETUPLDR.SYS.', CR, LF, 0

Modified: branches/rbuild/reactos/boot/freeldr/freeldr/reactos/reactos.c
URL: http://svn.reactos.org/svn/reactos/branches/rbuild/reactos/boot/freeldr/freeldr/reactos/reactos.c?rev=31700&r1=31699&r2=31700&view=diff
==============================================================================
--- branches/rbuild/reactos/boot/freeldr/freeldr/reactos/reactos.c (original)
+++ branches/rbuild/reactos/boot/freeldr/freeldr/reactos/reactos.c Thu Jan 10 14:48:52 2008
@@ -21,6 +21,7 @@
 
 #include <freeldr.h>
 #include <debug.h>
+#include <reactos/architecture.h>
 
 extern ULONG PageDirectoryStart;
 extern ULONG PageDirectoryEnd;
@@ -648,7 +649,7 @@
 	{
 		/* Normalize */
 		MachDiskGetBootPath(SystemPath, sizeof(SystemPath));
-		strcat(SystemPath, "\\reactos");
+		strcat(SystemPath, "\\" ARCH_CD_ROOT "\\reactos");
 		strcat(strcpy(reactos_kernel_cmdline, SystemPath),
 		       " /MININT");
 	}

Added: branches/rbuild/reactos/include/reactos/architecture.h
URL: http://svn.reactos.org/svn/reactos/branches/rbuild/reactos/include/reactos/architecture.h?rev=31700&view=auto
==============================================================================
--- branches/rbuild/reactos/include/reactos/architecture.h (added)
+++ branches/rbuild/reactos/include/reactos/architecture.h Thu Jan 10 14:48:52 2008
@@ -1,0 +1,14 @@
+// Simple header for defining architecture-dependent settings
+
+#ifndef _REACTOS_ARCHITECTURE_H
+#define _REACTOS_ARCHITECTURE_H
+
+#if defined(_M_IX86)
+#   define ARCH_CD_ROOT             "I386"
+#elif defined(_M_PPC)
+#   define ARCH_CD_ROOT             "PPC"
+#else
+#   error Unsupported architecture
+#endif
+
+#endif

Propchange: branches/rbuild/reactos/include/reactos/architecture.h
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: branches/rbuild/reactos/tools/rbuild/backend/mingw/modulehandler.cpp
URL: http://svn.reactos.org/svn/reactos/branches/rbuild/reactos/tools/rbuild/backend/mingw/modulehandler.cpp?rev=31700&r1=31699&r2=31700&view=diff
==============================================================================
--- branches/rbuild/reactos/tools/rbuild/backend/mingw/modulehandler.cpp (original)
+++ branches/rbuild/reactos/tools/rbuild/backend/mingw/modulehandler.cpp Thu Jan 10 14:48:52 2008
@@ -3502,7 +3502,7 @@
 MingwIsoModuleHandler::GenerateIsoModuleTarget ()
 {
 	string bootcdDirectory = "cd";
-    string bootcdStrapDirectory = bootcdDirectory + sSep + Environment::GetBootstrapCdOutputPath();
+    string bootcdStrapDirectory = bootcdDirectory + sSep + Environment::GetBootstrapCdOutputPath( module.project );
 
 	FileLocation bootcd ( OutputDirectory,
 	                      bootcdDirectory,
@@ -3620,8 +3620,7 @@
 }
 
 void
-MingwLiveIsoModuleHandler::OutputModuleCopyCommands ( string& livecdDirectory,
-                                                      string& reactosDirectory )
+MingwLiveIsoModuleHandler::OutputModuleCopyCommands ( string& livecdReactosDirectory )
 {
 	for ( size_t i = 0; i < module.project.modules.size (); i++ )
 	{
@@ -3633,8 +3632,8 @@
 			const Module& aliasedModule = backend->GetAliasedModuleOrModule ( m  );
 			FileLocation destination ( OutputDirectory,
 			                           m.install->relative_path.length () > 0
-			                               ? livecdDirectory + sSep + reactosDirectory + sSep + m.install->relative_path
-			                               : livecdDirectory + sSep + reactosDirectory,
+			                               ? livecdReactosDirectory + sSep + m.install->relative_path
+			                               : livecdReactosDirectory,
 			                           m.install->name );
 			OutputCopyCommand ( *aliasedModule.output,
 			                    destination);
@@ -3643,59 +3642,49 @@
 }
 
 void
-MingwLiveIsoModuleHandler::OutputNonModuleCopyCommands ( string& livecdDirectory,
-                                                         string& reactosDirectory )
+MingwLiveIsoModuleHandler::OutputNonModuleCopyCommands ( string& livecdReactosDirectory )
 {
 	for ( size_t i = 0; i < module.project.installfiles.size (); i++ )
 	{
 		const InstallFile& installfile = *module.project.installfiles[i];
 		FileLocation target ( OutputDirectory,
 		                      installfile.target->relative_path.length () > 0
-		                          ? livecdDirectory + sSep + reactosDirectory + sSep + installfile.target->relative_path
-		                          : livecdDirectory + sSep + reactosDirectory,
+		                          ? livecdReactosDirectory + sSep + installfile.target->relative_path
+		                          : livecdReactosDirectory,
 		                      installfile.target->name );
 		OutputCopyCommand ( *installfile.source, target );
 	}
 }
 
 void
-MingwLiveIsoModuleHandler::OutputProfilesDirectoryCommands ( string& livecdDirectory )
-{
-	CreateDirectory ( livecdDirectory + sSep + "Profiles" );
-	CreateDirectory ( livecdDirectory + sSep + "Profiles" + sSep + "All Users") ;
-	CreateDirectory ( livecdDirectory + sSep + "Profiles" + sSep + "All Users" + sSep + "Desktop" );
-	CreateDirectory ( livecdDirectory + sSep + "Profiles" + sSep + "Default User" );
-	CreateDirectory ( livecdDirectory + sSep + "Profiles" + sSep + "Default User" + sSep + "Desktop" );
-	CreateDirectory ( livecdDirectory + sSep + "Profiles" + sSep + "Default User" + sSep + "My Documents" );
-
+MingwLiveIsoModuleHandler::OutputLoaderCommands ( string& livecdRootDirectory, string& livecdArchDirectory )
+{
 	FileLocation livecdIni ( SourceDirectory,
 	                         "boot" + sSep + "bootdata",
 	                         "livecd.ini" );
-	FileLocation destination ( OutputDirectory,
-	                           livecdDirectory,
-	                           "freeldr.ini" );
+
+	FileLocation livecdIniDestination ( OutputDirectory,
+	                                    livecdRootDirectory,
+	                                    "freeldr.ini" );
 	OutputCopyCommand ( livecdIni,
-	                    destination );
-}
-
-void
-MingwLiveIsoModuleHandler::OutputLoaderCommands ( string& livecdDirectory )
-{
+	                    livecdIniDestination );
+
+
 	FileLocation freeldr ( OutputDirectory,
 	                       "boot" + sSep + "freeldr" + sSep + "freeldr",
 	                       "freeldr.sys" );
-	FileLocation destination ( OutputDirectory,
-	                           livecdDirectory + sSep + "loader",
-	                           "setupldr.sys" );
+	FileLocation freeldrDestination ( OutputDirectory,
+	                                  livecdArchDirectory + sSep + "loader",
+	                                  "setupldr.sys" );
 	OutputCopyCommand ( freeldr,
-	                    destination );
-}
-
-void
-MingwLiveIsoModuleHandler::OutputRegistryCommands ( string& livecdDirectory )
+	                    freeldrDestination );
+}
+
+void
+MingwLiveIsoModuleHandler::OutputRegistryCommands ( string& livecdReactosDirectory )
 {
 	FileLocation reactosSystem32ConfigDirectory ( OutputDirectory,
-	                                              livecdDirectory + sSep + "reactos" + sSep + "system32" + sSep + "config",
+	                                              livecdReactosDirectory + sSep + "system32" + sSep + "config",
 	                                              "" );
 	fprintf ( fMakefile,
 	          "\t$(ECHO_MKHIVE)\n" );
@@ -3708,8 +3697,9 @@
 void
 MingwLiveIsoModuleHandler::GenerateLiveIsoModuleTarget ()
 {
-	string livecdDirectory = module.name;
-	FileLocation livecd ( OutputDirectory, livecdDirectory, "" );
+    string livecdRootDirectory = module.name;
+    string livecdArchDirectory = module.name + sSep + Environment::GetArchCdPath( module.project );
+	FileLocation livecd ( OutputDirectory, livecdRootDirectory, "" );
 
 	string bootloader;
 	string IsoName;
@@ -3727,10 +3717,9 @@
 
 	FileLocation isoboot ( OutputDirectory, "boot" + sSep + "freeldr" + sSep + "bootsect", bootloader );
 
-    string reactosDirectory = Environment::GetArch();// "reactos";
-	string livecdReactosNoFixup = livecdDirectory + sSep + reactosDirectory;
+	string livecdReactosDirectory = livecdArchDirectory + sSep + "reactos";
 	FileLocation livecdReactos ( OutputDirectory,
-	                             livecdReactosNoFixup,
+	                             livecdReactosDirectory,
 	                             "" );
 	CLEAN_FILE ( livecdReactos );
 
@@ -3741,13 +3730,10 @@
 	          module.name.c_str (),
 	          backend->GetFullName ( isoboot) .c_str (),
 	          backend->GetFullPath ( livecdReactos ).c_str () );
-	OutputModuleCopyCommands ( livecdDirectory,
-	                           reactosDirectory );
-	OutputNonModuleCopyCommands ( livecdDirectory,
-	                              reactosDirectory );
-	OutputProfilesDirectoryCommands ( livecdDirectory );
-	OutputLoaderCommands ( livecdDirectory );
-	OutputRegistryCommands ( livecdDirectory );
+	OutputModuleCopyCommands ( livecdReactosDirectory );
+	OutputNonModuleCopyCommands ( livecdReactosDirectory );
+	OutputLoaderCommands ( livecdRootDirectory, livecdArchDirectory );
+	OutputRegistryCommands ( livecdReactosDirectory );
 	fprintf ( fMakefile, "\t$(ECHO_CDMAKE)\n" );
 	fprintf ( fMakefile,
 	          "\t$(Q)$(CDMAKE_TARGET) -v -m -j -b %s %s REACTOS %s\n",

Modified: branches/rbuild/reactos/tools/rbuild/backend/mingw/modulehandler.h
URL: http://svn.reactos.org/svn/reactos/branches/rbuild/reactos/tools/rbuild/backend/mingw/modulehandler.h?rev=31700&r1=31699&r2=31700&view=diff
==============================================================================
--- branches/rbuild/reactos/tools/rbuild/backend/mingw/modulehandler.h (original)
+++ branches/rbuild/reactos/tools/rbuild/backend/mingw/modulehandler.h Thu Jan 10 14:48:52 2008
@@ -450,13 +450,10 @@
 private:
 	void GenerateLiveIsoModuleTarget ();
 	void CreateDirectory ( const std::string& directory );
-	void OutputModuleCopyCommands ( std::string& livecdDirectory,
-	                                std::string& livecdReactos );
-	void OutputNonModuleCopyCommands ( std::string& livecdDirectory,
-	                                   std::string& livecdReactos );
-	void OutputProfilesDirectoryCommands ( std::string& livecdDirectory );
-	void OutputLoaderCommands ( std::string& livecdDirectory );
-	void OutputRegistryCommands ( std::string& livecdDirectory );
+	void OutputModuleCopyCommands ( std::string& livecdReactosDirectory );
+	void OutputNonModuleCopyCommands ( std::string& livecdReactosDirectory );
+    void OutputLoaderCommands ( std::string& livecdRootDirectory, std::string& livecdArchDirectory );
+	void OutputRegistryCommands ( std::string& livecdReactosDirectory );
 };
 
 

Modified: branches/rbuild/reactos/tools/rbuild/creditsgenerator.cpp
URL: http://svn.reactos.org/svn/reactos/branches/rbuild/reactos/tools/rbuild/creditsgenerator.cpp?rev=31700&r1=31699&r2=31700&view=diff
==============================================================================
--- branches/rbuild/reactos/tools/rbuild/creditsgenerator.cpp (original)
+++ branches/rbuild/reactos/tools/rbuild/creditsgenerator.cpp Thu Jan 10 14:48:52 2008
@@ -86,7 +86,7 @@
     }
 
 
-    FileSupportCode::WriteIfChanged ( buf, NormalizeFilename ( Environment::GetIntermediatePath () + sSep + "CREDITS" ) );
+    FileSupportCode::WriteIfChanged (buf, "CREDITS");
 
     free ( buf );
 }
@@ -105,8 +105,8 @@
     s = s + sprintf ( s, "/* Auto generated */\n");
     s = s + sprintf ( s, "/* Edit contributors.rbuild to add or remove developers */\n" );
     s = s + sprintf ( s, "\n" );
-	s = s + sprintf ( s, "#ifndef __INCLUDE_AUTOCONTRIBUTORS_H\n" );
-	s = s + sprintf ( s, "#define __INCLUDE_AUTOCONTRIBUTORS_H\n" );
+    s = s + sprintf ( s, "#ifndef __INCLUDE_AUTOCONTRIBUTORS_H\n" );
+    s = s + sprintf ( s, "#define __INCLUDE_AUTOCONTRIBUTORS_H\n" );
     s = s + sprintf ( s, "\n" );
     s = s + sprintf ( s, "const char* szAutoContributors[]= \n" );
     s = s + sprintf ( s, "{\n" );

Modified: branches/rbuild/reactos/tools/rbuild/project.cpp
URL: http://svn.reactos.org/svn/reactos/branches/rbuild/reactos/tools/rbuild/project.cpp?rev=31700&r1=31699&r2=31700&view=diff
==============================================================================
--- branches/rbuild/reactos/tools/rbuild/project.cpp (original)
+++ branches/rbuild/reactos/tools/rbuild/project.cpp Thu Jan 10 14:48:52 2008
@@ -72,9 +72,21 @@
 }
 
 string
-Environment::GetArch ()
-{
-	return GetEnvironmentVariablePathOrDefault ( "ROS_ARCH", "i386" );
+Environment::GetArchName ()
+{
+	return GetEnvironmentVariablePathOrDefault("ROS_ARCH", "i386");
+}
+
+string
+Environment::GetArchCdPath ( const Project& project )
+{
+    switch( project.architectureType )
+    {
+        case I386:    return "I386";
+        case PowerPC: return "PPC";
+    }
+
+    throw MissingArgumentException("architectureType");
 }
 
 /* static */ string
@@ -92,7 +104,7 @@
 Environment::GetIntermediatePath ()
 {
 	string defaultIntermediate =
-		string( "obj-" ) + GetArch ();
+		string( "obj-" ) + GetArchName ();
 	return GetEnvironmentVariablePathOrDefault ( "ROS_INTERMEDIATE",
 	                                             defaultIntermediate );
 }
@@ -113,7 +125,7 @@
 Environment::GetOutputPath ()
 {
 	string defaultOutput =
-		string( "output-" ) + GetArch ();
+		string( "output-" ) + GetArchName ();
 	return GetEnvironmentVariablePathOrDefault ( "ROS_OUTPUT",
 	                                             defaultOutput );
 }
@@ -134,10 +146,10 @@
 }
 
 /* static */ string
-Environment::GetBootstrapCdOutputPath ()
+Environment::GetBootstrapCdOutputPath ( const Project& project )
 {
 	return GetEnvironmentVariablePathOrDefault ( "ROS_CDBOOTSTRAPOUTPUT",
-	                                             GetArch());
+	                                             GetArchCdPath(project) );
 }
 
 /* static */ string

Modified: branches/rbuild/reactos/tools/rbuild/rbuild.h
URL: http://svn.reactos.org/svn/reactos/branches/rbuild/reactos/tools/rbuild/rbuild.h?rev=31700&r1=31699&r2=31700&view=diff
==============================================================================
--- branches/rbuild/reactos/tools/rbuild/rbuild.h (original)
+++ branches/rbuild/reactos/tools/rbuild/rbuild.h Thu Jan 10 14:48:52 2008
@@ -123,6 +123,7 @@
 class BuildFamily;
 class Family;
 class PlatformLanguage;
+class Project;
 
 typedef std::map<std::string,Directory*> directory_map;
 
@@ -209,11 +210,12 @@
 {
 public:
 	static std::string GetVariable ( const std::string& name );
-	static std::string GetArch ();
+	static std::string GetArchName ();
+    static std::string GetArchCdPath ( const Project& project );
 	static std::string GetIntermediatePath ();
 	static std::string GetOutputPath ();
 	static std::string GetCdOutputPath ();
-    static std::string GetBootstrapCdOutputPath ();
+    static std::string GetBootstrapCdOutputPath ( const Project& project );
 	static std::string GetInstallPath ();
 	static std::string GetAutomakeFile ( const std::string& defaultFile );
 	static std::string GetEnvironmentVariablePathOrDefault ( const std::string& name,




More information about the Ros-diffs mailing list