[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Problem installing headers in proper subdirectories
From: |
Aurélien Vallée |
Subject: |
Problem installing headers in proper subdirectories |
Date: |
Thu, 20 Mar 2014 14:12:16 +0200 |
Hello,
I have a little problem with Automake to handle the subdirectories when
installing headers.
Here is roughly the project hierarchy that I have:
foo/
foo-bin/
Makefile.am
...
foo-tests/
Makefile.am
...
foo-lib/
Makefile.am
include/
foo/
header1.h
subdir/
header2.h
src/
file1.cpp
Nothing too fancy, there is a root directory containing the configure.ac,
and 3 subdirectories for the shared library, the main binary, and the tests.
The interesting part here is project-lib/. It contains the library that the
binary and tests link to.
Since I want to be able to generate the configure files out of the source
tree, I've settled to use $top_srcdir relative path in my Makefile.am.
Here is what it looks like:
libfoo_la_SOURCES = \
$(top_srcdir)/foo-lib/src/file1.cpp
pkginclude_HEADERS = \
$(top_srcdir)/foo-lib/include/foo/header1.h \
$(top_srcdir)/foo-lib/include/foo/subdir/header2.h
Without these $top_srcdir relative path, I have problems when I try to use
the foo-lib from foo-bin, or when I try to generate the project out of the
source tree.
Now the problem: when installing these headers, they end up being flattened!
That is, I end up with:
$prefix/include/foo/header1.h
$prefix/include/foo/header2.h
While I was expecting:
$prefix/include/foo/header1.h
$prefix/include/foo/subdir/header2.h
So I assume that is what nobase_ is supposed to achieve, but since the path
I use are not relative to the Makefile.am, but to $top_srcdir, I end up
with the whole $top_srcdir path being copied:
$prefix/include/foo-lib/include/foo/header1.h
$prefix/include/foo-lib/include/foo/subdir/header2.h
which is clearly not what is expected.
Any thoughts and advises on this are greatly appreciated :)
If you need access to the real Makefile.am files, instead of the canonical
examples, the project is here:
https://github.com/NewbiZ/crashburn
Thanks so much for reading.
Aurelien
- Problem installing headers in proper subdirectories,
Aurélien Vallée <=