Updated package list to match new versions / new packages.
[beastbuild.git] / package.py
1 from Path import Path;
2 from buildutils import make, rm_rf
3 from config import Config;
4 import utils
5 import tarfile
6 import os
7
8 class Package:
9   def __init__ (self):
10     self.config = Config()
11     self.dist_image_file = self.config.IMAGES.join (Path (self.full_name() + ".tar.bz2"))
12
13   def setup_env (self):
14     pass
15
16   def clear_and_unpack(self, archive, dir):
17     print "cleanup: rm -rf " + self.config.SRC_DIR.join (Path (dir)).unix()
18     rm_rf (self.config.SRC_DIR.join (Path (dir)).native())
19     print "unpack: " + archive
20     utils.unpackFile (self.config.DOWNLOAD, archive, self.config.SRC_DIR)
21
22   def compile_with_make (self, src_dir):
23     make_cmd = [ "make" ]
24     if self.config.PARALLEL_MAKE_JOBS != 1: 
25       make_cmd += [ "-j%d" % self.config.PARALLEL_MAKE_JOBS ]
26     make (make_cmd, src_dir)
27
28   def tar_dist_image (self, img_path):
29     os.chdir (img_path.native())
30     utils.makeDirs (self.config.IMAGES)
31     dist_image_tar = tarfile.open (self.dist_image_file.native(), "w:bz2")
32     print "dist image: creating", os.path.basename (self.dist_image_file.native())
33     dist_image_tar.add (".")
34     dist_image_tar.close()
35     os.chdir (self.config.TMP.native()) # allow rm -rf img_path
36     
37   def dist_image_with_make_install (self, src_dir):
38     img_path = self.config.TMP.join (Path (self.full_name()))
39     rm_rf (img_path.native())
40     make ([ "make", "install", "DESTDIR=" + img_path.unix() ], src_dir)
41     self.tar_dist_image (img_path.join (self.config.PREFIX))
42     rm_rf (img_path.native())
43      
44   def dist_image_with_tarball (self, tarball, subdir):
45     img_path = self.config.TMP.join (Path (self.full_name()))
46     rm_rf (img_path.native())
47     utils.makeDirs (img_path.join (Path (subdir)))
48     utils.unpackFile (self.config.DOWNLOAD, tarball,
49                       img_path.join (Path (subdir)))
50     self.tar_dist_image (img_path)
51     rm_rf (img_path.native())
52
53   def install_with_dist_image (self):
54     utils.unpackFile (self.config.IMAGES, self.full_name() + ".tar.bz2",
55                       self.config.PREFIX)
56
57   def depends (self):
58     return []           # default: no dependancies