Hello,
I managed to build inkscape cvs on win32 (with Msys/MsysDTK/MinGW) A screenshot : http://195.221.122.126/tmp/inkscapewin32.png
The configure.in doesn't care about win platform (Unfortunetely I don't know much about autoconf/automake) so I had to change some settings, and did a couple of modifications to Makefile and to some sources (if someone want more details ask me). Also Inkscape crashes if the latest libxml2 dll (2.6.2) is used
I've not done too much tests: some icons seem to vanish, a test export to png was successful.. I'm not skilled enough to maintain a win32 port but I really hope someone will :-/
M
Mael wrote:
Hello,
I managed to build inkscape cvs on win32 (with Msys/MsysDTK/MinGW) A screenshot : http://195.221.122.126/tmp/inkscapewin32.png
The configure.in doesn't care about win platform (Unfortunetely I don't know much about autoconf/automake) so I had to change some settings, and did a couple of modifications to Makefile and to some sources (if someone want more details ask me). Also Inkscape crashes if the latest libxml2 dll (2.6.2) is used
I've not done too much tests: some icons seem to vanish, a test export to png was successful.. I'm not skilled enough to maintain a win32 port but I really hope someone will :-/
M
Great, can you provide a diff or something else, that I can reproduce your results. Maybe we can sent patches for the Win32 support, so that it will compile out of the box ;-)
Thanks in advance, Adib.
Great, can you provide a diff or something else, that I can reproduce your results.
here are some informations, hope this help
*** Packages
You'll need many dev packages , mostly from http://www.gimp.org/~tml/gimp/win32/ atk-dev-1.4.0.zip,fontconfig-dev-2.2.1.zip,freetype-2.1.4-bin.zip,freetype-2 .1.4-lib.zip,gettext-runtime-0.12.1.bin.woe32.zip,glib-dev-2.2.3.zip,gtk+-de v-2.2.4.zip,libiconv-1.9.1.bin.woe32.zip,libpng-1.2.5-lib.zip,pango-dev-1.2. 5.zip,pkgconfig-0.15.zip,zlib-1.1.4-1-lib.zip,libart_lgpl-dev-2.3.14.zip,lib xml2-2.6.2.win32.zip
You also need to unzip sodipodi-codepages-1.0.zip from sodipodi files in src/libnrtype
You may need to edit /bin/freetype-config and /bin/glib-gettextize to have correct prefix
Libxml2 win32 doesnt include the pkgconfig file so you have to create one /lib/pkgconfig/libxml-2.0.pc -- prefix=/target exec_prefix=${prefix} libdir=${exec_prefix}/lib includedir=${prefix}/include
Name: Libxml2 Description: Lib xml Version: 2.6.2 Requires: Libs: -L${libdir} -lxml2 Cflags: -I${includedir}/libxml -- (this is incomplete but should work here)
*** Makefile
Change in configure.in to detect mingw platform and add flag -mms-bitfields --- AC_MSG_CHECKING([for MinGW platform]) case "$host" in *-*-mingw*) platform_win32=yes ;; *) platform_win32=no ;; esac AC_MSG_RESULT([$platform_win32]) AM_CONDITIONAL(PLATFORM_WIN32, test "$platform_win32" = "yes") if test x"$platform_win32" = xyes; then CFLAGS="$CFLAGS -mms-bitfields" fi ---
Then you can modify some Makefile.am to include win32 files :
src/libnrtype/Makefile.am --- if PLATFORM_WIN32 win32_sources = nr-type-w32.c nr-type-w32.h \ codepages.h cp1251.c cp1253.c cp1255.c cp1257.c cp874.c cp936.c \ cp950.c cp1250.c cp1252.c cp1254.c cp1256.c cp1258.c cp932.c cp949.c endif --- and add $(win32_sources) to libnrtype_a_SOURCES
src/modules/Makefile.am --- if PLATFORM_WIN32 win32_sources = win32.c win32.h endif --- and add $(win32_sources)
src/Makefile.am --- if PLATFORM_WIN32 win32_sources = winmain.c win32ldflags = -lcomdlg32 endif --- and add $(win32_sources) to inkscape_SOURCES and $(win32ldflags) to inkscape_LDADD
** Some changes to source files :
src/libnr/testnr.c uses unknown gettimeofday() --- #ifdef __MINGW32__ #include <sys/time.h> #include <sys/timeb.h> void gettimeofday(struct timeval* t,void* timezone) { struct timeb timebuffer; ftime( &timebuffer ); t->tv_sec=timebuffer.time; t->tv_usec=1000*timebuffer.millitm; } #endif --- (not tested)
src/libnr/gen_nr_config.c delete the line #include "config.h"
src/libnrtype/nr-type-directory.c commented declaration and call to nr_type_read_private_list as it uses some unknown include remove keywork static for nr_type_w32_read_list prototype
src/libnrtype/nr_type_w32.c remove keyword static for nr_type_w32_read_list
src/main.c commented the set default icon lines using DATADIR /* if (g_file_test (DATADIR "/pixmaps/inkscape.png", (GFileTest)(G_FILE_TEST_IS_REGULAR | G_FILE_TEST_IS _SYMLINK))) { gtk_window_set_default_icon_from_file (DATADIR "/pixmaps/inkscape.png", NULL); }*/
./autogen.sh --disable-mmx --with-xft=no (I've not verified if mmx works)
I had to change -O2 to -O for src/libnrtype/Makefile to avoid an internal compiler error
This is what I remember , Be prepared to have some other changes to do :( I'm not providing patches or diff because all this is really quick&dirty&incomplete hacks just to get something running..
M
participants (2)
-
unknown@example.com
-
Mael