automake
[Top][All Lists]
Advanced

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

Support for a non-standard directory


From: Richard Bos
Subject: Support for a non-standard directory
Date: Tue, 19 Feb 2008 17:30:49 +0100
User-agent: KMail/1.9.6 (enterprise 20070904.708012)

Hi,

Summary:
For an open source project, that I work on, it is needed to define a webserver 
root directory.  This is done using a variable webserver_document_root, that 
is (in my case) defined as /srv/www/htdocs.

(please Cc me as I'm not subscribe to the automake ML).

When I now run:
DISTCHECK_CONFIGURE_FLAGS="--with-dist=suse --without-openpkg" make distcheck 
it fails :(

Whatever I do to the webserver_document_root (more details about this below) 
it either fails the 'make distcheck', or 'make install' installs in an 
incorrect location.

I'm now going to use a workaround to (mis)use the configure argument --htmldir 
to define the webserver root directory.

Two questions:
1) is a feature request feasible, asking to extend configure so it gets a 
command line option that can be used to define the webserver root directory 
(--webserverdir e.g.)?  If I search the internet, more people are fighting 
this battle to obtain a webserver root directory with autotools and 
have 'make distcheck' work.  Hence, it would serve multiple people.

2) Is there a way, that I can make it work with the current automake, autoconf 
combo?  I use automake-1.10

I tried:
$(distdir)/$(webserver_document_root)$(webserver_web_prefix)
$(DESTDIR)/$(webserver_document_root)$(webserver_web_prefix)
$(prefix)$(DESTDIR)/$(webserver_document_root)$(webserver_web_prefix)
$(DESTDIR)/$(prefix)/$(webserver_document_root)$(webserver_web_prefix)
The changes above result in a working distcheck, but not in a correct
behaving: 'make install DESTDIR=....'.  The result is e.g:
[/var/tmp/kolab/kolab-webadmin/kolab-webadmin/kolab-webadmin-2.1.99/ME] >
ls ./var/tmp/kolab/kolab-webadmin/kolab-webadmin/kolab-webadmin-2.1.99/ME
(even more details below)

The webserver_document_root is defined in a file that is included from 
Makefile.am with a variable @address@hidden  The variable is filled in during 
configure time.  Snappit from Makefile.am:
EXTRA_DIST =
CLEANFILES =

@distribution@
@common@
.............


Hopefully, you don't shoot me for this lenghty email.  What is your advice 
regarding this?



-- 
TIA,

Richard Bos
Without a home the journey is endless


Some more data
------------------------

Create tarbal:
kolab-webadmin> ./bootstrap
kolab-webadmin> ./configure --without-openpkg --with-dist=suse
kolab-webadmin> make distcheck > out 2>&1
kolab-webadmin> grep -c openpkg out
144
This is not good, as there should be no openpkg reference due to
the --without-openpkg argument.

The correct way to execute 'make distcheck' is therefor:
kolab-webadmin> DISTCHECK_CONFIGURE_FLAGS="--with-dist=suse --without-openpkg" 
make distcheck > out 2>&1
kolab-webadmin> grep -c openpkg out
0
This is good, but now 'make distcheck' fails:
kolab-webadmin> tail -7 out
test -z "/srv/www/htdocs/kolab/admin/pics" || /bin/mkdir -p 
"/srv/www/htdocs/kolab/admin/pics"
/bin/mkdir: cannot create directory `/srv/www/htdocs/kolab': Permission denied
make[2]: *** [install-dist_wspicsDATA] Error 1
make[2]: Leaving directory 
`/var/tmp/kolab/kolab-webadmin/kolab-webadmin/kolab-webadmin-2.1.99/_build'
make[1]: *** [install-am] Error 2
make[1]: Leaving directory 
`/var/tmp/kolab/kolab-webadmin/kolab-webadmin/kolab-webadmin-2.1.99/_build'
make: *** [distcheck] Error 2

The reason is the definition of the webserver directory in Makefile.am
kolab-webadmin> grep -n webserver_document_root Makefile.am
21:wstopleveldir = $(webserver_document_root)$(webserver_web_prefix)
29:wskolabdir = $(webserver_document_root)$(webserver_web_prefix)/admin

This definition does not take the destination directory into account.
Whatever I tried to change the behaviour of automake, I did not get it 
correct.
I tried e.g.:
$(distdir)/$(webserver_document_root)$(webserver_web_prefix)
$(DESTDIR)/$(webserver_document_root)$(webserver_web_prefix)
$(prefix)$(DESTDIR)/$(webserver_document_root)$(webserver_web_prefix)
$(DESTDIR)/$(prefix)/$(webserver_document_root)$(webserver_web_prefix)
The changes above result in a working distcheck, but not in a correct
behaving: 'make install DESTDIR=....'.

When 
21:wstopleveldir = $(webserver_document_root)$(webserver_web_prefix)
29:wskolabdir = $(webserver_document_root)$(webserver_web_prefix)/admin
is changed to:
21:wstopleveldir = $(htmldir)$(webserver_web_prefix)
29:wskolabdir = $(htmldir)$(webserver_web_prefix)/admin
make distcheck works as well
make install DESTDIR=.....







reply via email to

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