changeset 53:83ba53471c4c

naive GUB packages
author janneke <janneke@gnu.org>
date Sat, 26 Nov 2005 12:59:59 +0100
parents 46b8856b7347
children d83452a13fc2
files GNUmakefile driver.py specs/framework.py specs/gub.py
diffstat 4 files changed, 46 insertions(+), 24 deletions(-) [+]
line wrap: on
line diff
--- a/GNUmakefile	Sat Nov 26 10:45:49 2005 +0100
+++ b/GNUmakefile	Sat Nov 26 12:59:59 2005 +0100
@@ -14,7 +14,7 @@
 	python driver.py mingw
 
 realclean:
-	rm -rf target/*/build target/*/status
+	rm -rf src target
 
-distclean:
-	rm -rf src target
+distclean: realclean
+	echo NOT rm -rf downloads
--- a/driver.py	Sat Nov 26 10:45:49 2005 +0100
+++ b/driver.py	Sat Nov 26 12:59:59 2005 +0100
@@ -26,6 +26,7 @@
 		self.builddir = self.targetdir + '/build'
 		self.garbagedir = self.targetdir + '/garbage'
 		self.statusdir = self.targetdir + '/status'
+		self.uploaddir = self.targetdir + '/uploads'
 
 		## dir for platform library & headers.
 		## FIXME: systemDIR/installDIR are unclear concepts
@@ -41,9 +42,11 @@
 		self.tooldir = self.targetdir + '/tools'
 
 	def create_dirs (self): 
-		for a in ['topdir', 'statusdir', 'garbagedir',
-                          'downloaddir', 'srcdir', 'specdir',
-                          'targetdir', 'systemdir']:
+		for a in ('downloaddir',
+			  'garbagedir',
+			  'specdir', 'srcdir', 'statusdir', 'systemdir',
+                          'targetdir', 'topdir',
+			  'uploaddir'):
 			try:
 				gub.system ('mkdir -p %s' % self.__dict__[a],
                                             ignore_error = True)
@@ -53,11 +56,12 @@
 def process_package (package):
 	package.download ()
 
-	for stage in ['unpack', 'patch', 'configure', 'compile', 'install']:
+	for stage in ('untar', 'patch', 'configure', 'compile', 'install',
+		      'package', 'sysinstall'):
         	if not package.is_done (stage):
 			print 'doing stage', stage
-                	if stage == 'unpack':
-                        	package.unpack()
+                	if stage == 'untar':
+                        	package.untar ()
 			elif stage == 'configure':
                         	package.configure ()
 			elif stage == 'patch':
@@ -66,6 +70,10 @@
                         	package.compile ()
 			elif stage == 'install':
                         	package.install ()
+			elif stage == 'package':
+                        	package.package ()
+			elif stage == 'sysinstall':
+                        	package.sysinstall ()
 			package.set_done (stage)
 
 
--- a/specs/framework.py	Sat Nov 26 10:45:49 2005 +0100
+++ b/specs/framework.py	Sat Nov 26 12:59:59 2005 +0100
@@ -5,7 +5,7 @@
 import re
 
 class Mingw (gub.Target_package):
-	def unpack (self):
+	def untar (self):
 		self.system ('mkdir -p %(srcdir)s/')
 		self.dump ('%(srcdir)s/configure', '''
 cat > Makefile <<EOF
--- a/specs/gub.py	Sat Nov 26 10:45:49 2005 +0100
+++ b/specs/gub.py	Sat Nov 26 12:59:59 2005 +0100
@@ -14,10 +14,11 @@
 
 def now ():
 	return time.asctime (time.localtime ())
+
 def start_log ():
 	global log_file
 	log_file = open ('build.log', 'w+')
-	log_file.write ('\n\n *** Starting build: %s\n' %  now())
+	log_file.write ('\n\n *** Starting build: %s\n' %  now ())
 	
 def log_command (str):
 	sys.stderr.write (str)
@@ -102,7 +103,8 @@
 			'install_command': self.install_command (),
 			'installdir': self.installdir (),
 			'srcdir': self.srcdir (),
-			'unpack_destination': self.unpack_destination (),
+			'sourcesdir': self.settings.srcdir,
+			'uploaddir': self.settings.uploaddir,
 			}
 		
 		dict.update (env)
@@ -132,9 +134,6 @@
 		system (cmd % dict, ignore_error=False,
 			verbose = self.settings.verbose, env=dict)
 
-#	def download (self):
-#		pass
-		      
 	def skip (self):
 		pass
 		      
@@ -156,9 +155,6 @@
 cd %(dir)s/%(name)s && cvs update -dCAP -r %(version)s
 ''', locals ())
  
-	def unpack_destination (self):
-		return self.settings.srcdir
-	
 	def basename (self):
 		f = self.file_name ()
 		f = re.sub ('-src\.tar.*', '', f)
@@ -171,7 +167,7 @@
 		return s
 	
 	def srcdir (self):
-		return self.unpack_destination () + '/' + self.basename ()
+		return self.settings.srcdir + '/' + self.basename ()
 
 	def builddir (self):
 		return self.settings.builddir + '/' + self.basename ()
@@ -248,7 +244,13 @@
 	def patch (self):
 		pass
 	
-	def unpack (self):
+	def package (self):
+		pass
+
+	def sysinstall (self):
+		pass
+
+	def untar (self):
 		file = self.settings.downloaddir + '/' + self.file_name ()
 
 		if not os.path.exists (file):
@@ -264,7 +266,7 @@
 
 		# clean up
 		self.system ("rm -rf  %(srcdir)s %(builddir)s")
-		cmd = 'tar %(flags)s %(file)s -C %(unpack_destination)s'
+		cmd = 'tar %(flags)s %(file)s -C %(sourcesdir)s'
 		self.system (cmd, locals ())
 
 	def set_download (self, mirror=dl.gnu, format='gz', download=wget):
@@ -306,11 +308,12 @@
 		return str
 
 	def installdir (self):
-		# the usr/ works around a fascist check in libtool
-		##return self.settings.installdir + "/" + self.name () + "-root/usr"
+		# FIXME: the usr/ works around a fascist check in libtool
+		# better use %(installdir)s/USR throughout and remove here?
+		return self.settings.installdir + "/" + self.name () + "-root/usr"
 		# FIXME: system dir vs packaging install
 		# no packages for now
-		return self.settings.systemdir + '/usr'
+		# return self.settings.systemdir + '/usr'
 
 	def install_command (self):
 		return '''make install \
@@ -340,6 +343,17 @@
 		os.chmod (cache_fn, 0755)
 		Package.configure (self)
 
+	def package (self):
+		# naive tarball packages for now
+		self.system ('''
+tar -C %(installdir)s -zcf %(uploaddir)s/%(name)s.gub .
+''')
+
+	def sysinstall (self):
+		self.system ('''
+tar -C %(systemdir)s -zxf %(uploaddir)s/%(name)s.gub
+''')
+
 	def target_dict (self, env={}):
 		dict = {
 			'AR': '%(target_architecture)s-ar',