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