* Implement <autoregister>
[reactos.git] / reactos / tools / rbuild / rbuild.mak
index 33d052b..f3fbc3b 100644 (file)
@@ -1,3 +1,19 @@
+# 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)
@@ -20,7 +36,7 @@ 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 = $(OUTPUT_)$(RBUILD_BACKEND_BASE)
 RBUILD_BACKEND_OUT_ = $(RBUILD_BACKEND_OUT)$(SEP)
 
 $(RBUILD_BACKEND_INT): | $(RBUILD_INT)
@@ -38,7 +54,7 @@ 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 = $(OUTPUT_)$(RBUILD_MINGW_BASE)
 RBUILD_MINGW_OUT_ = $(RBUILD_MINGW_OUT)$(SEP)
 
 $(RBUILD_MINGW_INT): | $(RBUILD_BACKEND_INT)
@@ -56,7 +72,7 @@ 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_OUT = $(OUTPUT_)$(RBUILD_TESTS_BASE)
 
 $(RBUILD_TESTS_INT): | $(RBUILD_INT)
        $(ECHO_MKDIR)
@@ -73,7 +89,7 @@ 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 = $(OUTPUT_)$(RBUILD_DEVCPP_BASE)
 RBUILD_DEVCPP_OUT_ = $(RBUILD_DEVCPP_OUT)$(SEP)
 
 $(RBUILD_DEVCPP_INT): | $(RBUILD_BACKEND_INT)
@@ -86,6 +102,23 @@ $(RBUILD_DEVCPP_OUT): | $(RBUILD_BACKEND_OUT)
        ${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)
@@ -96,33 +129,51 @@ RBUILD_TEST_TARGET = \
 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 \
                )
@@ -147,6 +198,9 @@ RBUILD_OBJECTS = \
 RBUILD_BACKEND_DEVCPP_HEADERS = \
        devcpp.h
 
+RBUILD_BACKEND_MSVCCPP_HEADERS = \
+       msvc.h
+
 RBUILD_BACKEND_MINGW_HEADERS = \
        mingw.h \
        modulehandler.h
@@ -154,6 +208,7 @@ RBUILD_BACKEND_MINGW_HEADERS = \
 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 = \
@@ -169,6 +224,7 @@ RBUILD_HEADERS = \
 
 RBUILD_TESTS = \
        tests$(SEP)cdfiletest.cpp \
+       tests$(SEP)compilationunittest.cpp \
        tests$(SEP)definetest.cpp \
        tests$(SEP)functiontest.cpp \
        tests$(SEP)iftest.cpp \
@@ -195,16 +251,20 @@ RBUILD_TEST_OBJECTS = \
        $(RBUILD_COMMON_OBJECTS) \
        $(RBUILD_TEST_SPECIAL_OBJECTS)
 
-RBUILD_HOST_CXXFLAGS = -g -I$(RBUILD_BASE) -Werror -Wall
+RBUILD_HOST_CXXFLAGS = -I$(RBUILD_BASE) -I$(INFLIB_BASE) $(TOOLS_CPPFLAGS)
 
-RBUILD_HOST_LFLAGS = -g
+RBUILD_HOST_LFLAGS = $(TOOLS_LFLAGS)
 
 .PHONY: rbuild
 rbuild: $(RBUILD_TARGET)
 
-$(RBUILD_TARGET): $(RBUILD_OBJECTS) | $(RBUILD_OUT)
+$(RBUILD_TARGET): $(RBUILD_OBJECTS) $(INFLIB_HOST_TARGET) | $(RBUILD_OUT)
        $(ECHO_LD)
-       ${host_gpp} $(RBUILD_OBJECTS) $(RBUILD_HOST_LFLAGS) -o $@
+       ${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)
@@ -218,18 +278,38 @@ $(RBUILD_INT_)cdfile.o: $(RBUILD_BASE_)cdfile.cpp $(RBUILD_HEADERS) | $(RBUILD_I
        $(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 $@
@@ -242,6 +322,10 @@ $(RBUILD_INT_)linkerflag.o: $(RBUILD_BASE_)linkerflag.cpp $(RBUILD_HEADERS) | $(
        $(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 $@
@@ -262,10 +346,18 @@ $(RBUILD_INT_)stubbedcomponent.o: $(RBUILD_BASE_)stubbedcomponent.cpp $(RBUILD_H
        $(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 $@
@@ -282,18 +374,42 @@ $(RBUILD_MINGW_INT_)modulehandler.o: $(RBUILD_MINGW_BASE_)modulehandler.cpp $(RB
        $(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_TEST_TARGET): $(RBUILD_TEST_OBJECTS) $(RBUILD_HEADERS) | $(RBUILD_OUT)
+$(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) $(RBUILD_HOST_LFLAGS) -o $@
+       ${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 $@