Test module type support
[reactos.git] / reactos / tools / rbuild / rbuild.mak
1 RBUILD_BASE = $(TOOLS_BASE)$(SEP)rbuild
2
3 RBUILD_BASE_DIR = $(INTERMEDIATE)$(RBUILD_BASE)
4 RBUILD_BASE_DIR_EXISTS = $(RBUILD_BASE_DIR)$(SEP)$(EXISTS)
5
6 $(RBUILD_BASE_DIR_EXISTS): $(TOOLS_BASE_DIR_EXISTS)
7 $(ECHO_MKDIR)
8 ${mkdir} $(RBUILD_BASE_DIR)
9 @echo . >$@
10
11 RBUILD_TARGET = \
12 $(RBUILD_BASE_DIR)$(SEP)rbuild$(EXEPOSTFIX)
13
14 RBUILD_TEST_TARGET = \
15 $(RBUILD_BASE_DIR)$(SEP)rbuild_test$(EXEPOSTFIX)
16
17 RBUILD_BACKEND_MINGW_BASE_SOURCES = \
18 backend$(SEP)mingw$(SEP)mingw.cpp \
19 backend$(SEP)mingw$(SEP)modulehandler.cpp
20
21 RBUILD_BACKEND_DEVCPP_BASE_SOURCES = \
22 backend$(SEP)devcpp$(SEP)devcpp.cpp
23
24 RBUILD_BACKEND_BASE_SOURCES = \
25 $(RBUILD_BACKEND_MINGW_BASE_SOURCES) \
26 $(RBUILD_BACKEND_DEVCPP_BASE_SOURCES) \
27 backend$(SEP)backend.cpp
28
29 RBUILD_BASE_SOURCES = \
30 $(RBUILD_BACKEND_BASE_SOURCES) \
31 automaticdependency.cpp \
32 bootstrap.cpp \
33 cdfile.cpp \
34 compilerflag.cpp \
35 define.cpp \
36 exception.cpp \
37 include.cpp \
38 linkerflag.cpp \
39 module.cpp \
40 project.cpp \
41 ssprintf.cpp \
42 stubbedcomponent.cpp \
43 XML.cpp
44
45 RBUILD_COMMON_SOURCES = \
46 $(addprefix $(RBUILD_BASE)$(SEP), $(RBUILD_BASE_SOURCES)) \
47
48 RBUILD_SPECIAL_SOURCES = \
49 $(RBUILD_BASE)$(SEP)rbuild.cpp
50
51 RBUILD_SOURCES = \
52 $(RBUILD_COMMON_SOURCES) \
53 $(RBUILD_SPECIAL_SOURCES)
54
55 RBUILD_COMMON_OBJECTS = \
56 $(addprefix $(ROS_INTERMEDIATE), $(RBUILD_COMMON_SOURCES:.cpp=.o))
57
58 RBUILD_SPECIAL_OBJECTS = \
59 $(addprefix $(ROS_INTERMEDIATE), $(RBUILD_SPECIAL_SOURCES:.cpp=.o))
60
61 RBUILD_OBJECTS = \
62 $(RBUILD_COMMON_OBJECTS) \
63 $(RBUILD_SPECIAL_OBJECTS)
64
65 RBUILD_TESTS = \
66 tests$(SEP)cdfiletest.cpp \
67 tests$(SEP)definetest.cpp \
68 tests$(SEP)functiontest.cpp \
69 tests$(SEP)iftest.cpp \
70 tests$(SEP)includetest.cpp \
71 tests$(SEP)invoketest.cpp \
72 tests$(SEP)linkerflagtest.cpp \
73 tests$(SEP)moduletest.cpp \
74 tests$(SEP)projecttest.cpp \
75 tests$(SEP)sourcefiletest.cpp \
76 tests$(SEP)symboltest.cpp
77
78 RBUILD_TEST_SPECIAL_SOURCES = \
79 $(addprefix $(RBUILD_BASE)$(SEP), $(RBUILD_TESTS)) \
80 $(RBUILD_BASE)$(SEP)tests$(SEP)alltests.cpp
81
82 RBUILD_TEST_SOURCES = \
83 $(RBUILD_COMMON_SOURCES) \
84 $(RBUILD_TEST_SPECIAL_SOURCES)
85
86 RBUILD_TEST_SPECIAL_OBJECTS = \
87 $(addprefix $(ROS_INTERMEDIATE), $(RBUILD_TEST_SPECIAL_SOURCES:.cpp=.o))
88
89 RBUILD_TEST_OBJECTS = \
90 $(RBUILD_COMMON_OBJECTS) \
91 $(RBUILD_TEST_SPECIAL_OBJECTS)
92
93 RBUILD_HOST_CXXFLAGS = -g -I$(RBUILD_BASE) -Werror -Wall
94
95 RBUILD_HOST_LFLAGS = -g
96
97 .PHONY: rbuild
98 rbuild: $(RBUILD_TARGET)
99
100 $(RBUILD_TARGET): $(RBUILD_OBJECTS) $(RBUILD_BASE_DIR_EXISTS)
101 $(ECHO_LD)
102 ${host_gpp} $(RBUILD_OBJECTS) $(RBUILD_HOST_LFLAGS) -o $(RBUILD_TARGET)
103
104 $(RBUILD_COMMON_OBJECTS): %.o: %.cpp
105 $(ECHO_CC)
106 ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
107
108 $(RBUILD_SPECIAL_OBJECTS): %.o: %.cpp
109 $(ECHO_CC)
110 ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
111
112 $(RBUILD_TEST_TARGET): $(RBUILD_TEST_OBJECTS) $(RBUILD_BASE_DIR_EXISTS)
113 $(ECHO_LD)
114 ${host_gpp} $(RBUILD_TEST_OBJECTS) $(RBUILD_HOST_LFLAGS) -o $(RBUILD_TEST_TARGET)
115
116 $(RBUILD_TEST_SPECIAL_OBJECTS): %.o: %.cpp
117 $(ECHO_CC)
118 ${host_gpp} $(RBUILD_HOST_CXXFLAGS) -c $< -o $@
119
120
121
122 .PHONY: rbuild_test
123
124 rbuild_test: $(RBUILD_TEST_TARGET)
125 $(ECHO_TEST)
126 $(Q)$(RBUILD_TEST_TARGET)
127
128 .PHONY: rbuild_clean
129 rbuild_clean:
130 -@$(rm) $(RBUILD_TARGET) $(RBUILD_OBJECTS) $(RBUILD_TEST_TARGET) $(RBUILD_TEST_OBJECTS) 2>$(NUL)
131 clean: rbuild_clean