* Build freeldr
[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 compilerflag.o \
21 define.o \
22 exception.o \
23 include.o \
24 linkerflag.o \
25 module.o \
26 project.o \
27 ssprintf.o \
28 XML.o
29
30 OBJECTS = $(BASE_OBJECTS) rbuild.o
31
32 TESTS = \
33 tests/definetest.o \
34 tests/functiontest.o \
35 tests/iftest.o \
36 tests/includetest.o \
37 tests/invoketest.o \
38 tests/linkerflagtest.o \
39 tests/moduletest.o \
40 tests/projecttest.o
41
42 TEST_OBJECTS = $(BASE_OBJECTS) $(TESTS) tests/alltests.o
43
44 HOST_CXXFLAGS = -g -I. -Werror -Wall
45
46 HOST_LFLAGS = -g
47
48 rbuild$(EXE_POSTFIX): $(OBJECTS)
49 $(HOST_CXX) $(OBJECTS) $(HOST_LFLAGS) -o rbuild$(EXE_POSTFIX)
50
51 ifeq ($(HOST),"")
52 echo Please set HOST variable to mingw32-windows or mingw32-linux
53 endif
54 ifeq ($(HOST),mingw32-linux)
55 clean:
56 -rm -f *.o
57 -rm -f rbuild$(EXE_POSTFIX)
58 -rm -f tests/*.o
59 -rm -f rbuild_tests$(EXE_POSTFIX)
60 else
61 clean:
62 -del *.o
63 -del rbuild$(EXE_POSTFIX)
64 -del tests\*.o
65 -del rbuild_tests$(EXE_POSTFIX)
66 endif
67
68 .phony: clean
69
70 %.o: %.cpp
71 $(HALFVERBOSEECHO) [CXX] $<
72 $(HOST_CXX) $(HOST_CXXFLAGS) -c $< -o $@
73
74 test: rbuild_tests$(EXE_POSTFIX)
75 ./$(EXE_PREFIX)rbuild_tests$(EXE_POSTFIX)
76
77 rbuild_tests$(EXE_POSTFIX): $(TEST_OBJECTS)
78 $(HOST_CXX) $(TEST_OBJECTS) $(HOST_LFLAGS) -o rbuild_tests$(EXE_POSTFIX)
79
80 include $(PATH_TO_TOP)/rules.mak