-CC = $(Q)$(PREFIX)gcc
-CXX = $(Q)$(PREFIX)g++
-HOST_CC = $(Q)gcc
-HOST_CXX = $(Q)g++
-HOST_AR = $(Q)ar
-HOST_NM = $(Q)nm
-LD = $(Q)$(PREFIX)ld
-NM = $(Q)$(PREFIX)nm
-OBJCOPY = $(Q)$(PREFIX)objcopy
-STRIP = $(Q)$(PREFIX)strip
-AS = $(Q)$(PREFIX)gcc -c -x assembler-with-cpp
-CPP = $(Q)$(PREFIX)cpp
-AR = $(Q)$(PREFIX)ar
-RC = $(Q)$(PREFIX)windres
-WRC = $(Q)$(WINE_TOP)/tools/wrc/wrc
-OBJCOPY = $(Q)$(PREFIX)objcopy
-OBJDUMP =$(Q)$(PREFIX)objdump
-TOOLS_PATH = $(PATH_TO_TOP)/tools
-W32API_PATH = $(PATH_TO_TOP)/w32api
-CP = $(Q)$(TOOLS_PATH)/rcopy
-RM = $(Q)$(TOOLS_PATH)/rdel
-RLINE = $(Q)$(TOOLS_PATH)/rline
-RMDIR = $(Q)$(TOOLS_PATH)/rrmdir
-RMKDIR = $(Q)$(TOOLS_PATH)/rmkdir
-RSYM = $(Q)$(TOOLS_PATH)/rsym
-RTOUCH = $(Q)$(TOOLS_PATH)/rtouch
-REGTESTS = $(Q)$(TOOLS_PATH)/regtests
-MC = $(Q)$(TOOLS_PATH)/wmc/wmc
-CABMAN = $(Q)$(TOOLS_PATH)/cabman/cabman
-WINEBUILD = $(Q)$(TOOLS_PATH)/winebuild/winebuild
-WINE2ROS = $(Q)$(TOOLS_PATH)/wine2ros/wine2ros
-MKHIVE = $(Q)$(TOOLS_PATH)/mkhive/mkhive
-CDMAKE = $(Q)$(TOOLS_PATH)/cdmake/cdmake
-BIN2RES = $(Q)$(TOOLS_PATH)/bin2res/bin2res
-XSLTPROC = $(Q)xsltproc
-
-STD_CFLAGS = -I$(PATH_TO_TOP)/include -I$(W32API_PATH)/include -pipe -march=i386 -D_M_IX86
-STD_CPPFLAGS = $(STD_CFLAGS)
-STD_ASFLAGS = -I$(PATH_TO_TOP)/include -I$(W32API_PATH)/include -D__ASM__ -D_M_IX86
-STD_RCFLAGS = --include-dir $(PATH_TO_TOP)/include --include-dir $(W32API_PATH)/include
-STD_NFLAGS = -f win32
+export CC = $(Q)$(PREFIX)gcc
+export CXX = $(Q)$(PREFIX)g++
+export HOST_CC = $(Q)gcc
+export HOST_CXX = $(Q)g++
+export HOST_AR = $(Q)ar
+export HOST_NM = $(Q)nm
+export LD = $(Q)$(PREFIX)ld
+export NM = $(Q)$(PREFIX)nm
+export OBJCOPY = $(Q)$(PREFIX)objcopy
+export STRIP = $(Q)$(PREFIX)strip
+export AS = $(Q)$(PREFIX)gcc -c -x assembler-with-cpp
+export CPP = $(Q)$(PREFIX)cpp
+export AR = $(Q)$(PREFIX)ar
+export RC = $(Q)$(PREFIX)windres
+export WRC = $(Q)$(WINE_TOP)/tools/wrc/wrc
+export OBJCOPY = $(Q)$(PREFIX)objcopy
+export OBJDUMP =$(Q)$(PREFIX)objdump
+export TOOLS_PATH = $(PATH_TO_TOP)/tools
+export W32API_PATH = $(PATH_TO_TOP)/w32api
+export CP = $(Q)$(TOOLS_PATH)/rcopy
+export RM = $(Q)$(TOOLS_PATH)/rdel
+export RLINE = $(Q)$(TOOLS_PATH)/rline
+export RMDIR = $(Q)$(TOOLS_PATH)/rrmdir
+export RMKDIR = $(Q)$(TOOLS_PATH)/rmkdir
+export RSYM = $(Q)$(TOOLS_PATH)/rsym
+export RTOUCH = $(Q)$(TOOLS_PATH)/rtouch
+export REGTESTS = $(Q)$(TOOLS_PATH)/regtests
+export MC = $(Q)$(TOOLS_PATH)/wmc/wmc
+export CABMAN = $(Q)$(TOOLS_PATH)/cabman/cabman
+export WINEBUILD = $(Q)$(TOOLS_PATH)/winebuild/winebuild
+export WINE2ROS = $(Q)$(TOOLS_PATH)/wine2ros/wine2ros
+export MKHIVE = $(Q)$(TOOLS_PATH)/mkhive/mkhive
+export CDMAKE = $(Q)$(TOOLS_PATH)/cdmake/cdmake
+export BIN2RES = $(Q)$(TOOLS_PATH)/bin2res/bin2res
+export XSLTPROC = $(Q)xsltproc
+export MS2PS = $(Q)$(TOOLS_PATH)/ms2ps/ms2ps
+export WRC = $(Q)$(TOOLS_PATH)/wrc/wrc
+export WIDL = $(Q)$(TOOLS_PATH)/widl/widl
+
+export STD_CFLAGS = -I$(PATH_TO_TOP)/include -I$(W32API_PATH)/include -pipe -march=$(OARCH) -D_M_IX86
+export STD_CPPFLAGS = $(STD_CFLAGS)
+# Check for 3GB
+ifeq ($(3GB), 1)
+export STD_ASFLAGS = -I$(PATH_TO_TOP)/include -I$(W32API_PATH)/include -D__ASM__ -D_M_IX86 -D__3GB__
+else
+export STD_ASFLAGS = -I$(PATH_TO_TOP)/include -I$(W32API_PATH)/include -D__ASM__ -D_M_IX86
+endif
+export STD_RCFLAGS = --include-dir $(PATH_TO_TOP)/include --include-dir $(W32API_PATH)/include
+export STD_NFLAGS = -f win32