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