[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Patches for OS/2 (2)
From: |
Eli Zaretskii |
Subject: |
Re: Patches for OS/2 (2) |
Date: |
Wed, 13 Nov 2002 08:18:47 +0200 (IST) |
On Wed, 13 Nov 2002, Andreas Buening wrote:
> > > If the precompiled binaries use prefix=e:/usr/local then
> > > libintl can't find the locale files in f:/usr/local etc.
> > > If the precompiled binaries use prefix=/usr/local then libintl
> > > can find the files in f:/usr/local only if f: is the current
> > > drive which means that the program result depends on the
> > > choosen current directory.
> > > The solution is the following: If a directory name doesn't
> > > contain a drive letter x: then the $UNIXROOT drive letter
> > > is assumed. If UNIXROOT is not set nothing happens.
> >
> > DOS and OS/2 maintain a notion of "current drive". The
> > effect that you achieve through UNIXROOT=f: is the same
> > as the user would obtain through the command "cd f:".
> > The handling of pathnames without drive letters is
> > already handled inside EMX. I see no reason to duplicate
> > it in the software above it.
>
> No. This would imply that the software only works on the drive
> it is installed.
How about using one of the following solutions (or both of them)?
1) Make libintl look for its files in some directory relative to the
place where the executable program is installed. For example,
if foo.exe is in f:/usr/local/bin, make it so libintl looks for its
files in ../share/ relative to where foo.exe lives. This could be
implemented by making foo.exe push into environment some variable
that libintl would look at, and making f:/usr/local/share the value
of that variable. (foo.exe knows where it lives by looking at its
argv[0].)
2) Is there some environment variable used by EMX to point to the root
of its installation? If so, you could use that place as the
replacement for /usr/local, and configure libintl look in its `share'
subdirectory. In other words, assuming that, say, $EMX_PREFIX points
to the root of the EMX installation, make libintl look for its files
in $EMX_PREFIX/share/. That is, configure libintl with
--prefix='$EMX_PREFIX'.