[Top][All Lists]
[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=.....
- Support for a non-standard directory,
Richard Bos <=