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