Compiling Wine with BiDi support - instructions
Shachar Shemesh
wine-devel at shemesh.biz
Tue Apr 6 11:44:19 CDT 2004
Hi list,
Here are the formal instructions for compiling Wine with bidi support.
When doing so, it is recommended that you use a fairly recent version of
ICU (2.6 and up), or else there is going to be a runtime soft dependancy
on some ICU files in the resulting Wine. No big deal - if these files
are not there, Wine will work just fine, only without BiDi support.
Still, this is not necessary.
Instructions:
1. If you use a precompiled package (relatvely rare for ICU,
unfortunatly), make sure it has the static libraries as well. ICU
does not have these by default. If they are there, you may skip to
step 8. Please note, however, that this will add about 7MB to the
size of the resulting gdi.dll.so.
2. Grab ICU from the web http://oss.software.ibm.com/icu.
3. Extract the sources file.
4. CD into the ICU directory, and then into the "source" subdirectory.
5. Delete all files with the "mk" extension under icu/source/data.
e.g. run "find data -name \*.mk -exec rm \{\} \;". Please trust me
on this one, it's ok to do it. This step saves the aforementioned 7MB.
6. ./runConfigureICU LinuxRedHat --enable-static. If you are only
building this for use with Wine, you can also add
"--enable-shared=no --enable-64bit-libs=no --prefix=~/icuinstall".
If not, you may wish to skip the previous step as well.
7. run "make" and "make install". Grab a lunch. Just one will do.
8. If your ICU library files are installed in /usr/lib and
/usr/include, compile wine as usual. If they are installed
anywhere else, you will need to set the "ICU_LIB_DIR" environment
variable to wherever it was that they are installed. You will also
have to add the include path. For example, if you compiled and
installed icu according to my example above, you will need to set
ICU_LIB_DIR to "~/icuinstall/lib", and also CPPFLAGS to
"-I~/icuinstall/include".
9. Make sure that including "ubidi.h" and the following linking step
passes in "configure". Also check whether include/config.h has
"HAVE_ICU" set.
10. To be really sure that your wine supports BiDi, run the program
given in this email.
A few things to note:
* The above assumes that your Wine already has
http://www.winehq.org/hypermail/wine-patches/2004/04/0088.html
integrated.
* If you are compiling Wine on Debian, and want to use the Debian
supplied ICU library for whatever reason (for example - because
the packaging system pretty much requires you to), the above
procedure needs to be slightly altered. ICU changed their static
library naming scheme over some recent version. The Debian
packaged ICU (2.1) still uses the old scheme. Either use Wine
without the aforementioned patch, or set ICUUC_LIB and ICUDATA_LIB
to the full path to libicuuc.a and libicudata.a respectively (they
are called "libsicuuc.a" and "libsicudata.a" in newer version of
ICU). Please note that this means there is a runtime dependancy on
some ICU files for BiDi to work, as explained above.
Instead of reposting the program for testing whether Win32 supports
reordering, the link to the file in the list's archive is at
http://www.winehq.org/hypermail/wine-devel/2003/08/att-0175/01-biditest.c.
Enjoy
--
Shachar Shemesh
Lingnu OpenSource Consulting
http://www.lingnu.com/
More information about the wine-devel
mailing list