automake
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Problems with data files


From: Ganesh Kundapur
Subject: Re: Problems with data files
Date: Wed, 28 May 2008 13:44:41 +0530

Hi,
   Thanks for the useful info.

/Ganesh

On Mon, May 26, 2008 at 11:37 PM, Ralf Wildenhues <address@hidden>
wrote:

> Hello Ganesh,
>
> * Ganesh Kundapur wrote on Mon, May 26, 2008 at 10:43:50AM CEST:
> >   My directory structure is
> >   Game
> >    - Makefile.am
> >    - src
> >      - Makefile.am
> >    - inc
> >    - data
> >      <some files>
> >      - audio
> >     - Makefile.am
> >
> > Toplevel Makefile.am contains
> >    datadir = /usr/share/game/data
>
> Note that this setting here has several problems:
>
> - It will not propagate from toplevel Makefile.am to other Makefiles.
> In order to override a variable globally, do something like
>   AC_SUBST([datadir], [$value])
>
> in configure.ac.
>
> - Actually, datadir is predefined by Autoconf, and while you can
> override it, it is not such a good idea, because then the output of
>  ./configure --help
>
> will not tell the truth, for example.  You could set gamedir in
> configure.ac, for example, and use that in the Makefile.am files.
>
> - Your setting is absolute, instead of relative to, say, ${prefix}.
> No installation directory should be passed in absolute, because your
> users may want to (and have good reason to!) override it.  For example,
> I may want to use "--prefix=$HOME/local" and expect all files to be
> installed below my home directory, because that's where I have write
> privileges.
>
> A better setting would be "'${datarootdir}'", which, incidentally, is
> the default set by Autoconf.
>
> "make distcheck" ensures that you do not define absolute directories.
>
> - I wonder whether you should not touch the setting at all, and instead
> just teach your users to
>  ./configure --datadir=/usr/share/game/data
>
> which will most likely do the right thing.  (Use --datarootdir if you
> want docdir, infodir, localedir, and mandir to be adjusted as well.)
>
> Please see
> <
> http://www.gnu.org/software/automake/manual/html_node/Standard-Directory-Variables.html
> >
> <
> http://www.gnu.org/software/autoconf/manual/standards/Directory-Variables.html
> >
> and references therein for more information on this.
>
> > When i configure, Makefile will be created under src, data directories
> but
> > not under data/audio directory. Makefile wont be created even if i put a
> > entry under SUBDIRS
>
> That's likely because you haven't listed that Makefile as
> AC_CONFIG_FILES in configure.ac.
>
> > in toplevel Makefile.am as
> > game/Makefile.am
> > ---------------------------
> > datadir = /usr/share/game/data
> >
> > SUBDIR = src \
> >                 data \
> >                 data/audio
> >
> > and when i run make, i'm getting the fallowing errors due to absence of
> the
> > Makefile under data/audio directory
>
> This is likely just a followup error of above.
>
> Hope that helps.
>
> Cheers,
> Ralf
>


reply via email to

[Prev in Thread] Current Thread [Next in Thread]