diff --git a/reactos/ReactOS-generic.rbuild b/reactos/ReactOS-generic.rbuild index 38310d6149e..4a1cc76e3e8 100644 --- a/reactos/ReactOS-generic.rbuild +++ b/reactos/ReactOS-generic.rbuild @@ -121,5 +121,5 @@ - -Wno-non-virtual-dtor + -Wno-non-virtual-dtor diff --git a/reactos/ReactOS-i386.rbuild b/reactos/ReactOS-i386.rbuild index e9c5bfee979..9505cee899f 100644 --- a/reactos/ReactOS-i386.rbuild +++ b/reactos/ReactOS-i386.rbuild @@ -19,30 +19,64 @@ - - -Os - -ftracer - -momit-leaf-frame-pointer - - - -Os - - - -O1 - - - -O2 - - - -O3 - + + + -Os + -ftracer + -momit-leaf-frame-pointer + + + -Os + + + -O1 + + + -O2 + + + -O3 + - -mpreferred-stack-boundary=2 - -fno-strict-aliasing - -Wno-strict-aliasing - -Wpointer-arith - -Wno-multichar - - -disable-stdcall-fixup + -mpreferred-stack-boundary=2 + -fno-strict-aliasing + -Wno-strict-aliasing + -Wpointer-arith + -Wno-multichar + + + + + + /O1 + + + /O2 + + + /Ox /GS- + /Ot + + + /Ox /GS- + /Os + + + /Ox /GS- + /Os + /Ob2 + /GF + /Gy + + + /GS- + /Zl + /Zi + /Wall + + + + -disable-stdcall-fixup + diff --git a/reactos/tools/rbuild/backend/mingw/mingw.cpp b/reactos/tools/rbuild/backend/mingw/mingw.cpp index 1e15dacea2f..30409918449 100644 --- a/reactos/tools/rbuild/backend/mingw/mingw.cpp +++ b/reactos/tools/rbuild/backend/mingw/mingw.cpp @@ -453,39 +453,42 @@ MingwBackend::GenerateGlobalVariables () const GenerateGlobalProperties ( "=", ProjectNode.non_if_data ); - fprintf ( fMakefile, "PROJECT_CFLAGS += -Wall\n" ); - fprintf ( fMakefile, "PROJECT_CXXFLAGS += -Wall\n" ); - fprintf ( fMakefile, "ifneq ($(OARCH),)\n" ); - fprintf ( fMakefile, "PROJECT_CFLAGS += -march=$(OARCH)\n" ); - fprintf ( fMakefile, "PROJECT_CXXFLAGS += -march=$(OARCH)\n" ); - fprintf ( fMakefile, "endif\n" ); - fprintf ( fMakefile, "ifneq ($(TUNE),)\n" ); - fprintf ( fMakefile, "PROJECT_CFLAGS += -mtune=$(TUNE)\n" ); - fprintf ( fMakefile, "PROJECT_CXXFLAGS += -mtune=$(TUNE)\n" ); - fprintf ( fMakefile, "endif\n" ); + if ( ProjectNode.configuration.Compiler == GnuGcc ) + { + fprintf ( fMakefile, "PROJECT_CFLAGS += -Wall\n" ); + fprintf ( fMakefile, "PROJECT_CXXFLAGS += -Wall\n" ); + fprintf ( fMakefile, "ifneq ($(OARCH),)\n" ); + fprintf ( fMakefile, "PROJECT_CFLAGS += -march=$(OARCH)\n" ); + fprintf ( fMakefile, "PROJECT_CXXFLAGS += -march=$(OARCH)\n" ); + fprintf ( fMakefile, "endif\n" ); + fprintf ( fMakefile, "ifneq ($(TUNE),)\n" ); + fprintf ( fMakefile, "PROJECT_CFLAGS += -mtune=$(TUNE)\n" ); + fprintf ( fMakefile, "PROJECT_CXXFLAGS += -mtune=$(TUNE)\n" ); + fprintf ( fMakefile, "endif\n" ); - fprintf ( fMakefile, "PROJECT_CFLAGS += -g%s\n", Environment::GetArch() == "amd64" ? "dwarf-2" : "stabs+" ); - fprintf ( fMakefile, "PROJECT_CXXFLAGS += -g%s\n", Environment::GetArch() == "amd64" ? "dwarf-2" : "stabs+" ); - fprintf ( fMakefile, "PROJECT_ASFLAGS += -g%s\n", Environment::GetArch() == "amd64" ? "dwarf-2" : "stabs+" ); + fprintf ( fMakefile, "PROJECT_CFLAGS += -g%s\n", Environment::GetArch() == "amd64" ? "dwarf-2" : "stabs+" ); + fprintf ( fMakefile, "PROJECT_CXXFLAGS += -g%s\n", Environment::GetArch() == "amd64" ? "dwarf-2" : "stabs+" ); + fprintf ( fMakefile, "PROJECT_ASFLAGS += -g%s\n", Environment::GetArch() == "amd64" ? "dwarf-2" : "stabs+" ); + + if ( usePipe ) + { + fprintf ( fMakefile, "PROJECT_CFLAGS += -pipe\n" ); + fprintf ( fMakefile, "PROJECT_CXXFLAGS += -pipe\n" ); + fprintf ( fMakefile, "PROJECT_ASFLAGS += -pipe\n" ); + } + + // Because RosBE gcc is built to suck + fputs ( "BUILTIN_HOST_CINCLUDES+= $(HOST_CFLAGS)\n", fMakefile ); + fputs ( "BUILTIN_HOST_CPPINCLUDES+= $(HOST_CFLAGS)\n", fMakefile ); + fputs ( "BUILTIN_HOST_CXXINCLUDES+= $(HOST_CPPFLAGS)\n", fMakefile ); + + // Would be nice to have our own C++ runtime + fputs ( "BUILTIN_CXXINCLUDES+= $(TARGET_CPPFLAGS)\n", fMakefile ); + } MingwModuleHandler::GenerateParameters ( "PROJECT", "+=", ProjectNode.non_if_data ); MingwModuleHandler::GenerateParameters ( "PROJECT_HOST", "+=", ProjectNode.host_non_if_data ); - if ( usePipe ) - { - fprintf ( fMakefile, "PROJECT_CFLAGS += -pipe\n" ); - fprintf ( fMakefile, "PROJECT_CXXFLAGS += -pipe\n" ); - fprintf ( fMakefile, "PROJECT_ASFLAGS += -pipe\n" ); - } - - // Because RosBE gcc is built to suck - fputs ( "BUILTIN_HOST_CINCLUDES+= $(HOST_CFLAGS)\n", fMakefile ); - fputs ( "BUILTIN_HOST_CPPINCLUDES+= $(HOST_CFLAGS)\n", fMakefile ); - fputs ( "BUILTIN_HOST_CXXINCLUDES+= $(HOST_CPPFLAGS)\n", fMakefile ); - - // Would be nice to have our own C++ runtime - fputs ( "BUILTIN_CXXINCLUDES+= $(TARGET_CPPFLAGS)\n", fMakefile ); - // TODO: linker flags fprintf ( fMakefile, "PROJECT_LFLAGS := '$(shell ${TARGET_CC} -print-libgcc-file-name)' %s\n", GenerateProjectLFLAGS ().c_str () ); fprintf ( fMakefile, "PROJECT_LPPFLAGS := '$(shell ${TARGET_CPP} -print-file-name=libstdc++.a)' '$(shell ${TARGET_CPP} -print-file-name=libgcc.a)' '$(shell ${TARGET_CPP} -print-file-name=libmingw32.a)' '$(shell ${TARGET_CPP} -print-file-name=libmingwex.a)' '$(shell ${TARGET_CPP} -print-file-name=libcoldname.a)'\n" ); @@ -771,6 +774,7 @@ MingwBackend::DetectCompiler () } else if ( ProjectNode.configuration.Compiler == MicrosoftC ) { + compilerCommand = "cl"; detectedCompiler = DetectMicrosoftCompiler ( compilerVersion, mscPath ); supportedCompiler = true; // TODO } @@ -1015,6 +1019,7 @@ MingwBackend::DetectBinutils () } else if ( ProjectNode.configuration.Linker == MicrosoftLink ) { + compilerCommand = "link"; detectedBinutils = DetectMicrosoftLinker ( binutilsVersion, mslinkPath ); supportedBinutils = true; // TODO } @@ -1094,6 +1099,8 @@ MingwBackend::DetectPipeSupport () else printf ( "not detected\n" ); } + else + usePipe = false; } void