help-smalltalk
[Top][All Lists]
Advanced

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

[Help-smalltalk] [PATCH 5/5] build: reorganize some stamp files' handlin


From: Stefano Lattarini
Subject: [Help-smalltalk] [PATCH 5/5] build: reorganize some stamp files' handling
Date: Mon, 20 Aug 2012 21:56:24 +0200

This change is a useless but harmless re-organization of some
build rules using stamp files.  The real reason for such a change
is that it will make transition to Automake-NG easier.

* libgst/Makefile.am ($(srcdir)/match.stamp): No need to specify
the '$(srcdir)/' explicitly, since the Smalltalk build system is
assuming GNU make anyway (it was once necessary to avoid a bug
with FreeBSD VPATH handling); so rename this target simply ...
(match.stamp): ... like this. Also, depend on 'genbc$(EXEEXT)',
rather than calling '$(MAKE)' recursively in the recipe to build
it.  Not only is this more efficient, it also avoid possible
hanging of "make all" in the 'libgist' subdir when Automake-NG
is used to bootstrap the Smalltalk build system.
($(srcdir)/prims.stamp): Likewise ...
(prims.stamp): ... rename and modify the rule (with the
dependency being on 'genprims$(EXEEXT)' this time).
($(srcdir)/vm.stamp): Likewise ...
(vm.stamp): ... rename and modify the rule (with the dependency
being on 'genvm$(EXEEXT)' this time).
(dist-hook, STAMP_FILES): Remove, no more needed.
(CLEANFILES): Add all the '*.stamp' files referenced above.

Signed-off-by: Stefano Lattarini <address@hidden>
---
 ChangeLog          | 26 ++++++++++++++++++++++++++
 libgst/Makefile.am | 29 ++++++++++-------------------
 2 files changed, 36 insertions(+), 19 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index fdeec4b..af14a82 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,31 @@
 2012-08-20  Stefano Lattarini  <address@hidden>
 
+       build: reorganize some stamp files' handling
+
+       This change is a useless but harmless re-organization of some
+       build rules using stamp files.  The real reason for such a change
+       is that it will make transition to Automake-NG easier.
+
+       * libgst/Makefile.am ($(srcdir)/match.stamp): No need to specify
+       the '$(srcdir)/' explicitly, since the Smalltalk build system is
+       assuming GNU make anyway (it was once necessary to avoid a bug
+       with FreeBSD VPATH handling); so rename this target simply ...
+       (match.stamp): ... like this. Also, depend on 'genbc$(EXEEXT)',
+       rather than calling '$(MAKE)' recursively in the recipe to build
+       it.  Not only is this more efficient, it also avoid possible
+       hanging of "make all" in the 'libgist' subdir when Automake-NG
+       is used to bootstrap the Smalltalk build system.
+       ($(srcdir)/prims.stamp): Likewise ...
+       (prims.stamp): ... rename and modify the rule (with the
+       dependency being on 'genprims$(EXEEXT)' this time).
+       ($(srcdir)/vm.stamp): Likewise ...
+       (vm.stamp): ... rename and modify the rule (with the dependency
+       being on 'genvm$(EXEEXT)' this time).
+       (dist-hook, STAMP_FILES): Remove, no more needed.
+       (CLEANFILES): Add all the '*.stamp' files referenced above.
+
+2012-08-20  Stefano Lattarini  <address@hidden>
+
        svnprintf: modernize and improve its build system
 
        * snvprintf/Makefile.am (DIST_SUBDIRS): Don't explicitly define
diff --git a/libgst/Makefile.am b/libgst/Makefile.am
index 4393388..6082a35 100644
--- a/libgst/Makefile.am
+++ b/libgst/Makefile.am
@@ -16,6 +16,7 @@ include_HEADERS = gstpub.h gst.h
 lib_LTLIBRARIES = libgst.la
 EXTRA_PROGRAMS = genprims genbc genvm
 CLEANFILES = genprims$(EXEEXT) genbc$(EXEEXT) genvm$(EXEEXT) \
+  prims.stamp match.stamp vm.stamp \
   genbc-decl.stamp genbc-impl.stamp genpr-parse.stamp genvm-parse.stamp
 
 # definitions for libgst.la
