ff1d057df9d0151590fdb2c0f583bf708d9fb78b
[reactos.git] / reactos / tools / rbuild / makefile
1 PATH_TO_TOP = ../..
2
3 TARGET = rbuild$(EXE_POSTFIX)
4
5 all: $(TARGET)
6
7 BACKEND_MINGW_BASE_OBJECTS = \
8 backend/mingw/mingw.o \
9 backend/mingw/modulehandler.o
10
11 BACKEND_DEVCPP_BASE_OBJECTS = backend/devcpp/devcpp.o
12
13 BACKEND_BASE_OBJECTS = \
14 $(BACKEND_MINGW_BASE_OBJECTS) \
15 $(BACKEND_DEVCPP_BASE_OBJECTS) \
16 backend/backend.o
17
18 BASE_OBJECTS = \
19 $(BACKEND_BASE_OBJECTS) \
20 define.o \
21 exception.o \
22 include.o \
23 linkerflag.o \
24 module.o \
25 project.o \
26 ssprintf.o \
27 XML.o
28
29 OBJECTS = $(BASE_OBJECTS) rbuild.o
30
31 TESTS = \
32 tests/definetest.o \
33 tests/functiontest.o \
34 tests/iftest.o \
35 tests/includetest.o \
36 tests/invoketest.o \
37 tests/linkerflagtest.o \
38 tests/moduletest.o \
39 tests/projecttest.o
40
41 TEST_OBJECTS = $(BASE_OBJECTS) $(TESTS) tests/alltests.o
42
43 HOST_CXXFLAGS = -g -I. -Werror -Wall
44
45 HOST_LFLAGS = -g
46
47 rbuild$(EXE_POSTFIX): $(OBJECTS)
48 $(HOST_CXX) $(OBJECTS) $(HOST_LFLAGS) -o rbuild$(EXE_POSTFIX)
49
50 ifeq ($(HOST),"")
51 echo Please set HOST variable to mingw32-windows or mingw32-linux
52 endif
53 ifeq ($(HOST),mingw32-linux)
54 clean:
55 -rm -f *.o
56 -rm -f rbuild$(EXE_POSTFIX)
57 -rm -f tests/*.o
58 -rm -f rbuild_tests$(EXE_POSTFIX)
59 else
60 clean:
61 -del *.o
62 -del rbuild$(EXE_POSTFIX)
63 -del tests\*.o
64 -del rbuild_tests$(EXE_POSTFIX)
65 endif
66
67 .phony: clean
68
69 %.o: %.cpp
70 $(HALFVERBOSEECHO) [CXX] $<
71 $(HOST_CXX) $(HOST_CXXFLAGS) -c $< -o $@
72
73 test: rbuild_tests$(EXE_POSTFIX)
74 ./$(EXE_PREFIX)rbuild_tests$(EXE_POSTFIX)
75
76 rbuild_tests$(EXE_POSTFIX): $(TEST_OBJECTS)
77 $(HOST_CXX) $(TEST_OBJECTS) $(HOST_LFLAGS) -o rbuild_tests$(EXE_POSTFIX)
78
79 include $(PATH_TO_TOP)/rules.mak