about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--mk/platform.mk2
-rw-r--r--mk/rt.mk9
2 files changed, 8 insertions, 3 deletions
diff --git a/mk/platform.mk b/mk/platform.mk
index 5f5c01616ef..09d6f561dcb 100644
--- a/mk/platform.mk
+++ b/mk/platform.mk
@@ -84,6 +84,7 @@ ifdef CFG_UNIXY
   CFG_RUN_TARG=$(call CFG_RUN,$(CFG_BUILD_DIR)/$(1),$(2))
   CFG_RUN_TEST=$(call CFG_RUN,$(call CFG_TESTLIB,$(1)),\
       $(CFG_VALGRIND) $(1))
+  CFG_LIBUV_LINK_FLAGS=-lpthread
 
   ifdef CFG_ENABLE_MINGW_CROSS
     CFG_WINDOWSY := 1
@@ -123,6 +124,7 @@ ifdef CFG_WINDOWSY
   CFG_RUN=PATH="$(CFG_LDPATH):$(1)" $(2)
   CFG_RUN_TARG=$(call CFG_RUN,,$(2))
   CFG_RUN_TEST=$(call CFG_RUN,$(call CFG_TESTLIB,$(1)),$(1))
+  CFG_LIBUV_LINK_FLAGS=-lWs2_32
 
   ifndef CFG_ENABLE_MINGW_CROSS
     CFG_PATH_MUNGE := $(strip perl -i.bak -p             \
diff --git a/mk/rt.mk b/mk/rt.mk
index 7a8ba07b051..e8e9af09286 100644
--- a/mk/rt.mk
+++ b/mk/rt.mk
@@ -70,7 +70,6 @@ RUNTIME_INCS := -I $(S)src/rt/isaac -I $(S)src/rt/uthash \
 RUNTIME_OBJS := $(RUNTIME_CS:.cpp=.o) $(RUNTIME_LL:.ll=.o) $(RUNTIME_S:.s=.o)
 RUNTIME_LIBS := $(S)src/rt/libuv/uv.a
 
-
 rt/%.o: rt/%.cpp $(MKFILES)
 	@$(call E, compile: $@)
 	$(Q)$(call CFG_COMPILE_C, $@, $(RUNTIME_INCS)) $<
@@ -96,10 +95,14 @@ rt/%.o: rt/%.ll $(MKFILES)
 rt/$(CFG_RUNTIME): $(RUNTIME_OBJS) $(MKFILES) $(RUNTIME_HDR) $(RUNTIME_DEF) $(RUNTIME_LIBS)
 	@$(call E, link: $@)
 	$(Q)$(call CFG_LINK_C,$@, $(RUNTIME_OBJS) \
-	  $(CFG_GCCISH_POST_LIB_FLAGS) $(RUNTIME_LIBS) -lpthread,$(RUNTIME_DEF))
+	  $(CFG_GCCISH_POST_LIB_FLAGS) $(RUNTIME_LIBS) \
+	  $(CFG_LIBUV_LINK_FLAGS),$(RUNTIME_DEF))
 
+# FIXME: For some reason libuv's makefiles can't figure out the correct definition
+# of CC on the mingw I'm using, so we are explicitly using gcc. Also, we
+# have to list environment variables first on windows... mysterious
 $(S)src/rt/libuv/uv.a: $(S)src/rt/libuv/LIBUV_REVISION
-	$(Q)$(MAKE) -C $(S)src/rt/libuv CFLAGS=\"-m32\" LDFLAGS=\"-m32\"
+	$(Q)CFLAGS=\"-m32\" LDFLAGS=\"-m32\" CC=gcc $(MAKE) -C $(S)src/rt/libuv
 	$(Q)mkdir -p rt/libuv
 	$(Q)cp $(S)src/rt/libuv/uv.a rt/libuv/uv.a