@@ -81,7 +82,6 @@ BUILT_SOURCES = prims.inl match.h builtins.inl vm.inl \
        genvm-parse.c genvm-scan.c genvm-parse.h
 
 dist_noinst_DATA = valgrind.supp prims.def byte.def vm.def builtins.gperf
-STAMP_FILES = prims.stamp match.stamp vm.stamp
 
 noinst_HEADERS = \
        gstpriv.h files.h lex.h str.h re.h \
@@ -109,11 +109,10 @@ noinst_HEADERS = \
 # Try to economize in the rebuilds, by avoiding unnecessary
 # changes to the timestamp of match.h
 
-$(srcdir)/match.h: $(srcdir)/match.stamp
+$(srcdir)/match.h: match.stamp
        @:
 
-$(srcdir)/match.stamp: byte.def byte.c opt.c xlat.c
-       @$(MAKE) genbc$(EXEEXT)
+match.stamp: byte.def byte.c opt.c xlat.c genbc$(EXEEXT)
        @echo "./genbc$(EXEEXT) $(srcdir)/byte.def $(srcdir)/byte.c 
$(srcdir)/opt.c $(srcdir)/xlat.c > match.h"; \
          ./genbc$(EXEEXT) $(srcdir)/byte.def $(srcdir)/byte.c $(srcdir)/opt.c 
$(srcdir)/xlat.c > _match.h
        @if cmp _match.h $(srcdir)/match.h > /dev/null 2>&1; then \
@@ -122,18 +121,17 @@ $(srcdir)/match.stamp: byte.def byte.c opt.c xlat.c
        else \
          mv _match.h $(srcdir)/match.h; \
        fi
-       @echo timestamp > $(srcdir)/match.stamp
+       @echo timestamp > $@
 
 
 # rules for invoking genprims
 # Try to economize in the rebuilds, by avoiding unnecessary
 # changes to the timestamp of prims.inl
 
-$(srcdir)/prims.inl: $(srcdir)/prims.stamp
+$(srcdir)/prims.inl: prims.stamp
        @:
 
-$(srcdir)/prims.stamp: prims.def
-       @$(MAKE) genprims$(EXEEXT)
+prims.stamp: prims.def genprims$(EXEEXT)
        @echo "./genprims$(EXEEXT) < $(srcdir)/prims.def > prims.inl"; \
          ./genprims$(EXEEXT) < $(srcdir)/prims.def > _prims.inl
        @if cmp _prims.inl $(srcdir)/prims.inl > /dev/null 2>&1; then \
@@ -142,17 +140,16 @@ $(srcdir)/prims.stamp: prims.def
        else \
          mv _prims.inl $(srcdir)/prims.inl; \
        fi
-       @echo timestamp > $(srcdir)/prims.stamp
+       @echo timestamp > $@
 
 # rules for invoking genvm
 # Try to economize in the rebuilds, by avoiding unnecessary
 # changes to the timestamp of vm.inl
 
-$(srcdir)/vm.inl: $(srcdir)/vm.stamp
+$(srcdir)/vm.inl: vm.stamp
        @:
 
-$(srcdir)/vm.stamp: vm.def
-       @$(MAKE) genvm$(EXEEXT)
+vm.stamp: vm.def genvm$(EXEEXT)
        @echo "./genvm$(EXEEXT) < $(srcdir)/vm.def | awk '{ /^#/ && 
gsub(/__oline__/,NR+1); print }' > vm.inl"; \
          ./genvm$(EXEEXT) < $(srcdir)/vm.def | awk '{ /^#/ && 
gsub(/__oline__/,NR+1); print }' > _vm.inl
        @if cmp _vm.inl $(srcdir)/vm.inl > /dev/null 2>&1; then \
@@ -161,7 +158,7 @@ $(srcdir)/vm.stamp: vm.def
        else \
          mv _vm.inl $(srcdir)/vm.inl; \
        fi
-       @echo timestamp > $(srcdir)/vm.stamp
+       @echo timestamp > $@
 
 # rules for invoking gperf
 # not fully idiot-proof but only to be run by maintainers
@@ -180,9 +177,3 @@ $(srcdir)/vm.stamp: vm.def
          done
 
 builtins.inl: builtins.gperf
-
-dist-hook:
-       for i in $(STAMP_FILES); do \
-         echo timestamp > $(distdir)/$$i; \
-       done
-
-- 
1.7.12.rc0.129.g61b472e




reply via email to

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