From 254bdce1b8bfa30e888747a9323292d017be23f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Herv=C3=A9=20Poussineau?= Date: Wed, 3 Oct 2007 11:12:25 +0000 Subject: [PATCH] Support custom C and C++ compilers, by variables HOST_CC, HOST_CPP, TARGET_CC and TARGET_CPP Simplify usage of ROS_PREFIX variable svn path=/trunk/; revision=29371 --- reactos/Makefile | 110 +++++++++++++++++++++-------------------------- 1 file changed, 50 insertions(+), 60 deletions(-) diff --git a/reactos/Makefile b/reactos/Makefile index da0b7c40893..96c9f06003b 100644 --- a/reactos/Makefile +++ b/reactos/Makefile @@ -260,77 +260,67 @@ else ECHO_STRIP = endif - -host_gcc = $(Q)gcc -host_gpp = $(Q)g++ +# Set host compiler/linker +ifeq ($(HOST_CC),) + HOST_CC = gcc +endif +ifeq ($(HOST_CPP),) + HOST_CPP = g++ +endif +host_gcc = $(Q)$(HOST_CC) +host_gpp = $(Q)$(HOST_CPP) host_ld = $(Q)ld host_ar = $(Q)ar host_objcopy = $(Q)objcopy + +# Set target compiler/linker +ifneq ($(ROS_PREFIX),) + PREFIX_ := $(ROS_PREFIX)- +else + PREFIX_ := +endif +ifeq ($(TARGET_CC),) + TARGET_CC = $(PREFIX_)gcc +endif +ifeq ($(TARGET_CPP),) + TARGET_CPP = $(PREFIX_)g++ +endif +gcc = $(Q)$(TARGET_CC) +gpp = $(Q)$(TARGET_CPP) +ld = $(Q)$(PREFIX_)ld +nm = $(Q)$(PREFIX_)nm +objdump = $(Q)$(PREFIX_)objdump +ar = $(Q)$(PREFIX_)ar +objcopy = $(Q)$(PREFIX_)objcopy +dlltool = $(Q)$(PREFIX_)dlltool +strip = $(Q)$(PREFIX_)strip +windres = $(Q)$(PREFIX_)windres + +# Set utilities +ifeq ($(OSTYPE),msys) + HOST=mingw32-linux +endif ifeq ($(HOST),mingw32-linux) export EXEPREFIX = ./ -ifeq ($(OSTYPE),msys) - export EXEPOSTFIX = .exe -else - export EXEPOSTFIX = -endif + ifeq ($(OSTYPE),msys) + export EXEPOSTFIX = .exe + else + export EXEPOSTFIX = + endif export SEP = / mkdir = -$(Q)mkdir -p - gcc = $(Q)$(PREFIX)-gcc - gpp = $(Q)$(PREFIX)-g++ - ld = $(Q)$(PREFIX)-ld - nm = $(Q)$(PREFIX)-nm - objdump = $(Q)$(PREFIX)-objdump - ar = $(Q)$(PREFIX)-ar - objcopy = $(Q)$(PREFIX)-objcopy - dlltool = $(Q)$(PREFIX)-dlltool - strip = $(Q)$(PREFIX)-strip - windres = $(Q)$(PREFIX)-windres rm = $(Q)rm -f cp = $(Q)cp NUL = /dev/null else # mingw32-windows - ifeq ($(OSTYPE),msys) - HOST=mingw32-linux - export EXEPREFIX = ./ - export EXEPOSTFIX = .exe - export SEP = / - mkdir = -$(Q)mkdir -p - rm = $(Q)rm -f - cp = $(Q)cp - NUL = /dev/null - else - export EXEPREFIX = - export EXEPOSTFIX = .exe - ROS_EMPTY = - export SEP = \$(ROS_EMPTY) - mkdir = -$(Q)mkdir - rm = $(Q)del /f /q - cp = $(Q)copy /y - NUL = NUL - endif - ifeq ($(ROS_PREFIX),) - gcc = $(Q)gcc - gpp = $(Q)g++ - ld = $(Q)ld - nm = $(Q)nm - objdump = $(Q)objdump - ar = $(Q)ar - objcopy = $(Q)objcopy - dlltool = $(Q)dlltool - strip = $(Q)strip - windres = $(Q)windres - else - gcc = $(Q)$(ROS_PREFIX)-gcc - gpp = $(Q)$(ROS_PREFIX)-g++ - ld = $(Q)$(ROS_PREFIX)-ld - nm = $(Q)$(ROS_PREFIX)-nm - objdump = $(Q)$(ROS_PREFIX)-objdump - ar = $(Q)$(ROS_PREFIX)-ar - objcopy = $(Q)$(ROS_PREFIX)-objcopy - dlltool = $(Q)$(ROS_PREFIX)-dlltool - strip = $(Q)$(ROS_PREFIX)-strip - windres = $(Q)$(ROS_PREFIX)-windres - endif + export EXEPREFIX = + export EXEPOSTFIX = .exe + ROS_EMPTY = + export SEP = \$(ROS_EMPTY) + mkdir = -$(Q)mkdir + rm = $(Q)del /f /q + cp = $(Q)copy /y + NUL = NUL endif ifneq ($(ROS_INTERMEDIATE),)