aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKeegan McAllister <kmcallister@mozilla.com>2013-11-04 13:03:42 -0800
committerKeegan McAllister <kmcallister@mozilla.com>2013-11-14 11:21:08 +0900
commitdb6d25ff13bb9a55e6e88b10c8abced77d6bb132 (patch)
tree1945e7886dda2df64be66ed9b597c6c5c7a66ead
parent4eb84496211bb48d2804a0ddcd16849536546103 (diff)
downloadservo-db6d25ff13bb9a55e6e88b10c8abced77d6bb132.tar.gz
servo-db6d25ff13bb9a55e6e88b10c8abced77d6bb132.zip
Build some dependencies with rustpkg
Also take a rust-layers bugfix. In collaboration with Jack Moffitt.
-rw-r--r--Makefile.in88
-rwxr-xr-xconfigure29
-rw-r--r--mk/rustpkg.mk24
-rw-r--r--src/components/gfx/gfx.rc10
-rw-r--r--src/components/gfx/platform/macos/font.rs6
-rwxr-xr-xsrc/components/main/servo.rc13
-rw-r--r--src/components/msg/msg.rc8
-rw-r--r--src/components/net/net.rc2
-rw-r--r--src/components/script/script.rc2
-rw-r--r--src/components/util/util.rc2
m---------src/platform/linux/rust-xlib0
m---------src/platform/macos/rust-core-foundation0
m---------src/platform/macos/rust-core-graphics0
m---------src/platform/macos/rust-core-text0
m---------src/platform/macos/rust-io-surface0
m---------src/support/azure/rust-azure0
m---------src/support/geom/rust-geom0
m---------src/support/glut/rust-glut0
m---------src/support/layers/rust-layers0
m---------src/support/opengles/rust-opengles0
m---------src/support/sharegl/sharegl0
21 files changed, 119 insertions, 65 deletions
diff --git a/Makefile.in b/Makefile.in
index 9bf8fe98b48..48a12933105 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -116,11 +116,15 @@ rust: $(CFG_RUSTC)
# Strip off submodule paths to determine "raw" submodule names.
SUBMODULES=$(shell echo $(CFG_SUBMODULES) | perl -p -e 's![A-Za-z0-9_-]+/!!g')
+SUBMODULES_RUSTPKG=$(shell echo $(CFG_SUBMODULES_RUSTPKG) | perl -p -e 's![A-Za-z0-9_-]+/!!g')
-# Define e.g. PATH_rust-io-surface = platform/macos/rust-io-surface
+# Define e.g. PATH_skia = support/skia/skia
$(foreach submodule,$(CFG_SUBMODULES),\
$(eval PATH_$(shell echo $(submodule) | perl -p -e 's![A-Za-z0-9_-]+/!!g') = $(submodule)))
+$(foreach submodule,$(CFG_SUBMODULES_RUSTPKG),\
+$(eval PATH_$(shell echo $(submodule) | perl -p -e 's![A-Za-z0-9_-]+/!!g') = $(submodule)))
+
define DEF_SUBMODULE_VARS
#defaults
@@ -128,7 +132,7 @@ DEPS_$(1) =
CFLAGS_$(1) = -O2
#if global cflags set, inherit that
-ifneq ($$(CFLAGS),)
+ifdef CFLAGS
CFLAGS_$(1) = $$(CFLAGS)
endif
@@ -142,37 +146,49 @@ DEPS_SUBMODULES += $$(PATH_$(1))/.libs
DEPS_SUBMODULES += $$(PATH_$(1))/src/.libs
endef
+DEPS_RUSTPKG = $(CFG_BUILD_HOME)workspace/lib/$(CFG_TARGET_TRIPLES)
+
# these will get populated.
DEPS_SUBMODULES =
$(foreach submodule,$(SUBMODULES),\
$(eval $(call DEF_SUBMODULE_VARS,$(submodule))))
+$(foreach submodule,$(SUBMODULES_RUSTPKG),\
+$(eval DONE_$(submodule) = $(DEPS_RUSTPKG)/lib$(submodule)*))
+
+# Handle rust submodule vars specially
+DONE_rust = $(CFG_RUSTC)
+
# include submodule dependencies configuration
include $(S)mk/sub.mk
+# Define how to compute approximate submodule dependencies.
+# TODO: this may be a bit brutish, but is there a better way?
+define DEF_SUBMODULE_DEPS
+ROUGH_DEPS_$(1)=$$(call rwildcard,$$(S)src/$$(PATH_$(1)),*h *c *cpp *rs *rc)
+DONE_DEPS_$(1)=$$(foreach dep,$$(DEPS_$(1)),$$(DONE_$$(dep)))
+# the main target for a submodule
+endef
+
# Define how to make submodule targets
define DEF_SUBMODULE_RULES
-ENV_RLDFLAGS_$(1) = $$(foreach dep,$$(DEPS_$(1)),-L $$(B)src/$$(PATH_$$(dep)) -L $$(B)src/$$(PATH_$$(dep))/.libs -L $$(B)src/$$(PATH_$$(dep))/src/.libs)
+ENV_RLDFLAGS_$(1) = -L $$(CFG_BUILD_HOME)workspace/lib/$$(CFG_TARGET_TRIPLES)
+ENV_RLDFLAGS_$(1) += $$(foreach dep,$$(DEPS_$(1)),-L $$(B)src/$$(PATH_$$(dep)) -L $$(B)src/$$(PATH_$$(dep))/.libs -L $$(B)src/$$(PATH_$$(dep))/src/.libs)
# variables that depend on dependency definitions from sub.mk!
ENV_CFLAGS_$(1) = CFLAGS="$$(CFLAGS_$(1))"
ENV_RFLAGS_$(1) = RUSTFLAGS="$$(strip $$(CFG_RUSTC_FLAGS)) $$(ENV_RLDFLAGS_$(1))"
-# use a rough approximation of submodule dependencies to trigger calling submodule make
-# whenever a submodule changes
-# TODO: this may be a bit brutish, but is there a better way?
-ROUGH_DEPS_$(1)=$$(call rwildcard,$$(S)src/$$(PATH_$(1)),*h *c *cpp *rs *rc)
-DONE_DEPS_$(1)=$$(foreach dep,$$(DEPS_$(1)),$$(DONE_$$(dep)))
-# the main target for a submodule
-# --
-
# Native builds do not depend on the rust compiler, so we can build them in parallel with rustc
+RUSTC_DEP_$(1)=
ifneq "$$(filter $(1),$$(NATIVE_BUILDS))" "$(1)"
RUSTC_DEP_$(1)=$$(CFG_RUSTC)
endif
+$(eval $(call DEF_SUBMODULE_DEPS,$(1)))
+
$$(DONE_$(1)) : $$(DONE_DEPS_$(1)) $$(ROUGH_DEPS_$(1)) $$(RUSTC_DEP_$(1))
# @$$(call E, make: $(1))
# @$$(call E, $(1) deps= $$(DEPS_$(1)))
@@ -180,7 +196,6 @@ $$(DONE_$(1)) : $$(DONE_DEPS_$(1)) $$(ROUGH_DEPS_$(1)) $$(RUSTC_DEP_$(1))
# @$$(call E, $(1) cflags= $$(ENV_CFLAGS_$(1)))
# @$$(call E, $(1) cxxflags= $$(ENV_CXXFLAGS_$(1)))
# @$$(call E, $(1) rflags= $$(ENV_RFLAGS_$(1)))
-
$$(Q) \
$$(ENV_CFLAGS_$(1)) \
$$(ENV_CXXFLAGS_$(1)) \
@@ -195,46 +210,53 @@ endef
$(foreach submodule,$(SUBMODULES),\
$(eval $(call DEF_SUBMODULE_RULES,$(submodule))))
+# include rustpkg rules
+include $(S)mk/rustpkg.mk
+
+$(foreach submodule,$(SUBMODULES_RUSTPKG),\
+$(eval $(call DEF_SUBMODULE_RUSTPKG_RULES,$(submodule))))
+
DONE_SUBMODULES = $(foreach submodule,$(SUBMODULES),$(DONE_$(submodule)))
+DONE_SUBMODULES_RUSTPKG = $(foreach submodule,$(SUBMODULES_RUSTPKG),$(DONE_$(submodule)))
-RFLAGS_util = $(strip $(CFG_RUSTC_FLAGS)) $(addprefix -L $(B)src/,$(DEPS_SUBMODULES))
+RFLAGS_util = $(strip $(CFG_RUSTC_FLAGS)) $(addprefix -L $(B)src/,$(DEPS_SUBMODULES)) -L $(DEPS_RUSTPKG)
SRC_util = $(call rwildcard,$(S)src/components/util/,*.rs)
CRATE_util = $(S)src/components/util/util.rc
DONE_util = $(B)src/components/util/libutil.dummy
-DEPS_util = $(CRATE_util) $(SRC_util) $(DONE_SUBMODULES)
+DEPS_util = $(CRATE_util) $(SRC_util) $(DONE_SUBMODULES) $(DONE_SUBMODULES_RUSTPKG) | $(SUBMODULES_RUSTPKG)
-RFLAGS_net = $(strip $(CFG_RUSTC_FLAGS)) $(addprefix -L $(B)src/,$(DEPS_SUBMODULES)) -L $(B)src/components/util
+RFLAGS_net = $(strip $(CFG_RUSTC_FLAGS)) $(addprefix -L $(B)src/,$(DEPS_SUBMODULES)) -L $(B)src/components/util -L $(DEPS_RUSTPKG)
SRC_net = $(call rwildcard,$(S)src/components/net/,*.rs)
CRATE_net = $(S)src/components/net/net.rc
DONE_net = $(B)src/components/net/libnet.dummy
-DEPS_net = $(CRATE_net) $(SRC_net) $(DONE_SUBMODULES) $(DONE_util)
+DEPS_net = $(CRATE_net) $(SRC_net) $(DONE_SUBMODULES) $(DONE_util) $(DONE_SUBMODULES_RUSTPKG) | $(SUBMODULES_RUSTPKG)
-RFLAGS_msg = $(strip $(CFG_RUSTC_FLAGS)) $(addprefix -L $(B)src/,$(DEPS_SUBMODULES))
+RFLAGS_msg = $(strip $(CFG_RUSTC_FLAGS)) $(addprefix -L $(B)src/,$(DEPS_SUBMODULES)) -L $(DEPS_RUSTPKG)
SRC_msg = $(call rwildcard,$(S)src/components/msg/,*.rs)
CRATE_msg = $(S)src/components/msg/msg.rc
DONE_msg = $(B)src/components/msg/libmsg.dummy
-DEPS_msg = $(CRATE_msg) $(SRC_msg) $(DONE_SUBMODULES)
+DEPS_msg = $(CRATE_msg) $(SRC_msg) $(DONE_SUBMODULES) $(DONE_SUBMODULES_RUSTPKG) | $(SUBMODULES_RUSTPKG)
-RFLAGS_gfx = $(strip $(CFG_RUSTC_FLAGS)) $(addprefix -L $(B)src/,$(DEPS_SUBMODULES)) -L $(B)src/components/util -L $(B)src/components/style -L $(B)src/components/net -L $(B)src/components/msg
+RFLAGS_gfx = $(strip $(CFG_RUSTC_FLAGS)) $(addprefix -L $(B)src/,$(DEPS_SUBMODULES)) -L $(B)src/components/util -L $(B)src/components/style -L $(B)src/components/net -L $(B)src/components/msg -L $(DEPS_RUSTPKG)
SRC_gfx = $(call rwildcard,$(S)src/components/gfx/,*.rs)
CRATE_gfx = $(S)src/components/gfx/gfx.rc
DONE_gfx = $(B)src/components/gfx/libgfx.dummy
-DEPS_gfx = $(CRATE_gfx) $(SRC_gfx) $(DONE_SUBMODULES) $(DONE_util) $(DONE_style) $(DONE_net) $(DONE_msg)
+DEPS_gfx = $(CRATE_gfx) $(SRC_gfx) $(DONE_SUBMODULES) $(DONE_util) $(DONE_style) $(DONE_net) $(DONE_msg) $(DONE_SUBMODULES_RUSTPKG) | $(SUBMODULES_RUSTPKG)
-RFLAGS_script = $(strip $(CFG_RUSTC_FLAGS)) $(addprefix -L $(B)src/,$(DEPS_SUBMODULES)) -L $(B)src/components/util -L $(B)src/components/style -L $(B)src/components/net -L $(B)src/components/msg
+RFLAGS_script = $(strip $(CFG_RUSTC_FLAGS)) $(addprefix -L $(B)src/,$(DEPS_SUBMODULES)) -L $(B)src/components/util -L $(B)src/components/style -L $(B)src/components/net -L $(B)src/components/msg -L $(DEPS_RUSTPKG)
WEBIDL_script = $(call rwildcard,$(S)src/components/script/,*.webidl)
AUTOGEN_SRC_script = $(patsubst %.webidl, %Binding.rs, $(WEBIDL_script))
SRC_script = $(call rwildcard,$(S)src/components/script/,*.rs) $(AUTOGEN_SRC_script)
CRATE_script = $(S)src/components/script/script.rc
DONE_script = $(B)src/components/script/libscript.dummy
-DEPS_script = $(CRATE_script) $(SRC_script) $(DONE_SUBMODULES) $(DONE_util) $(DONE_style) $(DONE_net) $(DONE_msg)
+DEPS_script = $(CRATE_script) $(SRC_script) $(DONE_SUBMODULES) $(DONE_util) $(DONE_style) $(DONE_net) $(DONE_msg) $(DONE_SUBMODULES_RUSTPKG) | $(SUBMODULES_RUSTPKG)
-RFLAGS_style = $(strip $(CFG_RUSTC_FLAGS)) $(addprefix -L $(B)src/,$(DEPS_SUBMODULES)) -L $(B)src/components/util
+RFLAGS_style = $(strip $(CFG_RUSTC_FLAGS)) $(addprefix -L $(B)src/,$(DEPS_SUBMODULES)) -L $(B)src/components/util -L $(DEPS_RUSTPKG)
MAKO_ZIP = $(S)src/components/style/Mako-0.8.1.zip
MAKO_style = $(S)src/components/style/properties.rs
MAKO_SRC_style = $(MAKO_style).mako
@@ -242,14 +264,21 @@ SRC_style = $(call rwildcard,$(S)src/components/style/,*.rs) $(MAKO_style)
CRATE_style = $(S)src/components/style/style.rc
DONE_style = $(B)src/components/style/libstyle.dummy
-DEPS_style = $(CRATE_style) $(SRC_style) $(DONE_SUBMODULES) $(DONE_util)
+DEPS_style = $(CRATE_style) $(SRC_style) $(DONE_SUBMODULES) $(DONE_util) | $(SUBMODULES_RUSTPKG)
-RFLAGS_servo = $(strip $(CFG_RUSTC_FLAGS)) $(addprefix -L $(B)src/,$(DEPS_SUBMODULES)) -L $(B)src/components/gfx -L $(B)src/components/util -L $(B)src/components/net -L $(B)src/components/script -L $(B)src/components/style -L $(B)src/components/msg
+RFLAGS_servo = $(strip $(CFG_RUSTC_FLAGS)) $(addprefix -L $(B)src/,$(DEPS_SUBMODULES)) -L $(B)src/components/gfx -L $(B)src/components/util -L $(B)src/components/net -L $(B)src/components/script -L $(B)src/components/style -L $(B)src/components/msg -L $(DEPS_RUSTPKG)
SRC_servo = $(call rwildcard,$(S)src/components/main/,*.rs)
CRATE_servo = $(S)src/components/main/servo.rc
-DEPS_servo = $(CRATE_servo) $(SRC_servo) $(DONE_SUBMODULES) $(DONE_util) $(DONE_gfx) $(DONE_script) $(DONE_style) $(DONE_net) $(DONE_msg)
+DEPS_servo = $(CRATE_servo) $(SRC_servo) $(DONE_SUBMODULES) $(DONE_util) $(DONE_gfx) $(DONE_script) $(DONE_net) $(DONE_msg) $(DONE_style) $(DONE_SUBMODULES_RUSTPKG) | $(SUBMODULES_RUSTPKG)
+
+SERVO_LIB_CRATES = util net msg gfx script style
+
+# rules that depend on having correct meta-target vars (DEPS_CLEAN, DEPS_servo, etc)
+# and SERVO_LIB_CRATES
+include $(S)mk/check.mk
+include $(S)mk/clean.mk
.DEFAULT_GOAL := all
.PHONY: all
@@ -257,8 +286,6 @@ all: servo
# Servo helper libraries
-SERVO_LIB_CRATES = util net msg gfx script style
-
define DEF_LIB_CRATE_RULES
$$(DONE_$(1)): $$(DEPS_$(1))
@$$(call E, compile: $$@)
@@ -268,11 +295,6 @@ endef
$(foreach lib_crate,$(SERVO_LIB_CRATES),\
$(eval $(call DEF_LIB_CRATE_RULES,$(lib_crate))))
-# rules that depend on having correct meta-target vars (DEPS_CLEAN, DEPS_servo, etc)
-# and SERVO_LIB_CRATES
-include $(S)mk/check.mk
-include $(S)mk/clean.mk
-
BINDINGS_SRC = $(S)/src/components/script/dom/bindings/codegen
CACHE_DIR = $(BINDINGS_SRC)/_cache
diff --git a/configure b/configure
index 606bb5a1a8d..f3434821052 100755
--- a/configure
+++ b/configure
@@ -394,6 +394,7 @@ probe CFG_CLANG clang++
CFG_BUILD_DIR="${CFG_BUILD_HOME}${CFG_TARGET_TRIPLES}/"
make_dir "${CFG_BUILD_DIR}"
+make_dir "${CFG_BUILD_HOME}/workspace/src"
if [ ! -z "$CFG_LOCAL_RUST_ROOT" ]
then
@@ -402,6 +403,7 @@ then
LRV=`${CFG_LOCAL_RUST_ROOT}/bin/rustc --version`
step_msg "using rustc at: ${CFG_LOCAL_RUST_ROOT} with version: $LRV"
CFG_RUSTC=${CFG_LOCAL_RUST_ROOT}/bin/rustc
+ CFG_RUSTPKG=${CFG_LOCAL_RUST_ROOT}/bin/rustpkg
CFG_RUST_HOME=${CFG_LOCAL_RUST_ROOT}
CFG_LOCAL_RUSTC=1
else
@@ -411,6 +413,7 @@ else
step_msg "using in-tree rust compiler"
# The Rust compiler we're going to build
CFG_RUSTC="${CFG_BUILD_DIR}src/compiler/rust/${DEFAULT_TARGET_TRIPLE}/stage2/bin/rustc"
+ CFG_RUSTPKG="${CFG_BUILD_DIR}src/compiler/rust/${DEFAULT_TARGET_TRIPLE}/stage2/bin/rustpkg"
CFG_RUST_HOME="${CFG_BUILD_DIR}src/compiler/rust/${DEFAULT_TARGET_TRIPLE}/stage2"
fi
@@ -477,21 +480,23 @@ then
done
fi
+CFG_SUBMODULES_RUSTPKG="\
+ support/geom/rust-geom \
+ support/layers/rust-layers \
+ support/opengles/rust-opengles \
+ support/sharegl/sharegl"
+
CFG_SUBMODULES="\
support/alert/rust-alert \
support/azure/rust-azure \
support/css/rust-cssparser \
- support/geom/rust-geom \
support/harfbuzz/rust-harfbuzz \
support/http/rust-http \
support/hubbub/libhubbub \
support/hubbub/rust-hubbub \
- support/layers/rust-layers \
support/libparserutils/libparserutils \
support/nss/nspr \
support/nss/nss \
- support/opengles/rust-opengles \
- support/sharegl/sharegl \
support/skia/skia \
support/spidermonkey/mozjs \
support/spidermonkey/rust-mozjs \
@@ -501,25 +506,29 @@ CFG_SUBMODULES="\
if [ $CFG_OSTYPE = "apple-darwin" ]
then
-CFG_SUBMODULES="\
- support/glfw/glfw \
- support/glfw/glfw-rs \
- platform/macos/rust-cocoa \
+CFG_SUBMODULES_RUSTPKG="\
platform/macos/rust-core-foundation \
platform/macos/rust-core-graphics \
platform/macos/rust-core-text \
platform/macos/rust-io-surface \
+ ${CFG_SUBMODULES_RUSTPKG}"
+CFG_SUBMODULES="\
+ support/glfw/glfw \
+ support/glfw/glfw-rs \
+ platform/macos/rust-cocoa \
${CFG_SUBMODULES}"
fi
if [ $CFG_OSTYPE = "unknown-linux-gnu" ]
then
+CFG_SUBMODULES_RUSTPKG="\
+ platform/linux/rust-xlib \
+ ${CFG_SUBMODULES_RUSTPKG}"
CFG_SUBMODULES="\
support/glfw/glfw \
support/glfw/glfw-rs \
platform/linux/rust-fontconfig \
platform/linux/rust-freetype \
- platform/linux/rust-xlib \
${CFG_SUBMODULES}"
fi
@@ -545,8 +554,10 @@ putvar CFG_BUILD_HOME
putvar CFG_BUILD_DIR
putvar CFG_CONFIGURE_ARGS
putvar CFG_SUBMODULES
+putvar CFG_SUBMODULES_RUSTPKG
putvar CFG_DISABLE_MANAGE_SUBMODULES
putvar CFG_RUSTC
+putvar CFG_RUSTPKG
putvar CFG_RUSTC_FLAGS
putvar CFG_RUST_HOME
putvar CFG_PATH
diff --git a/mk/rustpkg.mk b/mk/rustpkg.mk
new file mode 100644
index 00000000000..3fd90d878a8
--- /dev/null
+++ b/mk/rustpkg.mk
@@ -0,0 +1,24 @@
+EMPTY=
+SPACE=$(EMPTY) $(EMPTY)
+
+define DEF_SUBMODULE_RUSTPKG_RULES
+
+$(eval $(call DEF_SUBMODULE_DEPS,$(1)))
+
+$(1) : $$(DONE_$(1))
+.PHONY : $(1)
+
+DO_CLEAN_$(1) = rm -rf $$(DONE_$(1)) $(CFG_BUILD_HOME)/workspace/build/$(CFG_TARGET_TRIPLES)/$(1)
+
+clean-$(1) :
+ $$(Q) $$(DO_CLEAN_$(1))
+.PHONY : clean-$(1)
+
+# Need to clean otherwise rustpkg won't rebuild.
+$$(DONE_$(1)) : $$(DONE_rust) $$(DONE_DEPS_$(1)) $$(ROUGH_DEPS_$(1))
+ $$(Q) $$(DO_CLEAN_$(1))
+ $$(Q) RUST_PATH=$(CFG_BUILD_HOME)workspace:$(subst $(SPACE),:,$(foreach submodule,$(strip $(CFG_SUBMODULES_RUSTPKG)),$(S)src/$(submodule))) \
+ $(CFG_RUSTPKG) --rust-path-hack install $(CFG_RUSTC_FLAGS) $(1)
+
+endef
+
diff --git a/src/components/gfx/gfx.rc b/src/components/gfx/gfx.rc
index e803ccd2192..4e882ba57b4 100644
--- a/src/components/gfx/gfx.rc
+++ b/src/components/gfx/gfx.rc
@@ -12,8 +12,8 @@
extern mod azure;
extern mod extra;
-extern mod geom;
-extern mod layers;
+extern mod geom = "rust-geom";
+extern mod layers = "rust-layers";
extern mod stb_image;
extern mod servo_net (name = "net");
extern mod servo_util (name = "util");
@@ -29,9 +29,9 @@ extern mod harfbuzz;
#[cfg(target_os="linux")] #[cfg(target_os="android")] extern mod freetype;
// Mac OS-specific library dependencies
-#[cfg(target_os="macos")] extern mod core_foundation;
-#[cfg(target_os="macos")] extern mod core_graphics;
-#[cfg(target_os="macos")] extern mod core_text;
+#[cfg(target_os="macos")] extern mod core_foundation = "rust-core-foundation";
+#[cfg(target_os="macos")] extern mod core_graphics = "rust-core-graphics";
+#[cfg(target_os="macos")] extern mod core_text = "rust-core-text";
pub use gfx_font = font;
pub use gfx_font_context = font_context;
diff --git a/src/components/gfx/platform/macos/font.rs b/src/components/gfx/platform/macos/font.rs
index 9705bb29822..885f35ecf04 100644
--- a/src/components/gfx/platform/macos/font.rs
+++ b/src/components/gfx/platform/macos/font.rs
@@ -4,9 +4,9 @@
/// Implementation of Quartz (CoreGraphics) fonts.
-extern mod core_foundation;
-extern mod core_graphics;
-extern mod core_text;
+extern mod core_foundation = "rust-core-foundation";
+extern mod core_graphics = "rust-core-graphics";
+extern mod core_text = "rust-core-text";
use font::{CSSFontWeight, FontHandleMethods, FontMetrics, FontTableMethods};
use font::{FontTableTag, FontWeight100, FontWeight200, FontWeight300, FontWeight400};
diff --git a/src/components/main/servo.rc b/src/components/main/servo.rc
index 268878167b0..86ce01ea634 100755
--- a/src/components/main/servo.rc
+++ b/src/components/main/servo.rc
@@ -15,16 +15,15 @@
extern mod alert;
extern mod azure;
-extern mod geom;
+extern mod geom = "rust-geom";
extern mod gfx (name = "gfx");
#[cfg(not(target_os="android"))]
extern mod glfw;
-//extern mod http_client;
#[cfg(target_os="android")]
extern mod glut;
extern mod js;
-extern mod layers;
-extern mod opengles;
+extern mod layers = "rust-layers";
+extern mod opengles = "rust-opengles";
extern mod png;
extern mod script;
extern mod servo_net (name = "net");
@@ -36,11 +35,9 @@ extern mod stb_image;
extern mod extra;
#[cfg(target_os="macos")]
-extern mod core_graphics;
+extern mod core_graphics = "rust-core-graphics";
#[cfg(target_os="macos")]
-extern mod core_text;
-#[cfg(target_os="macos")]
-extern mod io_surface;
+extern mod core_text = "rust-core-text";
use compositing::{CompositorChan, CompositorTask};
use constellation::Constellation;
diff --git a/src/components/msg/msg.rc b/src/components/msg/msg.rc
index 3811f5bffa7..2cef8db14a2 100644
--- a/src/components/msg/msg.rc
+++ b/src/components/msg/msg.rc
@@ -10,14 +10,14 @@
extern mod azure;
extern mod extra;
-extern mod geom;
-extern mod layers;
+extern mod geom = "rust-geom";
+extern mod layers = "rust-layers";
extern mod std;
#[cfg(target_os="macos")]
-extern mod core_foundation;
+extern mod core_foundation = "rust-core-foundation";
#[cfg(target_os="macos")]
-extern mod io_surface;
+extern mod io_surface = "rust-io-surface";
pub mod compositor_msg;
pub mod constellation_msg;
diff --git a/src/components/net/net.rc b/src/components/net/net.rc
index b8df8855e31..677448b5be6 100644
--- a/src/components/net/net.rc
+++ b/src/components/net/net.rc
@@ -10,7 +10,7 @@
#[feature(globs, managed_boxes)];
-extern mod geom;
+extern mod geom = "rust-geom";
extern mod http;
extern mod servo_util (name = "util");
extern mod stb_image;
diff --git a/src/components/script/script.rc b/src/components/script/script.rc
index a2dee9a6943..874d8b1879c 100644
--- a/src/components/script/script.rc
+++ b/src/components/script/script.rc
@@ -13,7 +13,7 @@
#[feature(globs, macro_rules, struct_variant, managed_boxes)];
-extern mod geom;
+extern mod geom = "rust-geom";
extern mod hubbub;
extern mod js;
extern mod servo_net (name = "net");
diff --git a/src/components/util/util.rc b/src/components/util/util.rc
index fd2110c839e..5a7fddbb51f 100644
--- a/src/components/util/util.rc
+++ b/src/components/util/util.rc
@@ -11,7 +11,7 @@
#[feature(macro_rules, managed_boxes)];
extern mod extra;
-extern mod geom;
+extern mod geom = "rust-geom";
pub mod cache;
pub mod geometry;
diff --git a/src/platform/linux/rust-xlib b/src/platform/linux/rust-xlib
-Subproject 71ca7ff52c7f342c95608c00bb0823aa8f39cd3
+Subproject 4466b6fb89ffd45222176d9381c19aa474ef8a3
diff --git a/src/platform/macos/rust-core-foundation b/src/platform/macos/rust-core-foundation
-Subproject b5ddb54271a9f783dce5c966cc2a39f0e52b1e6
+Subproject a137ef84403e16ec877db5dedd8bcc8bd1fee0e
diff --git a/src/platform/macos/rust-core-graphics b/src/platform/macos/rust-core-graphics
-Subproject 747fb760771f07038267ae842a6fa1cb3558642
+Subproject aae5ab44ae0f00846e86d705996d423c4a33da1
diff --git a/src/platform/macos/rust-core-text b/src/platform/macos/rust-core-text
-Subproject 63982184a34edfbf70d436cc6a37b325b4c7a82
+Subproject 7a05b0f77c92809d2d3bca00ab7d1264fc25b4d
diff --git a/src/platform/macos/rust-io-surface b/src/platform/macos/rust-io-surface
-Subproject a4bd491ddfd5d17bdcb228cf515cce776e2b823
+Subproject cc6dd5ed3eafe81bd5924ac9bbffb004479510c
diff --git a/src/support/azure/rust-azure b/src/support/azure/rust-azure
-Subproject 10aee62cc9f7b47b57fb56acc760af93e4e4800
+Subproject 13fbdbeddfccbc3e451fa9ae47f334f4f626a05
diff --git a/src/support/geom/rust-geom b/src/support/geom/rust-geom
-Subproject 7fa173a07414f4e1bcf3419079d5b812195acc2
+Subproject 83f47c9b3129fed40ae9680d84dade478f33174
diff --git a/src/support/glut/rust-glut b/src/support/glut/rust-glut
-Subproject 2550ff84238a9b063a920eb41766f84062593b5
+Subproject 3626d203319a4d12ac68fecee11e18850e180e7
diff --git a/src/support/layers/rust-layers b/src/support/layers/rust-layers
-Subproject d2cde75d928572e665942732f0cad4a35faf418
+Subproject c86eaa809c906d70aef4f3af0ac9f7377cc8e8c
diff --git a/src/support/opengles/rust-opengles b/src/support/opengles/rust-opengles
-Subproject 90152e93e0277106e7a21dd2c5cc287efe0da05
+Subproject a67923a8f6e979f4839178712182f47ffa0033a
diff --git a/src/support/sharegl/sharegl b/src/support/sharegl/sharegl
-Subproject 1867a2b938f459815935c099d3aa88eac594fd3
+Subproject 734601de97d4498b02a765ee4057217c55404e2