On 04/12/2013 08:09 a.m., Bram Moolenaar wrote:
Cesar Romani wrote:
On 01/12/2013 09:11 a.m., Steve Hall wrote:
FINALLY! Thanks Ken and Cesar for the help.
Okay, it took three parts to get my Cygwin cross-compile for Windows
build to work with Perl:
1. Patching vim\Make_cyg.mak (via Cesar Romani)
--- C:\vim\Make_cyg.mak
+++ C:\vim\Make_cyg.mak
@@ -155,6 +155,7 @@
ifeq (yes, $(DYNAMIC_PERL))
DEFINES += -DDYNAMIC_PERL -DDYNAMIC_PERL_DLL=\"perl$(PERL_VER).dll\"
+EXTRA_LIBS += $(PERL)/lib/CORE/libperl$(PERL_VER).a
else
-EXTRA_LIBS += $(PERL)/lib/CORE/perl$(PERL_VER).lib
+EXTRA_LIBS += $(PERL)/lib/CORE/libperl$(PERL_VER).a
endif
endif
2. Replacing src\if_perl.xs with the fix from here (by
[email protected])
http://code.google.com/p/vim/issues/detail?id=170#c5
3. Patching a Strawberry Perl distribution file (by Ken Takata)
--- C:\Perl\lib\CORE\sys\socket.h.org Wed Mar 27 12:44:16 2013
+++ C:\Perl\lib\CORE\sys\socket.h Sun Dec 01 16:06:52 2013
@@ -13,7 +13,7 @@
#include<windows.h>
/* Too late to include winsock2.h if winsock.h has already been loaded */
-#ifndef _WINSOCKAPI_
+#if !defined(_WINSOCKAPI_)&& !defined(_WINSOCK_H)
# ifndef FD_SETSIZE
# define FD_SETSIZE 2048
# endif
Only after all three changes were implemented would it build. Plenty
of warnings, but I was able to cross-compile both a gvim.exe and
vim.exe with +perl/dyn.
Actually you don't need to modify any file, except Make_cyg.mak.
I managed to build vim under cygwin with strawberry perl 5.18.1.1, using
only the makefile patch:
--- C:\vim\Make_cyg.mak
+++ C:\vim\Make_cyg.mak
@@ -155,6 +155,7 @@
ifeq (yes, $(DYNAMIC_PERL))
DEFINES += -DDYNAMIC_PERL -DDYNAMIC_PERL_DLL=\"perl$(PERL_VER).dll\"
+EXTRA_LIBS += $(PERL)/lib/CORE/libperl$(PERL_VER).a
else
-EXTRA_LIBS += $(PERL)/lib/CORE/perl$(PERL_VER).lib
+EXTRA_LIBS += $(PERL)/lib/CORE/libperl$(PERL_VER).a
endif
endif
Is this specific for this version of Perl? If so, what kind of
condition (flag) should we use for this?
Cygwin
------
Both Strawberry 5.18 and ActivePerl 5.18 only need the following patch:
--------------------
--- Make_cyg.mak.org 2013-11-21 22:55:56.014250100 -0500
+++ Make_cyg.mak 2013-12-04 17:57:07.550500300 -0500
@@ -139,6 +139,7 @@
##############################
# DYNAMIC_PERL=yes and no both work
##############################
+PERL=/cygdrive/c/perl
ifdef PERL
DEFINES += -DFEAT_PERL
INCLUDES += -I$(PERL)/lib/CORE
@@ -149,11 +150,12 @@
endif
ifndef PERL_VER
-PERL_VER = 56
+PERL_VER = 518
endif
ifeq (yes, $(DYNAMIC_PERL))
DEFINES += -DDYNAMIC_PERL -DDYNAMIC_PERL_DLL=\"perl$(PERL_VER).dll\"
+EXTRA_LIBS += -L$(PERL)/lib/CORE -lperl$(PERL_VER)
else
EXTRA_LIBS += $(PERL)/lib/CORE/perl$(PERL_VER).lib
endif
--------------------
MinGW and MinGW-w64(32bit)
--------------------------
Both ActivePerl 5.16 and ActivePerl 5.18 and also StrawberryPerl only
need the following patch:
--------------------
--- Make_ming.mak.org 2013-11-22 00:16:21 -0500
+++ Make_ming.mak 2013-12-04 16:20:13 -0500
@@ -101,10 +101,10 @@
#INTLLIB=intl
# uncomment 'PERL' if you want a perl-enabled version
-#PERL=C:/perl
+PERL=C:/perl
ifdef PERL
ifndef PERL_VER
-PERL_VER=56
+PERL_VER=518
endif
ifndef DYNAMIC_PERL
DYNAMIC_PERL=yes
@@ -688,8 +688,7 @@
$(CC) $(CFLAGS) -o uninstal.exe uninstal.c $(LIB)
$(TARGET): $(OUTDIR) $(OBJ)
- $(CC) $(CFLAGS) $(LFLAGS) -o $@ $(OBJ) $(LIB) -lole32 -luuid
$(LUA_LIB) $(MZSCHEME_LIBDIR) $(MZSCHEME_LIB) $(PYTHONLIB) $(PYTHON3LIB)
$(RUBYLIB)
-
+ $(CC) $(CFLAGS) $(LFLAGS) -o $@ $(OBJ) $(LIB) -lole32 -luuid
$(LUA_LIB) $(MZSCHEME_LIBDIR) $(MZSCHEME_LIB) $(PYTHONLIB) $(PYTHON3LIB)
$(RUBYLIB) -L$(PERLLIBS) -lperl$(PERL_VER)
upx: exes
upx gvim.exe
upx vim.exe
--------------------
Actually ActivePerl 5.16 doesn't need this patch, but applying it
doesn't change anything.
Ken Tanaka said that one needs his C:\Perl\lib\CORE\sys\socket.h patch
for non-W64 MinGW, but I didn't need it.
Regards,
--
Cesar
--
--
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php
---
You received this message because you are subscribed to the Google Groups "vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.