mirror of
git://git.tartarus.org/simon/puzzles.git
synced 2025-04-21 08:01:30 -07:00
Remove the MD5-based manifest file system.
A long time ago, it seemed like a good idea to arrange that binaries of my puzzles would automatically cease to identify themselves as a particular upstream version number if any changes were made to the source code, so that if someone made a local tweak and distributed the result then I wouldn't get blamed for the results. Since then I've decided the whole idea is more trouble than it's worth, so I'm retiring it completely. [originally from svn r10264]
This commit is contained in:
4
Buildscr
4
Buildscr
@ -14,6 +14,10 @@ in puzzles do rm configure.ac~
|
|||||||
in puzzles do perl -e 'print "\n\\versionid Simon Tatham'\''s Portable Puzzle Collection, version $$ARGV[0]\n"' $(Version) >> puzzles.but
|
in puzzles do perl -e 'print "\n\\versionid Simon Tatham'\''s Portable Puzzle Collection, version $$ARGV[0]\n"' $(Version) >> puzzles.but
|
||||||
in puzzles do perl -e 'print "\n\\versionid Simon Tatham'\''s Portable Puzzle Collection, version $$ARGV[0]\n"' $(Version) >> devel.but
|
in puzzles do perl -e 'print "\n\\versionid Simon Tatham'\''s Portable Puzzle Collection, version $$ARGV[0]\n"' $(Version) >> devel.but
|
||||||
|
|
||||||
|
# Write out a version.h that contains the real version number.
|
||||||
|
in puzzles do echo '/* Generated by automated build script */' > version.h
|
||||||
|
in puzzles do echo '$#define VER "Version $(Version)"' >> version.h
|
||||||
|
|
||||||
# First build some local binaries, to run the icon build.
|
# First build some local binaries, to run the icon build.
|
||||||
in puzzles do perl mkfiles.pl -U
|
in puzzles do perl mkfiles.pl -U
|
||||||
in puzzles do make
|
in puzzles do make
|
||||||
|
88
Recipe
88
Recipe
@ -93,100 +93,12 @@ Puzzles.dmg: Puzzles
|
|||||||
rm -f raw.dmg devicename
|
rm -f raw.dmg devicename
|
||||||
!end
|
!end
|
||||||
|
|
||||||
# Version management.
|
|
||||||
!begin vc
|
|
||||||
version.obj: *.c *.h
|
|
||||||
cl $(VER) $(CFLAGS) /c version.c
|
|
||||||
!end
|
|
||||||
!specialobj vc version
|
|
||||||
!begin wce
|
|
||||||
version.obj: *.c *.h
|
|
||||||
$(CC) $(VER) $(CFLAGS) /c version.c
|
|
||||||
!end
|
|
||||||
!specialobj wce version
|
|
||||||
!begin cygwin
|
|
||||||
version.o: FORCE;
|
|
||||||
FORCE:
|
|
||||||
$(CC) $(COMPAT) $(XFLAGS) $(CFLAGS) $(VER) -c version.c
|
|
||||||
!end
|
|
||||||
!specialobj cygwin version
|
|
||||||
# For Unix, we also need the gross MD5 hack that causes automatic
|
|
||||||
# version number selection in release source archives.
|
|
||||||
!begin gtk
|
|
||||||
version.o: version.c version2.def
|
|
||||||
$(CC) $(COMPAT) $(XFLAGS) $(CFLAGS) `cat version2.def` -c version.c
|
|
||||||
version2.def: FORCE
|
|
||||||
if test -z "$(VER)" && test -f manifest && md5sum -c manifest; then \
|
|
||||||
cat version.def > version2.def.new; \
|
|
||||||
else \
|
|
||||||
echo "$(VER)" >version2.def.new; \
|
|
||||||
fi && \
|
|
||||||
if diff -q version2.def.new version2.def; then \
|
|
||||||
rm version2.def.new; \
|
|
||||||
else \
|
|
||||||
mv version2.def.new version2.def; \
|
|
||||||
fi
|
|
||||||
.PHONY: FORCE
|
|
||||||
!end
|
|
||||||
!specialobj gtk version
|
|
||||||
# In the automake build, we have to do the whole job by supplying
|
|
||||||
# extra CFLAGS, so we have to put the if statement inside one big
|
|
||||||
# backtick expression. We also force rebuilding via a -D option that
|
|
||||||
# makes version.o include empty.h, which we construct ourselves and
|
|
||||||
# touch whenever any source file is updated.
|
|
||||||
!cflags am version -DINCLUDE_EMPTY_H `if test -z "$(VER)" && (cd $(srcdir) && test -f manifest && md5sum -c manifest >/dev/null 2>&1); then cat $(srcdir)/version.def; else echo "$(VER)"; fi`
|
|
||||||
!begin am
|
!begin am
|
||||||
BUILT_SOURCES = empty.h
|
|
||||||
CLEANFILES = empty.h
|
|
||||||
empty.h: $(allsources)
|
|
||||||
echo '/* Empty file touched by automake makefile to force rebuild of version.o */' >$@
|
|
||||||
bin_PROGRAMS = $(GAMES)
|
bin_PROGRAMS = $(GAMES)
|
||||||
!end
|
!end
|
||||||
!begin am_begin
|
!begin am_begin
|
||||||
GAMES =
|
GAMES =
|
||||||
!end
|
!end
|
||||||
!begin >empty.h
|
|
||||||
/* Empty file touched by automake makefile to force rebuild of version.o */
|
|
||||||
!end
|
|
||||||
!begin nestedvm
|
|
||||||
version.o: version.c version2.def
|
|
||||||
$(CC) $(COMPAT) $(XFLAGS) $(CFLAGS) `cat version2.def` -c version.c
|
|
||||||
version2.def: FORCE
|
|
||||||
if test -z "$(VER)" && test -f manifest && md5sum -c manifest; then \
|
|
||||||
cat version.def > version2.def.new; \
|
|
||||||
else \
|
|
||||||
echo "$(VER)" >version2.def.new; \
|
|
||||||
fi && \
|
|
||||||
if diff -q version2.def.new version2.def; then \
|
|
||||||
rm version2.def.new; \
|
|
||||||
else \
|
|
||||||
mv version2.def.new version2.def; \
|
|
||||||
fi
|
|
||||||
.PHONY: FORCE
|
|
||||||
!end
|
|
||||||
!specialobj nestedvm version
|
|
||||||
# For OS X, this is made more fiddly by the fact that we don't have
|
|
||||||
# md5sum readily available. We do, however, have `md5 -r' which
|
|
||||||
# generates _nearly_ the same output, but it has no check function.
|
|
||||||
!begin osx
|
|
||||||
version.ppc.o: version.c version2.def
|
|
||||||
$(CC) -arch ppc $(COMPAT) $(XFLAGS) $(CFLAGS) `cat version2.def` -c version.c -o $@
|
|
||||||
version.i386.o: version.c version2.def
|
|
||||||
$(CC) -arch i386 $(COMPAT) $(XFLAGS) $(CFLAGS) `cat version2.def` -c version.c -o $@
|
|
||||||
version2.def: FORCE
|
|
||||||
if test -z "$(VER)" && test -f manifest && (md5 -r `awk '{print $$2}' manifest` | diff -w manifest -); then \
|
|
||||||
cat version.def > version2.def.new; \
|
|
||||||
else \
|
|
||||||
echo "$(VER)" >version2.def.new; \
|
|
||||||
fi && \
|
|
||||||
if diff -q version2.def.new version2.def; then \
|
|
||||||
rm version2.def.new; \
|
|
||||||
else \
|
|
||||||
mv version2.def.new version2.def; \
|
|
||||||
fi
|
|
||||||
.PHONY: FORCE
|
|
||||||
!end
|
|
||||||
!specialobj osx version
|
|
||||||
|
|
||||||
# make install for Unix.
|
# make install for Unix.
|
||||||
!begin gtk
|
!begin gtk
|
||||||
|
@ -39,15 +39,8 @@ for i in *.c *.m *.h *.R *.rc *.but *.plist *.icns LICENCE README Recipe \
|
|||||||
*/*) ln -s ../../../$i tmp.$$/puzzles$arcsuffix/$i;;
|
*/*) ln -s ../../../$i tmp.$$/puzzles$arcsuffix/$i;;
|
||||||
*) ln -s ../../$i tmp.$$/puzzles$arcsuffix/$i;;
|
*) ln -s ../../$i tmp.$$/puzzles$arcsuffix/$i;;
|
||||||
esac
|
esac
|
||||||
if test "x$ver" != "x"; then
|
|
||||||
md5sum $i >> tmp.$$/puzzles$arcsuffix/manifest
|
|
||||||
fi
|
|
||||||
done
|
done
|
||||||
|
|
||||||
if test "x$ver" != "x"; then
|
|
||||||
echo "$ver" >> tmp.$$/puzzles$arcsuffix/version.def
|
|
||||||
fi
|
|
||||||
|
|
||||||
tar -C tmp.$$ -chzf - puzzles$arcsuffix > ../puzzles$arcsuffix.tar.gz
|
tar -C tmp.$$ -chzf - puzzles$arcsuffix > ../puzzles$arcsuffix.tar.gz
|
||||||
|
|
||||||
rm -rf tmp.$$
|
rm -rf tmp.$$
|
||||||
|
29
version.c
29
version.c
@ -2,31 +2,6 @@
|
|||||||
* Puzzles version numbering.
|
* Puzzles version numbering.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define STR1(x) #x
|
#include "version.h"
|
||||||
#define STR(x) STR1(x)
|
|
||||||
|
|
||||||
#ifdef INCLUDE_EMPTY_H
|
char ver[] = VER;
|
||||||
/*
|
|
||||||
* Horrible hack to force version.o to be rebuilt unconditionally in
|
|
||||||
* the automake world: empty.h is an empty header file, created by the
|
|
||||||
* makefile and forcibly updated every time make is run. Including it
|
|
||||||
* here causes automake to track it as a dependency, which will cause
|
|
||||||
* version.o to be rebuilt too.
|
|
||||||
*
|
|
||||||
* The space between # and include causes mkfiles.pl's dependency
|
|
||||||
* scanner (for all other makefile types) to ignore this include,
|
|
||||||
* which is correct because only the automake makefile passes
|
|
||||||
* -DINCLUDE_EMPTY_H to enable it.
|
|
||||||
*/
|
|
||||||
# include "empty.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined VER
|
|
||||||
|
|
||||||
char ver[] = "Version: " STR(VER);
|
|
||||||
|
|
||||||
#else
|
|
||||||
|
|
||||||
char ver[] = "Unidentified build, " __DATE__ " " __TIME__;
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
Reference in New Issue
Block a user