BUGFIX: NtGdiGetDeviceCaps() called NtGdiEscape() with hDC when it already had it...
[reactos.git] / reactos / rules.mak
1 # Default to half-verbose mode
2 ifeq ($(VERBOSE),no)
3 Q = @
4 else
5 ifeq ($(VERBOSE),yes)
6 Q =
7 else
8 Q = @
9 endif
10 endif
11
12 export MAKE := @$(MAKE)
13
14 ifeq ($(VERBOSE),no)
15 # Do not print "Entering directory ..."
16 export MAKEFLAGS += --no-print-directory
17 # Be silent
18 export MAKEFLAGS += --silent
19 endif
20
21 # Windows is default host environment
22 ifeq ($(HOST),)
23 export HOST = mingw32-windows
24 endif
25
26 # Default to building map files which includes source and asm code
27 ifeq ($(FULL_MAP),)
28 export FULL_MAP = yes
29 endif
30
31 # Default to minimal dependencies, making components not
32 # depend on all import libraries
33 ifeq ($(MINIMALDEPENDENCIES),)
34 export MINIMALDEPENDENCIES = yes
35 endif
36
37 # Default to no PCH support
38 ifeq ($(ROS_USE_PCH),)
39 export ROS_USE_PCH = no
40 endif
41
42 # uncomment if you use bochs and it displays only 30 rows
43 # BOCHS_30ROWS = yes
44
45 #
46 # Choose various options
47 #
48 ifeq ($(HOST),mingw32-linux)
49 export NASM_FORMAT = win32
50 export PREFIX = mingw32-
51 export EXE_POSTFIX :=
52 export EXE_PREFIX := ./
53 export DLLTOOL = $(PREFIX)dlltool --as=$(PREFIX)as
54 #
55 # Do not change NASM_CMD to NASM because older versions of
56 # nasm doesn't like an environment variable NASM
57 #
58 export NASM_CMD = nasm
59 export DOSCLI =
60 export FLOPPY_DIR = /mnt/floppy
61 export SEP := /
62 export PIPE :=
63 endif
64
65 ifeq ($(HOST),mingw32-windows)
66 export NASM_FORMAT = win32
67 export PREFIX =
68 export EXE_PREFIX :=
69 export EXE_POSTFIX := .exe
70 export DLLTOOL = $(Q)$(PREFIX)dlltool --as=$(PREFIX)as
71 #
72 # Do not change NASM_CMD to NASM because older versions of
73 # nasm doesn't like an environment variable NASM
74 #
75 export NASM_CMD = $(Q)nasmw
76 export DOSCLI = yes
77 export FLOPPY_DIR = A:
78 export SEP := \$(EMPTY_VAR)
79 export PIPE := -pipe
80 endif
81
82 # TOPDIR is used by make bootcd but not defined anywhere. Usurp pointed out
83 # that it has the same meaning as PATH_TO_TOP.
84 export TOPDIR = $(PATH_TO_TOP)
85
86 # Directory to build a bootable CD image in
87 export BOOTCD_DIR=$(TOPDIR)/../bootcd/disk
88 export LIVECD_DIR=$(TOPDIR)/../livecd/disk
89
90 ifeq ($(LIVECD_INSTALL),yes)
91 export INSTALL_DIR=$(LIVECD_DIR)/reactos
92 else
93 # Use environment var ROS_INSTALL to override default install dir
94 ifeq ($(ROS_INSTALL),)
95 ifeq ($(HOST),mingw32-windows)
96 export INSTALL_DIR = C:/reactos
97 else
98 export INSTALL_DIR = $(PATH_TO_TOP)/reactos
99 endif
100 else
101 export INSTALL_DIR = $(ROS_INSTALL)
102 endif
103 endif
104
105
106 export CC = $(Q)$(PREFIX)gcc
107 export CXX = $(Q)$(PREFIX)g++
108 export HOST_CC = $(Q)gcc
109 export HOST_CXX = $(Q)g++
110 export HOST_AR = $(Q)ar
111 export HOST_NM = $(Q)nm
112 export LD = $(Q)$(PREFIX)ld
113 export NM = $(Q)$(PREFIX)nm
114 export OBJCOPY = $(Q)$(PREFIX)objcopy
115 export STRIP = $(Q)$(PREFIX)strip
116 export AS = $(Q)$(PREFIX)gcc -c -x assembler-with-cpp
117 export CPP = $(Q)$(PREFIX)cpp
118 export AR = $(Q)$(PREFIX)ar
119 export RC = $(Q)$(PREFIX)windres
120 export WRC = $(Q)$(WINE_TOP)/tools/wrc/wrc
121 export OBJCOPY = $(Q)$(PREFIX)objcopy
122 export OBJDUMP =$(Q)$(PREFIX)objdump
123 export TOOLS_PATH = $(PATH_TO_TOP)/tools
124 export W32API_PATH = $(PATH_TO_TOP)/w32api
125 export CP = $(Q)$(TOOLS_PATH)/rcopy
126 export RM = $(Q)$(TOOLS_PATH)/rdel
127 export RLINE = $(Q)$(TOOLS_PATH)/rline
128 export RMDIR = $(Q)$(TOOLS_PATH)/rrmdir
129 export RMKDIR = $(Q)$(TOOLS_PATH)/rmkdir
130 export RSYM = $(Q)$(TOOLS_PATH)/rsym
131 export RTOUCH = $(Q)$(TOOLS_PATH)/rtouch
132 export REGTESTS = $(Q)$(TOOLS_PATH)/regtests
133 export MC = $(Q)$(TOOLS_PATH)/wmc/wmc
134 export CABMAN = $(Q)$(TOOLS_PATH)/cabman/cabman
135 export WINEBUILD = $(Q)$(TOOLS_PATH)/winebuild/winebuild
136 export WINE2ROS = $(Q)$(TOOLS_PATH)/wine2ros/wine2ros
137 export MKHIVE = $(Q)$(TOOLS_PATH)/mkhive/mkhive
138 export CDMAKE = $(Q)$(TOOLS_PATH)/cdmake/cdmake
139 export BIN2RES = $(Q)$(TOOLS_PATH)/bin2res/bin2res
140 export XSLTPROC = $(Q)xsltproc
141 export MS2PS = $(Q)$(TOOLS_PATH)/ms2ps/ms2ps
142
143 export STD_CFLAGS = -I$(PATH_TO_TOP)/include -I$(W32API_PATH)/include -pipe -march=$(OARCH) -D_M_IX86
144 export STD_CPPFLAGS = $(STD_CFLAGS)
145 # Check for 3GB
146 ifeq ($(3GB), 1)
147 export STD_ASFLAGS = -I$(PATH_TO_TOP)/include -I$(W32API_PATH)/include -D__ASM__ -D_M_IX86 -D__3GB__
148 else
149 export STD_ASFLAGS = -I$(PATH_TO_TOP)/include -I$(W32API_PATH)/include -D__ASM__ -D_M_IX86
150 endif
151 export STD_RCFLAGS = --include-dir $(PATH_TO_TOP)/include --include-dir $(W32API_PATH)/include
152 export STD_NFLAGS = -f win32
153
154 # Developer Kits
155 export DK_PATH=$(PATH_TO_TOP)/dk
156 # Native and kernel mode
157 export DDK_PATH=$(DK_PATH)/nkm
158 export DDK_PATH_LIB=$(DDK_PATH)/lib
159 export DDK_PATH_INC=$(PATH_TO_TOP)/include
160 # Win32
161 export SDK_PATH=$(DK_PATH)/w32
162 export SDK_PATH_LIB=$(SDK_PATH)/lib
163 export SDK_PATH_INC=$(PATH_TO_TOP)/include
164 # POSIX+
165 export XDK_PATH=$(DK_PATH)/psx
166 export XDK_PATH_LIB=$(XDK_PATH)/lib
167 export XDK_PATH_INC=$(XDK_PATH)/include
168
169 # Wine Integration
170 export WINE_PATH=$(PATH_TO_TOP)/../wine
171 export WINE_PATH_LIB=$(WINE_PATH)/lib
172 export WINE_PATH_INC=$(WINE_PATH)/include
173
174 # Posix+ Integration
175 export POSIX_PATH=$(PATH_TO_TOP)/../posix
176 export POSIX_PATH_LIB=$(POSIX_PATH)/lib
177 export POSIX_PATH_INC=$(POSIX_PATH)/include
178
179 # OS/2 Integration
180 export OS2_PATH=$(PATH_TO_TOP)/../os2
181 export OS2_PATH_LIB=$(OS2_PATH)/lib
182 export OS2_PATH_INC=$(OS2_PATH)/include
183
184 # Other systems integration
185 export REGTESTS_PATH=$(PATH_TO_TOP)/regtests
186 export REGTESTS_PATH_INC=$(PATH_TO_TOP)/regtests/shared