Reputation: 27350
I have used GNU autoconf to generate a configure script for a program of mine, which I am now trying to cross-compile for Windows.
Under Linux, to change the location of the data files I supply --datarootdir=/blah
which works fine. Under Windows however, my application's path won't be known until run time (as the user could choose to install it anywhere.) Therefore I want to set the data directory to be the current directory, wherever that may be at the time the application is launched.
Unfortunately, passing --datarootdir=.
doesn't work:
configure: error: expected an absolute directory name for --datarootdir: .
How do you tell Autoconf/configure that you want a path relative to the current directory at run time?
Upvotes: 7
Views: 5320
Reputation: 10579
Just give it an absolute path that is equal to the current working directory:
./configure --datarootdir=$PWD
Upvotes: 1
Reputation: 27350
I think I have found a partial solution for this. It seems --datarootdir
is used to control where the files are installed to, so it needs to be an absolute path for the benefit of make install
. However it can be overridden during compilation:
make datadir="."
This way, during compilation the code thinks the $(datadir)
is "." but when running make install
the files are still placed in the absolute path given to ./configure --datarootdir=...
Upvotes: 3