[Fedora-directory-devel] Why is there a Makefile in CVS?
Andrew Bartlett
abartlet at samba.org
Tue Mar 13 04:20:41 UTC 2007
On Mon, 2007-03-12 at 06:20 -0600, Richard Megginson wrote:
> Andrew Bartlett wrote:
> > Why is there a Makefile (not Makefile.in) in CVS?
> >
> Makefile is there for historical reasons and will be removed asap.
Great, thanks.
> > Isn't the first thing we want to do (on a checkout) a ./configure, which
> > will replace this file anyway?
> >
> > Likewise, I'm confused: why do we allow prefix and exec_prefix to be
> > specified at 'make' (rather than configure) time?
> You can set them at configure time. I use "configure
> --prefix=/home/rich/11srv && make install" for testing.
> > This is typically at
> > configure time in other open source projects.
> Actually, it is a "feature" of autoconf/automake to allow you to set
> them at make time, in addition to being able to set them at configure
> time. It is my understanding that autoconf/automake work fine, no
> matter if you set them at configure or make time. From "info autoconf":
> "Most of these variables have values that rely on `prefix' or
> `exec_prefix'. It is deliberate that the directory output variables
> keep them unexpanded: typically `@datadir@' will be replaced by
> `${prefix}/share', not `/usr/local/share'.
>
> This behavior is mandated by the GNU coding standards, so that when
> the user runs:
>
> `make'
> she can still specify a different prefix from the one specified to
> `configure', in which case, if needed, the package shall hard code
> dependencies corresponding to the make-specified prefix.
>
> `make install'
> she can specify a different installation location, in which case
> the package _must_ still depend on the location which was compiled
> in (i.e., never recompile when `make install' is run). This is an
> extremely important feature, as many people may decide to install
> all the files of a package grouped together, and then install
> links from the final locations to there.
> ...
> "
>
> There is more in the autoconf info doc about this too.
Yikes. That's very interesting. Can't blame GNU for lacking
features :-)
> > Changing this would seem
> > to remove some additional complexity from the build system...
> >
> What additional complexity is introduced?
It was this bit in Makefile.am that seems odd to me:
# these are for the config files and scripts that we need to generate
and replace
# the paths and other tokens with the real values set during
configure/make
# note that we cannot just use AC_OUTPUT to do this for us, since it
will do things like this:
# LD_LIBRARY_PATH = ${prefix}/lib/fedora-ds
# i.e. it literally copies in '${prefix}' rather than expanding it out -
we want this instead:
# LD_LIBRARY_PATH = /usr/lib/fedora-ds
if BUNDLE
fixupcmd = sed \
-e 's, at bindir\@,$(bindir),g' \
-e 's, at sbindir\@,$(sbindir),g' \
--
Andrew Bartlett
http://samba.org/~abartlet/
Authentication Developer, Samba Team http://samba.org
Samba Developer, Red Hat Inc. http://redhat.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part
URL: <http://listman.redhat.com/archives/fedora-directory-devel/attachments/20070313/e59248b7/attachment.sig>
More information about the Fedora-directory-devel
mailing list