Re: Suggestion for gtk2-perl port for win32



å Tue, 02 Oct 2007 03:52:36 +0800ïTorsten Schoenfeld <kaffeetisch gmx de> åé:

On Tue, 2007-10-02 at 01:38 +0800, Ye Wenbin wrote:

If you can provide a patch that implements your suggestions, and doesn't
break the build on other platforms, we'd be pleased to apply it to fix
those problems.

1. I can't figure out an clean way to solve the problem about the quote.
so I just copy the function and make a little change to make it fit to MSWin32.
The difficulty is the cmd use only double-quote and doesn't recognize
escape!
2. The Glib::MakeMaker is already make a choice for using Data::Dumper.
set enviroment variable FORCE_DATA_DUMPER to true. I add
$Data::Dumper::Indent=1 in the patch.


If I remember correctly, the cause for the long lines was related to the
automatic documentation generation.  So passing "disable-apidoc" to
Makefile.PL when running it should help.  But you lose the API docs, of
course.

the command link all object to a dynamic library is also too long(more than 4000 characters).
I get a error like:
NMAKE : fatal error U1095: expanded command line 'gcc -o blib\arch\auto\Gtk2\Gtk2.dll -Wl,--base-file -Wl,dll.base -mdll ${XSFILES} -Wl,--image-base,0x69100000 ${LIBS} dll.exp' too long
(object file and libs are omit)

Anyway, now I can build the Gtk2. The procedure is as following:
1. Get all tools required. I use ActivePerl v5.8.8, which build by Mingw gcc and nmake, so you have to get them first. And then install Gtk+/Win32 Runtime and Development Environment(from http://gladewin32.sourceforge.net/modules/news/). 2. Setup environment variable, make sure the nmake, gcc, pkg-config is available in cmd. Serval environment variables is important:
 a. PATH  - which all command is located in one of these directories
b. CPATH - the directories that contain header file which can be specified with -I. c. LIBRARY_PATH - the directories that contain .lib files which can be specified with -L. d. PKG_CONFIG_PATH - pkg-config search these these directories for packages.
3. run commands in cmd:
 > set FORCE_DATA_DUMPER=1
 > perl Makefile.PL
4. for Glib, just "nmake"
5. for Gtk2,
nmake /N > make.bat
The nmake signal error like:
NMAKE : fatal error U1095: expanded command line 'gcc -o blib\arch\auto\Gtk2\Gtk2.dll -Wl,--base-file -Wl,dll.base -mdll ${XSFILES} -Wl,--image-base,0x69100000 ${LIBS} dll.exp' too long copy the string in the quote from 'gcc' to 'dll.exp' to make.bat. run make.bat. Wait the compile done. Then
nmake /N > make.bat
Now it signal the similar error again. Redo as above, copy the command to make.bat, run make.bat, then nmake /N > make.bat until all command is passed.
6. Finally, install it:
 > nmake install

Seem stupid, but it works. All test is passed.

--
Best regards.
Ye Wenbin

Attachment: MakeHelper.pm.patch
Description: Binary data

Attachment: ParseXSDoc.pm.patch
Description: Binary data



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]