1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- 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.items())
- ))
- print('\ttouch %s' % verifyMarker)
- print('# Extract:')
- extractMarker = '%s/.extracted' % packageSourceDir
- print('%s: %s $(wildcard %s)' % (extractMarker, verifyMarker, patchFile))
- 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' % extractMarker)
- 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('Usage: python3 3rdparty_packages2make.py', file=sys.stderr)
- sys.exit(2)
|