summaryrefslogtreecommitdiff
path: root/java/makebindist.py
diff options
context:
space:
mode:
Diffstat (limited to 'java/makebindist.py')
-rwxr-xr-xjava/makebindist.py171
1 files changed, 171 insertions, 0 deletions
diff --git a/java/makebindist.py b/java/makebindist.py
new file mode 100755
index 00000000000..cceb80c9cbf
--- /dev/null
+++ b/java/makebindist.py
@@ -0,0 +1,171 @@
+#!/usr/bin/env python
+# **********************************************************************
+#
+# Copyright (c) 2003
+# ZeroC, Inc.
+# Billerica, MA, USA
+#
+# All Rights Reserved.
+#
+# Ice is free software; you can redistribute it and/or modify it under
+# the terms of the GNU General Public License version 2 as published by
+# the Free Software Foundation.
+#
+# **********************************************************************
+
+import os, sys, shutil, fnmatch, re
+
+#
+# Show usage information.
+#
+def usage():
+ print "Usage: " + sys.argv[0] + " [options] [tag]"
+ print
+ print "Options:"
+ print "-h Show this message."
+ print
+ print "If no tag is specified, HEAD is used."
+
+#
+# Check arguments
+#
+tag = "-rHEAD"
+for x in sys.argv[1:]:
+ if x == "-h":
+ usage()
+ sys.exit(0)
+ elif x.startswith("-"):
+ print sys.argv[0] + ": unknown option `" + x + "'"
+ print
+ usage()
+ sys.exit(1)
+ else:
+ tag = "-r" + x
+
+if not os.environ.has_key("ICE_HOME"):
+ print "The ICE_HOME environment variable is not set."
+ sys.exit(1)
+
+#
+# Remove any existing distribution directory and create a new one.
+#
+distdir = "bindist"
+if os.path.exists(distdir):
+ shutil.rmtree(distdir)
+os.mkdir(distdir)
+os.chdir(distdir)
+cwd = os.getcwd()
+
+#
+# Export Config.h from CVS.
+#
+os.system("cvs -z5 -d cvs.mutablerealms.com:/home/cvsroot export " + tag + " ice/include/IceUtil/Config.h")
+
+#
+# Get Ice version.
+#
+config = open("ice/include/IceUtil/Config.h", "r")
+version = re.search("ICE_STRING_VERSION \"([0-9\.]*)\"", config.read()).group(1)
+
+#
+# Verify Ice version in CVS export matches the one in ICE_HOME.
+#
+config = open(os.environ["ICE_HOME"] + "/include/IceUtil/Config.h", "r")
+version2 = re.search("ICE_STRING_VERSION \"([0-9\.]*)\"", config.read()).group(1)
+
+shutil.rmtree("ice")
+
+if version != version2:
+ print sys.argv[0] + ": the CVS version (" + version + ") does not match ICE_HOME (" + version2 + ")"
+ sys.exit(1)
+
+icever = "Ice-" + version
+os.mkdir(icever)
+
+#
+# Get platform.
+#
+platform = ""
+if sys.platform.startswith("win") or sys.platform.startswith("cygwin"):
+ platform = "win32"
+elif sys.platform.startswith("linux"):
+ platform = "linux"
+else:
+ print "unknown platform (" + sys.platform + ")!"
+ sys.exit(1)
+
+#
+# Copy executables and libraries.
+#
+icehome = os.environ["ICE_HOME"]
+executables = [ ]
+libraries = [ ]
+symlinks = 0
+if platform == "win32":
+ winver = version.replace(".", "")
+ debug = ""
+ if not os.path.exists(icehome + "/bin/glacier" + winver + ".dll"):
+ debug = "d"
+ executables = [ \
+ "glacier.exe",\
+ "icecpp.exe",\
+ "slice2freezej.exe",\
+ "slice2java.exe",\
+ "slice2xsd.exe",\
+ "glacier" + winver + debug + ".dll",\
+ "icessl" + winver + debug + ".dll",\
+ "ice" + winver + debug + ".dll",\
+ "iceutil" + winver + debug + ".dll",\
+ "slice" + winver + debug + ".dll",\
+ ]
+ libraries = [ \
+ ]
+else:
+ executables = [ \
+ "glacierrouter",\
+ "glacierstarter",\
+ "icecpp",\
+ "slice2freezej",\
+ "slice2java",\
+ "slice2xsd",\
+ ]
+ libraries = [ \
+ "libGlacier.so",\
+ "libIceSSL.so",\
+ "libIce.so",\
+ "libIceUtil.so",\
+ "libSlice.so",\
+ ]
+ symlinks = 1
+
+bindir = icever + "/bin"
+libdir = icever + "/lib"
+os.mkdir(bindir)
+os.mkdir(libdir)
+for x in executables:
+ shutil.copyfile(icehome + "/bin/" + x, bindir + "/" + x)
+if symlinks:
+ for x in libraries:
+ libname = x + '.' + version
+ shutil.copyfile(icehome + "/lib/" + libname, libdir + "/" + libname)
+ os.chdir(libdir)
+ os.symlink(libname, x)
+ os.chdir(cwd)
+else:
+ for x in libraries:
+ shutil.copyfile(icehome + "/lib/" + x, libdir + "/" + x)
+
+#
+# Create binary archives.
+#
+os.system("tar cvzf " + icever + "-bin-" + platform + ".tar.gz " + icever)
+os.system("zip -9ry " + icever + "-bin-" + platform + ".zip " + icever)
+
+#
+# Copy files (README, etc.).
+#
+
+#
+# Done.
+#
+shutil.rmtree(icever)