Fix bug #129. Unfortunetly this causes another bug to appear (that is not caused...
[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 ifeq ($(HOST),mingw32-windows)
63 INSTALL_DIR = C:/reactos
64 else
65 INSTALL_DIR = $(PATH_TO_TOP)/reactos
66 endif
67 else
68 INSTALL_DIR = $(ROS_INSTALL)
69 endif
70
71 # Directory to build a bootable CD image in
72 BOOTCD_DIR=$(TOPDIR)/../bootcd/disk
73
74 CC = $(PREFIX)gcc
75 CXX = $(PREFIX)g++
76 HOST_CC = gcc
77 HOST_CXX = g++
78 HOST_AR = ar
79 HOST_NM = nm
80 LD = $(PREFIX)ld
81 NM = $(PREFIX)nm
82 OBJCOPY = $(PREFIX)objcopy
83 STRIP = $(PREFIX)strip
84 AS = $(PREFIX)gcc -c -x assembler-with-cpp
85 CPP = $(PREFIX)cpp
86 AR = $(PREFIX)ar
87 RC = $(PREFIX)windres
88 WRC = $(WINE_TOP)/tools/wrc/wrc
89 RCINC = --include-dir $(PATH_TO_TOP)/include
90 OBJCOPY = $(PREFIX)objcopy
91 OBJDUMP =$(PREFIX)objdump
92 TOOLS_PATH = $(PATH_TO_TOP)/tools
93 CP = $(TOOLS_PATH)/rcopy
94 RM = $(TOOLS_PATH)/rdel
95 RLINE = $(TOOLS_PATH)/rline
96 RMDIR = $(TOOLS_PATH)/rrmdir
97 RMKDIR = $(TOOLS_PATH)/rmkdir
98 RSYM = $(TOOLS_PATH)/rsym
99 RTOUCH = $(TOOLS_PATH)/rtouch
100 REGTESTS = $(TOOLS_PATH)/regtests
101 MC = $(TOOLS_PATH)/wmc/wmc
102 CABMAN = $(TOOLS_PATH)/cabman/cabman
103 WINEBUILD = $(TOOLS_PATH)/winebuild/winebuild
104 WINE2ROS = $(TOOLS_PATH)/wine2ros/wine2ros
105 XSLTPROC = xsltproc
106
107
108 # Maybe we can delete these soon
109
110 ifeq ($(HOST),mingw32-linux)
111 CFLAGS := $(CFLAGS) -I$(PATH_TO_TOP)/include -pipe -march=i386 -D_M_IX86
112 endif
113
114 ifeq ($(HOST),mingw32-windows)
115 CFLAGS := $(CFLAGS) -I$(PATH_TO_TOP)/include -pipe -march=i386 -D_M_IX86
116 endif
117
118 CXXFLAGS = $(CFLAGS)
119 NFLAGS = -i$(PATH_TO_TOP)/include/ -f$(NASM_FORMAT) -d$(NASM_FORMAT)
120 ASFLAGS := $(ASFLAGS) -I$(PATH_TO_TOP)/include -D__ASM__
121
122
123 # Developer Kits
124 DK_PATH=$(PATH_TO_TOP)/dk
125 # Native and kernel mode
126 DDK_PATH=$(DK_PATH)/nkm
127 DDK_PATH_LIB=$(DDK_PATH)/lib
128 DDK_PATH_INC=$(PATH_TO_TOP)/include
129 # Win32
130 SDK_PATH=$(DK_PATH)/w32
131 SDK_PATH_LIB=$(SDK_PATH)/lib
132 SDK_PATH_INC=$(PATH_TO_TOP)/include
133 # POSIX+
134 XDK_PATH=$(DK_PATH)/psx
135 XDK_PATH_LIB=$(XDK_PATH)/lib
136 XDK_PATH_INC=$(XDK_PATH)/include
137
138 # Wine Integration
139 WINE_PATH=$(PATH_TO_TOP)/../wine
140 WINE_PATH_LIB=$(WINE_PATH)/lib
141 WINE_PATH_INC=$(WINE_PATH)/include
142
143 # Posix+ Integration
144 POSIX_PATH=$(PATH_TO_TOP)/../posix
145 POSIX_PATH_LIB=$(POSIX_PATH)/lib
146 POSIX_PATH_INC=$(POSIX_PATH)/include
147
148 # OS/2 Integration
149 OS2_PATH=$(PATH_TO_TOP)/../os2
150 OS2_PATH_LIB=$(OS2_PATH)/lib
151 OS2_PATH_INC=$(OS2_PATH)/include
152
153 # Other systems integration
154 ROOT_PATH=$(PATH_TO_TOP)/..