|
View:
New views
3 Messages
—
Rating Filter:
Alert me
|
|
|
Cygwin 1.7 perl build problems.Hello. I am using the Cygwin 1.7 (beta) environment. Within Cygwin, there is a version of perl 5.10.0.
I fetch the Tk module source, extract it, cd into the Tk-804.028 directory and type the following: $ perl Makefile.PL Cannot find '/usr/lib/perl5/5.10/i686-cygwin/CORE/perl.h' have you installed /usr/bin/perl? Compilation failed in require at Makefile.PL line 37. BEGIN failed--compilation aborted at Makefile.PL line 39. lwv27@PC89067 ~/.cpan/build/Tk-804.028-n8BLky $ ls '/usr/lib/perl5/5.10/i686-cygwin/CORE/perl.h' /usr/lib/perl5/5.10/i686-cygwin/CORE/perl.h Is this a problem that anyone recognizes and has identified a solution? I checked the Makefile.PL file, and it has normal Cygwin line endings. I have tried one other install - that of a newer version of the CPAN module, used to fetch source from the perl community module repository. It too fails, but in a rather more peculiar manner: $ /bin/perl Makefile.PL Unable to find a perl 5 (by these names: /usr/bin/perl.exe perl.exe perl5.exe perl5.10.0.exe miniperl.exe, in these dirs: /home/lwv27/bin /usr/local/bin /usr/bin /bin /usr/X11R6/bin /cygdrive/c/Program Files/Perl/bin/ /cygdrive/c/NTSA/Bin /cygdrive/c/NTSA/4NT /cygdrive/c/Program Files/Activestate Tcl/8.4.10.1/bin/ /cygdrive/c/WINDOWS/system32 /cygdrive/c/WINDOWS /cygdrive/c/WINDOWS/System32/Wbem /cygdrive/c/i386 /cygdrive/c/Program Files/ATI Technologies/ATI.ACE/ /cygdrive/c/NTSA/Bin/ /cygdrive/c/Program Files/Rational/common /cygdrive/c/Program Files/Rational/ClearCase/bin /cygdrive/c/casnc/oracle/product/10.2.0/client_1/BIN/ /cygdrive/c/Program Files/Hummingbird/Connectivity/Accessories/ /cygdrive/c/Program Files/QuickTime/QTSystem/ /cygdrive/c/Program Files/Intel/DMIX /cygdrive/c/Products/apache-maven-2.2.1/bin /usr/local/bin /usr/bin) Writing Makefile for CPAN $ /bin/perl --version This is perl, v5.10.0 built for cygwin-thread-multi-64int (with 6 registered patches, see perl -V for more detail) Copyright 1987-2007, Larry Wall Perl may be copied only under the terms of either the Artistic License or the GNU General Public License, which may be found in the Perl 5 source kit. Complete documentation for Perl, including FAQ lists, should be found on this system using "man perl" or "perldoc perl". If you have access to the Internet, point your browser at http://www.perl.org/, the Perl Home Page. So in one case, perl says it cannot find itself, and in the other case, perl says it cannot find one of its headers that is present. -- Tcl - It's the real thing. http://wiki.tcl.tk/ http://www.purl.org/NET/lvirden/ http://www.xanga.com/lvirden/ Anything in this posting represents only my personal opinion. -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple |
|
|
Re: Cygwin 1.7 perl build problems.Larry W. Virden schrieb:
> Hello. I am using the Cygwin 1.7 (beta) environment. Within Cygwin, there is a version of perl 5.10.0. > > I fetch the Tk module source, extract it, cd into the Tk-804.028 directory and type the following: > > $ perl Makefile.PL > Cannot find '/usr/lib/perl5/5.10/i686-cygwin/CORE/perl.h' have you installed /usr/bin/perl? > Compilation failed in require at Makefile.PL line 37. > BEGIN failed--compilation aborted at Makefile.PL line 39. > > lwv27@PC89067 ~/.cpan/build/Tk-804.028-n8BLky > $ ls '/usr/lib/perl5/5.10/i686-cygwin/CORE/perl.h' > /usr/lib/perl5/5.10/i686-cygwin/CORE/perl.h > > Is this a problem that anyone recognizes and has identified a solution? > > I checked the Makefile.PL file, and it has normal Cygwin line endings. > > I have tried one other install - that of a newer version of the CPAN module, used to fetch source from the perl community module repository. > It too fails, but in a rather more peculiar manner: > $ /bin/perl Makefile.PL > Unable to find a perl 5 (by these names: /usr/bin/perl.exe perl.exe perl5.exe perl5.10.0.exe miniperl.exe, in these dirs: /home/lwv27/bin /usr/local/bin /usr/bin /bin /usr/X11R6/bin /cygdrive/c/Program Files/Perl/bin/ /cygdrive/c/NTSA/Bin /cygdrive/c/NTSA/4NT /cygdrive/c/Program Files/Activestate Tcl/8.4.10.1/bin/ /cygdrive/c/WINDOWS/system32 /cygdrive/c/WINDOWS /cygdrive/c/WINDOWS/System32/Wbem /cygdrive/c/i386 /cygdrive/c/Program Files/ATI Technologies/ATI.ACE/ /cygdrive/c/NTSA/Bin/ /cygdrive/c/Program Files/Rational/common /cygdrive/c/Program Files/Rational/ClearCase/bin /cygdrive/c/casnc/oracle/product/10.2.0/client_1/BIN/ /cygdrive/c/Program Files/Hummingbird/Connectivity/Accessories/ /cygdrive/c/Program Files/QuickTime/QTSystem/ /cygdrive/c/Program Files/Intel/DMIX /cygdrive/c/Products/apache-maven-2.2.1/bin /usr/local/bin /usr/bin) > Writing Makefile for CPAN > > $ /bin/perl --version > > This is perl, v5.10.0 built for cygwin-thread-multi-64int > (with 6 registered patches, see perl -V for more detail) > > Copyright 1987-2007, Larry Wall > > Perl may be copied only under the terms of either the Artistic License or the > GNU General Public License, which may be found in the Perl 5 source kit. > > Complete documentation for Perl, including FAQ lists, should be found on > this system using "man perl" or "perldoc perl". If you have access to the > Internet, point your browser at http://www.perl.org/, the Perl Home Page. > > > So in one case, perl says it cannot find itself, and in the other case, perl says it cannot find one of its headers that is present. to build Tk under cygwin. I believe the svn version at https://svn.perl.org/modules/Tk/trunk has this already. It builds fine, but there's still a known problem with the unix-eventhandler. I'll fix that when I have time. -- Reini Urban http://phpwiki.org/ http://murbreak.at/ [Tk-804.028.patch] difforig Tk-804.028 2008-02-17 Reini Urban <rurban@...> * tkPort.h: cygwin does not define WIN32, only within pTk. So define it here. * pTk/mTk/tclUnix/tclUnix{Event,Notfy,Time}.c: They do not include tkUnixPort.h, so some declarations are missing under cygwin only. * Tk/MMutil.pm: -limm32 and -lcomctl32 are missing diff -ub Tk-804.028/Tk/MMutil.pm.orig --- Tk-804.028/Tk/MMutil.pm.orig 2007-05-05 18:37:55.000000000 +0000 +++ Tk-804.028/Tk/MMutil.pm 2008-02-17 19:52:16.843750000 +0000 @@ -550,7 +550,7 @@ { my $base = $Config{'libpth'}; $base =~ s#lib$#i386-mingw32/lib#; - my $extra = "-L$base -lcomdlg32 -lgdi32"; + my $extra = "-L$base -limm32 -lcomctl32 -lcomdlg32 -lgdi32"; my $libs = $att{'LIBS'}->[0]; $att{'LIBS'}->[0] = "$extra $libs"; } @@ -562,7 +562,7 @@ push(@opt,'LD' => 'gcc -shared'); if ($win_arch eq 'MSWin32') { - my $extra = "-L/lib/w32api -lcomdlg32 -lgdi32"; + my $extra = "-L/lib/w32api -limm32 -lcomctl32 -lcomdlg32 -lgdi32"; my $libs = $att{'LIBS'}->[0]; $att{'LIBS'}->[0] = "$extra $libs"; $att{'DEFINE'} .= ' -D__WIN32__ -D_WIN32 -DWINARCH_MSWIN32'; diff -ub Tk-804.028/pTk/mTk/tclUnix/tclUnixEvent.c.orig --- Tk-804.028/pTk/mTk/tclUnix/tclUnixEvent.c.orig 2007-05-05 18:39:41.000000000 +0000 +++ Tk-804.028/pTk/mTk/tclUnix/tclUnixEvent.c 2008-02-17 19:29:54.031250000 +0000 @@ -20,6 +20,11 @@ #include "Lang.h" #endif #ifdef TCL_EVENT_IMPLEMENT + +#ifdef __CYGWIN__ +# include <sys/time.h> +#endif + /* *---------------------------------------------------------------------- * diff -ub Tk-804.028/pTk/mTk/tclUnix/tclUnixNotfy.c.orig --- Tk-804.028/pTk/mTk/tclUnix/tclUnixNotfy.c.orig 2007-05-05 18:39:37.000000000 +0000 +++ Tk-804.028/pTk/mTk/tclUnix/tclUnixNotfy.c 2008-02-17 19:41:04.156250000 +0000 @@ -35,6 +35,34 @@ #endif extern Tcl_NotifierProcs tclOriginalNotifier; +#ifndef MASK_SIZE +/* under Cygwin we use tclUnix but tkWin. + So bring in some "tkUnixPort.h" definitions + */ +#ifdef HAVE_SYS_SELECT_H +# include <sys/select.h> +#endif + +/* + * The following macro defines the number of fd_masks in an fd_set: + */ + +#ifndef FD_SETSIZE +# ifdef OPEN_MAX +# define FD_SETSIZE OPEN_MAX +# else +# define FD_SETSIZE 256 +# endif +#endif +#if !defined(howmany) +# define howmany(x, y) (((x)+((y)-1))/(y)) +#endif +#ifndef NFDBITS +# define NFDBITS NBBY*sizeof(fd_mask) +#endif +#define MASK_SIZE howmany(FD_SETSIZE, NFDBITS) +#endif + /* * This structure is used to keep track of the notifier info for a * a registered file. diff -ub Tk-804.028/pTk/mTk/tclUnix/tclUnixTime.c.orig --- Tk-804.028/pTk/mTk/tclUnix/tclUnixTime.c.orig 2007-05-05 18:39:34.000000000 +0000 +++ Tk-804.028/pTk/mTk/tclUnix/tclUnixTime.c 2008-02-17 19:25:56.562500000 +0000 @@ -15,11 +15,15 @@ #include "Lang.h" #ifdef TCL_EVENT_IMPLEMENT - -#ifdef __EMX__ +#if TIME_WITH_SYS_TIME # include <sys/time.h> -#else # include <time.h> +#else +# if HAVE_SYS_TIME_H +# include <sys/time.h> +# else +# include <time.h> +# endif #endif #if 0 diff -ub Tk-804.028/pTk/tkPort.h.orig --- Tk-804.028/pTk/tkPort.h.orig 2008-02-17 18:47:08.812500000 +0000 +++ Tk-804.028/pTk/tkPort.h 2008-02-17 18:49:27.281250000 +0000 @@ -24,6 +24,10 @@ #include "Lang.h" #endif +#if defined(__WIN32__) && !defined(WIN32) +#define WIN32 +#endif + #if defined(__WIN32__) || defined(_WIN32) # include "tkWinPort.h" # ifndef strcasecmp diff -ub Tk-804.028/tkGlue.h.orig --- Tk-804.028/tkGlue.h.orig 2007-05-05 18:37:45.000000000 +0000 +++ Tk-804.028/tkGlue.h 2008-02-17 18:48:07.968750000 +0000 @@ -66,14 +66,14 @@ extern SV * sv_maybe_utf8(SV *sv); extern SV * Lang_SystemEncoding(void); +#ifdef WIN32 +#include "pTk/tkWinInt.h" +#endif + #ifndef WIN32 #define HWND void * #endif EXTERN HWND SVtoHWND _ANSI_ARGS_((SV *win)); -#ifdef WIN32 -#include "pTk/tkWinInt.h" -#endif - #endif -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple |
|
|
Re: Cygwin 1.7 perl build problems.--- On Fri, 11/6/09, Reini Urban <rurban@...> wrote: > From: Reini Urban <rurban@...> > > I posted the attached patch for Tk-804.028 in February 2008 > to this list > to build Tk under cygwin. I believe the svn version at > https://svn.perl.org/modules/Tk/trunk has > this already. > > It builds fine, but there's still a known problem with the > > unix-eventhandler. I'll fix that when I have time. Thank you very much. I wonder if the community around that module have just stopped producing new releases. Perhaps that would explain why a patch provided 21 months ago isn't in CPAN yet. Have you encountered the other problem I mentioned, where saying perl Makefile.PL will, in some cases (like Text::CSV) result in a message saying that no perl 5 could be found? The only perl in Cygwin is a perl 5, so the message seems rather strange. -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple |
| Free embeddable forum powered by Nabble | Forum Help |