summaryrefslogtreecommitdiff
path: root/Tools/mkdist.py
diff options
context:
space:
mode:
Diffstat (limited to 'Tools/mkdist.py')
-rwxr-xr-xTools/mkdist.py65
1 files changed, 65 insertions, 0 deletions
diff --git a/Tools/mkdist.py b/Tools/mkdist.py
new file mode 100755
index 0000000..0e2eafa
--- /dev/null
+++ b/Tools/mkdist.py
@@ -0,0 +1,65 @@
+#!/usr/bin/env python
+
+# This script builds a swig-1.3 distribution.
+# Usage : mkdist.py version, where version should be 1.3.x
+
+import sys
+import string
+import os
+
+def failed():
+ print "mkdist.py failed to complete"
+ sys.exit(2)
+
+
+try:
+ version = sys.argv[1]
+ dirname = "swig-" + version
+except:
+ print "Usage: mkdist.py version, where version should be 1.3.x"
+ sys.exit(1)
+
+# Check name matches normal unix conventions
+if string.lower(dirname) != dirname:
+ print "directory name ("+dirname+") should be in lowercase"
+ sys.exit(3)
+
+# If directory and tarball exist, remove it
+print "Removing ", dirname
+os.system("rm -rf "+dirname)
+
+print "Removing "+dirname+".tar if exists"
+os.system("rm -f "+dirname+".tar.gz")
+
+print "Removing "+dirname+".tar.gz if exists"
+os.system("rm -f "+dirname+".tar")
+
+# Do a SVN export into the directory name
+
+print "Grabbing latest SWIG from svn"
+os.system("svn export -r HEAD https://swig.svn.sourceforge.net/svnroot/swig/trunk "+dirname) == 0 or failed()
+
+# Remove the debian directory -- it's not official
+
+os.system("rm -Rf "+dirname+"/debian") == 0 or failed()
+
+# Go build the system
+
+print "Building system"
+os.system("cd "+dirname+"; ./autogen.sh") == 0 or failed()
+os.system("cd "+dirname+"/Tools/WAD; autoconf") == 0 or failed()
+os.system("cd "+dirname+"/Source/CParse; bison -y -d parser.y; mv y.tab.c parser.c; mv y.tab.h parser.h") == 0 or failed()
+os.system("cd "+dirname+"; make -f Makefile.in libfiles srcdir=./") == 0 or failed()
+
+# Remove autoconf files
+os.system("find "+dirname+" -name autom4te.cache -exec rm -rf {} \\;")
+
+# Build documentation
+print "Building documentation"
+os.system("cd "+dirname+"/Doc/Manual && make all clean-baks") == 0 or failed()
+os.system("cd "+dirname+"/CCache && yodl2man -o ccache-swig.1 ccache.yo") == 0 or failed()
+
+# Build the tar-ball
+os.system("tar -cf "+dirname+".tar "+dirname) == 0 or failed()
+os.system("gzip "+dirname+".tar") == 0 or failed()
+