GenerateHeader ();\r
GenerateGlobalVariables ();\r
GenerateAllTarget ();\r
+ GenerateInitTarget ();\r
for ( size_t i = 0; i < ProjectNode.modules.size (); i++ )\r
{\r
Module& module = *ProjectNode.modules[i];\r
fprintf ( fMakefile, "host_ar = ar\n" );\r
fprintf ( fMakefile, "host_objcopy = objcopy\n" );\r
#ifdef WIN32\r
+ fprintf ( fMakefile, "nmkdir = mkdir\n" );\r
fprintf ( fMakefile, "rm = del /f /q\n" );\r
fprintf ( fMakefile, "gcc = gcc\n" );\r
fprintf ( fMakefile, "gpp = g++\n" );\r
fprintf ( fMakefile, "dlltool = dlltool\n" );\r
fprintf ( fMakefile, "windres = windres\n" );\r
#else\r
+ fprintf ( fMakefile, "nmkdir = mkdir -p\n" );\r
fprintf ( fMakefile, "rm = rm -f\n" );\r
fprintf ( fMakefile, "gcc = mingw32-gcc\n" );\r
fprintf ( fMakefile, "gpp = mingw32-g++\n" );\r
fprintf ( fMakefile, "\n\t\n\n" );\r
}\r
\r
+string\r
+MingwBackend::GetBuildToolDependencies () const\r
+{\r
+ string dependencies;\r
+ for ( size_t i = 0; i < ProjectNode.modules.size (); i++ )\r
+ {\r
+ Module& module = *ProjectNode.modules[i];\r
+ if ( module.type == BuildTool )\r
+ {\r
+ if ( dependencies.length () > 0 )\r
+ dependencies += " ";\r
+ dependencies += module.GetDependencyPath ();\r
+ }\r
+ }\r
+ return dependencies;\r
+}\r
+ \r
+void\r
+MingwBackend::GenerateInitTarget () const\r
+{\r
+ fprintf ( fMakefile,\r
+ "init:");\r
+ fprintf ( fMakefile,\r
+ " $(ROS_INTERMEDIATE)." SSEP "tools" );\r
+ fprintf ( fMakefile,\r
+ " %s",\r
+ GetBuildToolDependencies ().c_str () );\r
+ fprintf ( fMakefile,\r
+ " %s",\r
+ "include" SSEP "reactos" SSEP "buildno.h" );\r
+ fprintf ( fMakefile,\r
+ "\n\t\n\n" );\r
+\r
+ fprintf ( fMakefile,\r
+ "$(ROS_INTERMEDIATE)." SSEP "tools:\n" );\r
+ fprintf ( fMakefile,\r
+ "ifneq ($(ROS_INTERMEDIATE),)\n" );\r
+ fprintf ( fMakefile,\r
+ "\t${nmkdir} $(ROS_INTERMEDIATE)\n" );\r
+ fprintf ( fMakefile,\r
+ "endif\n" );\r
+ fprintf ( fMakefile,\r
+ "\t${nmkdir} $(ROS_INTERMEDIATE)." SSEP "tools\n" );\r
+ fprintf ( fMakefile,\r
+ "\n" );\r
+}\r
+\r
void\r
MingwBackend::CheckAutomaticDependencies ()\r
{\r