From 14e5a6e5f74b174399a561c68e5214d572f7a667 Mon Sep 17 00:00:00 2001 From: Brian Anderson Date: Wed, 6 Mar 2013 22:36:20 -0800 Subject: [PATCH] mk: Cleanup. Minor fixes --- configure | 1 + mk/dist.mk | 2 +- mk/platform.mk | 459 ++++++++++++++++++++++++------------------------- mk/rt.mk | 7 +- 4 files changed, 231 insertions(+), 238 deletions(-) diff --git a/configure b/configure index a1c6e686474..f3a27bb30e4 100755 --- a/configure +++ b/configure @@ -534,6 +534,7 @@ fi # a little post-processing of various config values CFG_PREFIX=${CFG_PREFIX%/} +CFG_HOST_TRIPLES="$(echo $CFG_HOST_TRIPLES | tr ',' ' ')" CFG_TARGET_TRIPLES="$(echo $CFG_TARGET_TRIPLES | tr ',' ' ')" # copy host-triples to target-triples so that hosts are a subset of targets diff --git a/mk/dist.mk b/mk/dist.mk index 3684b9c4544..92989d157b4 100644 --- a/mk/dist.mk +++ b/mk/dist.mk @@ -83,7 +83,7 @@ $(PKG_TAR): $(PKG_FILES) .PHONY: dist distcheck -ifdef CFG_WINDOWSY +ifdef CFG_WINDOWSY_$(CFG_BUILD_TRIPLE) dist: $(PKG_EXE) diff --git a/mk/platform.mk b/mk/platform.mk index fd1bb049e38..55d5a3c476e 100644 --- a/mk/platform.mk +++ b/mk/platform.mk @@ -36,180 +36,6 @@ CFG_GCCISH_CFLAGS += -fno-omit-frame-pointer # embedded into the executable, so use a no-op command. CFG_DSYMUTIL := true -# x86_64-unknown-linux-gnu configuration -CFG_LIB_NAME_x86_64-unknown-linux-gnu=lib$(1).so -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 -CFG_GCCISH_LINK_FLAGS_x86_64-unknown-linux-gnu := -shared -fPIC -ldl -lpthread -lrt -g -m64 -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 -CFG_GCCISH_POST_LIB_FLAGS_x86_64-unknown-linux-gnu := -Wl,-no-whole-archive -Wl,-znoexecstack -CFG_DEF_SUFFIX_x86_64-unknown-linux-gnu := .linux.def -CFG_INSTALL_NAME_x86_64-unknown-linux-gnu = -CFG_LIBUV_LINK_FLAGS_x86_64-unknown-linux-gnu = -CFG_LLVM_BUILD_ENV_x86_64-unknown-linux-gnu="CXXFLAGS=-fno-omit-frame-pointer" -CFG_EXE_SUFFIX_x86_64-unknown-linux-gnu = -CFG_WINDOWSY_x86_64-unknown-linux-gnu := -CFG_UNIXY_x86_64-unknown-linux-gnu := 1 -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)) - -# i686-unknown-linux-gnu configuration -CFG_LIB_NAME_i686-unknown-linux-gnu=lib$(1).so -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 -CFG_GCCISH_LINK_FLAGS_i686-unknown-linux-gnu := -shared -fPIC -ldl -lpthread -lrt -g -m32 -CFG_GCCISH_DEF_FLAG_i686-unknown-linux-gnu := -Wl,--export-dynamic,--dynamic-list= -CFG_GCCISH_PRE_LIB_FLAGS_i686-unknown-linux-gnu := -Wl,-whole-archive -CFG_GCCISH_POST_LIB_FLAGS_i686-unknown-linux-gnu := -Wl,-no-whole-archive -Wl,-znoexecstack -CFG_DEF_SUFFIX_i686-unknown-linux-gnu := .linux.def -CFG_INSTALL_NAME_i686-unknown-linux-gnu = -CFG_LIBUV_LINK_FLAGS_i686-unknown-linux-gnu = -CFG_LLVM_BUILD_ENV_i686-unknown-linux-gnu="CXXFLAGS=-fno-omit-frame-pointer" -CFG_EXE_SUFFIX_i686-unknown-linux-gnu = -CFG_WINDOWSY_i686-unknown-linux-gnu := -CFG_UNIXY_i686-unknown-linux-gnu := 1 -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)) - -# x86_64-apple-darwin configuration -CFG_LIB_NAME_x86_64-apple-darwin=lib$(1).dylib -CFG_LIB_GLOB_x86_64-apple-darwin=lib$(1)-*.dylib -CFG_LIB_DSYM_GLOB_x86_64-apple-darwin=lib$(1)-*.dylib.dSYM -CFG_GCCISH_CFLAGS_x86_64-apple-darwin := -Wall -Werror -g -fPIC -m64 -arch x86_64 -CFG_GCCISH_CXXFLAGS_x86_64-apple-darwin := -fno-rtti -CFG_GCCISH_LINK_FLAGS_x86_64-apple-darwin := -dynamiclib -lpthread -framework CoreServices -Wl,-no_compact_unwind -m64 -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) -CFG_LIBUV_LINK_FLAGS_x86_64-apple-darwin = -CFG_EXE_SUFFIX_x86_64-apple-darwin := -CFG_WINDOWSY_x86_64-apple-darwin := -CFG_UNIXY_x86_64-apple-darwin := 1 -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)) - -# i686-apple-darwin configuration -CFG_LIB_NAME_i686-apple-darwin=lib$(1).dylib -CFG_LIB_GLOB_i686-apple-darwin=lib$(1)-*.dylib -CFG_LIB_DSYM_GLOB_i686-apple-darwin=lib$(1)-*.dylib.dSYM -CFG_GCCISH_CFLAGS_i686-apple-darwin := -Wall -Werror -g -fPIC -m32 -arch i386 -CFG_GCCISH_CXXFLAGS_i686-apple-darwin := -fno-rtti -CFG_GCCISH_LINK_FLAGS_i686-apple-darwin := -dynamiclib -lpthread -framework CoreServices -Wl,-no_compact_unwind -m32 -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) -CFG_LIBUV_LINK_FLAGS_i686-apple-darwin = -CFG_EXE_SUFFIX_i686-apple-darwin := -CFG_WINDOWSY_i686-apple-darwin := -CFG_UNIXY_i686-apple-darwin := 1 -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)) - -# arm-unknown-android configuration -CFG_LIB_NAME_arm-unknown-android=lib$(1).so -CFG_LIB_GLOB_arm-unknown-android=lib$(1)-*.so -CFG_LIB_DSYM_GLOB_arm-unknown-android=lib$(1)-*.dylib.dSYM -CFG_GCCISH_CFLAGS_arm-unknown-android := -Wall -g -fPIC -D__arm__ -DANDROID -D__ANDROID__ -CFG_GCCISH_CXXFLAGS_arm-unknown-android := -fno-rtti -CFG_GCCISH_LINK_FLAGS_arm-unknown-android := -shared -fPIC -ldl -g -lm -lsupc++ -lgnustl_shared -CFG_GCCISH_DEF_FLAG_arm-unknown-android := -Wl,--export-dynamic,--dynamic-list= -CFG_GCCISH_PRE_LIB_FLAGS_arm-unknown-android := -Wl,-whole-archive -CFG_GCCISH_POST_LIB_FLAGS_arm-unknown-android := -Wl,-no-whole-archive -Wl,-znoexecstack -CFG_DEF_SUFFIX_arm-unknown-android := .android.def -CFG_INSTALL_NAME_arm-unknown-android = -CFG_LIBUV_LINK_FLAGS_arm-unknown-android = -CFG_GCCISH_CROSS_PREFIX_arm-unknown-android = $(CFG_ANDROID_CROSS_PATH)/bin/arm-linux-androideabi- -CFG_EXE_SUFFIX_arm-unknown-android := -CFG_WINDOWSY_arm-unknown-android := -CFG_UNIXY_arm-unknown-android := 1 -CFG_PATH_MUNGE_arm-unknown-android := true -CFG_LDPATH_arm-unknown-android := -CFG_RUN_arm-unknown-android= -CFG_RUN_TARG_arm-unknown-android= -RUSTC_FLAGS_arm-unknown-android :=--android-cross-path='$(CFG_ANDROID_CROSS_PATH)' - -# i686-pc-mingw32 configuration -CFG_LIB_NAME_i686-pc-mingw32=$(1).dll -CFG_LIB_GLOB_i686-pc-mingw32=$(1)-*.dll -CFG_LIB_DSYM_GLOB_i686-pc-mingw32=$(1)-*.dylib.dSYM -CFG_GCCISH_CFLAGS_i686-pc-mingw32 := -Wall -Werror -g -march=i686 -CFG_GCCISH_CXXFLAGS_i686-pc-mingw32 := -fno-rtti -CFG_GCCISH_LINK_FLAGS_i686-pc-mingw32 := -shared -fPIC -g -CFG_GCCISH_DEF_FLAG_i686-pc-mingw32 := -CFG_GCCISH_PRE_LIB_FLAGS_i686-pc-mingw32 := -CFG_GCCISH_POST_LIB_FLAGS_i686-pc-mingw32 := -CFG_DEF_SUFFIX_i686-pc-mingw32 := .mingw32.def -CFG_INSTALL_NAME_i686-pc-mingw32 = -CFG_LIBUV_LINK_FLAGS_i686-pc-mingw32 := -lWs2_32 -lpsapi -liphlpapi -CFG_EXE_SUFFIX_i686-pc-mingw32 := .exe -CFG_WINDOWSY_i686-pc-mingw32 := 1 -CFG_UNIXY_i686-pc-mingw32 := -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) -CFG_RUN_TARG_i686-pc-mingw32=$(call CFG_RUN_i686-pc-mingw32,$(HLIB$(1)_H_$(CFG_BUILD_TRIPLE)),$(2)) - -# i586-mingw32msvc configuration -CFG_LIB_NAME_i586-mingw32msvc=$(1).dll -CFG_LIB_GLOB_i586-mingw32msvc=$(1)-*.dll -CFG_LIB_DSYM_GLOB_i586-mingw32msvc=$(1)-*.dylib.dSYM -CFG_GCCISH_CFLAGS_i586-mingw32msvc := -Wall -Werror -g -march=586 -m32 -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 = -CFG_LIBUV_LINK_FLAGS_i586-mingw32msvc := -lWs2_32 -lpsapi -liphlpapi -CFG_GCCISH_CROSS_PREFIX_i586-mingw32msvc = $(CFG_MIGW32_CROSS_PATH)/bin/i586-mingw32msvc- -CFG_EXE_SUFFIX_i586-mingw32msvc := .exe -CFG_WINDOWSY_i586-mingw32msvc := 1 -CFG_UNIXY_i586-mingw32msvc := -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= - -# x86_64-unknown-freebsd configuration -CFG_LIB_NAME_x86_64-unknown-freebsd=lib$(1).so -CFG_LIB_GLOB_x86_64-unknown-freebsd=lib$(1)-*.so -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 -CFG_GCCISH_LINK_FLAGS_x86_64-unknown-freebsd := -shared -fPIC -g -lpthread -lrt -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 = -CFG_LIBUV_LINK_FLAGS_x86_64-unknown-freebsd := -lpthread -lkvm -CFG_EXE_SUFFIX_x86_64-unknown-freebsd := -CFG_WINDOWSY_x86_64-unknown-freebsd := -CFG_UNIXY_x86_64-unknown-freebsd := 1 -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)) - # 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*)) @@ -253,6 +79,12 @@ ifneq ($(findstring linux,$(CFG_OSTYPE)),) 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) ifeq ($(origin CC),default) @@ -264,13 +96,6 @@ ifeq ($(CFG_C_COMPILER),clang) ifeq ($(origin CPP),default) CPP=clang endif - CFG_GCCISH_CFLAGS += - CFG_GCCISH_CXXFLAGS += - CFG_GCCISH_LINK_FLAGS += - # 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) - else ifeq ($(CFG_C_COMPILER),gcc) ifeq ($(origin CC),default) @@ -282,82 +107,246 @@ ifeq ($(CFG_C_COMPILER),gcc) ifeq ($(origin CPP),default) CPP=gcc endif - CFG_GCCISH_CFLAGS += - CFG_GCCISH_CXXFLAGS += - CFG_GCCISH_LINK_FLAGS += - # 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) - else CFG_ERR := $(error please try on a system with gcc or clang) endif endif -define CFG_MAKE_CC - ifeq ($$(CFG_BUILD_TRIPLE),$(1)) - - CFG_COMPILE_C_$(1) = $$(CC) \ + +# x86_64-unknown-linux-gnu configuration +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) +CFG_LIB_NAME_x86_64-unknown-linux-gnu=lib$(1).so +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 +CFG_GCCISH_LINK_FLAGS_x86_64-unknown-linux-gnu := -shared -fPIC -ldl -lpthread -lrt -g -m64 +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 +CFG_GCCISH_POST_LIB_FLAGS_x86_64-unknown-linux-gnu := -Wl,-no-whole-archive -Wl,-znoexecstack +CFG_DEF_SUFFIX_x86_64-unknown-linux-gnu := .linux.def +CFG_INSTALL_NAME_x86_64-unknown-linux-gnu = +CFG_LIBUV_LINK_FLAGS_x86_64-unknown-linux-gnu = +CFG_LLVM_BUILD_ENV_x86_64-unknown-linux-gnu="CXXFLAGS=-fno-omit-frame-pointer" +CFG_EXE_SUFFIX_x86_64-unknown-linux-gnu = +CFG_WINDOWSY_x86_64-unknown-linux-gnu := +CFG_UNIXY_x86_64-unknown-linux-gnu := 1 +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)) + +# i686-unknown-linux-gnu configuration +CC_i686-unknown-linux-gnu=$(CC) +CXX_i686-unknown-linux-gnu=$(CXX) +CPP_i686-unknown-linux-gnu=$(CPP) +AR_i686-unknown-linux-gnu=$(AR) +CFG_LIB_NAME_i686-unknown-linux-gnu=lib$(1).so +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 +CFG_GCCISH_LINK_FLAGS_i686-unknown-linux-gnu := -shared -fPIC -ldl -lpthread -lrt -g -m32 +CFG_GCCISH_DEF_FLAG_i686-unknown-linux-gnu := -Wl,--export-dynamic,--dynamic-list= +CFG_GCCISH_PRE_LIB_FLAGS_i686-unknown-linux-gnu := -Wl,-whole-archive +CFG_GCCISH_POST_LIB_FLAGS_i686-unknown-linux-gnu := -Wl,-no-whole-archive -Wl,-znoexecstack +CFG_DEF_SUFFIX_i686-unknown-linux-gnu := .linux.def +CFG_INSTALL_NAME_i686-unknown-linux-gnu = +CFG_LIBUV_LINK_FLAGS_i686-unknown-linux-gnu = +CFG_LLVM_BUILD_ENV_i686-unknown-linux-gnu="CXXFLAGS=-fno-omit-frame-pointer" +CFG_EXE_SUFFIX_i686-unknown-linux-gnu = +CFG_WINDOWSY_i686-unknown-linux-gnu := +CFG_UNIXY_i686-unknown-linux-gnu := 1 +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)) + +# x86_64-apple-darwin configuration +CC_x86_64-apple-darwin=$(CC) +CXX_x86_64-apple-darwin=$(CXX) +CPP_x86_64-apple-darwin=$(CPP) +AR_x86_64-apple-darwin=$(AR) +CFG_LIB_NAME_x86_64-apple-darwin=lib$(1).dylib +CFG_LIB_GLOB_x86_64-apple-darwin=lib$(1)-*.dylib +CFG_LIB_DSYM_GLOB_x86_64-apple-darwin=lib$(1)-*.dylib.dSYM +CFG_GCCISH_CFLAGS_x86_64-apple-darwin := -Wall -Werror -g -fPIC -m64 -arch x86_64 +CFG_GCCISH_CXXFLAGS_x86_64-apple-darwin := -fno-rtti +CFG_GCCISH_LINK_FLAGS_x86_64-apple-darwin := -dynamiclib -lpthread -framework CoreServices -Wl,-no_compact_unwind -m64 +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) +CFG_LIBUV_LINK_FLAGS_x86_64-apple-darwin = +CFG_EXE_SUFFIX_x86_64-apple-darwin := +CFG_WINDOWSY_x86_64-apple-darwin := +CFG_UNIXY_x86_64-apple-darwin := 1 +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)) + +# i686-apple-darwin configuration +CC_i686-apple-darwin=$(CC) +CXX_i686-apple-darwin=$(CXX) +CPP_i686-apple-darwin=$(CPP) +AR_i686-apple-darwin=$(AR) +CFG_LIB_NAME_i686-apple-darwin=lib$(1).dylib +CFG_LIB_GLOB_i686-apple-darwin=lib$(1)-*.dylib +CFG_LIB_DSYM_GLOB_i686-apple-darwin=lib$(1)-*.dylib.dSYM +CFG_GCCISH_CFLAGS_i686-apple-darwin := -Wall -Werror -g -fPIC -m32 -arch i386 +CFG_GCCISH_CXXFLAGS_i686-apple-darwin := -fno-rtti +CFG_GCCISH_LINK_FLAGS_i686-apple-darwin := -dynamiclib -lpthread -framework CoreServices -Wl,-no_compact_unwind -m32 +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) +CFG_LIBUV_LINK_FLAGS_i686-apple-darwin = +CFG_EXE_SUFFIX_i686-apple-darwin := +CFG_WINDOWSY_i686-apple-darwin := +CFG_UNIXY_i686-apple-darwin := 1 +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)) + +# arm-unknown-android configuration +CC_arm-unknown-android=$(CFG_ANDROID_CROSS_PATH)/bin/arm-linux-androideabi-gcc +CXX_arm-unknown-android=$(CFG_ANDROID_CROSS_PATH)/bin/arm-linux-androideabi-g++ +CPP_arm-unknown-android=$(CFG_ANDROID_CROSS_PATH)/bin/arm-linux-androideabi-gcc -E +AR_arm-unknown-android=$(CFG_ANDROID_CROSS_PATH)/bin/arm-linux-androideabi-ar +CFG_LIB_NAME_arm-unknown-android=lib$(1).so +CFG_LIB_GLOB_arm-unknown-android=lib$(1)-*.so +CFG_LIB_DSYM_GLOB_arm-unknown-android=lib$(1)-*.dylib.dSYM +CFG_GCCISH_CFLAGS_arm-unknown-android := -Wall -g -fPIC -D__arm__ -DANDROID -D__ANDROID__ +CFG_GCCISH_CXXFLAGS_arm-unknown-android := -fno-rtti +CFG_GCCISH_LINK_FLAGS_arm-unknown-android := -shared -fPIC -ldl -g -lm -lsupc++ -lgnustl_shared +CFG_GCCISH_DEF_FLAG_arm-unknown-android := -Wl,--export-dynamic,--dynamic-list= +CFG_GCCISH_PRE_LIB_FLAGS_arm-unknown-android := -Wl,-whole-archive +CFG_GCCISH_POST_LIB_FLAGS_arm-unknown-android := -Wl,-no-whole-archive -Wl,-znoexecstack +CFG_DEF_SUFFIX_arm-unknown-android := .android.def +CFG_INSTALL_NAME_arm-unknown-android = +CFG_LIBUV_LINK_FLAGS_arm-unknown-android = +CFG_EXE_SUFFIX_arm-unknown-android := +CFG_WINDOWSY_arm-unknown-android := +CFG_UNIXY_arm-unknown-android := 1 +CFG_PATH_MUNGE_arm-unknown-android := true +CFG_LDPATH_arm-unknown-android := +CFG_RUN_arm-unknown-android= +CFG_RUN_TARG_arm-unknown-android= +RUSTC_FLAGS_arm-unknown-android :=--android-cross-path='$(CFG_ANDROID_CROSS_PATH)' + +# i686-pc-mingw32 configuration +CC_i686-pc-mingw32=$(CC) +CXX_i686-pc-mingw32=$(CXX) +CPP_i686-pc-mingw32=$(CPP) +AR_i686-pc-mingw32=$(AR) +CFG_LIB_NAME_i686-pc-mingw32=$(1).dll +CFG_LIB_GLOB_i686-pc-mingw32=$(1)-*.dll +CFG_LIB_DSYM_GLOB_i686-pc-mingw32=$(1)-*.dylib.dSYM +CFG_GCCISH_CFLAGS_i686-pc-mingw32 := -Wall -Werror -g -march=i686 +CFG_GCCISH_CXXFLAGS_i686-pc-mingw32 := -fno-rtti +CFG_GCCISH_LINK_FLAGS_i686-pc-mingw32 := -shared -fPIC -g +CFG_GCCISH_DEF_FLAG_i686-pc-mingw32 := +CFG_GCCISH_PRE_LIB_FLAGS_i686-pc-mingw32 := +CFG_GCCISH_POST_LIB_FLAGS_i686-pc-mingw32 := +CFG_DEF_SUFFIX_i686-pc-mingw32 := .mingw32.def +CFG_INSTALL_NAME_i686-pc-mingw32 = +CFG_LIBUV_LINK_FLAGS_i686-pc-mingw32 := -lWs2_32 -lpsapi -liphlpapi +CFG_EXE_SUFFIX_i686-pc-mingw32 := .exe +CFG_WINDOWSY_i686-pc-mingw32 := 1 +CFG_UNIXY_i686-pc-mingw32 := +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) +CFG_RUN_TARG_i686-pc-mingw32=$(call CFG_RUN_i686-pc-mingw32,$(HLIB$(1)_H_$(CFG_BUILD_TRIPLE)),$(2)) + +# i586-mingw32msvc configuration +CC_i586-mingw32msvc=$(CC) +CXX_i586-mingw32msvc=$(CXX) +CPP_i586-mingw32msvc=$(CPP) +AR_i586-mingw32msvc=$(AR) +CFG_LIB_NAME_i586-mingw32msvc=$(1).dll +CFG_LIB_GLOB_i586-mingw32msvc=$(1)-*.dll +CFG_LIB_DSYM_GLOB_i586-mingw32msvc=$(1)-*.dylib.dSYM +CFG_GCCISH_CFLAGS_i586-mingw32msvc := -Wall -Werror -g -march=586 -m32 +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 = +CFG_LIBUV_LINK_FLAGS_i586-mingw32msvc := -lWs2_32 -lpsapi -liphlpapi +CFG_EXE_SUFFIX_i586-mingw32msvc := .exe +CFG_WINDOWSY_i586-mingw32msvc := 1 +CFG_UNIXY_i586-mingw32msvc := +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= + +# x86_64-unknown-freebsd configuration +CC_x86_64-unknown-freebsd=$(CC) +CXX_x86_64-unknown-freebsd=$(CXX) +CPP_x86_64-unknown-freebsd=$(CPP) +AR_x86_64-unknown-freebsd=$(AR) +CFG_LIB_NAME_x86_64-unknown-freebsd=lib$(1).so +CFG_LIB_GLOB_x86_64-unknown-freebsd=lib$(1)-*.so +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 +CFG_GCCISH_LINK_FLAGS_x86_64-unknown-freebsd := -shared -fPIC -g -lpthread -lrt +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 = +CFG_LIBUV_LINK_FLAGS_x86_64-unknown-freebsd := -lpthread -lkvm +CFG_EXE_SUFFIX_x86_64-unknown-freebsd := +CFG_WINDOWSY_x86_64-unknown-freebsd := +CFG_UNIXY_x86_64-unknown-freebsd := 1 +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)) + + +define CFG_MAKE_TOOLCHAIN + CFG_COMPILE_C_$(1) = $$(CC_$(1)) \ $$(CFG_GCCISH_CFLAGS) \ $$(CFG_GCCISH_CFLAGS_$(1)) \ $$(CFG_DEPEND_FLAGS) \ -c -o $$(1) $$(2) - CFG_LINK_C_$(1) = $$(CC) \ + CFG_LINK_C_$(1) = $$(CC_$(1)) \ $$(CFG_GCCISH_LINK_FLAGS) -o $$(1) \ $$(CFG_GCCISH_LINK_FLAGS_$(1))) \ $$(CFG_GCCISH_DEF_FLAG_$(1))$$(3) $$(2) \ $$(call CFG_INSTALL_NAME_$(1),$$(4)) - CFG_COMPILE_CXX_$(1) = $$(CXX) \ + CFG_COMPILE_CXX_$(1) = $$(CXX_$(1)) \ $$(CFG_GCCISH_CFLAGS) \ $$(CFG_GCCISH_CXXFLAGS) \ $$(CFG_GCCISH_CFLAGS_$(1)) \ $$(CFG_GCCISH_CXXFLAGS_$(1)) \ $$(CFG_DEPEND_FLAGS) \ -c -o $$(1) $$(2) - CFG_LINK_CXX_$(1) = $$(CXX) \ + CFG_LINK_CXX_$(1) = $$(CXX_$(1)) \ $$(CFG_GCCISH_LINK_FLAGS) -o $$(1) \ $$(CFG_GCCISH_LINK_FLAGS_$(1)) \ $$(CFG_GCCISH_DEF_FLAG_$(1))$$(3) $$(2) \ $$(call CFG_INSTALL_NAME_$(1),$$(4)) - else - - CFG_COMPILE_C_$(1) = $(CFG_GCCISH_CROSS_PREFIX_$(1))$$(CC) \ - $$(CFG_GCCISH_CFLAGS) \ - $$(CFG_GCCISH_CFLAGS_$(1)) \ - $$(CFG_DEPEND_FLAGS) \ - -c -o $$(1) $$(2) - CFG_LINK_C_$(1) = $(CFG_GCCISH_CROSS_PREFIX_$(1))$$(CC) \ - $$(CFG_GCCISH_LINK_FLAGS) -o $$(1) \ - $$(CFG_GCCISH_LINK_FLAGS_$(1))) \ - $$(CFG_GCCISH_DEF_FLAG_$(1))$$(3) $$(2) \ - $$(call CFG_INSTALL_NAME_$(1),$$(4)) - CFG_COMPILE_CXX_$(1) = $(CFG_GCCISH_CROSS_PREFIX_$(1))$$(CXX) \ - $$(CFG_GCCISH_CFLAGS) \ - $$(CFG_GCCISH_CXXFLAGS) \ - $$(CFG_GCCISH_CFLAGS_$(1)) \ - $$(CFG_GCCISH_CXXFLAGS_$(1)) \ - $$(CFG_DEPEND_FLAGS) \ - -c -o $$(1) $$(2) - CFG_LINK_CXX_$(1) = $(CFG_GCCISH_CROSS_PREFIX_$(1))$$(CXX) \ - $$(CFG_GCCISH_LINK_FLAGS) -o $$(1) \ - $$(CFG_GCCISH_LINK_FLAGS_$(1)) \ - $$(CFG_GCCISH_DEF_FLAG_$(1))$$(3) $$(2) \ - $$(call CFG_INSTALL_NAME_$(1),$$(4)) + ifneq ($(1),arm-unknown-android) - endif - -endef - -$(foreach target,$(CFG_TARGET_TRIPLES), \ - $(eval $(call CFG_MAKE_CC,$(target)))) - -# We're using llvm-mc as our assembler because it supports -# .cfi pseudo-ops on mac -define CFG_MAKE_ASSEMBLER - ifeq ($$(CFG_BUILD_TRIPLE),$(1)) - - CFG_ASSEMBLE_$(1)=$$(CPP) -E $$(CFG_DEPEND_FLAGS) $$(2) | \ + # 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) | \ $$(LLVM_MC_$$(CFG_BUILD_TRIPLE)) \ -assemble \ -filetype=obj \ @@ -365,11 +354,13 @@ define CFG_MAKE_ASSEMBLER -o=$$(1) else - CFG_ASSEMBLE_$(1)=$(CFG_GCCISH_CROSS_PREFIX_$(1))$$(CPP) $$(CFG_DEPEND_FLAGS) $$(2) -c -o $$(1) + # For the Android cross, use the Android assembler + # XXX: We should be able to use the LLVM assembler + CFG_ASSEMBLE_$(1)=$$(CXX_$(1)) $$(CFG_DEPEND_FLAGS) $$(2) -c -o $$(1) endif endef $(foreach target,$(CFG_TARGET_TRIPLES),\ - $(eval $(call CFG_MAKE_ASSEMBLER,$(target)))) + $(eval $(call CFG_MAKE_TOOLCHAIN,$(target)))) diff --git a/mk/rt.mk b/mk/rt.mk index de5a5420eea..d104d608e01 100644 --- a/mk/rt.mk +++ b/mk/rt.mk @@ -157,6 +157,7 @@ LIBUV_DEPS := $$(wildcard \ $$(S)src/libuv/*/*/*/*) endif +# XXX: Shouldn't need platform-specific conditions here ifdef CFG_WINDOWSY_$(1) $$(LIBUV_LIB_$(1)): $$(LIBUV_DEPS) $$(Q)$$(MAKE) -C $$(S)src/libuv/ \ @@ -168,9 +169,9 @@ $$(LIBUV_LIB_$(1)): $$(LIBUV_DEPS) $$(Q)$$(MAKE) -C $$(S)src/libuv/ \ CFLAGS="$$(LIBUV_FLAGS_$$(HOST_$(1))) $$(SNAP_DEFINES)" \ LDFLAGS="$$(LIBUV_FLAGS_$$(HOST_$(1)))" \ - CC="$$(CFG_GCCISH_CROSS_PREFIX_$(1))$$(CC)" \ - CXX="$$(CFG_GCCISH_CROSS_PREFIX_$(1))$$(CXX)" \ - AR="$$(CFG_GCCISH_CROSS_PREFIX_$(1))$$(AR)" \ + CC="$$(CC_$(1))" \ + CXX="$$(CXX_$(1))" \ + AR="$$(AR_$(1))" \ BUILDTYPE=Release \ builddir_name="$$(CFG_BUILD_DIR)/rt/$(1)/libuv" \ host=android OS=linux \