mirror of
https://github.com/reactos/reactos.git
synced 2026-07-03 10:44:25 +08:00
228 lines
5.7 KiB
Makefile
228 lines
5.7 KiB
Makefile
# Accepted environment variables:
|
|
#
|
|
# ROS_INTERMEDIATE
|
|
# This variable controls where to put intermediate files. Intermediate
|
|
# files are generated files that are needed to generate the final
|
|
# output files. Examples of intermediate files include *.o, *.a, and
|
|
# *.coff. N.B. Don't put a path separator at the end. The variable
|
|
# defaults to .\obj-i386.
|
|
#
|
|
# ROS_OUTPUT
|
|
# This variable controls where to put output files. Output files are
|
|
# generated files that makes up the result of the build process.
|
|
# Examples of output files include *.exe, *.dll, and *.sys. N.B. Don't
|
|
# put a path separator at the end. The variable defaults to .\output-i386.
|
|
#
|
|
# ROS_TEMPORARY
|
|
# This variable controls where to put temporary files. Temporary files
|
|
# are (usually small) generated files that are needed to generate the
|
|
# intermediate or final output files. Examples of temporary files include
|
|
# *.rci (preprocessed .rc files for wrc), *.tmp, and *.exp. N.B. Don't put
|
|
# a path separator at the end. The variable defaults to the current
|
|
# directory.
|
|
#
|
|
# ROS_INSTALL
|
|
# This variable controls where to install output files to when using
|
|
# 'make install'. N.B. Don't put a path separator at the end. The variable
|
|
# defaults to .\reactos.
|
|
#
|
|
# ROS_BUILDMAP
|
|
# This variable controls if map files are to be generated for executable
|
|
# output files. Map files have the extension .map. The value can be either
|
|
# full (to build map files with assembly code), yes (to build map files
|
|
# without source code) or no (to not build any map files). The variable
|
|
# defaults to no.
|
|
#
|
|
# ROS_RBUILDFLAGS
|
|
# Pass parameters to rbuild.
|
|
#
|
|
|
|
.PHONY: all
|
|
.PHONY: clean
|
|
all: makefile.auto
|
|
|
|
.SUFFIXES:
|
|
|
|
ifeq ($(HOST),)
|
|
ifeq ($(word 1,$(shell gcc -dumpmachine)),mingw32)
|
|
HOST=mingw32-windows
|
|
else
|
|
HOST=mingw32-linux
|
|
endif
|
|
endif
|
|
|
|
# Default to half-verbose mode
|
|
ifeq ($(VERBOSE),no)
|
|
Q = @
|
|
HALFVERBOSEECHO = no
|
|
BUILDNO_QUIET = -q
|
|
else
|
|
ifeq ($(VERBOSE),yes)
|
|
Q =
|
|
HALFVERBOSEECHO = no
|
|
BUILDNO_QUIET =
|
|
else
|
|
Q = @
|
|
HALFVERBOSEECHO = yes
|
|
BUILDNO_QUIET = -q
|
|
endif
|
|
endif
|
|
ifeq ($(HALFVERBOSEECHO),yes)
|
|
ECHO_CP =@echo [COPY] $@
|
|
ECHO_MKDIR =@echo [MKDIR] $@
|
|
ECHO_BUILDNO =@echo [BUILDNO] $@
|
|
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_NM =@echo [NM] $@
|
|
ECHO_OBJDUMP =@echo [OBJDUMP] $@
|
|
ECHO_RBUILD =@echo [RBUILD] $@
|
|
ECHO_RSYM =@echo [RSYM] $@
|
|
ECHO_WMC =@echo [WMC] $@
|
|
ECHO_NCI =@echo [NCI] $@
|
|
ECHO_CABMAN =@echo [CABMAN] $<
|
|
ECHO_CDMAKE =@echo [CDMAKE] $@
|
|
ECHO_MKHIVE =@echo [MKHIVE] $@
|
|
ECHO_REGTESTS=@echo [REGTESTS] $@
|
|
ECHO_TEST =@echo [TEST] $@
|
|
else
|
|
ECHO_CP =
|
|
ECHO_MKDIR =
|
|
ECHO_BUILDNO =
|
|
ECHO_INVOKE =
|
|
ECHO_PCH =
|
|
ECHO_CC =
|
|
ECHO_GAS =
|
|
ECHO_NASM =
|
|
ECHO_AR =
|
|
ECHO_WINEBLD =
|
|
ECHO_WRC =
|
|
ECHO_BIN2RES =
|
|
ECHO_DLLTOOL =
|
|
ECHO_LD =
|
|
ECHO_NM =
|
|
ECHO_OBJDUMP =
|
|
ECHO_RBUILD =
|
|
ECHO_RSYM =
|
|
ECHO_WMC =
|
|
ECHO_NCI =
|
|
ECHO_CABMAN =
|
|
ECHO_CDMAKE =
|
|
ECHO_MKHIVE =
|
|
ECHO_REGTESTS=
|
|
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 = /
|
|
mkdir = -$(Q)mkdir -p
|
|
gcc = $(Q)mingw32-gcc
|
|
gpp = $(Q)mingw32-g++
|
|
ld = $(Q)mingw32-ld
|
|
nm = $(Q)mingw32-nm
|
|
objdump = $(Q)mingw32-objdump
|
|
ar = $(Q)mingw32-ar
|
|
objcopy = $(Q)mingw32-objcopy
|
|
dlltool = $(Q)mingw32-dlltool
|
|
windres = $(Q)mingw32-windres
|
|
rm = $(Q)rm -f
|
|
cp = $(Q)cp
|
|
NUL = /dev/null
|
|
else # mingw32-windows
|
|
EXEPREFIX =
|
|
EXEPOSTFIX = .exe
|
|
ROS_EMPTY =
|
|
SEP = \$(ROS_EMPTY)
|
|
mkdir = -$(Q)mkdir
|
|
gcc = $(Q)gcc
|
|
gpp = $(Q)g++
|
|
ld = $(Q)ld
|
|
nm = $(Q)nm
|
|
objdump = $(Q)objdump
|
|
ar = $(Q)ar
|
|
objcopy = $(Q)objcopy
|
|
dlltool = $(Q)dlltool
|
|
windres = $(Q)windres
|
|
rm = $(Q)del /f /q
|
|
cp = $(Q)copy /y
|
|
NUL = NUL
|
|
endif
|
|
|
|
ifneq ($(ROS_INTERMEDIATE),)
|
|
INTERMEDIATE := $(ROS_INTERMEDIATE)
|
|
else
|
|
INTERMEDIATE := obj-i386
|
|
endif
|
|
INTERMEDIATE_ := $(INTERMEDIATE)$(SEP)
|
|
|
|
ifneq ($(ROS_OUTPUT),)
|
|
OUTPUT := $(ROS_OUTPUT)
|
|
else
|
|
OUTPUT := output-i386
|
|
endif
|
|
OUTPUT_ := $(OUTPUT)$(SEP)
|
|
|
|
$(INTERMEDIATE):
|
|
${mkdir} $@
|
|
|
|
ifneq ($(INTERMEDIATE),$(OUTPUT))
|
|
$(OUTPUT):
|
|
${mkdir} $@
|
|
endif
|
|
|
|
NTOSKRNL_MC = ntoskrnl$(SEP)ntoskrnl.mc
|
|
KERNEL32_MC = lib$(SEP)kernel32$(SEP)kernel32.mc
|
|
BUILDNO_H = include$(SEP)reactos$(SEP)buildno.h
|
|
BUGCODES_H = include$(SEP)reactos$(SEP)bugcodes.h
|
|
BUGCODES_RC = ntoskrnl$(SEP)bugcodes.rc
|
|
ERRCODES_H = include$(SEP)reactos$(SEP)errcodes.h
|
|
ERRCODES_RC = lib$(SEP)kernel32$(SEP)errcodes.rc
|
|
|
|
include lib/lib.mak
|
|
include tools/tools.mak
|
|
-include makefile.auto
|
|
|
|
PREAUTO := \
|
|
$(BUILDNO_H) \
|
|
$(BUGCODES_H) \
|
|
$(BUGCODES_RC) \
|
|
$(ERRCODES_H) \
|
|
$(ERRCODES_RC) \
|
|
$(NCI_SERVICE_FILES)
|
|
|
|
makefile.auto: $(RBUILD_TARGET) $(PREAUTO) $(XMLBUILDFILES)
|
|
$(ECHO_RBUILD)
|
|
$(Q)$(RBUILD_TARGET) $(ROS_RBUILDFLAGS) mingw
|
|
|
|
|
|
$(BUGCODES_H) $(BUGCODES_RC): $(WMC_TARGET) $(NTOSKRNL_MC)
|
|
$(ECHO_WMC)
|
|
$(Q)$(WMC_TARGET) -i -H $(BUGCODES_H) -o $(BUGCODES_RC) $(NTOSKRNL_MC)
|
|
|
|
$(ERRCODES_H) $(ERRCODES_RC): $(WMC_TARGET) $(KERNEL32_MC)
|
|
$(ECHO_WMC)
|
|
$(Q)$(WMC_TARGET) -i -H $(ERRCODES_H) -o $(ERRCODES_RC) $(KERNEL32_MC)
|
|
|
|
.PHONY: makefile_auto_clean
|
|
makefile_auto_clean:
|
|
-@$(rm) makefile.auto $(PREAUTO) 2>$(NUL)
|
|
|
|
.PHONY: clean
|
|
clean: makefile_auto_clean
|