[brailleblaster] Re: BrailleBlaster Directory

  • From: Bert Frees <bert.frees@xxxxxxxxxxxxxxxx>
  • To: brailleblaster@xxxxxxxxxxxxx
  • Date: Mon, 20 Dec 2010 10:59:29 +0100

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.sh

When 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





Other related posts: