* Implement <autoregister>
[reactos.git] / reactos / tools / rbuild / rbuild.mak
index ce67540..f3fbc3b 100644 (file)
-RBUILD_BASE = $(TOOLS_BASE_)rbuild\r
-RBUILD_BASE_ = $(RBUILD_BASE)$(SEP)\r
-RBUILD_INT = $(INTERMEDIATE_)$(RBUILD_BASE)\r
-RBUILD_INT_ = $(RBUILD_INT)$(SEP)\r
-RBUILD_OUT = $(OUTPUT_)$(RBUILD_BASE)\r
-RBUILD_OUT_ = $(RBUILD_OUT)$(SEP)\r
-\r
-$(RBUILD_INT): $(TOOLS_INT)\r
-       $(ECHO_MKDIR)\r
-       ${mkdir} $@\r
-\r
-ifneq ($(INTERMEDIATE),$(OUTPUT))\r
-$(RBUILD_OUT): $(TOOLS_OUT)\r
-       $(ECHO_MKDIR)\r
-       ${mkdir} $@\r
-endif\r
-\r
-\r
-RBUILD_BACKEND_BASE = $(RBUILD_BASE_)backend\r
-RBUILD_BACKEND_BASE_ = $(RBUILD_BACKEND_BASE)$(SEP)\r
-RBUILD_BACKEND_INT = $(INTERMEDIATE_)$(RBUILD_BACKEND_BASE)\r
-RBUILD_BACKEND_INT_ = $(RBUILD_BACKEND_INT)$(SEP)\r
-RBUILD_BACKEND_OUT = $(OUTPUT)$(RBUILD_BACKEND_BASE)\r
-RBUILD_BACKEND_OUT_ = $(RBUILD_BACKEND_OUT)$(SEP)\r
-\r
-$(RBUILD_BACKEND_INT): $(RBUILD_INT)\r
-       $(ECHO_MKDIR)\r
-       ${mkdir} $@\r
-\r
-ifneq ($(INTERMEDIATE),$(OUTPUT))\r
-$(RBUILD_BACKEND_OUT): $(RBUILD_OUT)\r
-       $(ECHO_MKDIR)\r
-       ${mkdir} $@\r
-endif\r
-\r
-\r
-RBUILD_MINGW_BASE = $(RBUILD_BACKEND_BASE_)mingw\r
-RBUILD_MINGW_BASE_ = $(RBUILD_MINGW_BASE)$(SEP)\r
-RBUILD_MINGW_INT = $(INTERMEDIATE_)$(RBUILD_MINGW_BASE)\r
-RBUILD_MINGW_INT_ = $(RBUILD_MINGW_INT)$(SEP)\r
-RBUILD_MINGW_OUT = $(OUTPUT)$(RBUILD_MINGW_BASE)\r
-RBUILD_MINGW_OUT_ = $(RBUILD_MINGW_OUT)$(SEP)\r
-\r
-$(RBUILD_MINGW_INT): $(RBUILD_BACKEND_INT)\r
-       $(ECHO_MKDIR)\r
-       ${mkdir} $@\r
-\r
-ifneq ($(INTERMEDIATE),$(OUTPUT))\r
-$(RBUILD_MINGW_OUT): $(RBUILD_BACKEND_OUT)\r
-       $(ECHO_MKDIR)\r
-       ${mkdir} $@\r
-endif\r
-\r
-\r
-RBUILD_TESTS_BASE = $(RBUILD_BASE_)tests\r
-RBUILD_TESTS_BASE_ = $(RBUILD_TESTS_BASE)$(SEP)\r
-RBUILD_TESTS_INT = $(INTERMEDIATE_)$(RBUILD_TESTS_BASE)\r
-RBUILD_TESTS_INT_ = $(RBUILD_TESTS_INT)$(SEP)\r
-RBUILD_TESTS_OUT = $(OUTPUT)$(RBUILD_TESTS_BASE)\r
-\r
-$(RBUILD_TESTS_INT): $(RBUILD_INT)\r
-       $(ECHO_MKDIR)\r
-       ${mkdir} $@\r
-\r
-ifneq ($(INTERMEDIATE),$(OUTPUT))\r
-$(RBUILD_TESTS_OUT): $(RBUILD_OUT)\r
-       $(ECHO_MKDIR)\r
-       ${mkdir} $@\r
-endif\r
-\r
-\r
-RBUILD_DEVCPP_BASE = $(RBUILD_BACKEND_BASE_)devcpp\r
-RBUILD_DEVCPP_BASE_ = $(RBUILD_DEVCPP_BASE)$(SEP)\r
-RBUILD_DEVCPP_INT = $(INTERMEDIATE_)$(RBUILD_DEVCPP_BASE)\r
-RBUILD_DEVCPP_INT_ = $(RBUILD_DEVCPP_INT)$(SEP)\r
-RBUILD_DEVCPP_OUT = $(OUTPUT)$(RBUILD_DEVCPP_BASE)\r
-RBUILD_DEVCPP_OUT_ = $(RBUILD_DEVCPP_OUT)$(SEP)\r
-\r
-$(RBUILD_DEVCPP_INT): $(RBUILD_BACKEND_INT)\r
-       $(ECHO_MKDIR)\r
-       ${mkdir} $@\r
-\r
-ifneq ($(INTERMEDIATE),$(OUTPUT))\r
-$(RBUILD_DEVCPP_OUT): $(RBUILD_BACKEND_OUT)\r
-       $(ECHO_MKDIR)\r
-       ${mkdir} $@\r
-endif\r
-\r
-\r
-RBUILD_TARGET = \\r
-       $(EXEPREFIX)$(RBUILD_OUT_)rbuild$(EXEPOSTFIX)\r
-\r
-RBUILD_TEST_TARGET = \\r
-       $(EXEPREFIX)$(RBUILD_OUT_)rbuild_test$(EXEPOSTFIX)\r
-\r
-RBUILD_BACKEND_MINGW_BASE_SOURCES = $(addprefix $(RBUILD_MINGW_BASE_), \\r
-       mingw.cpp \\r
-       modulehandler.cpp \\r
-       )\r
-\r
-RBUILD_BACKEND_DEVCPP_BASE_SOURCES = $(addprefix $(RBUILD_DEVCPP_BASE_), \\r
-       devcpp.cpp \\r
-       )\r
-\r
-RBUILD_BACKEND_SOURCES = \\r
-       $(RBUILD_BACKEND_MINGW_BASE_SOURCES) \\r
-       $(RBUILD_BACKEND_DEVCPP_BASE_SOURCES) \\r
-       $(RBUILD_BACKEND_BASE_)backend.cpp\r
-\r
-RBUILD_COMMON_SOURCES = \\r
-       $(RBUILD_BACKEND_SOURCES) \\r
-       $(addprefix $(RBUILD_BASE_), \\r
-               automaticdependency.cpp \\r
-               bootstrap.cpp \\r
-               cdfile.cpp \\r
-               compilerflag.cpp \\r
-               define.cpp \\r
-               exception.cpp \\r
-               include.cpp \\r
-               installfile.cpp \\r
-               linkerflag.cpp \\r
-               module.cpp \\r
-               project.cpp \\r
-               ssprintf.cpp \\r
-               stubbedcomponent.cpp \\r
-               XML.cpp \\r
-               )\r
-\r
-RBUILD_SPECIAL_SOURCES = \\r
-       $(RBUILD_BASE_)rbuild.cpp\r
-\r
-RBUILD_SOURCES = \\r
-       $(RBUILD_COMMON_SOURCES) \\r
-       $(RBUILD_SPECIAL_SOURCES)\r
-\r
-RBUILD_COMMON_OBJECTS = \\r
-       $(addprefix $(INTERMEDIATE_), $(RBUILD_COMMON_SOURCES:.cpp=.o))\r
-\r
-RBUILD_SPECIAL_OBJECTS = \\r
-       $(addprefix $(INTERMEDIATE_), $(RBUILD_SPECIAL_SOURCES:.cpp=.o))\r
-\r
-RBUILD_OBJECTS = \\r
-       $(RBUILD_COMMON_OBJECTS) \\r
-       $(RBUILD_SPECIAL_OBJECTS)\r
-\r
-RBUILD_TESTS = \\r
-       tests$(SEP)cdfiletest.cpp \\r
-       tests$(SEP)definetest.cpp \\r
-       tests$(SEP)functiontest.cpp \\r
-       tests$(SEP)iftest.cpp \\r
-       tests$(SEP)includetest.cpp \\r
-       tests$(SEP)invoketest.cpp \\r
-       tests$(SEP)linkerflagtest.cpp \\r
-       tests$(SEP)moduletest.cpp \\r
-       tests$(SEP)projecttest.cpp \\r
-       tests$(SEP)sourcefiletest.cpp \\r
-       tests$(SEP)symboltest.cpp\r
-\r
-RBUILD_TEST_SPECIAL_SOURCES = \\r
-       $(addprefix $(RBUILD_BASE_), $(RBUILD_TESTS)) \\r
-       $(RBUILD_BASE_)tests$(SEP)alltests.cpp\r
-\r
-RBUILD_TEST_SOURCES = \\r
-       $(RBUILD_COMMON_SOURCES) \\r
-       $(RBUILD_TEST_SPECIAL_SOURCES)\r
-\r
-RBUILD_TEST_SPECIAL_OBJECTS = \\r
-       $(addprefix $(INTERMEDIATE_), $(RBUILD_TEST_SPECIAL_SOURCES:.cpp=.o))\r
-\r
-RBUILD_TEST_OBJECTS = \\r
-       $(RBUILD_COMMON_OBJECTS) \\r
-       $(RBUILD_TEST_SPECIAL_OBJECTS)\r
-\r
-RBUILD_HOST_CXXFLAGS = -g -I$(RBUILD_BASE) -Werror -Wall\r
-\r
-RBUILD_HOST_LFLAGS = -g\r
-\r
-.PHONY: rbuild\r
-rbuild: $(RBUILD_TARGET)\r
-\r
-$(RBUILD_TARGET): $(RBUILD_OBJECTS) $(RBUILD_OUT)\r
-       $(ECHO_LD)\r
-       ${host_gpp} $(RBUILD_OBJECTS) $(RBUILD_HOST_LFLAGS) -o $@\r
-\r
-$(RBUILD_INT_)automaticdependency.o: $(RBUILD_BASE_)automaticdependency.cpp $(RBUILD_INT)\r
-       $(ECHO_CC)\r
-       ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@\r
-\r
-$(RBUILD_INT_)bootstrap.o: $(RBUILD_BASE_)bootstrap.cpp $(RBUILD_INT)\r
-       $(ECHO_CC)\r
-       ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@\r
-\r
-$(RBUILD_INT_)cdfile.o: $(RBUILD_BASE_)cdfile.cpp $(RBUILD_INT)\r
-       $(ECHO_CC)\r
-       ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@\r
-\r
-$(RBUILD_INT_)compilerflag.o: $(RBUILD_BASE_)compilerflag.cpp $(RBUILD_INT)\r
-       $(ECHO_CC)\r
-       ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@\r
-\r
-$(RBUILD_INT_)define.o: $(RBUILD_BASE_)define.cpp $(RBUILD_INT)\r
-       $(ECHO_CC)\r
-       ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@\r
-\r
-$(RBUILD_INT_)exception.o: $(RBUILD_BASE_)exception.cpp $(RBUILD_INT)\r
-       $(ECHO_CC)\r
-       ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@\r
-\r
-$(RBUILD_INT_)include.o: $(RBUILD_BASE_)include.cpp $(RBUILD_INT)\r
-       $(ECHO_CC)\r
-       ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@\r
-\r
-$(RBUILD_INT_)installfile.o: $(RBUILD_BASE_)installfile.cpp $(RBUILD_INT)\r
-       $(ECHO_CC)\r
-       ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@\r
-\r
-$(RBUILD_INT_)linkerflag.o: $(RBUILD_BASE_)linkerflag.cpp $(RBUILD_INT)\r
-       $(ECHO_CC)\r
-       ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@\r
-\r
-$(RBUILD_INT_)module.o: $(RBUILD_BASE_)module.cpp $(RBUILD_INT)\r
-       $(ECHO_CC)\r
-       ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@\r
-\r
-$(RBUILD_INT_)project.o: $(RBUILD_BASE_)project.cpp $(RBUILD_INT)\r
-       $(ECHO_CC)\r
-       ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@\r
-\r
-$(RBUILD_INT_)rbuild.o: $(RBUILD_BASE_)rbuild.cpp $(RBUILD_INT)\r
-       $(ECHO_CC)\r
-       ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@\r
-\r
-$(RBUILD_INT_)ssprintf.o: $(RBUILD_BASE_)ssprintf.cpp $(RBUILD_INT)\r
-       $(ECHO_CC)\r
-       ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@\r
-\r
-$(RBUILD_INT_)stubbedcomponent.o: $(RBUILD_BASE_)stubbedcomponent.cpp $(RBUILD_INT)\r
-       $(ECHO_CC)\r
-       ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@\r
-\r
-$(RBUILD_INT_)XML.o: $(RBUILD_BASE_)XML.cpp $(RBUILD_INT)\r
-       $(ECHO_CC)\r
-       ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@\r
-\r
-$(RBUILD_BACKEND_INT_)backend.o: $(RBUILD_BACKEND_BASE_)backend.cpp $(RBUILD_BACKEND_INT)\r
-       $(ECHO_CC)\r
-       ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@\r
-\r
-$(RBUILD_MINGW_INT_)mingw.o: $(RBUILD_MINGW_BASE_)mingw.cpp $(RBUILD_MINGW_INT)\r
-       $(ECHO_CC)\r
-       ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@\r
-\r
-$(RBUILD_MINGW_INT_)modulehandler.o: $(RBUILD_MINGW_BASE_)modulehandler.cpp $(RBUILD_MINGW_INT)\r
-       $(ECHO_CC)\r
-       ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@\r
-\r
-$(RBUILD_DEVCPP_INT_)devcpp.o: $(RBUILD_DEVCPP_BASE_)devcpp.cpp $(RBUILD_DEVCPP_INT)\r
-       $(ECHO_CC)\r
-       ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@\r
-\r
-$(RBUILD_TEST_TARGET): $(RBUILD_TEST_OBJECTS) $(RBUILD_OUT)\r
-       $(ECHO_LD)\r
-       ${host_gpp} $(RBUILD_TEST_OBJECTS) $(RBUILD_HOST_LFLAGS) -o $@\r
-\r
-$(RBUILD_TESTS_INT_)cdfiletest.o: $(RBUILD_TESTS_BASE_)cdfiletest.cpp $(RBUILD_TESTS_INT)\r
-       $(ECHO_CC)\r
-       ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@\r
-\r
-$(RBUILD_TESTS_INT_)definetest.o: $(RBUILD_TESTS_BASE_)definetest.cpp $(RBUILD_TESTS_INT)\r
-       $(ECHO_CC)\r
-       ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@\r
-\r
-$(RBUILD_TESTS_INT_)functiontest.o: $(RBUILD_TESTS_BASE_)functiontest.cpp $(RBUILD_TESTS_INT)\r
-       $(ECHO_CC)\r
-       ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@\r
-\r
-$(RBUILD_TESTS_INT_)iftest.o: $(RBUILD_TESTS_BASE_)iftest.cpp $(RBUILD_TESTS_INT)\r
-       $(ECHO_CC)\r
-       ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@\r
-\r
-$(RBUILD_TESTS_INT_)includetest.o: $(RBUILD_TESTS_BASE_)includetest.cpp $(RBUILD_TESTS_INT)\r
-       $(ECHO_CC)\r
-       ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@\r
-\r
-$(RBUILD_TESTS_INT_)invoketest.o: $(RBUILD_TESTS_BASE_)invoketest.cpp $(RBUILD_TESTS_INT)\r
-       $(ECHO_CC)\r
-       ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@\r
-\r
-$(RBUILD_TESTS_INT_)linkerflagtest.o: $(RBUILD_TESTS_BASE_)linkerflagtest.cpp $(RBUILD_TESTS_INT)\r
-       $(ECHO_CC)\r
-       ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@\r
-\r
-$(RBUILD_TESTS_INT_)moduletest.o: $(RBUILD_TESTS_BASE_)moduletest.cpp $(RBUILD_TESTS_INT)\r
-       $(ECHO_CC)\r
-       ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@\r
-\r
-$(RBUILD_TESTS_INT_)projecttest.o: $(RBUILD_TESTS_BASE_)projecttest.cpp $(RBUILD_TESTS_INT)\r
-       $(ECHO_CC)\r
-       ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@\r
-\r
-$(RBUILD_TESTS_INT_)sourcefiletest.o: $(RBUILD_TESTS_BASE_)sourcefiletest.cpp $(RBUILD_TESTS_INT)\r
-       $(ECHO_CC)\r
-       ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@\r
-\r
-$(RBUILD_TESTS_INT_)symboltest.o: $(RBUILD_TESTS_BASE_)symboltest.cpp $(RBUILD_TESTS_INT)\r
-       $(ECHO_CC)\r
-       ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@\r
-\r
-$(RBUILD_TESTS_INT_)alltests.o: $(RBUILD_TESTS_BASE_)alltests.cpp $(RBUILD_TESTS_INT)\r
-       $(ECHO_CC)\r
-       ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@\r
-\r
-\r
-.PHONY: rbuild_test\r
-\r
-rbuild_test: $(RBUILD_TEST_TARGET)\r
-       $(ECHO_TEST)\r
-       $(Q)$(RBUILD_TEST_TARGET)\r
-\r
-.PHONY: rbuild_test_clean\r
-rbuild_test_clean: $(RBUILD_TEST_TARGET) $(RBUILD_TESTS_INT)\r
-       -@$(rm) $(RBUILD_TEST_TARGET) $(RBUILD_TEST_SPECIAL_OBJECTS) 2>$(NUL)\r
-\r
-.PHONY: rbuild_clean\r
-rbuild_clean: $(RBUILD_TARGET) $(RBUILD_OBJECTS) $(RBUILD_TESTS_INT)\r
-       -@$(rm) $(RBUILD_TARGET) $(RBUILD_OBJECTS) 2>$(NUL)\r
-clean: rbuild_clean\r
+# Copyright (C) 2005 Casper S. Hornstrup
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+RBUILD_BASE = $(TOOLS_BASE_)rbuild
+RBUILD_BASE_ = $(RBUILD_BASE)$(SEP)
+RBUILD_INT = $(INTERMEDIATE_)$(RBUILD_BASE)
+RBUILD_INT_ = $(RBUILD_INT)$(SEP)
+RBUILD_OUT = $(OUTPUT_)$(RBUILD_BASE)
+RBUILD_OUT_ = $(RBUILD_OUT)$(SEP)
+
+$(RBUILD_INT): | $(TOOLS_INT)
+       $(ECHO_MKDIR)
+       ${mkdir} $@
+
+ifneq ($(INTERMEDIATE),$(OUTPUT))
+$(RBUILD_OUT): | $(TOOLS_OUT)
+       $(ECHO_MKDIR)
+       ${mkdir} $@
+endif
+
+
+RBUILD_BACKEND_BASE = $(RBUILD_BASE_)backend
+RBUILD_BACKEND_BASE_ = $(RBUILD_BACKEND_BASE)$(SEP)
+RBUILD_BACKEND_INT = $(INTERMEDIATE_)$(RBUILD_BACKEND_BASE)
+RBUILD_BACKEND_INT_ = $(RBUILD_BACKEND_INT)$(SEP)
+RBUILD_BACKEND_OUT = $(OUTPUT_)$(RBUILD_BACKEND_BASE)
+RBUILD_BACKEND_OUT_ = $(RBUILD_BACKEND_OUT)$(SEP)
+
+$(RBUILD_BACKEND_INT): | $(RBUILD_INT)
+       $(ECHO_MKDIR)
+       ${mkdir} $@
+
+ifneq ($(INTERMEDIATE),$(OUTPUT))
+$(RBUILD_BACKEND_OUT): | $(RBUILD_OUT)
+       $(ECHO_MKDIR)
+       ${mkdir} $@
+endif
+
+
+RBUILD_MINGW_BASE = $(RBUILD_BACKEND_BASE_)mingw
+RBUILD_MINGW_BASE_ = $(RBUILD_MINGW_BASE)$(SEP)
+RBUILD_MINGW_INT = $(INTERMEDIATE_)$(RBUILD_MINGW_BASE)
+RBUILD_MINGW_INT_ = $(RBUILD_MINGW_INT)$(SEP)
+RBUILD_MINGW_OUT = $(OUTPUT_)$(RBUILD_MINGW_BASE)
+RBUILD_MINGW_OUT_ = $(RBUILD_MINGW_OUT)$(SEP)
+
+$(RBUILD_MINGW_INT): | $(RBUILD_BACKEND_INT)
+       $(ECHO_MKDIR)
+       ${mkdir} $@
+
+ifneq ($(INTERMEDIATE),$(OUTPUT))
+$(RBUILD_MINGW_OUT): | $(RBUILD_BACKEND_OUT)
+       $(ECHO_MKDIR)
+       ${mkdir} $@
+endif
+
+
+RBUILD_TESTS_BASE = $(RBUILD_BASE_)tests
+RBUILD_TESTS_BASE_ = $(RBUILD_TESTS_BASE)$(SEP)
+RBUILD_TESTS_INT = $(INTERMEDIATE_)$(RBUILD_TESTS_BASE)
+RBUILD_TESTS_INT_ = $(RBUILD_TESTS_INT)$(SEP)
+RBUILD_TESTS_OUT = $(OUTPUT_)$(RBUILD_TESTS_BASE)
+
+$(RBUILD_TESTS_INT): | $(RBUILD_INT)
+       $(ECHO_MKDIR)
+       ${mkdir} $@
+
+ifneq ($(INTERMEDIATE),$(OUTPUT))
+$(RBUILD_TESTS_OUT): | $(RBUILD_OUT)
+       $(ECHO_MKDIR)
+       ${mkdir} $@
+endif
+
+
+RBUILD_DEVCPP_BASE = $(RBUILD_BACKEND_BASE_)devcpp
+RBUILD_DEVCPP_BASE_ = $(RBUILD_DEVCPP_BASE)$(SEP)
+RBUILD_DEVCPP_INT = $(INTERMEDIATE_)$(RBUILD_DEVCPP_BASE)
+RBUILD_DEVCPP_INT_ = $(RBUILD_DEVCPP_INT)$(SEP)
+RBUILD_DEVCPP_OUT = $(OUTPUT_)$(RBUILD_DEVCPP_BASE)
+RBUILD_DEVCPP_OUT_ = $(RBUILD_DEVCPP_OUT)$(SEP)
+
+$(RBUILD_DEVCPP_INT): | $(RBUILD_BACKEND_INT)
+       $(ECHO_MKDIR)
+       ${mkdir} $@
+
+ifneq ($(INTERMEDIATE),$(OUTPUT))
+$(RBUILD_DEVCPP_OUT): | $(RBUILD_BACKEND_OUT)
+       $(ECHO_MKDIR)
+       ${mkdir} $@
+endif
+
+RBUILD_MSVC_BASE = $(RBUILD_BACKEND_BASE_)msvc
+RBUILD_MSVC_BASE_ = $(RBUILD_MSVC_BASE)$(SEP)
+RBUILD_MSVC_INT = $(INTERMEDIATE_)$(RBUILD_MSVC_BASE)
+RBUILD_MSVC_INT_ = $(RBUILD_MSVC_INT)$(SEP)
+RBUILD_MSVC_OUT = $(OUTPUT_)$(RBUILD_MSVC_BASE)
+RBUILD_MSVC_OUT_ = $(RBUILD_MSVC_OUT)$(SEP)
+
+$(RBUILD_MSVC_INT): | $(RBUILD_BACKEND_INT)
+       $(ECHO_MKDIR)
+       ${mkdir} $@
+
+ifneq ($(INTERMEDIATE),$(OUTPUT))
+$(RBUILD_MSVC_OUT): | $(RBUILD_BACKEND_OUT)
+       $(ECHO_MKDIR)
+       ${mkdir} $@
+endif
+
+
+RBUILD_TARGET = \
+       $(EXEPREFIX)$(RBUILD_OUT_)rbuild$(EXEPOSTFIX)
+
+RBUILD_TEST_TARGET = \
+       $(EXEPREFIX)$(RBUILD_OUT_)rbuild_test$(EXEPOSTFIX)
+
+RBUILD_BACKEND_MINGW_BASE_SOURCES = $(addprefix $(RBUILD_MINGW_BASE_), \
+       mingw.cpp \
+       modulehandler.cpp \
+       proxymakefile.cpp \
+       )
+
+RBUILD_BACKEND_DEVCPP_BASE_SOURCES = $(addprefix $(RBUILD_DEVCPP_BASE_), \
+       devcpp.cpp \
+       )
+
+RBUILD_BACKEND_MSVC_BASE_SOURCES = $(addprefix $(RBUILD_MSVC_BASE_), \
+       genguid.cpp \
+       msvc.cpp \
+       msvcmaker.cpp \
+       vcprojmaker.cpp \
+       )
+
+RBUILD_BACKEND_SOURCES = \
+       $(RBUILD_BACKEND_MINGW_BASE_SOURCES) \
+       $(RBUILD_BACKEND_DEVCPP_BASE_SOURCES) \
+       $(RBUILD_BACKEND_MSVC_BASE_SOURCES) \
+       $(RBUILD_BACKEND_BASE_)backend.cpp
+
+RBUILD_COMMON_SOURCES = \
+       $(RBUILD_BACKEND_SOURCES) \
+       $(addprefix $(RBUILD_BASE_), \
+               global.cpp \
+               automaticdependency.cpp \
+               bootstrap.cpp \
+               cdfile.cpp \
+               compilationunit.cpp \
+               compilationunitsupportcode.cpp \
+               compilerflag.cpp \
+               configuration.cpp \
+               define.cpp \
+               directory.cpp \
+               exception.cpp \
+               filesupportcode.cpp \
+               include.cpp \
+               installfile.cpp \
+               linkerflag.cpp \
+               linkerscript.cpp \
+               module.cpp \
+               project.cpp \
+               ssprintf.cpp \
+               stubbedcomponent.cpp \
+               syssetupgenerator.cpp \
+               testsupportcode.cpp \
+               wineresource.cpp \
+               XML.cpp \
+               )
+
+RBUILD_SPECIAL_SOURCES = \
+       $(RBUILD_BASE_)rbuild.cpp
+
+RBUILD_SOURCES = \
+       $(RBUILD_COMMON_SOURCES) \
+       $(RBUILD_SPECIAL_SOURCES)
+
+RBUILD_COMMON_OBJECTS = \
+       $(addprefix $(INTERMEDIATE_), $(RBUILD_COMMON_SOURCES:.cpp=.o))
+
+RBUILD_SPECIAL_OBJECTS = \
+       $(addprefix $(INTERMEDIATE_), $(RBUILD_SPECIAL_SOURCES:.cpp=.o))
+
+RBUILD_OBJECTS = \
+       $(RBUILD_COMMON_OBJECTS) \
+       $(RBUILD_SPECIAL_OBJECTS)
+
+RBUILD_BACKEND_DEVCPP_HEADERS = \
+       devcpp.h
+
+RBUILD_BACKEND_MSVCCPP_HEADERS = \
+       msvc.h
+
+RBUILD_BACKEND_MINGW_HEADERS = \
+       mingw.h \
+       modulehandler.h
+
+RBUILD_BACKEND_HEADERS = \
+       backend.h \
+       $(addprefix devcpp$(SEP), $(RBUILD_BACKEND_DEVCPP_HEADERS)) \
+       $(addprefix msvc$(SEP), $(RBUILD_BACKEND_MSVC_HEADERS)) \
+       $(addprefix mingw$(SEP), $(RBUILD_BACKEND_MINGW_HEADERS))
+
+RBUILD_HEADERS = \
+       $(addprefix $(RBUILD_BASE_), \
+               exception.h \
+               pch.h \
+               rbuild.h \
+               ssprintf.h \
+               test.h \
+               XML.h \
+               $(addprefix backend$(SEP), $(RBUILD_BACKEND_HEADERS)) \
+       )
+
+RBUILD_TESTS = \
+       tests$(SEP)cdfiletest.cpp \
+       tests$(SEP)compilationunittest.cpp \
+       tests$(SEP)definetest.cpp \
+       tests$(SEP)functiontest.cpp \
+       tests$(SEP)iftest.cpp \
+       tests$(SEP)includetest.cpp \
+       tests$(SEP)invoketest.cpp \
+       tests$(SEP)linkerflagtest.cpp \
+       tests$(SEP)moduletest.cpp \
+       tests$(SEP)projecttest.cpp \
+       tests$(SEP)sourcefiletest.cpp \
+       tests$(SEP)symboltest.cpp
+
+RBUILD_TEST_SPECIAL_SOURCES = \
+       $(addprefix $(RBUILD_BASE_), $(RBUILD_TESTS)) \
+       $(RBUILD_BASE_)tests$(SEP)alltests.cpp
+
+RBUILD_TEST_SOURCES = \
+       $(RBUILD_COMMON_SOURCES) \
+       $(RBUILD_TEST_SPECIAL_SOURCES)
+
+RBUILD_TEST_SPECIAL_OBJECTS = \
+       $(addprefix $(INTERMEDIATE_), $(RBUILD_TEST_SPECIAL_SOURCES:.cpp=.o))
+
+RBUILD_TEST_OBJECTS = \
+       $(RBUILD_COMMON_OBJECTS) \
+       $(RBUILD_TEST_SPECIAL_OBJECTS)
+
+RBUILD_HOST_CXXFLAGS = -I$(RBUILD_BASE) -I$(INFLIB_BASE) $(TOOLS_CPPFLAGS)
+
+RBUILD_HOST_LFLAGS = $(TOOLS_LFLAGS)
+
+.PHONY: rbuild
+rbuild: $(RBUILD_TARGET)
+
+$(RBUILD_TARGET): $(RBUILD_OBJECTS) $(INFLIB_HOST_TARGET) | $(RBUILD_OUT)
+       $(ECHO_LD)
+       ${host_gpp} $(RBUILD_OBJECTS) $(INFLIB_HOST_TARGET) $(RBUILD_HOST_LFLAGS) -o $@
+
+$(RBUILD_INT_)global.o: $(RBUILD_BASE_)global.cpp $(RBUILD_HEADERS) | $(RBUILD_INT)
+       $(ECHO_CC)
+       ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
+
+$(RBUILD_INT_)automaticdependency.o: $(RBUILD_BASE_)automaticdependency.cpp $(RBUILD_HEADERS) | $(RBUILD_INT)
+       $(ECHO_CC)
+       ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
+
+$(RBUILD_INT_)bootstrap.o: $(RBUILD_BASE_)bootstrap.cpp $(RBUILD_HEADERS) | $(RBUILD_INT)
+       $(ECHO_CC)
+       ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
+
+$(RBUILD_INT_)cdfile.o: $(RBUILD_BASE_)cdfile.cpp $(RBUILD_HEADERS) | $(RBUILD_INT)
+       $(ECHO_CC)
+       ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
+
+$(RBUILD_INT_)compilationunit.o: $(RBUILD_BASE_)compilationunit.cpp $(RBUILD_HEADERS) | $(RBUILD_INT)
+       $(ECHO_CC)
+       ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
+
+$(RBUILD_INT_)compilationunitsupportcode.o: $(RBUILD_BASE_)compilationunitsupportcode.cpp $(RBUILD_HEADERS) | $(RBUILD_INT)
+       $(ECHO_CC)
+       ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
+
+$(RBUILD_INT_)compilerflag.o: $(RBUILD_BASE_)compilerflag.cpp $(RBUILD_HEADERS) | $(RBUILD_INT)
+       $(ECHO_CC)
+       ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
+
+$(RBUILD_INT_)configuration.o: $(RBUILD_BASE_)configuration.cpp $(RBUILD_HEADERS) | $(RBUILD_INT)
+       $(ECHO_CC)
+       ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
+
+$(RBUILD_INT_)define.o: $(RBUILD_BASE_)define.cpp $(RBUILD_HEADERS) | $(RBUILD_INT)
+       $(ECHO_CC)
+       ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
+
+$(RBUILD_INT_)directory.o: $(RBUILD_BASE_)directory.cpp $(RBUILD_HEADERS) | $(RBUILD_INT)
+       $(ECHO_CC)
+       ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
+
+$(RBUILD_INT_)exception.o: $(RBUILD_BASE_)exception.cpp $(RBUILD_HEADERS) | $(RBUILD_INT)
+       $(ECHO_CC)
+       ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
+
+$(RBUILD_INT_)filesupportcode.o: $(RBUILD_BASE_)filesupportcode.cpp $(RBUILD_HEADERS) | $(RBUILD_INT)
+       $(ECHO_CC)
+       ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
+
+$(RBUILD_INT_)include.o: $(RBUILD_BASE_)include.cpp $(RBUILD_HEADERS) | $(RBUILD_INT)
+       $(ECHO_CC)
+       ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
+
+$(RBUILD_INT_)installfile.o: $(RBUILD_BASE_)installfile.cpp $(RBUILD_HEADERS) | $(RBUILD_INT)
+       $(ECHO_CC)
+       ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
+
+$(RBUILD_INT_)linkerflag.o: $(RBUILD_BASE_)linkerflag.cpp $(RBUILD_HEADERS) | $(RBUILD_INT)
+       $(ECHO_CC)
+       ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
+
+$(RBUILD_INT_)linkerscript.o: $(RBUILD_BASE_)linkerscript.cpp $(RBUILD_HEADERS) | $(RBUILD_INT)
+       $(ECHO_CC)
+       ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
+
+$(RBUILD_INT_)module.o: $(RBUILD_BASE_)module.cpp $(RBUILD_HEADERS) | $(RBUILD_INT)
+       $(ECHO_CC)
+       ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
+
+$(RBUILD_INT_)project.o: $(RBUILD_BASE_)project.cpp $(RBUILD_HEADERS) | $(RBUILD_INT)
+       $(ECHO_CC)
+       ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
+
+$(RBUILD_INT_)rbuild.o: $(RBUILD_BASE_)rbuild.cpp $(RBUILD_HEADERS) | $(RBUILD_INT)
+       $(ECHO_CC)
+       ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
+
+$(RBUILD_INT_)ssprintf.o: $(RBUILD_BASE_)ssprintf.cpp $(RBUILD_HEADERS) | $(RBUILD_INT)
+       $(ECHO_CC)
+       ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
+
+$(RBUILD_INT_)stubbedcomponent.o: $(RBUILD_BASE_)stubbedcomponent.cpp $(RBUILD_HEADERS) | $(RBUILD_INT)
+       $(ECHO_CC)
+       ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
+
+$(RBUILD_INT_)syssetupgenerator.o: $(RBUILD_BASE_)syssetupgenerator.cpp $(RBUILD_HEADERS) | $(RBUILD_INT)
+       $(ECHO_CC)
+       ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
+
+$(RBUILD_INT_)wineresource.o: $(RBUILD_BASE_)wineresource.cpp $(RBUILD_HEADERS) | $(RBUILD_INT)
+       $(ECHO_CC)
+       ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
+
+$(RBUILD_INT_)testsupportcode.o: $(RBUILD_BASE_)testsupportcode.cpp $(RBUILD_HEADERS) | $(RBUILD_INT)
+       $(ECHO_CC)
+       ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
+
+$(RBUILD_INT_)XML.o: $(RBUILD_BASE_)XML.cpp $(RBUILD_HEADERS) | $(RBUILD_INT)
+       $(ECHO_CC)
+       ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
+
+$(RBUILD_BACKEND_INT_)backend.o: $(RBUILD_BACKEND_BASE_)backend.cpp $(RBUILD_HEADERS) | $(RBUILD_BACKEND_INT)
+       $(ECHO_CC)
+       ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
+
+$(RBUILD_MINGW_INT_)mingw.o: $(RBUILD_MINGW_BASE_)mingw.cpp $(RBUILD_HEADERS) | $(RBUILD_MINGW_INT)
+       $(ECHO_CC)
+       ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
+
+$(RBUILD_MINGW_INT_)modulehandler.o: $(RBUILD_MINGW_BASE_)modulehandler.cpp $(RBUILD_HEADERS) | $(RBUILD_MINGW_INT)
+       $(ECHO_CC)
+       ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
+
+$(RBUILD_MINGW_INT_)proxymakefile.o: $(RBUILD_MINGW_BASE_)proxymakefile.cpp $(RBUILD_HEADERS) | $(RBUILD_MINGW_INT)
+       $(ECHO_CC)
+       ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
+
+$(RBUILD_DEVCPP_INT_)devcpp.o: $(RBUILD_DEVCPP_BASE_)devcpp.cpp $(RBUILD_HEADERS) | $(RBUILD_DEVCPP_INT)
+       $(ECHO_CC)
+       ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
+
+$(RBUILD_MSVC_INT_)genguid.o: $(RBUILD_MSVC_BASE_)genguid.cpp $(RBUILD_HEADERS) | $(RBUILD_MSVC_INT)
+       $(ECHO_CC)
+       ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
+
+$(RBUILD_MSVC_INT_)msvc.o: $(RBUILD_MSVC_BASE_)msvc.cpp $(RBUILD_HEADERS) | $(RBUILD_MSVC_INT)
+       $(ECHO_CC)
+       ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
+
+$(RBUILD_MSVC_INT_)msvcmaker.o: $(RBUILD_MSVC_BASE_)msvcmaker.cpp $(RBUILD_HEADERS) | $(RBUILD_MSVC_INT)
+       $(ECHO_CC)
+       ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
+
+$(RBUILD_MSVC_INT_)vcprojmaker.o: $(RBUILD_MSVC_BASE_)vcprojmaker.cpp $(RBUILD_HEADERS) | $(RBUILD_MSVC_INT)
+       $(ECHO_CC)
+       ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
+
+$(RBUILD_TEST_TARGET): $(RBUILD_TEST_OBJECTS) $(INFLIB_HOST_TARGET) $(RBUILD_HEADERS) | $(RBUILD_OUT)
+       $(ECHO_LD)
+       ${host_gpp} $(RBUILD_TEST_OBJECTS) $(INFLIB_HOST_TARGET) $(RBUILD_HOST_LFLAGS) -o $@
+
+$(RBUILD_TESTS_INT_)cdfiletest.o: $(RBUILD_TESTS_BASE_)cdfiletest.cpp $(RBUILD_HEADERS) | $(RBUILD_TESTS_INT)
+       $(ECHO_CC)
+       ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
+
+$(RBUILD_TESTS_INT_)compilationunittest.o: $(RBUILD_TESTS_BASE_)compilationunittest.cpp $(RBUILD_HEADERS) | $(RBUILD_TESTS_INT)
+       $(ECHO_CC)
+       ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
+
+$(RBUILD_TESTS_INT_)definetest.o: $(RBUILD_TESTS_BASE_)definetest.cpp $(RBUILD_HEADERS) | $(RBUILD_TESTS_INT)
+       $(ECHO_CC)
+       ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
+
+$(RBUILD_TESTS_INT_)functiontest.o: $(RBUILD_TESTS_BASE_)functiontest.cpp $(RBUILD_HEADERS) | $(RBUILD_TESTS_INT)
+       $(ECHO_CC)
+       ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
+
+$(RBUILD_TESTS_INT_)iftest.o: $(RBUILD_TESTS_BASE_)iftest.cpp $(RBUILD_HEADERS) | $(RBUILD_TESTS_INT)
+       $(ECHO_CC)
+       ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
+
+$(RBUILD_TESTS_INT_)includetest.o: $(RBUILD_TESTS_BASE_)includetest.cpp $(RBUILD_HEADERS) | $(RBUILD_TESTS_INT)
+       $(ECHO_CC)
+       ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
+
+$(RBUILD_TESTS_INT_)invoketest.o: $(RBUILD_TESTS_BASE_)invoketest.cpp $(RBUILD_HEADERS) | $(RBUILD_TESTS_INT)
+       $(ECHO_CC)
+       ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
+
+$(RBUILD_TESTS_INT_)linkerflagtest.o: $(RBUILD_TESTS_BASE_)linkerflagtest.cpp $(RBUILD_HEADERS) | $(RBUILD_TESTS_INT)
+       $(ECHO_CC)
+       ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
+
+$(RBUILD_TESTS_INT_)moduletest.o: $(RBUILD_TESTS_BASE_)moduletest.cpp $(RBUILD_HEADERS) | $(RBUILD_TESTS_INT)
+       $(ECHO_CC)
+       ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
+
+$(RBUILD_TESTS_INT_)projecttest.o: $(RBUILD_TESTS_BASE_)projecttest.cpp $(RBUILD_HEADERS) | $(RBUILD_TESTS_INT)
+       $(ECHO_CC)
+       ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
+
+$(RBUILD_TESTS_INT_)sourcefiletest.o: $(RBUILD_TESTS_BASE_)sourcefiletest.cpp $(RBUILD_HEADERS) | $(RBUILD_TESTS_INT)
+       $(ECHO_CC)
+       ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
+
+$(RBUILD_TESTS_INT_)symboltest.o: $(RBUILD_TESTS_BASE_)symboltest.cpp $(RBUILD_HEADERS) | $(RBUILD_TESTS_INT)
+       $(ECHO_CC)
+       ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
+
+$(RBUILD_TESTS_INT_)alltests.o: $(RBUILD_TESTS_BASE_)alltests.cpp $(RBUILD_HEADERS) | $(RBUILD_TESTS_INT)
+       $(ECHO_CC)
+       ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
+
+
+.PHONY: rbuild_test
+rbuild_test: $(RBUILD_TEST_TARGET)
+       $(ECHO_TEST)
+       $(Q)$(RBUILD_TEST_TARGET)
+
+.PHONY: rbuild_test_clean
+rbuild_test_clean: $(RBUILD_TEST_TARGET) $(RBUILD_TESTS_INT)
+       -@$(rm) $(RBUILD_TEST_TARGET) $(RBUILD_TEST_SPECIAL_OBJECTS) 2>$(NUL)
+
+.PHONY: rbuild_clean
+rbuild_clean: $(RBUILD_TARGET) $(RBUILD_OBJECTS) $(RBUILD_TESTS_INT)
+       -@$(rm) $(RBUILD_TARGET) $(RBUILD_OBJECTS) 2>$(NUL)
+clean: rbuild_clean