Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Tell a configure script to use a relative path for --datarootdir

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?

like image 877
Malvineous Avatar asked Mar 11 '12 10:03

Malvineous


1 Answers

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

like image 125
Malvineous Avatar answered Oct 05 '22 07:10

Malvineous