2012-12-11 01:32:48 +00:00
|
|
|
# Copyright 2012 The Rust Project Developers. See the COPYRIGHT
|
|
|
|
# file at the top-level directory of this distribution and at
|
|
|
|
# http://rust-lang.org/COPYRIGHT.
|
|
|
|
#
|
|
|
|
# Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
|
|
|
# http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
|
|
|
# <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
|
|
|
# option. This file may not be copied, modified, or distributed
|
|
|
|
# except according to those terms.
|
|
|
|
|
2011-05-04 01:09:18 +00:00
|
|
|
|
2011-11-01 23:50:47 +00:00
|
|
|
# Create variables HOST_<triple> containing the host part
|
|
|
|
# of each target triple. For example, the triple i686-darwin-macos
|
2013-05-03 23:25:04 +00:00
|
|
|
# would create a variable HOST_i686-darwin-macos with the value
|
2011-11-01 23:50:47 +00:00
|
|
|
# i386.
|
|
|
|
define DEF_HOST_VAR
|
|
|
|
HOST_$(1) = $(subst i686,i386,$(word 1,$(subst -, ,$(1))))
|
|
|
|
endef
|
2013-10-21 09:18:21 +00:00
|
|
|
$(foreach t,$(CFG_TARGET),$(eval $(call DEF_HOST_VAR,$(t))))
|
|
|
|
$(foreach t,$(CFG_TARGET),$(info cfg: host for $(t) is $(HOST_$(t))))
|
2011-11-01 23:50:47 +00:00
|
|
|
|
2013-02-22 03:10:16 +00:00
|
|
|
# Ditto for OSTYPE
|
|
|
|
define DEF_OSTYPE_VAR
|
|
|
|
OSTYPE_$(1) = $(subst $(firstword $(subst -, ,$(1)))-,,$(1))
|
|
|
|
endef
|
2013-10-21 09:18:21 +00:00
|
|
|
$(foreach t,$(CFG_TARGET),$(eval $(call DEF_OSTYPE_VAR,$(t))))
|
|
|
|
$(foreach t,$(CFG_TARGET),$(info cfg: os for $(t) is $(OSTYPE_$(t))))
|
2013-02-22 03:10:16 +00:00
|
|
|
|
2013-08-29 00:41:40 +00:00
|
|
|
# FIXME: no-omit-frame-pointer is just so that task_start_wrapper
|
|
|
|
# has a frame pointer and the stack walker can understand it. Turning off
|
|
|
|
# frame pointers everywhere is overkill
|
2013-10-17 02:51:51 +00:00
|
|
|
CFG_GCCISH_CFLAGS += -fno-omit-frame-pointer
|
2012-06-12 05:44:16 +00:00
|
|
|
|
2011-05-01 20:18:52 +00:00
|
|
|
# On Darwin, we need to run dsymutil so the debugging information ends
|
|
|
|
# up in the right place. On other platforms, it automatically gets
|
|
|
|
# embedded into the executable, so use a no-op command.
|
|
|
|
CFG_DSYMUTIL := true
|
|
|
|
|
2013-03-07 06:36:20 +00:00
|
|
|
# Hack: not sure how to test if a file exists in make other than this
|
|
|
|
OS_SUPP = $(patsubst %,--suppressions=%,\
|
|
|
|
$(wildcard $(CFG_SRC_DIR)src/etc/$(CFG_OSTYPE).supp*))
|
|
|
|
|
|
|
|
ifdef CFG_DISABLE_OPTIMIZE_CXX
|
|
|
|
$(info cfg: disabling C++ optimization (CFG_DISABLE_OPTIMIZE_CXX))
|
|
|
|
CFG_GCCISH_CFLAGS += -O0
|
|
|
|
else
|
|
|
|
CFG_GCCISH_CFLAGS += -O2
|
|
|
|
endif
|
|
|
|
|
2013-09-16 22:25:01 +00:00
|
|
|
# The soname thing is for supporting a statically linked jemalloc.
|
|
|
|
# see https://blog.mozilla.org/jseward/2012/06/05/valgrind-now-supports-jemalloc-builds-directly/
|
2013-03-07 06:36:20 +00:00
|
|
|
ifdef CFG_VALGRIND
|
|
|
|
CFG_VALGRIND += --error-exitcode=100 \
|
2013-09-16 22:25:01 +00:00
|
|
|
--soname-synonyms=somalloc=NONE \
|
2013-03-07 06:36:20 +00:00
|
|
|
--quiet \
|
|
|
|
--suppressions=$(CFG_SRC_DIR)src/etc/x86.supp \
|
|
|
|
$(OS_SUPP)
|
|
|
|
ifdef CFG_ENABLE_HELGRIND
|
|
|
|
CFG_VALGRIND += --tool=helgrind
|
|
|
|
else
|
|
|
|
CFG_VALGRIND += --tool=memcheck \
|
|
|
|
--leak-check=full
|
|
|
|
endif
|
|
|
|
endif
|
|
|
|
|
|
|
|
ifneq ($(findstring linux,$(CFG_OSTYPE)),)
|
|
|
|
ifdef CFG_PERF
|
|
|
|
ifneq ($(CFG_PERF_WITH_LOGFD),)
|
|
|
|
CFG_PERF_TOOL := $(CFG_PERF) stat -r 3 --log-fd 2
|
|
|
|
else
|
|
|
|
CFG_PERF_TOOL := $(CFG_PERF) stat -r 3
|
|
|
|
endif
|
|
|
|
else
|
|
|
|
ifdef CFG_VALGRIND
|
|
|
|
CFG_PERF_TOOL :=\
|
|
|
|
$(CFG_VALGRIND) --tool=cachegrind --cache-sim=yes --branch-sim=yes
|
|
|
|
else
|
|
|
|
CFG_PERF_TOOL := /usr/bin/time --verbose
|
|
|
|
endif
|
|
|
|
endif
|
|
|
|
endif
|
|
|
|
|
|
|
|
# These flags will cause the compiler to produce a .d file
|
|
|
|
# next to the .o file that lists header deps.
|
|
|
|
CFG_DEPEND_FLAGS = -MMD -MP -MT $(1) -MF $(1:%.o=%.d)
|
|
|
|
|
|
|
|
AR := ar
|
|
|
|
|
|
|
|
CFG_INFO := $(info cfg: using $(CFG_C_COMPILER))
|
|
|
|
ifeq ($(CFG_C_COMPILER),clang)
|
2013-12-02 18:08:45 +00:00
|
|
|
# The -Qunused-arguments sidesteps spurious warnings from clang
|
2013-03-07 06:36:20 +00:00
|
|
|
ifeq ($(origin CC),default)
|
2013-12-02 18:08:45 +00:00
|
|
|
CC=clang -Qunused-arguments
|
2013-03-07 06:36:20 +00:00
|
|
|
endif
|
|
|
|
ifeq ($(origin CXX),default)
|
2013-12-02 18:08:45 +00:00
|
|
|
CXX=clang++ -Qunused-arguments
|
2013-03-07 06:36:20 +00:00
|
|
|
endif
|
|
|
|
ifeq ($(origin CPP),default)
|
2013-12-02 18:08:45 +00:00
|
|
|
CPP=clang -Qunused-arguments
|
2013-03-07 06:36:20 +00:00
|
|
|
endif
|
|
|
|
else
|
|
|
|
ifeq ($(CFG_C_COMPILER),gcc)
|
|
|
|
ifeq ($(origin CC),default)
|
|
|
|
CC=gcc
|
|
|
|
endif
|
|
|
|
ifeq ($(origin CXX),default)
|
|
|
|
CXX=g++
|
|
|
|
endif
|
|
|
|
ifeq ($(origin CPP),default)
|
|
|
|
CPP=gcc
|
|
|
|
endif
|
2013-05-29 21:18:09 +00:00
|
|
|
else
|
|
|
|
ifeq ($(CFG_C_COMPILER),ccache clang)
|
|
|
|
# The -Qunused-arguments sidesteps spurious warnings from clang
|
|
|
|
ifeq ($(origin CC),default)
|
|
|
|
CC=ccache clang -Qunused-arguments
|
|
|
|
endif
|
|
|
|
ifeq ($(origin CXX),default)
|
|
|
|
CXX=ccache clang++ -Qunused-arguments
|
|
|
|
endif
|
|
|
|
ifeq ($(origin CPP),default)
|
|
|
|
CPP=ccache clang -Qunused-arguments
|
|
|
|
endif
|
|
|
|
else
|
|
|
|
ifeq ($(CFG_C_COMPILER),ccache gcc)
|
|
|
|
ifeq ($(origin CC),default)
|
|
|
|
CC=ccache gcc
|
|
|
|
endif
|
|
|
|
ifeq ($(origin CXX),default)
|
|
|
|
CXX=ccache g++
|
|
|
|
endif
|
|
|
|
ifeq ($(origin CPP),default)
|
|
|
|
CPP=ccache gcc
|
|
|
|
endif
|
2013-03-07 06:36:20 +00:00
|
|
|
else
|
|
|
|
CFG_ERR := $(error please try on a system with gcc or clang)
|
|
|
|
endif
|
|
|
|
endif
|
2013-05-29 21:18:09 +00:00
|
|
|
endif
|
|
|
|
endif
|
2013-03-07 06:36:20 +00:00
|
|
|
|
Add generation of static libraries to rustc
This commit implements the support necessary for generating both intermediate
and result static rust libraries. This is an implementation of my thoughts in
https://mail.mozilla.org/pipermail/rust-dev/2013-November/006686.html.
When compiling a library, we still retain the "lib" option, although now there
are "rlib", "staticlib", and "dylib" as options for crate_type (and these are
stackable). The idea of "lib" is to generate the "compiler default" instead of
having too choose (although all are interchangeable). For now I have left the
"complier default" to be a dynamic library for size reasons.
Of the rust libraries, lib{std,extra,rustuv} will bootstrap with an
rlib/dylib pair, but lib{rustc,syntax,rustdoc,rustpkg} will only be built as a
dynamic object. I chose this for size reasons, but also because you're probably
not going to be embedding the rustc compiler anywhere any time soon.
Other than the options outlined above, there are a few defaults/preferences that
are now opinionated in the compiler:
* If both a .dylib and .rlib are found for a rust library, the compiler will
prefer the .rlib variant. This is overridable via the -Z prefer-dynamic option
* If generating a "lib", the compiler will generate a dynamic library. This is
overridable by explicitly saying what flavor you'd like (rlib, staticlib,
dylib).
* If no options are passed to the command line, and no crate_type is found in
the destination crate, then an executable is generated
With this change, you can successfully build a rust program with 0 dynamic
dependencies on rust libraries. There is still a dynamic dependency on
librustrt, but I plan on removing that in a subsequent commit.
This change includes no tests just yet. Our current testing
infrastructure/harnesses aren't very amenable to doing flavorful things with
linking, so I'm planning on adding a new mode of testing which I believe belongs
as a separate commit.
Closes #552
2013-11-15 22:03:29 +00:00
|
|
|
CFG_RLIB_GLOB=lib$(1)-*.rlib
|
2013-03-07 06:36:20 +00:00
|
|
|
|
2013-03-01 11:02:29 +00:00
|
|
|
# x86_64-unknown-linux-gnu configuration
|
2013-03-07 06:36:20 +00:00
|
|
|
CC_x86_64-unknown-linux-gnu=$(CC)
|
|
|
|
CXX_x86_64-unknown-linux-gnu=$(CXX)
|
|
|
|
CPP_x86_64-unknown-linux-gnu=$(CPP)
|
|
|
|
AR_x86_64-unknown-linux-gnu=$(AR)
|
2013-02-27 05:53:35 +00:00
|
|
|
CFG_LIB_NAME_x86_64-unknown-linux-gnu=lib$(1).so
|
2013-10-08 16:20:17 +00:00
|
|
|
CFG_STATIC_LIB_NAME_x86_64-unknown-linux-gnu=lib$(1).a
|
2013-02-27 05:53:35 +00:00
|
|
|
CFG_LIB_GLOB_x86_64-unknown-linux-gnu=lib$(1)-*.so
|
|
|
|
CFG_LIB_DSYM_GLOB_x86_64-unknown-linux-gnu=lib$(1)-*.dylib.dSYM
|
|
|
|
CFG_GCCISH_CFLAGS_x86_64-unknown-linux-gnu := -Wall -Werror -g -fPIC -m64
|
|
|
|
CFG_GCCISH_CXXFLAGS_x86_64-unknown-linux-gnu := -fno-rtti
|
2013-06-05 23:37:14 +00:00
|
|
|
CFG_GCCISH_LINK_FLAGS_x86_64-unknown-linux-gnu := -shared -fPIC -ldl -pthread -lrt -g -m64
|
2013-02-27 05:53:35 +00:00
|
|
|
CFG_GCCISH_DEF_FLAG_x86_64-unknown-linux-gnu := -Wl,--export-dynamic,--dynamic-list=
|
|
|
|
CFG_GCCISH_PRE_LIB_FLAGS_x86_64-unknown-linux-gnu := -Wl,-whole-archive
|
2013-03-31 20:22:05 +00:00
|
|
|
CFG_GCCISH_POST_LIB_FLAGS_x86_64-unknown-linux-gnu := -Wl,-no-whole-archive
|
2013-02-27 05:53:35 +00:00
|
|
|
CFG_DEF_SUFFIX_x86_64-unknown-linux-gnu := .linux.def
|
|
|
|
CFG_INSTALL_NAME_x86_64-unknown-linux-gnu =
|
2013-03-02 12:25:12 +00:00
|
|
|
CFG_LIBUV_LINK_FLAGS_x86_64-unknown-linux-gnu =
|
2013-08-29 00:41:40 +00:00
|
|
|
CFG_LLVM_BUILD_ENV_x86_64-unknown-linux-gnu="CXXFLAGS=-fno-omit-frame-pointer"
|
2013-03-02 12:25:12 +00:00
|
|
|
CFG_EXE_SUFFIX_x86_64-unknown-linux-gnu =
|
|
|
|
CFG_WINDOWSY_x86_64-unknown-linux-gnu :=
|
2013-03-04 07:48:27 +00:00
|
|
|
CFG_UNIXY_x86_64-unknown-linux-gnu := 1
|
2013-03-02 12:25:12 +00:00
|
|
|
CFG_PATH_MUNGE_x86_64-unknown-linux-gnu := true
|
|
|
|
CFG_LDPATH_x86_64-unknown-linux-gnu :=
|
|
|
|
CFG_RUN_x86_64-unknown-linux-gnu=$(2)
|
|
|
|
CFG_RUN_TARG_x86_64-unknown-linux-gnu=$(call CFG_RUN_x86_64-unknown-linux-gnu,,$(2))
|
2013-02-27 05:53:35 +00:00
|
|
|
|
2013-03-04 03:46:27 +00:00
|
|
|
# i686-unknown-linux-gnu configuration
|
2013-03-07 06:36:20 +00:00
|
|
|
CC_i686-unknown-linux-gnu=$(CC)
|
|
|
|
CXX_i686-unknown-linux-gnu=$(CXX)
|
|
|
|
CPP_i686-unknown-linux-gnu=$(CPP)
|
|
|
|
AR_i686-unknown-linux-gnu=$(AR)
|
2013-03-04 03:46:27 +00:00
|
|
|
CFG_LIB_NAME_i686-unknown-linux-gnu=lib$(1).so
|
2013-10-08 16:20:17 +00:00
|
|
|
CFG_STATIC_LIB_NAME_i686-unknown-linux-gnu=lib$(1).a
|
2013-03-04 03:46:27 +00:00
|
|
|
CFG_LIB_GLOB_i686-unknown-linux-gnu=lib$(1)-*.so
|
|
|
|
CFG_LIB_DSYM_GLOB_i686-unknown-linux-gnu=lib$(1)-*.dylib.dSYM
|
|
|
|
CFG_GCCISH_CFLAGS_i686-unknown-linux-gnu := -Wall -Werror -g -fPIC -m32
|
|
|
|
CFG_GCCISH_CXXFLAGS_i686-unknown-linux-gnu := -fno-rtti
|
2013-06-05 23:37:14 +00:00
|
|
|
CFG_GCCISH_LINK_FLAGS_i686-unknown-linux-gnu := -shared -fPIC -ldl -pthread -lrt -g -m32
|
2013-03-04 05:23:20 +00:00
|
|
|
CFG_GCCISH_DEF_FLAG_i686-unknown-linux-gnu := -Wl,--export-dynamic,--dynamic-list=
|
2013-03-04 03:46:27 +00:00
|
|
|
CFG_GCCISH_PRE_LIB_FLAGS_i686-unknown-linux-gnu := -Wl,-whole-archive
|
2013-03-31 20:22:05 +00:00
|
|
|
CFG_GCCISH_POST_LIB_FLAGS_i686-unknown-linux-gnu := -Wl,-no-whole-archive
|
2013-03-04 03:46:27 +00:00
|
|
|
CFG_DEF_SUFFIX_i686-unknown-linux-gnu := .linux.def
|
|
|
|
CFG_INSTALL_NAME_i686-unknown-linux-gnu =
|
2013-03-04 05:23:20 +00:00
|
|
|
CFG_LIBUV_LINK_FLAGS_i686-unknown-linux-gnu =
|
2013-08-29 00:41:40 +00:00
|
|
|
CFG_LLVM_BUILD_ENV_i686-unknown-linux-gnu="CXXFLAGS=-fno-omit-frame-pointer"
|
2013-03-04 05:23:20 +00:00
|
|
|
CFG_EXE_SUFFIX_i686-unknown-linux-gnu =
|
|
|
|
CFG_WINDOWSY_i686-unknown-linux-gnu :=
|
2013-03-04 07:48:27 +00:00
|
|
|
CFG_UNIXY_i686-unknown-linux-gnu := 1
|
2013-03-04 05:23:20 +00:00
|
|
|
CFG_PATH_MUNGE_i686-unknown-linux-gnu := true
|
|
|
|
CFG_LDPATH_i686-unknown-linux-gnu :=
|
|
|
|
CFG_RUN_i686-unknown-linux-gnu=$(2)
|
|
|
|
CFG_RUN_TARG_i686-unknown-linux-gnu=$(call CFG_RUN_i686-unknown-linux-gnu,,$(2))
|
2013-03-04 03:46:27 +00:00
|
|
|
|
2013-10-31 19:36:27 +00:00
|
|
|
# arm-apple-darwin configuration
|
|
|
|
ifeq ($(CFG_OSTYPE),apple-darwin)
|
2013-11-01 18:39:35 +00:00
|
|
|
CFG_IOS_SDK = $(shell xcrun --show-sdk-path -sdk iphoneos 2>/dev/null)
|
|
|
|
CFG_IOS_FLAGS = -target arm-apple-darwin -isysroot $(CFG_IOS_SDK) -I$(CFG_IOS_SDK)/usr/include -I$(CFG_IOS_SDK)/usr/include/c++/4.2.1
|
2013-10-31 19:36:27 +00:00
|
|
|
CC_arm-apple-darwin = $(shell xcrun -find -sdk iphoneos clang)
|
|
|
|
CXX_arm-apple-darwin = $(shell xcrun -find -sdk iphoneos clang++)
|
|
|
|
CPP_arm-apple-darwin = $(shell xcrun -find -sdk iphoneos clang++)
|
|
|
|
AR_arm-apple-darwin = $(shell xcrun -find -sdk iphoneos ar)
|
|
|
|
CFG_LIB_NAME_arm-apple-darwin = lib$(1).dylib
|
|
|
|
CFG_LIB_GLOB_arm-apple-darwin = lib$(1)-*.dylib
|
|
|
|
CFG_LIB_DSYM_GLOB_arm-apple-darwin = lib$(1)-*.dylib.dSYM
|
|
|
|
CFG_GCCISH_CFLAGS_arm-apple-darwin := -Wall -Werror -g -fPIC $(CFG_IOS_FLAGS)
|
|
|
|
CFG_GCCISH_CXXFLAGS_arm-apple-darwin := -fno-rtti $(CFG_IOS_FLAGS)
|
2013-11-14 18:04:55 +00:00
|
|
|
CFG_GCCISH_LINK_FLAGS_arm-apple-darwin := -dynamiclib -lpthread -framework CoreServices -Wl,-no_compact_unwind
|
2013-10-31 19:36:27 +00:00
|
|
|
CFG_GCCISH_DEF_FLAG_arm-apple-darwin := -Wl,-exported_symbols_list,
|
|
|
|
CFG_GCCISH_PRE_LIB_FLAGS_arm-apple-darwin :=
|
|
|
|
CFG_GCCISH_POST_LIB_FLAGS_arm-apple-darwin :=
|
|
|
|
CFG_DEF_SUFFIX_arm-apple-darwin := .darwin.def
|
|
|
|
CFG_INSTALL_NAME_arm-apple-darwin = -Wl,-install_name,@rpath/$(1)
|
|
|
|
CFG_LIBUV_LINK_FLAGS_arm-apple-darwin =
|
|
|
|
CFG_EXE_SUFFIX_arm-apple-darwin :=
|
|
|
|
CFG_WINDOWSY_arm-apple-darwin :=
|
|
|
|
CFG_UNIXY_arm-apple-darwin := 1
|
|
|
|
CFG_PATH_MUNGE_arm-apple-darwin := true
|
|
|
|
CFG_LDPATH_arm-apple-darwin :=
|
|
|
|
CFG_RUN_arm-apple-darwin = $(2)
|
|
|
|
CFG_RUN_TARG_arm-apple-darwin = $(call CFG_RUN_arm-apple-darwin,,$(2))
|
|
|
|
endif
|
|
|
|
|
2013-03-01 11:02:29 +00:00
|
|
|
# x86_64-apple-darwin configuration
|
2013-03-07 06:36:20 +00:00
|
|
|
CC_x86_64-apple-darwin=$(CC)
|
|
|
|
CXX_x86_64-apple-darwin=$(CXX)
|
|
|
|
CPP_x86_64-apple-darwin=$(CPP)
|
|
|
|
AR_x86_64-apple-darwin=$(AR)
|
2013-02-27 05:53:35 +00:00
|
|
|
CFG_LIB_NAME_x86_64-apple-darwin=lib$(1).dylib
|
2013-10-08 16:20:17 +00:00
|
|
|
CFG_STATIC_LIB_NAME_x86_64-apple-darwin=lib$(1).a
|
2013-02-27 05:53:35 +00:00
|
|
|
CFG_LIB_GLOB_x86_64-apple-darwin=lib$(1)-*.dylib
|
|
|
|
CFG_LIB_DSYM_GLOB_x86_64-apple-darwin=lib$(1)-*.dylib.dSYM
|
2013-11-23 02:21:37 +00:00
|
|
|
CFG_GCCISH_CFLAGS_x86_64-apple-darwin := -Wall -Werror -g -fPIC -m64 -arch x86_64
|
2013-02-27 05:53:35 +00:00
|
|
|
CFG_GCCISH_CXXFLAGS_x86_64-apple-darwin := -fno-rtti
|
2013-10-22 09:50:52 +00:00
|
|
|
CFG_GCCISH_LINK_FLAGS_x86_64-apple-darwin := -dynamiclib -pthread -framework CoreServices -m64
|
2013-02-27 05:53:35 +00:00
|
|
|
CFG_GCCISH_DEF_FLAG_x86_64-apple-darwin := -Wl,-exported_symbols_list,
|
|
|
|
CFG_GCCISH_PRE_LIB_FLAGS_x86_64-apple-darwin :=
|
|
|
|
CFG_GCCISH_POST_LIB_FLAGS_x86_64-apple-darwin :=
|
|
|
|
CFG_DEF_SUFFIX_x86_64-apple-darwin := .darwin.def
|
|
|
|
CFG_INSTALL_NAME_x86_64-apple-darwin = -Wl,-install_name,@rpath/$(1)
|
2013-03-02 12:25:12 +00:00
|
|
|
CFG_LIBUV_LINK_FLAGS_x86_64-apple-darwin =
|
|
|
|
CFG_EXE_SUFFIX_x86_64-apple-darwin :=
|
|
|
|
CFG_WINDOWSY_x86_64-apple-darwin :=
|
2013-03-04 07:48:27 +00:00
|
|
|
CFG_UNIXY_x86_64-apple-darwin := 1
|
2013-03-02 12:25:12 +00:00
|
|
|
CFG_PATH_MUNGE_x86_64-apple-darwin := true
|
|
|
|
CFG_LDPATH_x86_64-apple-darwin :=
|
|
|
|
CFG_RUN_x86_64-apple-darwin=$(2)
|
|
|
|
CFG_RUN_TARG_x86_64-apple-darwin=$(call CFG_RUN_x86_64-apple-darwin,,$(2))
|
2013-02-27 05:53:35 +00:00
|
|
|
|
2013-03-04 03:46:27 +00:00
|
|
|
# i686-apple-darwin configuration
|
2013-03-07 06:36:20 +00:00
|
|
|
CC_i686-apple-darwin=$(CC)
|
|
|
|
CXX_i686-apple-darwin=$(CXX)
|
|
|
|
CPP_i686-apple-darwin=$(CPP)
|
|
|
|
AR_i686-apple-darwin=$(AR)
|
2013-03-04 03:46:27 +00:00
|
|
|
CFG_LIB_NAME_i686-apple-darwin=lib$(1).dylib
|
2013-10-08 16:20:17 +00:00
|
|
|
CFG_STATIC_LIB_NAME_i686-apple-darwin=lib$(1).a
|
2013-03-04 03:46:27 +00:00
|
|
|
CFG_LIB_GLOB_i686-apple-darwin=lib$(1)-*.dylib
|
|
|
|
CFG_LIB_DSYM_GLOB_i686-apple-darwin=lib$(1)-*.dylib.dSYM
|
2013-11-23 02:21:37 +00:00
|
|
|
CFG_GCCISH_CFLAGS_i686-apple-darwin := -Wall -Werror -g -fPIC -m32 -arch i386
|
2013-03-04 03:46:27 +00:00
|
|
|
CFG_GCCISH_CXXFLAGS_i686-apple-darwin := -fno-rtti
|
2013-10-22 09:50:52 +00:00
|
|
|
CFG_GCCISH_LINK_FLAGS_i686-apple-darwin := -dynamiclib -pthread -framework CoreServices -m32
|
2013-03-04 03:46:27 +00:00
|
|
|
CFG_GCCISH_DEF_FLAG_i686-apple-darwin := -Wl,-exported_symbols_list,
|
|
|
|
CFG_GCCISH_PRE_LIB_FLAGS_i686-apple-darwin :=
|
|
|
|
CFG_GCCISH_POST_LIB_FLAGS_i686-apple-darwin :=
|
|
|
|
CFG_DEF_SUFFIX_i686-apple-darwin := .darwin.def
|
|
|
|
CFG_INSTALL_NAME_i686-apple-darwin = -Wl,-install_name,@rpath/$(1)
|
2013-03-04 05:23:20 +00:00
|
|
|
CFG_LIBUV_LINK_FLAGS_i686-apple-darwin =
|
|
|
|
CFG_EXE_SUFFIX_i686-apple-darwin :=
|
|
|
|
CFG_WINDOWSY_i686-apple-darwin :=
|
2013-03-04 07:48:27 +00:00
|
|
|
CFG_UNIXY_i686-apple-darwin := 1
|
2013-03-04 05:23:20 +00:00
|
|
|
CFG_PATH_MUNGE_i686-apple-darwin := true
|
|
|
|
CFG_LDPATH_i686-apple-darwin :=
|
|
|
|
CFG_RUN_i686-apple-darwin=$(2)
|
|
|
|
CFG_RUN_TARG_i686-apple-darwin=$(call CFG_RUN_i686-apple-darwin,,$(2))
|
2013-03-04 03:46:27 +00:00
|
|
|
|
2013-03-13 00:21:12 +00:00
|
|
|
# arm-linux-androideabi configuration
|
|
|
|
CC_arm-linux-androideabi=$(CFG_ANDROID_CROSS_PATH)/bin/arm-linux-androideabi-gcc
|
|
|
|
CXX_arm-linux-androideabi=$(CFG_ANDROID_CROSS_PATH)/bin/arm-linux-androideabi-g++
|
2013-08-01 10:39:37 +00:00
|
|
|
CPP_arm-linux-androideabi=$(CFG_ANDROID_CROSS_PATH)/bin/arm-linux-androideabi-gcc -E
|
2013-03-13 00:21:12 +00:00
|
|
|
AR_arm-linux-androideabi=$(CFG_ANDROID_CROSS_PATH)/bin/arm-linux-androideabi-ar
|
|
|
|
CFG_LIB_NAME_arm-linux-androideabi=lib$(1).so
|
2013-10-08 16:20:17 +00:00
|
|
|
CFG_STATIC_LIB_NAME_arm-linux-androideabi=lib$(1).a
|
2013-03-13 00:21:12 +00:00
|
|
|
CFG_LIB_GLOB_arm-linux-androideabi=lib$(1)-*.so
|
|
|
|
CFG_LIB_DSYM_GLOB_arm-linux-androideabi=lib$(1)-*.dylib.dSYM
|
|
|
|
CFG_GCCISH_CFLAGS_arm-linux-androideabi := -Wall -g -fPIC -D__arm__ -DANDROID -D__ANDROID__
|
|
|
|
CFG_GCCISH_CXXFLAGS_arm-linux-androideabi := -fno-rtti
|
2013-12-13 07:06:59 +00:00
|
|
|
CFG_GCCISH_LINK_FLAGS_arm-linux-androideabi := -shared -fPIC -ldl -g -lm -lsupc++
|
2013-03-13 00:21:12 +00:00
|
|
|
CFG_GCCISH_DEF_FLAG_arm-linux-androideabi := -Wl,--export-dynamic,--dynamic-list=
|
|
|
|
CFG_GCCISH_PRE_LIB_FLAGS_arm-linux-androideabi := -Wl,-whole-archive
|
2013-03-31 20:22:05 +00:00
|
|
|
CFG_GCCISH_POST_LIB_FLAGS_arm-linux-androideabi := -Wl,-no-whole-archive
|
2013-03-13 00:21:12 +00:00
|
|
|
CFG_DEF_SUFFIX_arm-linux-androideabi := .android.def
|
|
|
|
CFG_INSTALL_NAME_arm-linux-androideabi =
|
|
|
|
CFG_LIBUV_LINK_FLAGS_arm-linux-androideabi =
|
|
|
|
CFG_EXE_SUFFIX_arm-linux-androideabi :=
|
|
|
|
CFG_WINDOWSY_arm-linux-androideabi :=
|
|
|
|
CFG_UNIXY_arm-linux-androideabi := 1
|
|
|
|
CFG_PATH_MUNGE_arm-linux-androideabi := true
|
|
|
|
CFG_LDPATH_arm-linux-androideabi :=
|
|
|
|
CFG_RUN_arm-linux-androideabi=
|
|
|
|
CFG_RUN_TARG_arm-linux-androideabi=
|
|
|
|
RUSTC_FLAGS_arm-linux-androideabi :=--android-cross-path=$(CFG_ANDROID_CROSS_PATH)
|
2013-11-20 11:00:49 +00:00
|
|
|
RUSTC_CROSS_FLAGS_arm-linux-androideabi :=--android-cross-path=$(CFG_ANDROID_CROSS_PATH)
|
2013-02-27 05:53:35 +00:00
|
|
|
|
2013-05-05 14:29:10 +00:00
|
|
|
# arm-unknown-linux-gnueabihf configuration
|
2013-11-20 06:30:51 +00:00
|
|
|
CROSS_PREFIX_arm-unknown-linux-gnueabihf=arm-linux-gnueabihf-
|
|
|
|
CC_arm-unknown-linux-gnueabihf=gcc
|
|
|
|
CXX_arm-unknown-linux-gnueabihf=g++
|
|
|
|
CPP_arm-unknown-linux-gnueabihf=gcc -E
|
|
|
|
AR_arm-unknown-linux-gnueabihf=ar
|
2013-05-05 14:29:10 +00:00
|
|
|
CFG_LIB_NAME_arm-unknown-linux-gnueabihf=lib$(1).so
|
2013-10-08 16:20:17 +00:00
|
|
|
CFG_STATIC_LIB_NAME_arm-unknown-linux-gnueabihf=lib$(1).a
|
2013-05-05 14:29:10 +00:00
|
|
|
CFG_LIB_GLOB_arm-unknown-linux-gnueabihf=lib$(1)-*.so
|
|
|
|
CFG_LIB_DSYM_GLOB_arm-unknown-linux-gnueabihf=lib$(1)-*.dylib.dSYM
|
2013-08-01 10:39:37 +00:00
|
|
|
CFG_GCCISH_CFLAGS_arm-unknown-linux-gnueabihf := -Wall -g -fPIC -D__arm__
|
2013-05-05 14:29:10 +00:00
|
|
|
CFG_GCCISH_CXXFLAGS_arm-unknown-linux-gnueabihf := -fno-rtti
|
|
|
|
CFG_GCCISH_LINK_FLAGS_arm-unknown-linux-gnueabihf := -shared -fPIC -g
|
|
|
|
CFG_GCCISH_DEF_FLAG_arm-unknown-linux-gnueabihf := -Wl,--export-dynamic,--dynamic-list=
|
|
|
|
CFG_GCCISH_PRE_LIB_FLAGS_arm-unknown-linux-gnueabihf := -Wl,-whole-archive
|
|
|
|
CFG_GCCISH_POST_LIB_FLAGS_arm-unknown-linux-gnueabihf := -Wl,-no-whole-archive
|
|
|
|
CFG_DEF_SUFFIX_arm-unknown-linux-gnueabihf := .linux.def
|
|
|
|
CFG_INSTALL_NAME_ar,-unknown-linux-gnueabihf =
|
|
|
|
CFG_LIBUV_LINK_FLAGS_arm-unknown-linux-gnueabihf =
|
|
|
|
CFG_EXE_SUFFIX_arm-unknown-linux-gnueabihf :=
|
|
|
|
CFG_WINDOWSY_arm-unknown-linux-gnueabihf :=
|
|
|
|
CFG_UNIXY_arm-unknown-linux-gnueabihf := 1
|
|
|
|
CFG_PATH_MUNGE_arm-unknown-linux-gnueabihf := true
|
|
|
|
CFG_LDPATH_arm-unknown-linux-gnueabihf :=
|
2013-11-20 06:30:51 +00:00
|
|
|
CFG_RUN_arm-unknown-linux-gnueabihf=$(2)
|
|
|
|
CFG_RUN_TARG_arm-unknown-linux-gnueabihf=$(call CFG_RUN_arm-unknown-linux-gnueabihf,,$(2))
|
|
|
|
RUSTC_FLAGS_arm-unknown-linux-gnueabihf :=
|
2013-11-23 09:49:16 +00:00
|
|
|
RUSTC_CROSS_FLAGS_arm-unknown-linux-gnueabihf := --linker=$(CROSS_PREFIX_arm-unknown-linux-gnueabihf)$(CXX_arm-unknown-linux-gnueabihf)
|
2013-05-05 14:29:10 +00:00
|
|
|
|
2013-08-01 10:39:37 +00:00
|
|
|
# arm-unknown-linux-gnueabi configuration
|
2013-11-20 06:30:51 +00:00
|
|
|
CROSS_PREFIX_arm-unknown-linux-gnueabi=arm-linux-gnueabi-
|
|
|
|
CC_arm-unknown-linux-gnueabi=gcc
|
|
|
|
CXX_arm-unknown-linux-gnueabi=g++
|
|
|
|
CPP_arm-unknown-linux-gnueabi=gcc -E
|
|
|
|
AR_arm-unknown-linux-gnueabi=ar
|
2013-08-01 10:39:37 +00:00
|
|
|
CFG_LIB_NAME_arm-unknown-linux-gnueabi=lib$(1).so
|
2013-10-08 16:20:17 +00:00
|
|
|
CFG_STATIC_LIB_NAME_arm-unknown-linux-gnueabi=lib$(1).a
|
2013-08-01 10:39:37 +00:00
|
|
|
CFG_LIB_GLOB_arm-unknown-linux-gnueabi=lib$(1)-*.so
|
|
|
|
CFG_LIB_DSYM_GLOB_arm-unknown-linux-gnueabi=lib$(1)-*.dylib.dSYM
|
|
|
|
CFG_GCCISH_CFLAGS_arm-unknown-linux-gnueabi := -Wall -g -fPIC -D__arm__
|
|
|
|
CFG_GCCISH_CXXFLAGS_arm-unknown-linux-gnueabi := -fno-rtti
|
|
|
|
CFG_GCCISH_LINK_FLAGS_arm-unknown-linux-gnueabi := -shared -fPIC -g
|
|
|
|
CFG_GCCISH_DEF_FLAG_arm-unknown-linux-gnueabi := -Wl,--export-dynamic,--dynamic-list=
|
|
|
|
CFG_GCCISH_PRE_LIB_FLAGS_arm-unknown-linux-gnueabi := -Wl,-whole-archive
|
|
|
|
CFG_GCCISH_POST_LIB_FLAGS_arm-unknown-linux-gnueabi := -Wl,-no-whole-archive
|
|
|
|
CFG_DEF_SUFFIX_arm-unknown-linux-gnueabi := .linux.def
|
2013-12-11 00:51:46 +00:00
|
|
|
CFG_INSTALL_NAME_arm-unknown-linux-gnueabi =
|
2013-08-01 10:39:37 +00:00
|
|
|
CFG_LIBUV_LINK_FLAGS_arm-unknown-linux-gnueabi =
|
|
|
|
CFG_EXE_SUFFIX_arm-unknown-linux-gnueabi :=
|
|
|
|
CFG_WINDOWSY_arm-unknown-linux-gnueabi :=
|
|
|
|
CFG_UNIXY_arm-unknown-linux-gnueabi := 1
|
|
|
|
CFG_PATH_MUNGE_arm-unknown-linux-gnueabi := true
|
|
|
|
CFG_LDPATH_arm-unknown-linux-gnueabi :=
|
2013-11-20 06:30:51 +00:00
|
|
|
CFG_RUN_arm-unknown-linux-gnueabi=$(2)
|
|
|
|
CFG_RUN_TARG_arm-unknown-linux-gnueabi=$(call CFG_RUN_arm-unknown-linux-gnueabi,,$(2))
|
|
|
|
RUSTC_FLAGS_arm-unknown-linux-gnueabi :=
|
2013-11-23 09:49:16 +00:00
|
|
|
RUSTC_CROSS_FLAGS_arm-unknown-linux-gnueabi := --linker=$(CROSS_PREFIX_arm-unknown-linux-gnueabi)$(CXX_arm-unknown-linux-gnueabi)
|
2013-08-01 10:39:37 +00:00
|
|
|
|
2013-03-19 05:32:03 +00:00
|
|
|
# mips-unknown-linux-gnu configuration
|
|
|
|
CC_mips-unknown-linux-gnu=mips-linux-gnu-gcc
|
|
|
|
CXX_mips-unknown-linux-gnu=mips-linux-gnu-g++
|
|
|
|
CPP_mips-unknown-linux-gnu=mips-linux-gnu-gcc -E
|
|
|
|
AR_mips-unknown-linux-gnu=mips-linux-gnu-ar
|
|
|
|
CFG_LIB_NAME_mips-unknown-linux-gnu=lib$(1).so
|
2013-10-08 16:20:17 +00:00
|
|
|
CFG_STATIC_LIB_NAME_mips-unknown-linux-gnu=lib$(1).a
|
2013-03-19 05:32:03 +00:00
|
|
|
CFG_LIB_GLOB_mips-unknown-linux-gnu=lib$(1)-*.so
|
|
|
|
CFG_LIB_DSYM_GLOB_mips-unknown-linux-gnu=lib$(1)-*.dylib.dSYM
|
2013-05-07 10:03:32 +00:00
|
|
|
CFG_GCCISH_CFLAGS_mips-unknown-linux-gnu := -Wall -g -fPIC -mips32r2 -msoft-float -mabi=32 -mno-compact-eh
|
2013-03-19 05:32:03 +00:00
|
|
|
CFG_GCCISH_CXXFLAGS_mips-unknown-linux-gnu := -fno-rtti
|
|
|
|
CFG_GCCISH_LINK_FLAGS_mips-unknown-linux-gnu := -shared -fPIC -g -mips32r2 -msoft-float -mabi=32
|
|
|
|
CFG_GCCISH_DEF_FLAG_mips-unknown-linux-gnu := -Wl,--export-dynamic,--dynamic-list=
|
|
|
|
CFG_GCCISH_PRE_LIB_FLAGS_mips-unknown-linux-gnu := -Wl,-whole-archive
|
2013-05-07 10:03:32 +00:00
|
|
|
CFG_GCCISH_POST_LIB_FLAGS_mips-unknown-linux-gnu := -Wl,-no-whole-archive
|
2013-03-19 05:32:03 +00:00
|
|
|
CFG_DEF_SUFFIX_mips-unknown-linux-gnu := .linux.def
|
|
|
|
CFG_INSTALL_NAME_mips-unknown-linux-gnu =
|
|
|
|
CFG_LIBUV_LINK_FLAGS_mips-unknown-linux-gnu =
|
|
|
|
CFG_EXE_SUFFIX_mips-unknown-linux-gnu :=
|
|
|
|
CFG_WINDOWSY_mips-unknown-linux-gnu :=
|
|
|
|
CFG_UNIXY_mips-unknown-linux-gnu := 1
|
|
|
|
CFG_PATH_MUNGE_mips-unknown-linux-gnu := true
|
|
|
|
CFG_LDPATH_mips-unknown-linux-gnu :=
|
|
|
|
CFG_RUN_mips-unknown-linux-gnu=
|
|
|
|
CFG_RUN_TARG_mips-unknown-linux-gnu=
|
2013-09-30 05:20:52 +00:00
|
|
|
RUSTC_FLAGS_mips-unknown-linux-gnu := --linker=$(CXX_mips-unknown-linux-gnu) --target-cpu mips32r2 --target-feature +mips32r2,+o32 -Z soft-float
|
2013-03-19 05:32:03 +00:00
|
|
|
|
2013-03-01 11:02:29 +00:00
|
|
|
# i686-pc-mingw32 configuration
|
2013-03-07 06:36:20 +00:00
|
|
|
CC_i686-pc-mingw32=$(CC)
|
|
|
|
CXX_i686-pc-mingw32=$(CXX)
|
|
|
|
CPP_i686-pc-mingw32=$(CPP)
|
|
|
|
AR_i686-pc-mingw32=$(AR)
|
2013-03-02 04:51:10 +00:00
|
|
|
CFG_LIB_NAME_i686-pc-mingw32=$(1).dll
|
2013-10-08 16:20:17 +00:00
|
|
|
CFG_STATIC_LIB_NAME_i686-pc-mingw32=$(1).lib
|
2013-03-02 04:51:10 +00:00
|
|
|
CFG_LIB_GLOB_i686-pc-mingw32=$(1)-*.dll
|
|
|
|
CFG_LIB_DSYM_GLOB_i686-pc-mingw32=$(1)-*.dylib.dSYM
|
2013-11-23 02:21:37 +00:00
|
|
|
CFG_GCCISH_CFLAGS_i686-pc-mingw32 := -Wall -Werror -g -m32 -march=i686 -D_WIN32_WINNT=0x0600 -I$(CFG_SRC_DIR)src/etc/mingw-fix-include
|
2013-03-01 11:02:29 +00:00
|
|
|
CFG_GCCISH_CXXFLAGS_i686-pc-mingw32 := -fno-rtti
|
2013-07-04 03:33:59 +00:00
|
|
|
CFG_GCCISH_LINK_FLAGS_i686-pc-mingw32 := -shared -fPIC -g -m32
|
2013-03-01 11:02:29 +00:00
|
|
|
CFG_GCCISH_DEF_FLAG_i686-pc-mingw32 :=
|
2013-05-03 23:25:04 +00:00
|
|
|
CFG_GCCISH_PRE_LIB_FLAGS_i686-pc-mingw32 :=
|
|
|
|
CFG_GCCISH_POST_LIB_FLAGS_i686-pc-mingw32 :=
|
2013-03-02 12:25:12 +00:00
|
|
|
CFG_DEF_SUFFIX_i686-pc-mingw32 := .mingw32.def
|
2013-03-01 11:02:29 +00:00
|
|
|
CFG_INSTALL_NAME_i686-pc-mingw32 =
|
2013-11-20 06:30:51 +00:00
|
|
|
CFG_LIBUV_LINK_FLAGS_i686-pc-mingw32 := -lws2_32 -lpsapi -liphlpapi
|
2013-09-17 08:06:01 +00:00
|
|
|
CFG_LLVM_BUILD_ENV_i686-pc-mingw32 := CPATH=$(CFG_SRC_DIR)src/etc/mingw-fix-include
|
2013-03-02 12:25:12 +00:00
|
|
|
CFG_EXE_SUFFIX_i686-pc-mingw32 := .exe
|
|
|
|
CFG_WINDOWSY_i686-pc-mingw32 := 1
|
2013-03-04 07:48:27 +00:00
|
|
|
CFG_UNIXY_i686-pc-mingw32 :=
|
2013-03-02 12:25:12 +00:00
|
|
|
CFG_PATH_MUNGE_i686-pc-mingw32 :=
|
|
|
|
CFG_LDPATH_i686-pc-mingw32 :=$(CFG_LDPATH_i686-pc-mingw32):$(PATH)
|
|
|
|
CFG_RUN_i686-pc-mingw32=PATH="$(CFG_LDPATH_i686-pc-mingw32):$(1)" $(2)
|
2013-10-21 09:18:21 +00:00
|
|
|
CFG_RUN_TARG_i686-pc-mingw32=$(call CFG_RUN_i686-pc-mingw32,$(HLIB$(1)_H_$(CFG_BUILD)),$(2))
|
2013-03-02 12:25:12 +00:00
|
|
|
|
|
|
|
# i586-mingw32msvc configuration
|
2013-03-13 00:21:12 +00:00
|
|
|
CC_i586-mingw32msvc=$(CFG_MINGW32_CROSS_PATH)/bin/i586-mingw32msvc-gcc
|
|
|
|
CXX_i586-mingw32msvc=$(CFG_MINGW32_CROSS_PATH)/bin/i586-mingw32msvc-g++
|
|
|
|
CPP_i586-mingw32msvc=$(CFG_MINGW32_CROSS_PATH)/bin/i586-mingw32msvc-cpp
|
|
|
|
AR_i586-mingw32msvc=$(CFG_MINGW32_CROSS_PATH)/bin/i586-mingw32msvc-ar
|
2013-03-02 12:25:12 +00:00
|
|
|
CFG_LIB_NAME_i586-mingw32msvc=$(1).dll
|
2013-10-08 16:20:17 +00:00
|
|
|
CFG_STATIC_LIB_NAME_i586-mingw32msvc=$(1).lib
|
2013-03-02 12:25:12 +00:00
|
|
|
CFG_LIB_GLOB_i586-mingw32msvc=$(1)-*.dll
|
|
|
|
CFG_LIB_DSYM_GLOB_i586-mingw32msvc=$(1)-*.dylib.dSYM
|
2013-03-13 00:21:12 +00:00
|
|
|
CFG_GCCISH_CFLAGS_i586-mingw32msvc := -Wall -Werror -g -march=i586 -m32
|
2013-03-02 12:25:12 +00:00
|
|
|
CFG_GCCISH_CXXFLAGS_i586-mingw32msvc := -fno-rtti
|
|
|
|
CFG_GCCISH_LINK_FLAGS_i586-mingw32msvc := -shared -g -m32
|
|
|
|
CFG_GCCISH_DEF_FLAG_i586-mingw32msvc :=
|
|
|
|
CFG_GCCISH_PRE_LIB_FLAGS_i586-mingw32msvc :=
|
|
|
|
CFG_GCCISH_POST_LIB_FLAGS_i586-mingw32msvc :=
|
|
|
|
CFG_DEF_SUFFIX_i586-mingw32msvc := .mingw32.def
|
|
|
|
CFG_INSTALL_NAME_i586-mingw32msvc =
|
2013-03-13 00:21:12 +00:00
|
|
|
CFG_LIBUV_LINK_FLAGS_i586-mingw32msvc := -L$(CFG_MINGW32_CROSS_PATH)/i586-mingw32msvc/lib -lws2_32 -lpsapi -liphlpapi
|
2013-03-02 12:25:12 +00:00
|
|
|
CFG_EXE_SUFFIX_i586-mingw32msvc := .exe
|
|
|
|
CFG_WINDOWSY_i586-mingw32msvc := 1
|
2013-03-04 07:48:27 +00:00
|
|
|
CFG_UNIXY_i586-mingw32msvc :=
|
2013-03-02 12:25:12 +00:00
|
|
|
CFG_PATH_MUNGE_i586-mingw32msvc := $(strip perl -i.bak -p \
|
|
|
|
-e 's@\\(\S)@/\1@go;' \
|
|
|
|
-e 's@^/([a-zA-Z])/@\1:/@o;')
|
|
|
|
CFG_LDPATH_i586-mingw32msvc :=
|
|
|
|
CFG_RUN_i586-mingw32msvc=
|
|
|
|
CFG_RUN_TARG_i586-mingw32msvc=
|
2013-03-01 11:02:29 +00:00
|
|
|
|
2013-11-20 06:30:51 +00:00
|
|
|
# i686-w64-mingw32 configuration
|
|
|
|
CROSS_PREFIX_i686-w64-mingw32=i686-w64-mingw32-
|
|
|
|
CC_i686-w64-mingw32=gcc
|
|
|
|
CXX_i686-w64-mingw32=g++
|
|
|
|
CPP_i686-w64-mingw32=gcc -E
|
|
|
|
AR_i686-w64-mingw32=ar
|
|
|
|
CFG_LIB_NAME_i686-w64-mingw32=$(1).dll
|
|
|
|
CFG_STATIC_LIB_NAME_i686-w64-mingw32=$(1).lib
|
|
|
|
CFG_LIB_GLOB_i686-w64-mingw32=$(1)-*.dll
|
|
|
|
CFG_LIB_DSYM_GLOB_i686-w64-mingw32=$(1)-*.dylib.dSYM
|
2013-11-23 02:21:37 +00:00
|
|
|
CFG_GCCISH_CFLAGS_i686-w64-mingw32 := -Wall -Werror -g -m32 -D_WIN32_WINNT=0x0600
|
2013-11-20 06:30:51 +00:00
|
|
|
CFG_GCCISH_CXXFLAGS_i686-w64-mingw32 := -fno-rtti
|
|
|
|
CFG_GCCISH_LINK_FLAGS_i686-w64-mingw32 := -shared -g -m32
|
|
|
|
CFG_GCCISH_DEF_FLAG_i686-w64-mingw32 :=
|
|
|
|
CFG_GCCISH_PRE_LIB_FLAGS_i686-w64-mingw32 :=
|
|
|
|
CFG_GCCISH_POST_LIB_FLAGS_i686-w64-mingw32 :=
|
|
|
|
CFG_DEF_SUFFIX_i686-w64-mingw32 := .mingw32.def
|
|
|
|
CFG_INSTALL_NAME_i686-w64-mingw32 =
|
|
|
|
CFG_LIBUV_LINK_FLAGS_i686-w64-mingw32 := -lws2_32 -lpsapi -liphlpapi
|
|
|
|
CFG_EXE_SUFFIX_i686-w64-mingw32 := .exe
|
|
|
|
CFG_WINDOWSY_i686-w64-mingw32 := 1
|
|
|
|
CFG_UNIXY_i686-w64-mingw32 :=
|
|
|
|
CFG_PATH_MUNGE_i686-w64-mingw32 :=
|
|
|
|
CFG_LDPATH_i686-w64-mingw32 :=$(CFG_LDPATH_i686-w64-mingw32):$(PATH)
|
|
|
|
CFG_RUN_i686-w64-mingw32=PATH="$(CFG_LDPATH_i686-w64-mingw32):$(1)" $(2)
|
|
|
|
CFG_RUN_TARG_i686-w64-mingw32=$(call CFG_RUN_i686-w64-mingw32,$(HLIB$(1)_H_$(CFG_BUILD)),$(2))
|
2013-11-23 09:49:16 +00:00
|
|
|
RUSTC_CROSS_FLAGS_i686-w64-mingw32 := --linker=$(CROSS_PREFIX_i686-w64-mingw32)$(CXX_i686-w64-mingw32)
|
2013-11-20 06:30:51 +00:00
|
|
|
|
2013-07-04 03:33:59 +00:00
|
|
|
# x86_64-w64-mingw32 configuration
|
2013-11-20 06:30:51 +00:00
|
|
|
CROSS_PREFIX_x86_64-w64-mingw32=x86_64-w64-mingw32-
|
|
|
|
CC_x86_64-w64-mingw32=gcc
|
|
|
|
CXX_x86_64-w64-mingw32=g++
|
|
|
|
CPP_x86_64-w64-mingw32=gcc -E
|
|
|
|
AR_x86_64-w64-mingw32=ar
|
2013-07-04 03:33:59 +00:00
|
|
|
CFG_LIB_NAME_x86_64-w64-mingw32=$(1).dll
|
2013-10-08 16:20:17 +00:00
|
|
|
CFG_STATIC_LIB_NAME_x86_64-w64-mingw32=$(1).lib
|
2013-07-04 03:33:59 +00:00
|
|
|
CFG_LIB_GLOB_x86_64-w64-mingw32=$(1)-*.dll
|
|
|
|
CFG_LIB_DSYM_GLOB_x86_64-w64-mingw32=$(1)-*.dylib.dSYM
|
2013-11-23 02:21:37 +00:00
|
|
|
CFG_GCCISH_CFLAGS_x86_64-w64-mingw32 := -Wall -Werror -g -m64 -D_WIN32_WINNT=0x0600
|
2013-07-04 03:33:59 +00:00
|
|
|
CFG_GCCISH_CXXFLAGS_x86_64-w64-mingw32 := -fno-rtti
|
2013-11-20 06:30:51 +00:00
|
|
|
CFG_GCCISH_LINK_FLAGS_x86_64-w64-mingw32 := -shared -g -m64
|
2013-07-04 03:33:59 +00:00
|
|
|
CFG_GCCISH_DEF_FLAG_x86_64-w64-mingw32 :=
|
|
|
|
CFG_GCCISH_PRE_LIB_FLAGS_x86_64-w64-mingw32 :=
|
|
|
|
CFG_GCCISH_POST_LIB_FLAGS_x86_64-w64-mingw32 :=
|
|
|
|
CFG_DEF_SUFFIX_x86_64-w64-mingw32 := .mingw32.def
|
|
|
|
CFG_INSTALL_NAME_x86_64-w64-mingw32 =
|
2013-11-20 06:30:51 +00:00
|
|
|
CFG_LIBUV_LINK_FLAGS_x86_64-w64-mingw32 := -lws2_32 -lpsapi -liphlpapi
|
2013-07-04 03:33:59 +00:00
|
|
|
CFG_EXE_SUFFIX_x86_64-w64-mingw32 := .exe
|
|
|
|
CFG_WINDOWSY_x86_64-w64-mingw32 := 1
|
|
|
|
CFG_UNIXY_x86_64-w64-mingw32 :=
|
|
|
|
CFG_PATH_MUNGE_x86_64-w64-mingw32 :=
|
|
|
|
CFG_LDPATH_x86_64-w64-mingw32 :=$(CFG_LDPATH_x86_64-w64-mingw32):$(PATH)
|
|
|
|
CFG_RUN_x86_64-w64-mingw32=PATH="$(CFG_LDPATH_x86_64-w64-mingw32):$(1)" $(2)
|
2013-10-21 09:18:21 +00:00
|
|
|
CFG_RUN_TARG_x86_64-w64-mingw32=$(call CFG_RUN_x86_64-w64-mingw32,$(HLIB$(1)_H_$(CFG_BUILD)),$(2))
|
2013-11-23 09:49:16 +00:00
|
|
|
RUSTC_CROSS_FLAGS_x86_64-w64-mingw32 := --linker=$(CROSS_PREFIX_x86_64-w64-mingw32)$(CXX_x86_64-w64-mingw32)
|
2013-07-04 03:33:59 +00:00
|
|
|
|
2013-03-04 03:46:27 +00:00
|
|
|
# x86_64-unknown-freebsd configuration
|
2013-03-07 06:36:20 +00:00
|
|
|
CC_x86_64-unknown-freebsd=$(CC)
|
|
|
|
CXX_x86_64-unknown-freebsd=$(CXX)
|
|
|
|
CPP_x86_64-unknown-freebsd=$(CPP)
|
|
|
|
AR_x86_64-unknown-freebsd=$(AR)
|
2013-03-04 03:46:27 +00:00
|
|
|
CFG_LIB_NAME_x86_64-unknown-freebsd=lib$(1).so
|
2013-10-08 16:20:17 +00:00
|
|
|
CFG_STATIC_LIB_NAME_x86_64-unknown-freebsd=lib$(1).a
|
2013-03-04 03:46:27 +00:00
|
|
|
CFG_LIB_GLOB_x86_64-unknown-freebsd=lib$(1)-*.so
|
2013-03-04 05:23:20 +00:00
|
|
|
CFG_LIB_DSYM_GLOB_x86_64-unknown-freebsd=$(1)-*.dylib.dSYM
|
|
|
|
CFG_GCCISH_CFLAGS_x86_64-unknown-freebsd := -Wall -Werror -g -fPIC -I/usr/local/include
|
2013-06-05 23:37:14 +00:00
|
|
|
CFG_GCCISH_LINK_FLAGS_x86_64-unknown-freebsd := -shared -fPIC -g -pthread -lrt
|
2013-03-04 03:46:27 +00:00
|
|
|
CFG_GCCISH_DEF_FLAG_x86_64-unknown-freebsd := -Wl,--export-dynamic,--dynamic-list=
|
|
|
|
CFG_GCCISH_PRE_LIB_FLAGS_x86_64-unknown-freebsd := -Wl,-whole-archive
|
|
|
|
CFG_GCCISH_POST_LIB_FLAGS_x86_64-unknown-freebsd := -Wl,-no-whole-archive
|
|
|
|
CFG_DEF_SUFFIX_x86_64-unknown-freebsd := .bsd.def
|
|
|
|
CFG_INSTALL_NAME_x86_64-unknown-freebsd =
|
2013-06-05 23:37:14 +00:00
|
|
|
CFG_LIBUV_LINK_FLAGS_x86_64-unknown-freebsd := -pthread -lkvm
|
2013-03-04 05:23:20 +00:00
|
|
|
CFG_EXE_SUFFIX_x86_64-unknown-freebsd :=
|
|
|
|
CFG_WINDOWSY_x86_64-unknown-freebsd :=
|
2013-03-04 07:48:27 +00:00
|
|
|
CFG_UNIXY_x86_64-unknown-freebsd := 1
|
2013-03-04 05:23:20 +00:00
|
|
|
CFG_PATH_MUNGE_x86_64-unknown-freebsd :=
|
|
|
|
CFG_LDPATH_x86_64-unknown-freebsd :=
|
|
|
|
CFG_RUN_x86_64-unknown-freebsd=$(2)
|
|
|
|
CFG_RUN_TARG_x86_64-unknown-freebsd=$(call CFG_RUN_x86_64-unknown-freebsd,,$(2))
|
2013-03-04 03:46:27 +00:00
|
|
|
|
2013-05-29 21:18:09 +00:00
|
|
|
ifeq ($(CFG_CCACHE_CPP2),1)
|
|
|
|
CCACHE_CPP2=1
|
|
|
|
export CCACHE_CPP
|
|
|
|
endif
|
2013-03-01 11:02:29 +00:00
|
|
|
|
2013-05-30 14:26:12 +00:00
|
|
|
ifdef CFG_CCACHE_BASEDIR
|
|
|
|
CCACHE_BASEDIR=$(CFG_CCACHE_BASEDIR)
|
|
|
|
export CCACHE_BASEDIR
|
|
|
|
endif
|
|
|
|
|
2013-03-07 06:36:20 +00:00
|
|
|
define CFG_MAKE_TOOLCHAIN
|
2013-11-20 06:30:51 +00:00
|
|
|
# Prepend the tools with their prefix if cross compiling
|
|
|
|
ifneq ($(CFG_BUILD),$(1))
|
|
|
|
CC_$(1)=$(CROSS_PREFIX_$(1))$(CC_$(1))
|
|
|
|
CXX_$(1)=$(CROSS_PREFIX_$(1))$(CXX_$(1))
|
|
|
|
CPP_$(1)=$(CROSS_PREFIX_$(1))$(CPP_$(1))
|
|
|
|
AR_$(1)=$(CROSS_PREFIX_$(1))$(AR_$(1))
|
|
|
|
|
|
|
|
RUSTC_FLAGS_$(1)=$(RUSTC_CROSS_FLAGS_$(1))
|
|
|
|
endif
|
|
|
|
|
2013-03-07 06:36:20 +00:00
|
|
|
CFG_COMPILE_C_$(1) = $$(CC_$(1)) \
|
2013-02-27 05:53:35 +00:00
|
|
|
$$(CFG_GCCISH_CFLAGS) \
|
|
|
|
$$(CFG_GCCISH_CFLAGS_$(1)) \
|
|
|
|
$$(CFG_DEPEND_FLAGS) \
|
|
|
|
-c -o $$(1) $$(2)
|
2013-03-07 06:36:20 +00:00
|
|
|
CFG_LINK_C_$(1) = $$(CC_$(1)) \
|
2013-02-27 05:53:35 +00:00
|
|
|
$$(CFG_GCCISH_LINK_FLAGS) -o $$(1) \
|
2013-11-14 18:04:55 +00:00
|
|
|
$$(CFG_GCCISH_LINK_FLAGS_$(1)) \
|
2013-02-27 05:53:35 +00:00
|
|
|
$$(CFG_GCCISH_DEF_FLAG_$(1))$$(3) $$(2) \
|
|
|
|
$$(call CFG_INSTALL_NAME_$(1),$$(4))
|
2013-03-07 06:36:20 +00:00
|
|
|
CFG_COMPILE_CXX_$(1) = $$(CXX_$(1)) \
|
2013-02-27 05:53:35 +00:00
|
|
|
$$(CFG_GCCISH_CFLAGS) \
|
|
|
|
$$(CFG_GCCISH_CXXFLAGS) \
|
|
|
|
$$(CFG_GCCISH_CFLAGS_$(1)) \
|
|
|
|
$$(CFG_GCCISH_CXXFLAGS_$(1)) \
|
|
|
|
$$(CFG_DEPEND_FLAGS) \
|
2011-11-01 23:50:47 +00:00
|
|
|
-c -o $$(1) $$(2)
|
2013-03-07 06:36:20 +00:00
|
|
|
CFG_LINK_CXX_$(1) = $$(CXX_$(1)) \
|
2013-02-27 05:53:35 +00:00
|
|
|
$$(CFG_GCCISH_LINK_FLAGS) -o $$(1) \
|
|
|
|
$$(CFG_GCCISH_LINK_FLAGS_$(1)) \
|
|
|
|
$$(CFG_GCCISH_DEF_FLAG_$(1))$$(3) $$(2) \
|
|
|
|
$$(call CFG_INSTALL_NAME_$(1),$$(4))
|
|
|
|
|
2013-09-17 17:58:07 +00:00
|
|
|
ifeq ($$(findstring $(HOST_$(1)),arm mips),)
|
2013-02-27 05:53:35 +00:00
|
|
|
|
2013-03-07 06:36:20 +00:00
|
|
|
# We're using llvm-mc as our assembler because it supports
|
|
|
|
# .cfi pseudo-ops on mac
|
|
|
|
CFG_ASSEMBLE_$(1)=$$(CPP_$(1)) -E $$(CFG_DEPEND_FLAGS) $$(2) | \
|
2013-10-21 09:18:21 +00:00
|
|
|
$$(LLVM_MC_$$(CFG_BUILD)) \
|
2011-12-10 00:02:50 +00:00
|
|
|
-assemble \
|
|
|
|
-filetype=obj \
|
|
|
|
-triple=$(1) \
|
|
|
|
-o=$$(1)
|
2013-02-27 05:53:35 +00:00
|
|
|
else
|
|
|
|
|
2013-09-17 17:58:07 +00:00
|
|
|
# For the ARM and MIPS crosses, use the toolchain assembler
|
2013-03-07 06:36:20 +00:00
|
|
|
# XXX: We should be able to use the LLVM assembler
|
2013-10-17 08:40:33 +00:00
|
|
|
CFG_ASSEMBLE_$(1)=$$(CC_$(1)) $$(CFG_GCCISH_CFLAGS_$(1)) \
|
|
|
|
$$(CFG_DEPEND_FLAGS) $$(2) -c -o $$(1)
|
2013-02-27 05:53:35 +00:00
|
|
|
|
|
|
|
endif
|
|
|
|
|
2011-12-10 00:02:50 +00:00
|
|
|
endef
|
|
|
|
|
2013-10-21 09:18:21 +00:00
|
|
|
$(foreach target,$(CFG_TARGET),\
|
2013-03-07 06:36:20 +00:00
|
|
|
$(eval $(call CFG_MAKE_TOOLCHAIN,$(target))))
|