python-pygame.mk 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. #############################################################
  2. #
  3. # Pygame
  4. #
  5. #############################################################
  6. # stable 1.9.1 release requires V4L which has been wiped out of recent Linux
  7. # kernels, so use latest mercurial revision until next stable release is out.
  8. PYTHON_PYGAME_VERSION = f0bb4a4b365d
  9. PYTHON_PYGAME_SOURCE = pygame-$(PYTHON_PYGAME_VERSION).tar.gz
  10. PYTHON_PYGAME_SITE = https://bitbucket.org/pygame/pygame
  11. PYTHON_PYGAME_SITE_METHOD = hg
  12. ifeq ($(BR2_PACKAGE_PYTHON_PYGAME_IMAGE),y)
  13. PYTHON_PYGAME_OPT_DEPENDS += sdl_image
  14. endif
  15. ifeq ($(BR2_PACKAGE_PYTHON_PYGAME_FONT),y)
  16. PYTHON_PYGAME_OPT_DEPENDS += sdl_ttf
  17. endif
  18. ifeq ($(BR2_PACKAGE_PYTHON_PYGAME_MIXER),y)
  19. PYTHON_PYGAME_OPT_DEPENDS += sdl_mixer
  20. endif
  21. PYTHON_PYGAME_DEPENDENCIES = python sdl $(PYTHON_PYGAME_OPT_DEPENDS)
  22. ifneq ($(BR2_PACKAGE_PYTHON_PYGAME_IMAGE),y)
  23. define PYTHON_PYGAME_UNCONFIGURE_IMAGE
  24. $(SED) 's/^imageext/#imageext/' $(@D)/Setup
  25. endef
  26. endif
  27. ifneq ($(BR2_PACKAGE_PYTHON_PYGAME_FONT),y)
  28. define PYTHON_PYGAME_UNCONFIGURE_FONT
  29. $(SED) 's/^font/#font/' $(@D)/Setup
  30. endef
  31. endif
  32. ifneq ($(BR2_PACKAGE_PYTHON_PYGAME_MIXER),y)
  33. define PYTHON_PYGAME_UNCONFIGURE_MIXER
  34. $(SED) 's/^mixer/#mixer/g' $(@D)/Setup
  35. endef
  36. endif
  37. # Both require numpy or numeric python module
  38. define PYTHON_PYGAME_UNCONFIGURE_SNDARRAY
  39. $(SED) 's/^_numericsndarray/#_numericsndarray/' $(@D)/Setup
  40. endef
  41. define PYTHON_PYGAME_UNCONFIGURE_SURFARRAY
  42. $(SED) 's/^_numericsurfarray/#_numericsurfarray/' $(@D)/Setup
  43. endef
  44. # Requires smpeg
  45. define PYTHON_PYGAME_UNCONFIGURE_MOVIE
  46. $(SED) 's/^movie/#movie/' $(@D)/Setup
  47. endef
  48. ifneq ($(BR2_PACKAGE_PYTHON_PYGAME_SCRAP),y)
  49. define PYTHON_PYGAME_UNCONFIGURE_SCRAP
  50. $(SED) 's/^scrap/#scrap/' $(@D)/Setup
  51. endef
  52. endif
  53. PYTHON_PYGAME_SDL_FLAGS = $(shell $(STAGING_DIR)/usr/bin/sdl-config --cflags)
  54. PYTHON_PYGAME_SDL_FLAGS += $(shell $(STAGING_DIR)/usr/bin/sdl-config --libs)
  55. # Pygame needs a Setup file where options should be commented out if
  56. # dependencies are not available
  57. define PYTHON_PYGAME_CONFIGURE_CMDS
  58. cp -f $(@D)/Setup.in $(@D)/Setup
  59. $(SED) 's~^SDL = ~SDL = $(PYTHON_PYGAME_SDL_FLAGS) \n#~' $(@D)/Setup
  60. $(SED) 's/^pypm/#pypm/' $(@D)/Setup
  61. $(PYTHON_PYGAME_UNCONFIGURE_IMAGE)
  62. $(PYTHON_PYGAME_UNCONFIGURE_FONT)
  63. $(PYTHON_PYGAME_UNCONFIGURE_MIXER)
  64. $(PYTHON_PYGAME_UNCONFIGURE_SNDARRAY)
  65. $(PYTHON_PYGAME_UNCONFIGURE_SURFARRAY)
  66. $(PYTHON_PYGAME_UNCONFIGURE_MOVIE)
  67. $(PYTHON_PYGAME_UNCONFIGURE_SCRAP)
  68. endef
  69. define PYTHON_PYGAME_BUILD_CMDS
  70. (cd $(@D); CC="$(TARGET_CC)" CFLAGS="$(TARGET_CFLAGS)" \
  71. LDSHARED="$(TARGET_CROSS)gcc -shared" \
  72. CROSS_COMPILING=yes \
  73. _python_sysroot=$(STAGING_DIR) \
  74. _python_srcdir=$(BUILD_DIR)/python$(PYTHON_VERSION) \
  75. _python_prefix=/usr \
  76. _python_exec_prefix=/usr \
  77. $(HOST_DIR)/usr/bin/python setup.py build)
  78. endef
  79. ifneq ($(BR2_HAVE_DOCUMENTATION),y)
  80. define PYTHON_PYGAME_REMOVE_DOC
  81. rm -rf $(TARGET_DIR)/usr/lib/python*/site-packages/pygame/docs
  82. endef
  83. endif
  84. define PYTHON_PYGAME_INSTALL_TARGET_CMDS
  85. (cd $(@D); $(HOST_DIR)/usr/bin/python setup.py install \
  86. --prefix=$(TARGET_DIR)/usr)
  87. rm -rf $(TARGET_DIR)/usr/lib/python*/site-packages/pygame/tests
  88. $(PYTHON_PYGAME_REMOVE_DOC)
  89. endef
  90. define PYTHON_PYGAME_UNINSTALL_TARGET_CMDS
  91. rm -rf $(TARGET_DIR)/usr/lib/python*/site-packages/pygame*
  92. endef
  93. $(eval $(call GENTARGETS))