Maybe this helps:This is a script I use for making liblouis and liblouisxml relocatable on Mac OS. It's very easy!
https://odt2braille.svn.sourceforge.net/svnroot/odt2braille/Odt2BrailleAddOn/liblouis/bin/install_name_tool.shWhen executing xml2brl, I make sure that the first file in my configuration file list is a path (i.e. my directory that includes all tables and semantic action files), so that liblouisxml will first scan this path when looking for tables. (You explain this in the user manual: http://liblouisxml.googlecode.com/svn/documentation/liblouisxml.html#Files-and-Paths.)
Bert On 17/12/2010 18:38, John J. Boyer wrote:
Paths swill be relative to the brailleblaster directory. I just haven't figured out how to do this for liblouis and liblouisutdml yet. On Windows they are relocatable, so there is no problem. Making them relocatable on the Mac and Linux may take a little work. John On Fri, Dec 17, 2010 at 03:39:34PM +0000, Michael Whapples wrote:bin/bin/ seems a bit odd to me. How does that read to others? Now taking another step back, you were describing the binary distribution layout, what goes to mercurial will be the source distribution which will certainly differ. I would have thought binary distributions when made from the source will go in a directory called something like build, possibly with subdirectories for whichever binary distribution is built (IE. if building on windows the binary distribution would be placed in build/win32/). Now you mentioned about the prefix for liblouis and such like, this is why I asked about the possibility of setting a relative path for the prefix of liblouis but as your response indicated it wasn't needed, so what do you now see as the problem? I still think it might be but you didn't. My point is that if the binary version of brailleblaster is distributed as a zip file you cannot guarantee/expect people to unzip it in a given location (actually if using the build directory idea, it would be expected people will relocate brailleblaster), therefore the prefix must be relative (possibly relative to the shared library file, eg. liblouis.so or liblouis.dll, etc). If going with the directory structure you suggested, then prefix would be ../. Not being a C programmer may be I have missed something in what C could do, may be the prefix would have to be relative to something else, but hopefully you get the idea now. If relative prefix paths are impossible you must find some way of doing this setting of appropriate paths at runtime, eg. environment variables. The start up scripts/bootstrapping executables could do the setting of environment variables if needed (certainly on windows and Linux, I guess also on the Mac but I don't know how precisely you would do it correctly, if there is an appbundle way of doing it). Michael Whapples On 17 Dec 2010, at 14:48, John J. Boyer wrote:Here is what I think should be in the base brailleblaster directory. How will it fit in a Mac app bundle? It should be fine for Windows and Linux. The directory is called brailleblaster it contains: LICENSE: a file COPYRIGHT: a file README: a file brailleblaster.jar: The main course brailleblaster.sh: startup script for Linux and Mac brailleblaster.bat: startup script for Windows lib: a directory containing jar files such as swt.jar bin: a directory containing C and C++ commands and libraries The bin directory in turn contains the following subdirectories: bin: command line tools such as file2brl lib: Libraries such as liblouis and liblouisutdml share: Files and documentation for various libraries liblouis and liblouisutdml should be compiled with the --prefix option of configure set to xxx/brailleblaster/bin where xxx is the path to the brailleblaster directory. I'm not sure what happens if this path changes. We will have to work that out. The make and make install commands will produce other directories within brailleblaster/bin, but these can be deleted. Now that my server is completely back in business, i will try to push my code to the BrailleBlaster repository. It will contain the source, of course. The bin and lib directories will be empty except for README files. John -- John J. Boyer; President, Chief Software Developer Abilitiessoft, Inc. http://www.abilitiessoft.com Madison, Wisconsin USA Developing software for people with disabilities