summaryrefslogtreecommitdiff
path: root/jmake
diff options
context:
space:
mode:
authorrmanfredi <rmanfredi@2592e710-e01b-42a5-8df0-11608a6cc53d>2010-11-28 23:05:09 +0000
committerrmanfredi <rmanfredi@2592e710-e01b-42a5-8df0-11608a6cc53d>2010-11-28 23:05:09 +0000
commit36a47742bb84eb86d0a1095bbbefd6e905f39d4f (patch)
tree21e21ebb1aee2bbf99a0a048e370fedfd7d92884 /jmake
parent17a95c14fc05fe53f250d627b55ea588321c7129 (diff)
Added the notion of local_depend and sub_depend.
This allows one to do a "make local_depend" after Makefile.SH extraction without having to recurse to subdirs. git-svn-id: svn://svn.code.sf.net/p/dist/code/trunk/dist@48 2592e710-e01b-42a5-8df0-11608a6cc53d
Diffstat (limited to 'jmake')
-rw-r--r--jmake/Jmakefile3
-rwxr-xr-xjmake/Makefile.SH7
-rw-r--r--jmake/files/Jmake.rules24
-rw-r--r--jmake/files/Jmake.tmpl9
4 files changed, 35 insertions, 8 deletions
diff --git a/jmake/Jmakefile b/jmake/Jmakefile
index f156184..e204d7d 100644
--- a/jmake/Jmakefile
+++ b/jmake/Jmakefile
@@ -40,7 +40,8 @@ InstallMultipleFlags(files/Jmake*,$(PRIVLIB)/files,-m 444)
BINSH = jmake.SH fixcpp.SH
-depend::
+depend:: local_depend
+local_depend::
($(SED) '/^# DO NOT DELETE/q' Makefile && \
grep '^\$$grep' $(BINSH) | \
$(SED) -e "s/^.*' \([^ ]*\) >>\([^ ]*\)/\2: \1/" \
diff --git a/jmake/Makefile.SH b/jmake/Makefile.SH
index 2af8e44..0e859ea 100755
--- a/jmake/Makefile.SH
+++ b/jmake/Makefile.SH
@@ -1,5 +1,5 @@
: Makefile.SH generated from Jmake.tmpl and Jmakefile [jmake 3.5-43]
-: $X-Id: Jmake.tmpl 30 2009-10-28 07:45:28Z rmanfredi $
+: $X-Id: Jmake.tmpl 47 2010-11-28 22:23:13Z rmanfredi $
case $CONFIG in
'')
@@ -210,7 +210,8 @@ local_deinstall::
BINSH = jmake.SH fixcpp.SH
-depend::
+depend:: local_depend
+local_depend::
($(SED) '/^# DO NOT DELETE/q' Makefile && \
grep '^\$$grep' $(BINSH) | \
$(SED) -e "s/^.*' \([^ ]*\) >>\([^ ]*\)/\2: \1/" \
@@ -280,6 +281,8 @@ tags::
local_clobber::
$(RM) tags
+depend::
+
########################################################################
# Empty rules for directories with no sub-directories -- do not edit
diff --git a/jmake/files/Jmake.rules b/jmake/files/Jmake.rules
index 21ef3fe..43bc10a 100644
--- a/jmake/files/Jmake.rules
+++ b/jmake/files/Jmake.rules
@@ -554,7 +554,7 @@ DeinstallMultipleDest(local_deinstall.man,list,dest)
* Generate rules to build the makedepend program.
*/
#define DependDependency() @!\
-depend:: TOPDIR/mkdep @!\
+local_depend:: TOPDIR/mkdep @!\
@!\
TOPDIR/mkdep: @!\
?TOP: @echo "You have to run Configure first."; exit 1 @!\
@@ -571,7 +571,8 @@ TOPDIR/mkdep: @!\
|once _DependTarget_ @!\
DependDependency() @!\
@!\
-depend:: @@\
+depend:: local_depend @!\
+local_depend:: @@\
($(SED) '/^# DO NOT DELETE/q' Makefile && \ @@\
$(MKDEP) $(SOURCES) | \ @@\
$(SED) -e 's:/usr/lib[^ ]*::g; s:$(USRINC)[^ ]*::g; ' \ @@\
@@ -1168,6 +1169,22 @@ name:: @@\
/*
+ * NamedTargetSubdirsAsRule:
+ * Recursively make a series of steps in the specified directories,
+ * where the name of the local rule is different from the recursive
+ * actions.
+ */
+#define NamedTargetSubdirsAsRule(dirs,localname,name,verb,flags) @!\
+localname:: @@\
+ @case '${MFLAGS}' in *[ik]*) set +e;; esac; \ @@\
+ for i in dirs ;\ @@\
+ do \ @@\
+ (cd $$i ; echo verb "in $(DIR)$$i..."; \ @@\
+ $(MAKE) $(MFLAGS) flags name) || exit 1; \ @@\
+ done
+
+
+/*
* NamedTargetSubdirs:
* Recursively make a series of steps.
*/
@@ -1211,7 +1228,8 @@ NamedTargetSubdirs(all,"Making all",^^)
* make depend step.
*/
#define DependDirs(dirs) \
-NamedTargetSubdirsRule(dirs,depend,"Depending",^^)
+depend:: sub_depend @!\
+NamedTargetSubdirsAsRule(dirs,sub_depend,depend,"Depending",^^)
/*
diff --git a/jmake/files/Jmake.tmpl b/jmake/files/Jmake.tmpl
index f684048..71c14a8 100644
--- a/jmake/files/Jmake.tmpl
+++ b/jmake/files/Jmake.tmpl
@@ -193,6 +193,11 @@ maybe_deinstall.man: deinstall.man-no
MakefileTarget()
TagsTarget()
+/*
+ * Empty rules in case there is no depend target.
+ */
+depend::
+
%SUBDIRS:|skip /* Skip if no sub-directories */
;########################################################################
;# Rules for building in sub-directories -- do not edit
@@ -240,8 +245,8 @@ Makefiles::
Makefiles.SH::
--skip /* No sub-directories */
-%depend%:|skip /* Skip if no depend target */
+-skip /* No sub-directories */
+%local_depend%:|skip /* Skip if no local depend target */
;########################################################################
;# Dependencies generated by make depend
;# DO NOT DELETE THIS LINE -- make depend relies on it