mlterm does not build on cygwin (tried 3.0.11 and previously 3.0.8)
In file included from /usr/lib/gcc/i686-pc-cygwin/4.5.3/../../../../include/w32api/windows.h:87:0,
from x_display.c:110:
/usr/lib/gcc/i686-pc-cygwin/4.5.3/../../../../include/w32api/winspool.h:255:8: error: two or more data types in declaration specifiers
/usr/lib/gcc/i686-pc-cygwin/4.5.3/../../../../include/w32api/winspool.h:270:8: error: two or more data types in declaration specifiers
/usr/lib/gcc/i686-pc-cygwin/4.5.3/../../../../include/w32api/winspool.h:291:8: error: two or more data types in declaration specifiers
/usr/lib/gcc/i686-pc-cygwin/4.5.3/../../../../include/w32api/winspool.h:316:8: error: two or more data types in declaration specifiers
/usr/lib/gcc/i686-pc-cygwin/4.5.3/../../../../include/w32api/winspool.h:571:8: error: two or more data types in declaration specifiers
/usr/lib/gcc/i686-pc-cygwin/4.5.3/../../../../include/w32api/winspool.h:594:8: error: two or more data types in declaration specifiers
Makefile:76: recipe for target `x_display.o' failed
Thanks for your report.
I think an attached patch will fix this problem.
With the patch it builds. It doesn't work, however. As soon as it is asked to display a UTF-8 character, the mlterm window vanishes, then reapperas after a moment. This repeats a few dozen times (!) until it finally crashes.
Thanks.
I think an attached patch will stop segfault in using utf8.
But if the problem is fixed by this patch, mkf loadable
dlls doesn't seem to be installed to correct directory
($(libdir)/mlterm or the same directory where mlterm.exe is installed),
so UTF-8 characters might not be correctly displayed by
this patch alone.
OK, no crash anymore (and UTF-8 is displaed).
However, bidi does not work, although 'configure' output finally includes:
BiDi rendering (Fribidi) : yes
Indic rendering : yes
Despite this, there are some occurences of "fribidi=no" in config.log, and no warning. Weird.
configure script didn't output if fribidi library is found or not,
but output if --enable-fribidi is specified or not.
I fixed this problem. Thanks.
Then, does "pkg-config fribidi --modversion" normally output the version
number of it ?
configure script uses pkg-config to check if fribidi is installed or not.
pkg-config: command not found
Maybe that's the problem?
Install Devel/pkg-config and Text/libfribidi-devel by cygwin setup.exe.
Oops, I was confused and mixed this up with my parallel report about not building on SunOS; pkg-config *was* installed on cygwin:
~: pkg-config fribidi --modversion
0.19.2
Could you test mlterm-3.1.2 which fixed the problem I commented at 2012-05-13 and tell me what configure script says ?
And after building, is there mlterm-3.1.2/mlterm/libctl/.libs/cygctl_bidi.dll created and installed to $(libdir)/mlterm/ ?
Ah. Oh.
I wasn't aware I should have installed first. I tried to run mlterm directly after make (main/mlterm) and it doesn't find those libraries then.
Now bidi works fine, sorry.
I got one error message by make install:
libtool: install: warning: relinking `libim-kbd.la'
(cd /cygdrive/d/home/opt/mlterm-3.1.2/inputmethod/kbd; /bin/sh ../../libtool --mode=relink gcc -L/cygdrive/d/home/usr/lib -o libim-kbd.la im_kbd.lo -rpath /usr/local/lib/mlterm -module -avoid-version -no-undefined -L../../kiklib/src -lkik -L../../mkf/lib -lmkf )
/bin/mv: cannot stat `libim-kbd.dll.a': No such file or directory
libtool: install: error: relink `libim-kbd.la' with the above command before installing it
Makefile:51: recipe for target `install' failed
make[1]: *** [install] Error 1
make[1]: Leaving directory `/cygdrive/d/home/opt/mlterm-3.1.2/inputmethod/kbd'
Makefile:9: recipe for target `install' failed
One other note (might be a separate report):
make install prefix=$HOME/usr
does not work, it refuses to install:
libtool: install: error: cannot install `libmkf.la' to a directory not ending in /usr/local/lib
This is not good, installation should not require to use /usr/local. Especially on cygwin, e.g., this hierarchy is not normally used at all.
> I got one error message by make install:
I coldn't still find the cause, sorry.
> libtool: install: error: cannot install `libmkf.la' to a directory not ending in /usr/local/lib
This is a specification of libtool.
(Following is a comment in libtool.
# Don't allow the user to place us outside of our expected
# location b/c this prevents finding dependent libraries that
# are installed to the same prefix.)
If you want to install to a directory except /usr/local,
please specify --prefix=... to configure script.
(I think "cp .libs/*.dll [a directory you want to install to]"
instead of "make install" will work, though.)
Retried with 3.2.2:
Although there exists the precompiled cygwin binary,
I can't build it from the source package:
configure: error: C++ preprocessor "/lib/cpp" fails sanity check
(tried on 2 systems).
Just in case, do you install gcc-g++ package which is necessary to build mlterm ?
Right, that fixed configure. (I wonder, by the way, why bidi is disabled by default...)
Compilation doesn't work, though;
cygwin 32 bit:
gcc -I../../kiklib/include -g -O2 -I/usr/include/fribidi -I/usr/local/include -o .libs/mlimgloader .libs/gdiplus.o -L/cygdrive/d/home/usr/lib ../../kiklib/src/.libs/libkik.dll.a -L/usr/local/lib -L/usr/local/lib
.libs/gdiplus.o: In function
create_cardinals_from_file': /cygdrive/d/home/downloads/32/mlterm-3.2.2/tool/mlimgloader/gdiplus.cpp:77: undefined reference toGdiplusStartup@12'... (lots more)
cygwin 64 bit:
.libs/kik_dlfcn_win32.o: In function
kik_dl_open': /cygdrive/d/home/downloads/64/mlterm-3.2.2/kiklib/src/kik_dlfcn_win32.c:53: undefined reference tocygwin_conv_to_win32_path'/cygdrive/d/home/downloads/64/mlterm-3.2.2/kiklib/src/kik_dlfcn_win32.c:53:(.text+0x6e): relocation truncated to fit: R_X86_64_PC32 against undefined symbol
cygwin_conv_to_win32_path' /cygdrive/d/home/downloads/64/mlterm-3.2.2/kiklib/src/kik_dlfcn_win32.c:78: undefined reference tocygwin_conv_to_win32_path'/cygdrive/d/home/downloads/64/mlterm-3.2.2/kiklib/src/kik_dlfcn_win32.c:78:(.text+0xcc): relocation truncated to fit: R_X86_64_PC32 against undefined symbol
cygwin_conv_to_win32_path' collect2: error: ld returned 1 exit status Makefile:94: recipe for targetlibkik.la' failedI haven't built on cygwin/64, thanks a lot.
I fixed these problems.
https://bitbucket.org/arakiken/mlterm/get/tip.tar.gz
Result on cygwin 64:
../xwindow/libxwindow.a(x_dnd.o): In function
x_dnd_filter_event': /home/towo/arakiken-mlterm-2651893d8616/xwindow/../xwindow/win32/x_dnd.c:93: undefined reference tocygwin_conv_to_posix_path'/home/towo/arakiken-mlterm-2651893d8616/xwindow/../xwindow/win32/x_dnd.c:93:(.text+0x13b): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `cygwin_conv_to_posix_path'
Google reveals that this function was deprecated.
Result on cygwin 32:
compiles well now, but runs with some problems:
Question: How can I check Indic support? I would at least need a fixed-width Indic font but couldn't find any for download.
Further question: Would you like mlterm as a regular cygwin package?
I fixed to use Courier New by default.
I couldn't reproduce it on Cygwin 1.7.22 / Windows 7 starter.
Will you send me the mlterm binaries in $PREFIX/bin with debug symbols ?
I'm sorry but it's not easy.
1) Download http://mlterm.sf.net/DVYG0ntt.ttf and install it.
2) Add a following line to ~/.mlterm/font
ISCII_HINDI = DV-TTYogesh 23
3) ./configure --with-gui=win32 --enable-ind ... ; make ; make install
4) Start mlterm with following options.
mlterm -E utf8 -w 16 --im=kbd:isciihindi --lsp 3 --bi=false --ind
Thanks. I'm sorry but I didn't notice it.