Add ROS_ARCH environment variable
[reactos.git] / reactos / Makefile
index 2bf62e3..d85357f 100644 (file)
 #
 # Accepted environment variables:
 #
+#    ROS_ARCH
+#        This variable specifies the name of the architecture to build ReactOS for.
+#        The variable defaults to i386.
+#
 #    ROS_PREFIX
 #        This variable specifies the prefix of the MinGW installation. On Windows
 #        a prefix is usually not needed, but on linux it is usually "mingw32". If
@@ -310,7 +314,7 @@ else # mingw32-windows
                strip = $(Q)strip
                windres = $(Q)windres
        else
-               gcc = $(ROS_PREFIX)-gcc
+               gcc = $(Q)$(ROS_PREFIX)-gcc
                gpp = $(Q)$(ROS_PREFIX)-g++
                ld = $(Q)$(ROS_PREFIX)-ld
                nm = $(Q)$(ROS_PREFIX)-nm
@@ -323,13 +327,19 @@ else # mingw32-windows
        endif
 endif
 
+ifneq ($(ROS_ARCH),)
+  ARCH := $(ROS_ARCH)
+else
+  ARCH := i386
+endif
+
 ifneq ($(ROS_INTERMEDIATE),)
   INTERMEDIATE := $(ROS_INTERMEDIATE)
 else
   ifneq ($(ROS_CDOUTPUT),)
     INTERMEDIATE := obj-$(ROS_CDOUTPUT)
   else
-    INTERMEDIATE := obj-i386
+    INTERMEDIATE := obj-$(ARCH)
   endif
 endif
 INTERMEDIATE_ := $(INTERMEDIATE)$(SEP)
@@ -340,7 +350,7 @@ else
   ifneq ($(ROS_CDOUTPUT),)
     OUTPUT := output-$(ROS_CDOUTPUT)
   else
-    OUTPUT := output-i386
+    OUTPUT := output-$(ARCH)
   endif
 endif
 OUTPUT_ := $(OUTPUT)$(SEP)
@@ -387,6 +397,7 @@ BUGCODES_RC = ntoskrnl$(SEP)bugcodes.rc
 ERRCODES_H = include$(SEP)reactos$(SEP)errcodes.h
 ERRCODES_RC = dll$(SEP)win32$(SEP)kernel32$(SEP)errcodes.rc
 
+
 include lib/lib.mak
 include tools/tools.mak
 include boot/freeldr/bootsect/bootsect.mak
@@ -400,12 +411,18 @@ PREAUTO := \
        $(BUGCODES_RC) \
        $(ERRCODES_H) \
        $(ERRCODES_RC) \
-       $(NCI_SERVICE_FILES) \
-       $(GENDIB_DIB_FILES)
+       $(GENDIB_DIB_FILES) \
+       $(NCI_SERVICE_FILES)
+
+POSTAUTO : \
+       psdk \
+       $(IDL_FILES)
 
 $(ROS_AUTOMAKE): $(RBUILD_TARGET) $(PREAUTO) $(XMLBUILDFILES)
+       ${mkdir} $(INTERMEDIATE_)media$(SEP)inf 2>$(NUL)
        $(ECHO_RBUILD)
-       $(Q)$(RBUILD_TARGET) $(ROS_RBUILDFLAGS) mingw
+       $(Q)$(RBUILD_TARGET) $(ROS_RBUILDFLAGS) -rReactOS-$(ARCH).rbuild mingw
+       @$(MAKE) POSTAUTO
 
 world: all bootcd livecd
 
@@ -456,6 +473,16 @@ cb: $(RBUILD_TARGET)
        $(ECHO_RBUILD)
        $(Q)$(RBUILD_TARGET) $(ROS_RBUILDFLAGS) cb
 
+.PHONY: msbuild
+msbuild: $(RBUILD_TARGET)
+       $(ECHO_RBUILD)
+       $(Q)$(RBUILD_TARGET) $(ROS_RBUILDFLAGS) msbuild
+
+.PHONY: msbuild_clean
+msbuild_clean: $(RBUILD_TARGET)
+       $(ECHO_RBUILD)
+       $(Q)$(RBUILD_TARGET) $(ROS_RBUILDFLAGS) -c msbuild
+
 .PHONY: depmap
 depmap: $(RBUILD_TARGET)
        $(ECHO_RBUILD)