-host_gcc = gcc
-host_gpp = g++
-host_ld = ld
-host_ar = ar
-host_objcopy = objcopy
+.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 = no
+else
+ifeq ($(VERBOSE),yes)
+ Q =
+ HALFVERBOSEECHO = no
+else
+ Q = @
+ 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
+host_gpp = $(Q)g++
+host_ld = $(Q)ld
+host_ar = $(Q)ar
+host_objcopy = $(Q)objcopy
ifeq ($(HOST),mingw32-linux)
EXEPREFIX = ./
EXEPOSTFIX =
SEP = /
- nmkdir = mkdir -p
- gcc = mingw32-gcc
- gpp = mingw32-g++
- ld = mingw32-ld
- ar = mingw32-ar
- objcopy = mingw32-objcopy
- dlltool = mingw32-dlltool
- windres = mingw32-windres
+ nmkdir = $(Q)mkdir -p
+ gcc = $(Q)mingw32-gcc
+ gpp = $(Q)mingw32-g++
+ ld = $(Q)mingw32-ld
+ ar = $(Q)mingw32-ar
+ objcopy = $(Q)mingw32-objcopy
+ dlltool = $(Q)mingw32-dlltool
+ windres = $(Q)mingw32-windres
rm = rm -f
+ cp = $(Q)cp
NUL = /dev/null
else # mingw32-windows
EXEPREFIX =
EXEPOSTFIX = .exe
SEP = \$(EMPTY_VAR)
- nmkdir = mkdir
- gcc = gcc
- gpp = g++
- ld = ld
- ar = ar
- objcopy = objcopy
- dlltool = dlltool
- windres = windres
+ nmkdir = $(Q)mkdir
+ gcc = $(Q)gcc
+ gpp = $(Q)g++
+ ld = $(Q)ld
+ ar = $(Q)ar
+ objcopy = $(Q)objcopy
+ dlltool = $(Q)dlltool
+ windres = $(Q)windres
rm = del /f /q
+ cp = $(Q)copy /y
NUL = NUL
endif
-.PHONY: all
-.PHONY: clean
-
-all: Makefile.auto
-
ifneq ($(ROS_INTERMEDIATE),)
$(ROS_INTERMEDIATE)tools: $(ROS_INTERMEDIATE)
${nmkdir} $(ROS_INTERMEDIATE)tools
${nmkdir} $(ROS_INTERMEDIATE)
endif
-include tools/Makefile
--include Makefile.auto
+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) $(RBUILD_TARGET) $(PREAUTO)
- tools$(SEP)rbuild$(SEP)rbuild$(EXEPOSTFIX) mingw
- $(MAKE) $(MAKECMDGOALS)
+makefile.auto: $(RMKDIR_TARGET) $(BUILDNO_TARGET) $(NCI_SERVICE_FILES) $(WMC_TARGET) $(WRC_TARGET) \
+ $(RSYM_TARGET) $(CDMAKE_TARGET) $(RBUILD_TARGET) $(PREAUTO) $(XMLBUILDFILES)
+ $(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) -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) -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)
-clean::
- -@$(rm) Makefile.auto $(PREAUTO) 2>$(NUL)
+.PHONY: makefile_auto_clean
+makefile_auto_clean:
+ -@$(rm) makefile.auto $(PREAUTO) 2>$(NUL)
+clean: makefile_auto_clean