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