checkdependencies.py 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. #!/usr/bin/env python
  2. import sys, os
  3. # list of (packagename, filename)
  4. DEPENDENCIES = [
  5. ('zlib1g-dev / zlib-devel', '/usr/include/zlib.h'),
  6. ('libbz2-dev / bzip2-devel', '/usr/include/bzlib.h'),
  7. ('g++ / gcc-c++', '/usr/bin/g++'),
  8. ('wget', '/usr/bin/wget'),
  9. ]
  10. if os.environ.get('BOOST_INCLUDE', ''):
  11. DEPENDENCIES += [
  12. ('boost headers to %s' % os.environ['BOOST_INCLUDE'], '%(BOOST_INCLUDE)s/boost/lexical_cast.hpp' % os.environ),
  13. ]
  14. else:
  15. DEPENDENCIES += [
  16. ('libboost-dev / boost-devel', '/usr/include/boost/lexical_cast.hpp'),
  17. ]
  18. if os.environ.get('SQLITE_PATH', ''):
  19. DEPENDENCIES += [
  20. ('sqlite to %s' % os.environ['SQLITE_PATH'], '%(SQLITE_PATH)s/include/sqlite3.h' % os.environ),
  21. ]
  22. else:
  23. DEPENDENCIES += [
  24. ('libsqlite3-dev / sqlite-devel', '/usr/include/sqlite3.h'),
  25. ]
  26. ALTERNATIVES = [
  27. ('/usr/lib', '/usr/lib/x86_64-linux-gnu'),
  28. ('/usr/lib', '/usr/lib64'),
  29. ]
  30. missing = False
  31. def find_file(filename):
  32. if os.path.exists(filename):
  33. return True
  34. for pattern, replacement in ALTERNATIVES:
  35. if os.path.exists(filename.replace(pattern, replacement)):
  36. return True
  37. return False
  38. for package, filename in DEPENDENCIES:
  39. if not find_file(filename):
  40. print '*** Please install package %s' % package
  41. missing = True
  42. if missing:
  43. sys.exit(1)
  44. else:
  45. sys.exit(0)