put windows-detection code in makefile, don't make proxy.mak silent
[reactos.git] / reactos / Makefile
index 13931a2..ea3d38f 100644 (file)
@@ -1,16 +1,70 @@
+.PHONY: all
+.PHONY: clean
+all: makefile.auto
+
+ifeq ($(HOST),)
+OSDETECT=$(word 1,$(shell gcc -dumpmachine))
+all: detect_os
+
+detect_os:
+ifeq ($(OSDETECT),mingw32)
+       HOST=mingw32-windows
+else
+       HOST=mingw32-linux
+endif
+endif
+
 # Default to half-verbose mode
 ifeq ($(VERBOSE),no)
   Q = @
-  HALFVERBOSEECHO = @:
+  HALFVERBOSEECHO = no
 else
 ifeq ($(VERBOSE),yes)
   Q =
-  HALFVERBOSEECHO = @:
+  HALFVERBOSEECHO = no
 else
   Q = @
-  HALFVERBOSEECHO = @echo
+  HALFVERBOSEECHO = yes
 endif
 endif
+ifeq ($(HALFVERBOSEECHO),yes)
+  ECHO_INVOKE =@echo [INVOKE]  $<
+  ECHO_PCH    =@echo [PCH]     $@
+  ECHO_CC     =@echo [CC]      $<
+  ECHO_GAS    =@echo [GAS]     $<
+  ECHO_NASM   =@echo [NASM]    $<
+  ECHO_AR     =@echo [AR]      $@
+  ECHO_WINEBLD=@echo [WINEBLD] $@
+  ECHO_WRC    =@echo [WRC]     $@
+  ECHO_BIN2RES=@echo [BIN2RES] $<
+  ECHO_DLLTOOL=@echo [DLLTOOL] $@
+  ECHO_LD     =@echo [LD]      $@
+  ECHO_RBUILD =@echo [RBUILD]  $@
+  ECHO_RSYM   =@echo [RSYM]    $@
+  ECHO_NCI    =@echo [NCI]     $@
+  ECHO_CABMAN =@echo [CABMAN]  $<
+  ECHO_CDMAKE =@echo [CDMAKE]  $@
+  ECHO_TEST   =@echo [TEST]    $@
+else
+  ECHO_INVOKE =
+  ECHO_PCH    =
+  ECHO_CC     =
+  ECHO_GAS    =
+  ECHO_NASM   =
+  ECHO_AR     =
+  ECHO_WINEBLD=
+  ECHO_WRC    =
+  ECHO_BIN2RES=
+  ECHO_DLLTOOL=
+  ECHO_LD     =
+  ECHO_RBUILD =
+  ECHO_RSYM   =
+  ECHO_NCI    =
+  ECHO_CABMAN =
+  ECHO_CDMAKE =
+  ECHO_TEST   =
+endif
 
 
 host_gcc = $(Q)gcc
@@ -50,11 +104,6 @@ else # mingw32-windows
        NUL = NUL
 endif
 
-.PHONY: all
-.PHONY: clean
-
-all: makefile.auto
-
 ifneq ($(ROS_INTERMEDIATE),)
 $(ROS_INTERMEDIATE)tools: $(ROS_INTERMEDIATE)
        ${nmkdir} $(ROS_INTERMEDIATE)tools
@@ -65,27 +114,35 @@ $(ROS_INTERMEDIATE):
        ${nmkdir} $(ROS_INTERMEDIATE)
 endif
 
-include tools/Makefile
+NTOSKRNL_MC = .$(SEP)ntoskrnl$(SEP)ntoskrnl.mc
+KERNEL32_MC = .$(SEP)lib$(SEP)kernel32$(SEP)kernel32.mc
+BUILDNO_H = .$(SEP)include$(SEP)reactos$(SEP)buildno.h
+BUGCODES_H = .$(SEP)include$(SEP)reactos$(SEP)bugcodes.h
+BUGCODES_RC = .$(SEP)ntoskrnl$(SEP)bugcodes.rc
+ERRCODES_H = .$(SEP)include$(SEP)reactos$(SEP)errcodes.h
+ERRCODES_RC = .$(SEP)lib$(SEP)kernel32$(SEP)errcodes.rc
+
+include tools/tools.mak
 -include makefile.auto
 
 PREAUTO := \
-       include$(SEP)reactos$(SEP)buildno.h \
-       include$(SEP)reactos$(SEP)bugcodes.h \
-       ntoskrnl$(SEP)bugcodes.rc \
-       include$(SEP)reactos$(SEP)errcodes.h \
-       lib$(SEP)kernel32$(SEP)errcodes.rc
+       $(BUILDNO_H) \
+       $(BUGCODES_H) \
+       $(BUGCODES_RC) \
+       $(ERRCODES_H) \
+       $(ERRCODES_RC)
 
 makefile.auto: $(RMKDIR_TARGET) $(BUILDNO_TARGET) $(NCI_SERVICE_FILES) $(WMC_TARGET) $(WRC_TARGET) \
                $(RSYM_TARGET) $(CDMAKE_TARGET) $(RBUILD_TARGET) $(PREAUTO) $(XMLBUILDFILES)
-       $(HALFVERBOSEECHO) [RBUILD]  makefile.auto
+       $(ECHO_RBUILD)
        $(Q)tools$(SEP)rbuild$(SEP)rbuild$(EXEPOSTFIX) mingw
 
 
-include$(SEP)reactos$(SEP)bugcodes.h ntoskrnl$(SEP)bugcodes.rc: $(WMC_TARGET) ntoskrnl$(SEP)ntoskrnl.mc
-       $(WMC_TARGET) -i -H include$(SEP)reactos$(SEP)bugcodes.h -o ntoskrnl$(SEP)bugcodes.rc ntoskrnl$(SEP)ntoskrnl.mc
+$(BUGCODES_H) $(BUGCODES_RC): $(WMC_TARGET) $(NTOSKRNL_MC)
+       $(WMC_TARGET) -i -H $(BUGCODES_H) -o $(BUGCODES_RC) $(NTOSKRNL_MC)
 
-include$(SEP)reactos$(SEP)errcodes.h lib$(SEP)kernel32$(SEP)errcodes.rc: $(WMC_TARGET) lib$(SEP)kernel32$(SEP)kernel32.mc
-       $(WMC_TARGET) -i -H include$(SEP)reactos$(SEP)errcodes.h -o lib$(SEP)kernel32$(SEP)errcodes.rc lib$(SEP)kernel32$(SEP)kernel32.mc
+$(ERRCODES_H) $(ERRCODES_RC): $(WMC_TARGET) $(KERNEL32_MC)
+       $(WMC_TARGET) -i -H $(ERRCODES_H) -o $(ERRCODES_RC) $(KERNEL32_MC)
 
 .PHONY: makefile_auto_clean
 makefile_auto_clean: