File: 3rdparty_packages2make.py

package info (click to toggle)
openmsx 0.10.1-2
  • links: PTS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 16,628 kB
  • ctags: 19,723
  • sloc: cpp: 131,938; xml: 25,418; tcl: 15,394; python: 4,012; sh: 365; makefile: 26
file content (64 lines) | stat: -rw-r--r-- 2,056 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
from packages import getPackage, iterDownloadablePackages

import sys

def printPackagesMake():
	patchesDir = 'build/3rdparty'
	sourceDir = 'derived/3rdparty/src'
	tarballsDir = 'derived/3rdparty/download'
	print 'SOURCE_DIR:=%s' % sourceDir
	print

	print '# Information about packages.'
	print '# Generated from the data in "build/packages.py".'
	print
	tarballs = []
	for package in iterDownloadablePackages():
		makeName = package.getMakeName()
		tarball = tarballsDir + '/' + package.getTarballName()
		tarballs.append(tarball)
		print '# %s' % package.niceName
		print 'PACKAGE_%s:=%s' % (makeName, package.getSourceDirName())
		print 'TARBALL_%s:=%s' % (makeName, tarball)
		print '# Download:'
		print '%s:' % tarball
		print '\tmkdir -p %s' % tarballsDir
		print '\t$(PYTHON) build/download.py %s/%s %s' % (
			package.downloadURL, package.getTarballName(), tarballsDir
			)
		packageSourceDirName = package.getSourceDirName()
		packageSourceDir = sourceDir + '/' + packageSourceDirName
		patchFile = '%s/%s.diff' % (patchesDir, packageSourceDirName)
		print '# Verify:'
		verifyMarker = '%s.verified' % tarball
		print '%s: %s' % (verifyMarker, tarball)
		print '\t$(PYTHON) build/checksum.py %s %d %s' % (
			tarball,
			package.fileLength,
			' '.join('%s=%s' % item for item in package.checksums.iteritems())
			)
		print '\ttouch %s' % verifyMarker
		print '# Extract:'
		print '%s: %s' % (packageSourceDir, verifyMarker)
		print '\trm -rf %s' % packageSourceDir
		print '\tmkdir -p %s' % sourceDir
		print '\t$(PYTHON) build/extract.py %s %s %s' % (
			tarball, sourceDir, packageSourceDirName
			)
		print '\ttest ! -e %s || $(PYTHON) build/patch.py %s %s' % (
			patchFile, patchFile, sourceDir
			)
		print '\ttouch %s' % sourceDir
		print

	print '# Convenience target to download all source packages.'
	print '.PHONY: download'
	print 'download: %s' % ' '.join(tarballs)

if __name__ == '__main__':
	if len(sys.argv) == 1:
		printPackagesMake()
	else:
		print >> sys.stderr, \
			'Usage: python 3rdparty_packages2make.py'
		sys.exit(2)