Index: otp/erts/emulator/pcre/pcre.mk =================================================================== --- otp.orig/erts/emulator/pcre/pcre.mk 2011-12-17 16:11:53.000000000 +0200 +++ otp/erts/emulator/pcre/pcre.mk 2011-12-17 16:12:58.000000000 +0200 @@ -50,8 +50,14 @@ PCRE_CFLAGS = $(filter-out -DDEBUG,$(CFLAGS)) -DERLANG_INTEGRATION ifeq ($(TARGET), win32) +ifeq ($(USING_MINGW), yes) +$(EPCRE_LIB): $(PCRE_OBJS) + $(AR) $(ARFLAGS) $@ $(PCRE_OBJS) + -@ ($(RANLIB) $@ || true) 2>/dev/null +else $(EPCRE_LIB): $(PCRE_OBJS) $(AR) -out:$@ $(PCRE_OBJS) +endif else $(EPCRE_LIB): $(PCRE_OBJS) $(AR) $(ARFLAGS) $@ $(PCRE_OBJS) Index: otp/erts/emulator/zlib/Makefile.in =================================================================== --- otp.orig/erts/emulator/zlib/Makefile.in 2011-12-17 16:11:53.000000000 +0200 +++ otp/erts/emulator/zlib/Makefile.in 2011-12-17 16:12:02.000000000 +0200 @@ -13,6 +13,8 @@ # To install in $HOME instead of /usr/local, use: # make install prefix=$HOME +USING_MINGW=@MIXED_CYGWIN_MINGW@ + ARFLAGS = rc CFLAGS = $(subst -O2, -O3, @CFLAGS@ @DEFS@ @EMU_THR_DEFS@) #CFLAGS=-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7 @@ -45,7 +47,11 @@ include $(ERL_TOP)/make/$(TARGET)/otp.mk ifeq ($(TARGET), win32) +ifeq ($(USING_MINGW), yes) +LIBRARY=$(OBJDIR)/libz.a +else LIBRARY=$(OBJDIR)/z.lib +endif else LIBRARY=$(OBJDIR)/libz.a endif @@ -69,8 +75,14 @@ #### end OTP targets ifeq ($(TARGET), win32) +ifeq ($(USING_MINGW), yes) +$(LIBRARY): $(OBJS) + $(AR) crv $@ $(OBJS) + $(RANLIB) $@ +else $(LIBRARY): $(OBJS) $(AR) -out:$@ $(OBJS) +endif else $(LIBRARY): $(OBJS) $(AR) $(ARFLAGS) $@ $(OBJS) Index: otp/erts/epmd/src/Makefile.in =================================================================== --- otp.orig/erts/epmd/src/Makefile.in 2011-12-17 16:11:53.000000000 +0200 +++ otp/erts/epmd/src/Makefile.in 2011-12-17 16:12:02.000000000 +0200 @@ -81,6 +81,7 @@ # The targets ifeq ($(findstring win32,$(TARGET)),win32) EPMD = epmd.exe +LIBS += -lws2_32 else EPMD = epmd endif Index: otp/erts/etc/common/Makefile.in =================================================================== --- otp.orig/erts/etc/common/Makefile.in 2011-12-17 16:11:53.000000000 +0200 +++ otp/erts/etc/common/Makefile.in 2011-12-17 16:12:02.000000000 +0200 @@ -176,6 +176,8 @@ MC_OUTPUTS= \ $(OBJDIR)/erlsrv_logmess.h $(OBJDIR)/erlsrv_logmess.res MT_FLAG="-MD" +RC=windres +MC=mc.sh endif INET_GETHOST = $(BINDIR)/inet_gethost.exe INSTALL_EMBEDDED_PROGS += $(BINDIR)/typer.exe $(BINDIR)/dialyzer.exe $(BINDIR)/erlc.exe $(BINDIR)/start_erl.exe $(BINDIR)/escript.exe $(BINDIR)/ct_run.exe @@ -202,8 +204,11 @@ WINDSOCK = -lws2_32 endif PORT_ENTRY_POINT=erl_port_entry +ifeq ($(USING_MINGW), yes) +ENTRY_LDFLAGS=--thumb-entry=$(PORT_ENTRY_POINT) +else ENTRY_LDFLAGS=-entry:$(PORT_ENTRY_POINT) - +endif else ENTRY_LDFLAGS= ENTRY_OBJ= @@ -296,7 +301,7 @@ $(CC) $(CFLAGS) -o $@ -c inet_gethost.c $(BINDIR)/inet_gethost@EXEEXT@: $(OBJDIR)/inet_gethost.o $(ENTRY_OBJ) - $(PURIFY) $(LD) $(LDFLAGS) $(ENTRY_LDFLAGS) -o $@ $(OBJDIR)/inet_gethost.o $(ENTRY_OBJ) $(LIBS) $(ERTS_INTERNAL_LIBS) + $(PURIFY) $(LD) $(LDFLAGS) $(ENTRY_LDFLAGS) -o $@ $(OBJDIR)/inet_gethost.o $(ENTRY_OBJ) $(LIBS) $(ERTS_INTERNAL_LIBS) $(WINDSOCK) $(BINDIR)/run_erl: $(OBJDIR)/safe_string.o $(OBJDIR)/run_erl.o $(LD) $(LDFLAGS) -o $@ $(OBJDIR)/safe_string.o $(OBJDIR)/run_erl.o $(LIBS) @@ -367,8 +372,12 @@ ifeq ($(TARGET),win32) +ifeq ($(USING_MINGW), yes) $(BINDIR)/$(ERLEXEC): $(OBJDIR)/erlexec.o $(OBJDIR)/win_erlexec.o $(OBJDIR)/init_file.o $(OBJDIR)/$(ERLRES_OBJ) + $(LD) -shared $(LDFLAGS) -o $@ $(OBJDIR)/erlexec.o $(OBJDIR)/win_erlexec.o $(OBJDIR)/init_file.o $(OBJDIR)/$(ERLRES_OBJ) $(ERTS_INTERNAL_LIBS) +else $(LD) -dll $(LDFLAGS) -o $@ $(OBJDIR)/erlexec.o $(OBJDIR)/win_erlexec.o $(OBJDIR)/init_file.o $(OBJDIR)/$(ERLRES_OBJ) $(ERTS_INTERNAL_LIBS) +endif $(BINDIR)/erl@EXEEXT@: $(OBJDIR)/erl.o $(OBJDIR)/init_file.o $(OBJDIR)/$(ERLRES_OBJ) $(LD) $(LDFLAGS) -o $@ $(OBJDIR)/erl.o $(OBJDIR)/init_file.o $(OBJDIR)/$(ERLRES_OBJ) Index: otp/erts/etc/win32/nsis/Makefile =================================================================== --- otp.orig/erts/etc/win32/nsis/Makefile 2011-12-17 16:11:53.000000000 +0200 +++ otp/erts/etc/win32/nsis/Makefile 2011-12-17 16:12:02.000000000 +0200 @@ -23,7 +23,7 @@ VERSION_HEADER = erlang.nsh MAKENSIS = makensis -MAKENSISFLAGS = /V2 +MAKENSISFLAGS = CUSTOM_MODERN=custom_modern.exe # This is not the way we usually do in our makefiles, Index: otp/erts/etc/win32/nsis/erlang20.nsi =================================================================== --- otp.orig/erts/etc/win32/nsis/erlang20.nsi 2011-12-17 16:11:53.000000000 +0200 +++ otp/erts/etc/win32/nsis/erlang20.nsi 2011-12-17 16:12:02.000000000 +0200 @@ -19,7 +19,7 @@ ;-------------------------------- ;Configuration - SetCompressor bzip2 + SetCompressor lzma Var MYTEMP ;Var MUI_TEMP Index: otp/erts/lib_src/Makefile.in =================================================================== --- otp.orig/erts/lib_src/Makefile.in 2011-12-17 16:11:53.000000000 +0200 +++ otp/erts/lib_src/Makefile.in 2011-12-17 16:12:02.000000000 +0200 @@ -539,8 +539,12 @@ SED_REPL_TARGET=s|$(TARGET)/|$$(TARGET)/|g ifeq ($(TARGET),win32) +ifeq ($(USING_MINGW), yes) +SED_PREFIX= +else #SED_PREFIX=$(SED_REPL_WIN_DRIVE); SED_PREFIX= +endif DEP_FLAGS=$(subst -O3,,$(subst -O2,,$(CFLAGS))) $(INCLUDES) else SED_PREFIX= Index: otp/lib/crypto/c_src/Makefile.in =================================================================== --- otp.orig/lib/crypto/c_src/Makefile.in 2011-12-17 16:11:53.000000000 +0200 +++ otp/lib/crypto/c_src/Makefile.in 2011-12-17 16:12:02.000000000 +0200 @@ -26,6 +26,8 @@ include ../vsn.mk VSN=$(CRYPTO_VSN) +USING_MINGW=@MIXED_CYGWIN_MINGW@ + # ---------------------------------------------------- # The following variables differ between systems. # Set by configure. Index: otp/lib/erl_interface/src/Makefile.in =================================================================== --- otp.orig/lib/erl_interface/src/Makefile.in 2011-12-17 16:11:53.000000000 +0200 +++ otp/lib/erl_interface/src/Makefile.in 2011-12-17 16:12:02.000000000 +0200 @@ -230,7 +230,7 @@ else -ifeq ($USING_MINGW,yes) +ifeq ($(USING_MINGW), yes) TARGETS = \ $(OBJ_TARGETS) \ $(EXE_TARGETS) @@ -596,7 +596,15 @@ ifeq ($(TARGET),win32) # Windows archive creation +ifeq ($(USING_MINGW), yes) +$(MD_EILIB) : $(MD_EIOBJECTS) + $(AR) crv $@ $(MD_EIOBJECTS) + $(RANLIB) $@ +$(MD_ERLLIB) : $(MD_ERLOBJECTS) + $(AR) crv $@ $(MD_ERLOBJECTS) + $(RANLIB) $@ +else $(ST_EILIB) : $(ST_EIOBJECTS) $(AR) -out:$@ $(ST_EIOBJECTS) $(RANLIB) $@ @@ -628,7 +636,7 @@ $(MDD_ERLLIB) : $(MDD_ERLOBJECTS) $(AR) -out:$@ $(MDD_ERLOBJECTS) $(RANLIB) $@ - +endif else # Unix archive creation @@ -668,9 +676,15 @@ ########################################################################### ifeq ($(TARGET),win32) +ifeq ($(USING_MINGW), yes) +$(ERL_CALL): $(ERLCALL) ../include/ei.h $(MD_EILIB) + $(PURIFY) $(CC) -lmsvcrt $(PROG_CFLAGS) $(THR_DEFS) -o $@ $(ERLCALL) \ + -L$(OBJDIR) -lei_md $(THR_LIBS) $(LIBS) -lws2_32 +else $(ERL_CALL): $(ERLCALL) ../include/ei.h $(MD_EILIB) $(PURIFY) $(CC) -MD $(PROG_CFLAGS) $(THR_DEFS) -o $@ $(ERLCALL) \ -L$(OBJDIR) -lei_md $(THR_LIBS) $(LIBS) -lsocket +endif else ifeq ($(findstring vxworks,$(TARGET)),vxworks) $(ERL_CALL): $(ST_OBJDIR)/erl_call.o $(ST_OBJDIR)/erl_start.o ../include/ei.h $(ST_EILIB) Index: otp/lib/gs/tcl/Makefile.in =================================================================== --- otp.orig/lib/gs/tcl/Makefile.in 2011-12-17 16:11:53.000000000 +0200 +++ otp/lib/gs/tcl/Makefile.in 2011-12-17 16:12:02.000000000 +0200 @@ -33,11 +33,7 @@ # be set for that system only. # ---------------------------------------------------- -ifeq ($(TARGET),win32) -TCL_TAR = binaries/win32.tar.gz -else TCL_TAR = @TCL_TAR@ -endif CONFIGURE_FILES = ../configure ../configure.in Index: otp/lib/ic/java_src/com/ericsson/otp/ic/Makefile =================================================================== --- otp.orig/lib/ic/java_src/com/ericsson/otp/ic/Makefile 2011-12-17 16:11:53.000000000 +0200 +++ otp/lib/ic/java_src/com/ericsson/otp/ic/Makefile 2011-12-17 16:12:02.000000000 +0200 @@ -96,7 +96,7 @@ debug opt: $(JAVA_DEST_ROOT)$(JARFILE) $(JAVA_DEST_ROOT)$(JARFILE): $(TARGET_FILES) - @(cd $(JAVA_DEST_ROOT) ; $(JAR) $(JARFLAGS) $(JARFILE) $(JAVA_CLASS_SUBDIR)) + @(cd $(JAVA_DEST_ROOT) ; $(JAR) $(JARFLAGS) $(JARFILE) $(JAVA_CLASS_SUBDIR)/*.class) clean: rm -f $(TARGET_FILES) *~ Index: otp/lib/jinterface/java_src/com/ericsson/otp/erlang/Makefile =================================================================== --- otp.orig/lib/jinterface/java_src/com/ericsson/otp/erlang/Makefile 2011-12-17 16:11:53.000000000 +0200 +++ otp/lib/jinterface/java_src/com/ericsson/otp/erlang/Makefile 2011-12-17 16:12:02.000000000 +0200 @@ -82,7 +82,7 @@ if [ ! -d "$(JAVA_DEST_ROOT)" ];then mkdir "$(JAVA_DEST_ROOT)"; fi $(JAVA_DEST_ROOT)$(JARFILE): $(TARGET_FILES) - @(cd $(JAVA_DEST_ROOT) ; $(JAR) $(JARFLAGS) $(JARFILE) $(JAVA_CLASS_SUBDIR)) + @(cd $(JAVA_DEST_ROOT) ; $(JAR) $(JARFLAGS) $(JARFILE) $(JAVA_CLASS_SUBDIR)/*.class) clean: rm -f $(TARGET_FILES) *~ Index: otp/lib/odbc/c_src/Makefile.in =================================================================== --- otp.orig/lib/odbc/c_src/Makefile.in 2011-12-17 16:11:53.000000000 +0200 +++ otp/lib/odbc/c_src/Makefile.in 2011-12-17 16:12:02.000000000 +0200 @@ -21,6 +21,8 @@ include $(ERL_TOP)/make/target.mk include $(ERL_TOP)/make/$(TARGET)/otp.mk +USING_MINGW=@MIXED_CYGWIN_MINGW@ + ifeq ($(TYPE),debug) TYPEMARKER = .debug TYPEFLAGS = -g @@ -56,7 +58,11 @@ EI_LIB = -lerl_interface_md -lei_md ENTRY_OBJ=$(ERL_TOP)/erts/obj/$(TARGET)/port_entry.o PORT_ENTRY_POINT=erl_port_entry +ifeq ($(USING_MINGW), yes) +ENTRY_LDFLAGS=--thumb-entry=$(PORT_ENTRY_POINT) +else ENTRY_LDFLAGS=-entry:$(PORT_ENTRY_POINT) +endif WIN32_TARGET = $(WIN_BIN_DIR)/odbcserver.exe EXE_TARGET = $(WIN32_TARGET) else @@ -81,8 +87,8 @@ CFLAGS = $(TYPEFLAGS) @CFLAGS@ @THR_DEFS@ @DEFS@ EI_LDFLAGS = -L$(EI_ROOT)/obj$(TYPEMARKER)/$(TARGET) LD = @LD@ -LDFLAGS = $(ODBC_LIB) $(EI_LDFLAGS) -LIBS = @LIBS@ @THR_LIBS@ $(EI_LIB) +LDFLAGS = $(EI_LDFLAGS) +LIBS = @LIBS@ @THR_LIBS@ $(EI_LIB) $(ODBC_LIB) INCLUDES = -I. $(ODBC_INCLUDE) $(EI_INCLUDE) TARGET_FLAGS = @TARGET_FLAGS@ @@ -112,10 +118,16 @@ endif ifdef WIN32_TARGET +ifeq ($(USING_MINGW), yes) +$(WIN32_TARGET): $(OBJ_DIR)/odbcserver.o + $(CC) $(LDFLAGS) -o $@ $(OBJ_DIR)/odbcserver.o $(ENTRY_OBJ) \ + $(LIBS) $(ENTRY_LDFLAGS) +else $(WIN32_TARGET): $(OBJ_DIR)/odbcserver.o $(LD) $(LDFLAGS) -o $@ $(OBJ_DIR)/odbcserver.o $(ENTRY_OBJ) \ $(LIBS) $(ENTRY_LDFLAGS) endif +endif $(OBJ_DIR)/odbcserver.o: odbcserver.c $(CC) $(CFLAGS) $(INCLUDES) $(TARGET_FLAGS) -o $@ -c odbcserver.c Index: otp/lib/os_mon/c_src/Makefile.in =================================================================== --- otp.orig/lib/os_mon/c_src/Makefile.in 2011-12-17 16:11:53.000000000 +0200 +++ otp/lib/os_mon/c_src/Makefile.in 2011-12-17 16:12:02.000000000 +0200 @@ -19,6 +19,8 @@ include $(ERL_TOP)/make/target.mk include $(ERL_TOP)/make/$(TARGET)/otp.mk +USING_MINGW=@MIXED_CYGWIN_MINGW@ + CC = @CC@ LD = @LD@ LIBS = @LIBS@ @@ -61,7 +63,11 @@ ENTRY_OBJ=$(ERL_TOP)/erts/obj/$(TARGET)/port_entry.o PORT_ENTRY_POINT=erl_port_entry +ifeq ($(USING_MINGW), yes) +ENTRY_LDFLAGS=--thumb-entry=$(PORT_ENTRY_POINT) +else ENTRY_LDFLAGS=-entry:$(PORT_ENTRY_POINT) +endif else ifeq ($(findstring vxworks_simso,$(TARGET)),vxworks_simso) PROGRAMS = Index: otp/erts/emulator/Makefile.in =================================================================== --- otp.orig/erts/emulator/Makefile.in 2011-12-17 16:11:53.000000000 +0200 +++ otp/erts/emulator/Makefile.in 2011-12-17 16:12:02.000000000 +0200 @@ -182,7 +182,7 @@ else EMU_CC = @EMU_CC@ endif -TYPE_FLAGS += -DSTATIC_ERLANG_DRIVER +TYPE_FLAGS += -DSTATIC_ERLANG_DRIVER -DBUILDING_DLL else EMU_CC = @EMU_CC@ endif @@ -203,6 +203,10 @@ ifeq ($(TARGET),win32) LIB_PREFIX= LIB_SUFFIX=.lib +ifeq ($(USING_MINGW), yes) +LIB_PREFIX=lib +LIB_SUFFIX=.a +endif else LIB_PREFIX=lib LIB_SUFFIX=.a @@ -234,18 +238,20 @@ endif UNROLL_FLG = -funroll-loops else +ifeq ($(USING_MINGW), yes) +RC=windres +RES_EXT = @OBJEXT@ +MAKE_PRELOAD_EXTRA += " -windres" +endif +else ifeq ($(TARGET), win32) GEN_OPT_FLGS = $(OPT_LEVEL) UNROLL_FLG = RC=rc.sh +RES_EXT=res ifeq ($(MIXED_MSYS), yes) MAKE_PRELOAD_EXTRA = -msys endif -ifeq ($(USING_MINGW), yes) -RES_EXT = @OBJEXT@ -MAKE_PRELOAD_EXTRA += " -windres" -else -RES_EXT=res endif else GEN_OPT_FLGS = @@ -254,7 +260,6 @@ endif endif - ifdef PURIFY_CHILD_SETUP CS_PURIFY = $(PURIFY) CS_TYPE_FLAGS = $(TYPE_FLAGS) @@ -266,21 +271,29 @@ CS_CFLAGS_ = $(CS_TYPE_FLAGS) @DEFS@ $(WFLAGS) ifeq ($(GCC),yes) CS_CFLAGS = $(subst -O2, $(GEN_OPT_FLGS) $(UNROLL_FLG), $(CS_CFLAGS_)) +ifeq ($(USING_MINGW),yes) +LIBS += -lws2_32 -lcomctl32 -liphlpapi +endif else CS_CFLAGS = $(CS_CFLAGS_) endif CS_LDFLAGS = $(LDFLAGS) CS_LIBS = -L../lib/internal/$(TARGET) -lerts_internal @ERTS_INTERNAL_X_LIBS@ -LIBS += @TERMCAP_LIB@ -L../lib/internal/$(TARGET) @ERTS_INTERNAL_X_LIBS@ +LIBS += @TERMCAP_LIB@ -L../lib/internal/$(TARGET) @ERTS_INTERNAL_X_LIBS@ ifdef Z_LIB # Use shared zlib library LIBS += $(Z_LIB) else ifeq ($(TARGET),win32) +ifeq ($(USING_MINGW),yes) +LIBS += $(ERL_TOP)/erts/emulator/zlib/obj/$(TARGET)/$(TYPE)/libz.a +DEPLIBS = $(ERL_TOP)/erts/emulator/zlib/obj/$(TARGET)/$(TYPE)/libz.a +else LIBS += -L$(ERL_TOP)/erts/emulator/zlib/obj/$(TARGET)/$(TYPE) -lz DEPLIBS = $(ERL_TOP)/erts/emulator/zlib/obj/$(TARGET)/$(TYPE)/z.lib +endif else # Build on darwin fails if -lz is used LIBS += $(ERL_TOP)/erts/emulator/zlib/obj/$(TARGET)/$(TYPE)/libz.a @@ -290,7 +303,11 @@ endif ifeq ($(TARGET),win32) +ifeq ($(USING_MINGW),yes) +LIBS += $(ERL_TOP)/erts/emulator/pcre/obj/$(TARGET)/$(TYPE)/$(LIB_PREFIX)epcre$(LIB_SUFFIX) +else LIBS += -L$(ERL_TOP)/erts/emulator/pcre/obj/$(TARGET)/$(TYPE) -lepcre +endif else LIBS += $(ERL_TOP)/erts/emulator/pcre/obj/$(TARGET)/$(TYPE)/$(LIB_PREFIX)epcre$(LIB_SUFFIX) endif @@ -915,9 +932,17 @@ ifeq ($(TARGET), win32) # Only the basic erlang to begin with eh? +ifeq ($(USING_MINGW), yes) +$(BINDIR)/$(EMULATOR_EXECUTABLE): $(INIT_OBJS) $(OBJS) $(DEPLIBS) + $(PURIFY) $(LD) -mwindows -shared -Xlinker --out-implib \ + -Xlinker $(BINDIR)/erl_dll.a -o $(BINDIR)/$(EMULATOR_EXECUTABLE) \ + sys/$(ERLANG_OSTYPE)/erl.def \ + $(LDFLAGS) $(DEXPORT) $(INIT_OBJS) $(OBJS) $(LIBS) +else $(BINDIR)/$(EMULATOR_EXECUTABLE): $(INIT_OBJS) $(OBJS) $(DEPLIBS) $(PURIFY) $(LD) -dll -def:sys/$(ERLANG_OSTYPE)/erl.def -implib:$(BINDIR)/erl_dll.lib -o $(BINDIR)/$(EMULATOR_EXECUTABLE) \ $(LDFLAGS) $(DEXPORT) $(INIT_OBJS) $(OBJS) $(LIBS) +endif else @@ -951,8 +976,12 @@ SED_REPL_CHK_IO=s|$$(OBJDIR)/erl_check_io.o|$$(OBJDIR)/erl_check_io.kp.o $$(OBJDIR)/erl_check_io.nkp.o|g ifeq ($(TARGET),win32) +ifeq ($(USING_MINGW), yes) +SED_PREFIX= +else #SED_PREFIX=$(SED_REPL_WIN_DRIVE); SED_PREFIX= +endif else SED_PREFIX= endif Index: otp/lib/runtime_tools/c_src/Makefile.in =================================================================== --- otp.orig/lib/runtime_tools/c_src/Makefile.in 2011-12-17 16:11:53.000000000 +0200 +++ otp/lib/runtime_tools/c_src/Makefile.in 2011-12-17 16:12:02.000000000 +0200 @@ -38,6 +38,10 @@ LIBS = $(DED_LIBS) LDFLAGS += $(DED_LDFLAGS) +ifeq ($(TARGET),win32) +LIBS += -lws2_32 +endif + SYSINCLUDE = $(DED_SYS_INCLUDE) ifeq ($(findstring vxworks,$(TARGET)),vxworks) SYSINCLUDE += -I$(ERL_TOP)/erts/etc/vxworks Index: otp/lib/tools/c_src/Makefile.in =================================================================== --- otp.orig/lib/tools/c_src/Makefile.in 2011-12-17 16:11:53.000000000 +0200 +++ otp/lib/tools/c_src/Makefile.in 2011-12-17 16:12:02.000000000 +0200 @@ -130,6 +130,10 @@ EMEM_ETHR_LIBS=$(subst -l$(ETHR_LIB_NAME),-l$(ETHR_LIB_NAME)$(TYPEMARKER),$(subst -lerts_internal_r,-lerts_internal_r$(TYPEMARKER),$(ETHR_LIBS))) +ifeq ($(TARGET),win32) +LIBS += -lws2_32 +endif + EMEM_LIBS = $(LIBS) \ -L$(ERL_TOP)/erts/lib/$(TARGET) \ -L$(ERL_TOP)/erts/lib/internal/$(TARGET) \ Index: otp/lib/wx/c_src/Makefile.in =================================================================== --- otp.orig/lib/wx/c_src/Makefile.in 2011-12-17 16:11:53.000000000 +0200 +++ otp/lib/wx/c_src/Makefile.in 2011-12-17 16:12:02.000000000 +0200 @@ -121,6 +121,10 @@ OBJC_CC_O = $(OBJC_CC) -c $(CFLAGS) $(OBJC_CFLAGS) $(WX_CFLAGS) $(COMMON_CFLAGS) CPP_O = $(CPP) -c $(CXX_FLAGS) $(WX_CXX_FLAGS) $(COMMON_CFLAGS) +ifeq ($(SYS_TYPE),win32) +GL_LIBS = -lopengl32 -lglu32 +endif + # Targets opt: $(TARGET_DIR)/wxe_driver$(SO_EXT) $(TARGET_DIR)/erl_gl$(SO_EXT) @@ -173,11 +177,11 @@ $(TARGET_DIR)/wxe_driver$(SO_EXT): $(WX_OBJECTS) mkdir -p $(TARGET_DIR) - $(LD) $(LDFLAGS) $(WX_OBJECTS) $(WX_LIBS) -o $@ + $(LD) $(LDFLAGS) $(WX_OBJECTS) $(WX_LIBS) $(GL_LIBS) -o $@ $(TARGET_DIR)/erl_gl$(SO_EXT): $(GL_OBJECTS) mkdir -p $(TARGET_DIR) - $(CC) $(LDFLAGS) $(GL_OBJECTS) $(GL_LIBS) -o $@ + $(CXX) $(LDFLAGS) $(GL_OBJECTS) $(GL_LIBS) -o $@ # ----------------------------------------------------