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/




Reply via email to