patch for -Werror -Wall by jonathan wilson
[reactos.git] / reactos / rules.mak
1 #
2 # Important
3 #
4 .EXPORT_ALL_VARIABLES:
5
6 # Windows is default host environment
7 ifeq ($(HOST),)
8 HOST = mingw32-windows
9 endif
10
11 # Build map files which includes source and asm code
12 FULL_MAP = yes
13
14 # Default to no PCH support
15 ifeq ($(ROS_USE_PCH),)
16 ROS_USE_PCH = no
17 endif
18
19 # uncomment if you use bochs and it displays only 30 rows
20 # BOCHS_30ROWS = yes
21
22 ifeq ($(HOST),mingw32-linux)
23 TOPDIR := $(shell if [ "$$PWD" != "" ]; then echo $$PWD; else pwd; fi)
24 else
25 TOPDIR := $(shell cd)
26 endif
27
28 TOPDIR := $(TOPDIR)/$(PATH_TO_TOP)
29
30 #
31 # Choose various options
32 #
33 ifeq ($(HOST),mingw32-linux)
34 NASM_FORMAT = win32
35 PREFIX = mingw32-
36 EXE_POSTFIX :=
37 EXE_PREFIX := ./
38 DLLTOOL = $(PREFIX)dlltool --as=$(PREFIX)as
39 NASM_CMD = nasm
40 DOSCLI =
41 FLOPPY_DIR = /mnt/floppy
42 SEP := /
43 PIPE :=
44 endif
45
46 ifeq ($(HOST),mingw32-windows)
47 NASM_FORMAT = win32
48 PREFIX =
49 EXE_PREFIX :=
50 EXE_POSTFIX := .exe
51 DLLTOOL = $(PREFIX)dlltool --as=$(PREFIX)as
52 NASM_CMD = nasmw
53 DOSCLI = yes
54 FLOPPY_DIR = A:
55 SEP := \$(EMPTY_VAR)
56 PIPE := -pipe
57 endif
58
59
60 # Use environment var ROS_INSTALL to override default install dir
61 ifeq ($(ROS_INSTALL),)
62 INSTALL_DIR = $(PATH_TO_TOP)/reactos
63 else
64 INSTALL_DIR = $(ROS_INSTALL)
65 endif
66
67 # Set DIST_DIR to default value if not already set
68 # ifeq ($(DIST_DIR),)
69 DIST_DIR = $(PATH_TO_TOP)/dist
70 # endif
71
72 # Directory to build a bootable CD image in
73 BOOTCD_DIR=$(TOPDIR)/../bootcd/disk
74
75 CC = $(PREFIX)gcc
76 CXX = $(PREFIX)g++
77 HOST_CC = gcc
78 HOST_CXX = g++
79 HOST_AR = ar
80 HOST_NM = nm
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 RC = $(PREFIX)windres
89 WRC = $(WINE_TOP)/tools/wrc/wrc
90 RCINC = --include-dir $(PATH_TO_TOP)/include
91 OBJCOPY = $(PREFIX)objcopy
92 OBJDUMP =$(PREFIX)objdump
93 TOOLS_PATH = $(PATH_TO_TOP)/tools
94 CP = $(TOOLS_PATH)/rcopy
95 RM = $(TOOLS_PATH)/rdel
96 RLINE = $(TOOLS_PATH)/rline
97 RMDIR = $(TOOLS_PATH)/rrmdir
98 RMKDIR = $(TOOLS_PATH)/rmkdir
99 RSYM = $(TOOLS_PATH)/rsym
100 RTOUCH = $(TOOLS_PATH)/rtouch
101 REGTESTS = $(TOOLS_PATH)/regtests
102 MC = $(TOOLS_PATH)/wmc/wmc
103 CABMAN = $(TOOLS_PATH)/cabman/cabman
104 XSLTPROC = xsltproc
105
106
107 # Maybe we can delete these soon
108
109 ifeq ($(HOST),mingw32-linux)
110 CFLAGS := $(CFLAGS) -I$(PATH_TO_TOP)/include -pipe -march=i386 -D_M_IX86
111 endif
112
113 ifeq ($(HOST),mingw32-windows)
114 CFLAGS := $(CFLAGS) -I$(PATH_TO_TOP)/include -pipe -march=i386 -D_M_IX86
115 endif
116
117 CXXFLAGS = $(CFLAGS)
118 NFLAGS = -i$(PATH_TO_TOP)/include/ -f$(NASM_FORMAT) -d$(NASM_FORMAT)
119 ASFLAGS := $(ASFLAGS) -I$(PATH_TO_TOP)/include -D__ASM__
120
121
122 # Developer Kits
123 DK_PATH=$(PATH_TO_TOP)/dk
124 # Native and kernel mode
125 DDK_PATH=$(DK_PATH)/nkm
126 DDK_PATH_LIB=$(DDK_PATH)/lib
127 DDK_PATH_INC=$(PATH_TO_TOP)/include
128 # Win32
129 SDK_PATH=$(DK_PATH)/w32
130 SDK_PATH_LIB=$(SDK_PATH)/lib
131 SDK_PATH_INC=$(PATH_TO_TOP)/include
132 # POSIX+
133 XDK_PATH=$(DK_PATH)/psx
134 XDK_PATH_LIB=$(XDK_PATH)/lib
135 XDK_PATH_INC=$(XDK_PATH)/include
136
137 # Wine Integration
138 WINE_PATH=$(PATH_TO_TOP)/../wine
139 WINE_PATH_LIB=$(WINE_PATH)/lib
140 WINE_PATH_INC=$(WINE_PATH)/include
141
142 # Posix+ Integration
143 POSIX_PATH=$(PATH_TO_TOP)/../posix
144 POSIX_PATH_LIB=$(POSIX_PATH)/lib
145 POSIX_PATH_INC=$(POSIX_PATH)/include
146
147 # OS/2 Integration
148 OS2_PATH=$(PATH_TO_TOP)/../os2
149 OS2_PATH_LIB=$(OS2_PATH)/lib
150 OS2_PATH_INC=$(OS2_PATH)/include
151
152 # Other systems integration
153 ROOT_PATH=$(PATH_TO_TOP)/..