From 98656d5ea6079457992eb779787d7be51ab2917a Mon Sep 17 00:00:00 2001
From: Björn Persson
Date: Tue, 13 Aug 2013 15:19:53 +0200
Subject: Keeping most of the build system in a subdirectory in the source tree
should also work now.
---
comfignat.mk | 13 ++++++++-----
manual.en.html | 4 ++--
2 files changed, 10 insertions(+), 7 deletions(-)
diff --git a/comfignat.mk b/comfignat.mk
index 07ae8d2..15fb467 100644
--- a/comfignat.mk
+++ b/comfignat.mk
@@ -136,9 +136,10 @@ install_cp_flags = ${if ${DESTDIR},--preserve=timestamps}
#
srcdir := ${abspath ${dir ${lastword ${MAKEFILE_LIST}}}}
-# srcdir is the root of the source tree, computed as the directory part of the
-# last pathname in MAKEFILE_LIST – which is this file since there is no include
-# directive above this point.
+# srcdir is the directory in the source tree where makefiles and project files
+# are. It may be the root of the source tree or a subdirectory. It is computed
+# as the directory part of the last pathname in MAKEFILE_LIST – which is this
+# file since there is no include directive above this point.
stage_bindir = ${stagedir}${bindir}
stage_libexecdir = ${stagedir}${libexecdir}
@@ -446,8 +447,10 @@ options_building = ${addprefix -X,${option_values}}
# Some other data that the rules below need:
#
-delegation_command := @$${MAKE} --file=${abspath ${firstword ${MAKEFILE_LIST}}}\
- --include-dir=${srcdir} --no-print-directory
+main_makefile := ${firstword ${MAKEFILE_LIST}}
+delegation_command = @$${MAKE} --file=${abspath ${main_makefile}} \
+ --include-dir=${abspath ${dir ${main_makefile}}} \
+ --no-print-directory
# delegation_command is the Make command line that delegating makefiles in
# separate build directories use to delegate commands to the main makefile. The
# first pathname in MAKEFILE_LIST is the main makefile.
diff --git a/manual.en.html b/manual.en.html
index 414746e..03052f1 100755
--- a/manual.en.html
+++ b/manual.en.html
@@ -460,8 +460,8 @@ file will be in the build directory, so it can't refer to source directories
with pathnames relative to the project file or rely on the source files being
in the same directory as the project file. The preprocessor symbol
Srcdir must be used in the value of Source_Dirs. Its
-value is the directory where comfignat.mk is, which is supposed to
-be the root of the source tree. Here's an example:
+value is the directory where comfignat.mk is, which is usually the
+root of the source tree. Here's an example:
for Source_Dirs use ($Srcdir & "/tools");
--
cgit v1.2.3