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?
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=...
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With