summaryrefslogtreecommitdiff
path: root/package/python-pygame/python-pygame.mk
blob: f3426a407fc7a5aea57b5e6e2dbd35abce277075 (plain)
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
#############################################################
#
# Pygame
#
#############################################################
# stable 1.9.1 release requires V4L which has been wiped out of recent Linux
# kernels, so use latest mercurial revision until next stable release is out.
PYTHON_PYGAME_VERSION = f0bb4a4b365d
PYTHON_PYGAME_SOURCE  = pygame-$(PYTHON_PYGAME_VERSION).tar.gz
PYTHON_PYGAME_SITE = https://bitbucket.org/pygame/pygame
PYTHON_PYGAME_SITE_METHOD = hg

ifeq ($(BR2_PACKAGE_PYTHON_PYGAME_IMAGE),y)
PYTHON_PYGAME_OPT_DEPENDS += sdl_image
endif

ifeq ($(BR2_PACKAGE_PYTHON_PYGAME_FONT),y)
PYTHON_PYGAME_OPT_DEPENDS += sdl_ttf
endif

ifeq ($(BR2_PACKAGE_PYTHON_PYGAME_MIXER),y)
PYTHON_PYGAME_OPT_DEPENDS += sdl_mixer
endif

PYTHON_PYGAME_DEPENDENCIES = python sdl $(PYTHON_PYGAME_OPT_DEPENDS)

ifneq ($(BR2_PACKAGE_PYTHON_PYGAME_IMAGE),y)
define PYTHON_PYGAME_UNCONFIGURE_IMAGE
	$(SED) 's/^imageext/#imageext/' $(@D)/Setup
endef
endif

ifneq ($(BR2_PACKAGE_PYTHON_PYGAME_FONT),y)
define PYTHON_PYGAME_UNCONFIGURE_FONT
	$(SED) 's/^font/#font/' $(@D)/Setup
endef
endif

ifneq ($(BR2_PACKAGE_PYTHON_PYGAME_MIXER),y)
define PYTHON_PYGAME_UNCONFIGURE_MIXER
	$(SED) 's/^mixer/#mixer/g' $(@D)/Setup
endef
endif

# Both require numpy or numeric python module
define PYTHON_PYGAME_UNCONFIGURE_SNDARRAY
	$(SED) 's/^_numericsndarray/#_numericsndarray/' $(@D)/Setup
endef

define PYTHON_PYGAME_UNCONFIGURE_SURFARRAY
	$(SED) 's/^_numericsurfarray/#_numericsurfarray/' $(@D)/Setup
endef

# Requires smpeg
define PYTHON_PYGAME_UNCONFIGURE_MOVIE
	$(SED) 's/^movie/#movie/' $(@D)/Setup
endef

ifneq ($(BR2_PACKAGE_PYTHON_PYGAME_SCRAP),y)
define PYTHON_PYGAME_UNCONFIGURE_SCRAP
	$(SED) 's/^scrap/#scrap/' $(@D)/Setup
endef
endif

PYTHON_PYGAME_SDL_FLAGS = $(shell $(STAGING_DIR)/usr/bin/sdl-config --cflags)
PYTHON_PYGAME_SDL_FLAGS += $(shell $(STAGING_DIR)/usr/bin/sdl-config --libs)

# Pygame needs a Setup file where options should be commented out if
# dependencies are not available
define PYTHON_PYGAME_CONFIGURE_CMDS
	cp -f $(@D)/Setup.in $(@D)/Setup
	$(SED) 's~^SDL = ~SDL = $(PYTHON_PYGAME_SDL_FLAGS) \n#~' $(@D)/Setup
	$(SED) 's/^pypm/#pypm/' $(@D)/Setup
	$(PYTHON_PYGAME_UNCONFIGURE_IMAGE)
	$(PYTHON_PYGAME_UNCONFIGURE_FONT)
	$(PYTHON_PYGAME_UNCONFIGURE_MIXER)
	$(PYTHON_PYGAME_UNCONFIGURE_SNDARRAY)
	$(PYTHON_PYGAME_UNCONFIGURE_SURFARRAY)
	$(PYTHON_PYGAME_UNCONFIGURE_MOVIE)
	$(PYTHON_PYGAME_UNCONFIGURE_SCRAP)
endef

define PYTHON_PYGAME_BUILD_CMDS
	(cd $(@D); CC="$(TARGET_CC)" CFLAGS="$(TARGET_CFLAGS)" \
		LDSHARED="$(TARGET_CROSS)gcc -shared" \
		CROSS_COMPILING=yes \
		_python_sysroot=$(STAGING_DIR) \
		_python_srcdir=$(BUILD_DIR)/python$(PYTHON_VERSION) \
		_python_prefix=/usr \
		_python_exec_prefix=/usr \
		$(HOST_DIR)/usr/bin/python setup.py build)
endef

ifneq ($(BR2_HAVE_DOCUMENTATION),y)
define PYTHON_PYGAME_REMOVE_DOC
	rm -rf $(TARGET_DIR)/usr/lib/python*/site-packages/pygame/docs
endef
endif

define PYTHON_PYGAME_INSTALL_TARGET_CMDS
	(cd $(@D); $(HOST_DIR)/usr/bin/python setup.py install \
		--prefix=$(TARGET_DIR)/usr)
	rm -rf $(TARGET_DIR)/usr/lib/python*/site-packages/pygame/tests
	$(PYTHON_PYGAME_REMOVE_DOC)
endef

define PYTHON_PYGAME_UNINSTALL_TARGET_CMDS
	rm -rf $(TARGET_DIR)/usr/lib/python*/site-packages/pygame*
endef

$(eval $(generic-package))