Add new documentation
[reactos.git] / reactos / rules.mak
1 #
2 # Important
3 #
4 .EXPORT_ALL_VARIABLES:
5
6
7 #
8 # Choose various options
9 #
10 ifeq ($(HOST),elf-linux)
11 NASM_FORMAT = elf
12 PREFIX =
13 KERNEL_BFD_TARGET = --oformat=elf32-i386
14 EXE_POSTFIX =
15 CP = cp
16 endif
17
18 ifeq ($(HOST),djgpp-linux)
19 NASM_FORMAT = coff
20 PREFIX = dos-
21 KERNEL_BFD_TARGET = --oformat=coff-i386
22 EXE_POSTFIX =
23 CP = cp
24 LIBGCC = ./libgcc.a
25 endif
26
27 ifeq ($(HOST),mingw32-linux)
28 NASM_FORMAT = win32
29 PREFIX = i386-mingw32-
30 #KERNEL_BFD_TARGET = pe-i386
31 KERNEL_BFD_TARGET =
32 EXE_POSTFIX =
33 CP = cp
34 DLLTOOL = $(PREFIX)dlltool --as=$(PREFIX)as
35 LIBGCC = /usr/lib/gcc-lib/i386-mingw32/2.8.1/libgcc.a
36 NASM_CMD = nasm
37 endif
38
39 ifeq ($(HOST),djgpp-msdos)
40 NASM_FORMAT = coff
41 PREFIX =
42 KERNEL_BFD_TARGET = --oformat=coff-go32
43 EXE_POSTFIX = .exe
44 CP = copy
45 LIBGCC = libgcc.a
46 NASM_CMD = nasm
47 endif
48
49 ifeq ($(HOST),mingw32-windows)
50 NASM_FORMAT = win32
51 PREFIX =
52 KERNEL_BFD_TARGET = --oformat=pe-i386
53 EXE_POSTFIX = .exe
54 CP = copy
55 endif
56
57 #
58 # Create variables for all the compiler tools
59 #
60 ifeq ($(WITH_DEBUGGING),yes)
61 DEBUGGING_CFLAGS = -g
62 else
63 DEBUGGING_CFLAGS =
64 endif
65
66 DEFINES = -DDBG -DCHECKED -DCOMPILER_LARGE_INTEGERS
67
68 ifeq ($(WIN32_LEAN_AND_MEAN),yes)
69 LEAN_AND_MEAN_DEFINE = -DWIN32_LEAN_AND_MEAN
70 else
71 LEAN_AND_MEAN_DEFINE =
72 endif
73
74 CC = $(PREFIX)gcc
75 NATIVE_CC = gcc
76 CFLAGS = -O2 -I../../../include -I../../include \
77 -I../include -fno-builtin $(LEAN_AND_MEAN_DEFINE) \
78 $(DEFINES) -Wall -Wstrict-prototypes $(DEBUGGING_CFLAGS)
79 CXXFLAGS = $(CFLAGS)
80 NFLAGS = -i../../include/ -i../include/ -pinternal/asm.inc -f$(NASM_FORMAT) -d$(NASM_FORMAT)
81 LD = $(PREFIX)ld
82 NM = $(PREFIX)nm
83 OBJCOPY = $(PREFIX)objcopy
84 STRIP = $(PREFIX)strip
85 AS = $(PREFIX)gcc -c -x assembler-with-cpp
86 CPP = $(PREFIX)cpp
87 AR = $(PREFIX)ar
88
89 %.o: %.cc
90 $(CC) $(CFLAGS) -c $< -o $@
91 %.o: %.asm
92 $(NASM_CMD) $(NFLAGS) $< -o $@
93
94
95 RULES_MAK_INCLUDED = 1