Make.proto
branchdevelopment
changeset 1864 60a8dc26c8c6
parent 1856 f2e8307a717f
child 1868 6f55db58b3af
--- a/Make.proto	Tue Dec 04 00:44:59 2012 +0000
+++ b/Make.proto	Mon Dec 10 19:00:37 2012 +0000
@@ -88,7 +88,7 @@
 		echo -n exported > .svnversion; \
 	fi
 
-stx_libjava.o: stx_libjava.st .svnversion 
+stx_libjava.o: stx_libjava.st .svnversion
 	@if [ -d .svn ]; then \
 		rev2="$(shell printf "%-16s" $$(cat .svnversion))"; \
 		echo "  [SV]  Expanding svnRevisionNo in $1.st"; \
@@ -97,11 +97,18 @@
 	$(MAKE) CC="$(CLASSLIB_CC)" OPT="$(OPT)" SEPINITCODE="$(SEPINITCODE)" STC="$(STC)" STFILE=.stx_libjava.svn $(C_RULE);
 	sed -i -e "s/\".stx_libjava.svn.st\");/\"\stx_libjava.st\");/g" .stx_libjava.svn.c
 	$(MAKE) .stx_libjava.svn.$(O)
-	@mv .stx_libjava.svn.$(O) stx_libjava.$(O) 
+	@mv .stx_libjava.svn.$(O) stx_libjava.$(O)
 endif
 
 
 
+# Enforce recompilation of package definition class if Mercurial working
+# copy state changes. Together with --guessVersion it ensures that package
+# definition class always contains correct binary revision string.
+ifneq (**NOHG**, $(shell hg root 2> /dev/null || echo -n '**NOHG**'))
+stx_libjava.$(O): $(shell hg root)/.hg/dirstate
+endif
+
 
 
 
@@ -126,13 +133,13 @@
 
 prereq: $(REQUIRED_SUPPORT_DIRS)
 	cd ../libbasic && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
+	cd ../libdb/libodbc && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
 	cd ../libbasic2 && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
 	cd ../libcomp && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
 	cd ../libview && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
 	cd ../libdb && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
 	cd ../libview2 && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
 	cd ../libboss && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
-	cd ../libdb/libodbc && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
 	cd ../libdb/libsqlite && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
 	cd ../goodies/sunit && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
 	cd ../libui && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"