mirror of
https://github.com/yann64/haikuports.git
synced 2026-04-09 05:10:05 +02:00
but it's still not actually finding and using png files, at least test_sprite.py is failing saying " sprite_surface2 = pygame.image.load(os.path.join(data_dir, "static.png")) pygame.error: File is not a Windows BMP file
205 lines
7.5 KiB
Diff
205 lines
7.5 KiB
Diff
diff -urN pygame-1.9.1release/config.py pygame-1.9.1release-haiku/config.py
|
|
--- pygame-1.9.1release/config.py 2009-07-09 06:13:20.025952256 +0000
|
|
+++ pygame-1.9.1release-haiku/config.py 2010-09-17 09:54:05.000000000 +0000
|
|
@@ -119,6 +119,9 @@
|
|
elif sys.platform == 'win32':
|
|
print_('Using WINDOWS mingw/msys configuration...\n')
|
|
import config_msys as CFG
|
|
+ elif sys.platform == 'haiku1':
|
|
+ print_('Using Haiku configuration...\n')
|
|
+ import config_haiku as CFG
|
|
elif sys.platform == 'darwin':
|
|
print_('Using Darwin configuration...\n')
|
|
import config_darwin as CFG
|
|
diff -urN pygame-1.9.1release/config_haiku.py pygame-1.9.1release-haiku/config_haiku.py
|
|
--- pygame-1.9.1release/config_haiku.py 1970-01-01 00:00:00.000000000 +0000
|
|
+++ pygame-1.9.1release-haiku/config_haiku.py 2010-09-17 10:02:14.000000000 +0000
|
|
@@ -0,0 +1,187 @@
|
|
+"""Config on Haiku"""
|
|
+
|
|
+import os, sys
|
|
+from glob import glob
|
|
+from distutils.sysconfig import get_python_inc
|
|
+
|
|
+# Python 2.x/3.x compatibility
|
|
+try:
|
|
+ raw_input
|
|
+except NameError:
|
|
+ raw_input = input
|
|
+
|
|
+configcommand = os.environ.get('SDL_CONFIG', 'sdl-config',)
|
|
+configcommand = configcommand + ' --version --cflags --libs'
|
|
+localbase = os.environ.get('LOCALBASE', '')
|
|
+
|
|
+#these get prefixes with '/usr' and '/usr/local' or the $LOCALBASE
|
|
+origincdirs = ['/include', '/include/SDL', '/include/SDL',
|
|
+ '/include/smpeg' ]
|
|
+origlibdirs = ['/lib','/lib64','/X11R6/lib']
|
|
+
|
|
+def confirm(message):
|
|
+ "ask a yes/no question, return result"
|
|
+ reply = raw_input('\n' + message + ' [Y/n]:')
|
|
+ if reply and (reply[0].lower()) == 'n':
|
|
+ return 0
|
|
+ return 1
|
|
+
|
|
+class DependencyProg:
|
|
+ def __init__(self, name, envname, exename, minver, defaultlibs):
|
|
+ self.name = name
|
|
+ command = os.environ.get(envname, exename)
|
|
+ self.lib_dir = ''
|
|
+ self.inc_dir = ''
|
|
+ self.libs = []
|
|
+ self.cflags = ''
|
|
+ try:
|
|
+ config = os.popen(command + ' --version --cflags --libs').readlines()
|
|
+ flags = ' '.join(config[1:]).split()
|
|
+
|
|
+ # remove this GNU_SOURCE if there... since python has it already,
|
|
+ # it causes a warning.
|
|
+ if '-D_GNU_SOURCE=1' in flags:
|
|
+ flags.remove('-D_GNU_SOURCE=1')
|
|
+ self.ver = config[0].strip()
|
|
+ if minver and self.ver < minver:
|
|
+ err= 'WARNING: requires %s version %s (%s found)' % (self.name, self.ver, minver)
|
|
+ raise ValueError(err)
|
|
+ self.found = 1
|
|
+ self.cflags = ''
|
|
+ for f in flags:
|
|
+ if f[:2] in ('-l', '-D', '-I', '-L'):
|
|
+ self.cflags += f + ' '
|
|
+ elif f[:3] == '-Wl':
|
|
+ self.cflags += '-Xlinker ' + f + ' '
|
|
+ if self.name == 'SDL':
|
|
+ inc = '-I' + '/usr/X11R6/include'
|
|
+ self.cflags = inc + ' ' + self.cflags
|
|
+ except:
|
|
+ print ('WARNING: "%s" failed!' % command)
|
|
+ self.found = 0
|
|
+ self.ver = '0'
|
|
+ self.libs = defaultlibs
|
|
+
|
|
+ def configure(self, incdirs, libdir):
|
|
+ if self.found:
|
|
+ print (self.name + ' '[len(self.name):] + ': found ' + self.ver)
|
|
+ self.found = 1
|
|
+ else:
|
|
+ print (self.name + ' '[len(self.name):] + ': not found')
|
|
+
|
|
+class Dependency:
|
|
+ def __init__(self, name, checkhead, checklib, libs):
|
|
+ self.name = name
|
|
+ self.inc_dir = None
|
|
+ self.lib_dir = None
|
|
+ self.libs = libs
|
|
+ self.found = 0
|
|
+ self.checklib = checklib
|
|
+ self.checkhead = checkhead
|
|
+ self.cflags = ''
|
|
+
|
|
+ def configure(self, incdirs, libdirs):
|
|
+ incname = self.checkhead
|
|
+ libnames = self.checklib, self.name.lower()
|
|
+
|
|
+ if incname:
|
|
+ for dir in incdirs:
|
|
+ path = os.path.join(dir, incname)
|
|
+ if os.path.isfile(path):
|
|
+ self.inc_dir = dir
|
|
+
|
|
+ for dir in libdirs:
|
|
+ for name in libnames:
|
|
+ path = os.path.join(dir, name)
|
|
+ if filter(os.path.isfile, glob(path+'*')):
|
|
+ self.lib_dir = dir
|
|
+
|
|
+ if (incname and self.lib_dir and self.inc_dir) or (not incname and self.lib_dir):
|
|
+ print (self.name + ' '[len(self.name):] + ': found')
|
|
+ self.found = 1
|
|
+ else:
|
|
+ print (self.name + ' '[len(self.name):] + ': not found')
|
|
+
|
|
+class DependencyPython:
|
|
+ def __init__(self, name, module, header):
|
|
+ self.name = name
|
|
+ self.lib_dir = ''
|
|
+ self.inc_dir = ''
|
|
+ self.libs = []
|
|
+ self.cflags = ''
|
|
+ self.found = 0
|
|
+ self.ver = '0'
|
|
+ self.module = module
|
|
+ self.header = header
|
|
+
|
|
+ def configure(self, incdirs, libdirs):
|
|
+ self.found = 1
|
|
+ if self.module:
|
|
+ try:
|
|
+ self.ver = __import__(self.module).__version__
|
|
+ except ImportError:
|
|
+ self.found = 0
|
|
+ if self.found and self.header:
|
|
+ fullpath = os.path.join(get_python_inc(0), self.header)
|
|
+ if not os.path.isfile(fullpath):
|
|
+ self.found = 0
|
|
+ else:
|
|
+ self.inc_dir = os.path.split(fullpath)[0]
|
|
+ if self.found:
|
|
+ print (self.name + ' '[len(self.name):] + ': found', self.ver)
|
|
+ else:
|
|
+ print (self.name + ' '[len(self.name):] + ': not found')
|
|
+
|
|
+sdl_lib_name = 'SDL'
|
|
+
|
|
+def main():
|
|
+ print ('\nHunting dependencies...')
|
|
+ DEPS = [
|
|
+ DependencyProg('SDL', 'SDL_CONFIG', 'sdl-config', '1.2', ['sdl']),
|
|
+ Dependency('FONT', 'SDL_ttf.h', 'libSDL_ttf.so', ['SDL_ttf']),
|
|
+ Dependency('IMAGE', 'SDL_image.h', 'libSDL_image.so', ['SDL_image']),
|
|
+ Dependency('MIXER', 'SDL_mixer.h', 'libSDL_mixer.so', ['SDL_mixer']),
|
|
+ DependencyProg('SMPEG', 'SMPEG_CONFIG', 'smpeg-config', '0.4.3', ['smpeg']),
|
|
+ Dependency('PNG', 'png.h', 'libpng', ['png']),
|
|
+ Dependency('JPEG', 'jpeglib.h', 'libjpeg', ['jpeg']),
|
|
+ Dependency('SCRAP', '', 'libX11', ['X11']),
|
|
+ Dependency('PORTMIDI', 'portmidi.h', 'libportmidi.so', ['portmidi']),
|
|
+ Dependency('PORTTIME', 'porttime.h', 'libporttime.so', ['porttime']),
|
|
+ #Dependency('GFX', 'SDL_gfxPrimitives.h', 'libSDL_gfx.so', ['SDL_gfx']),
|
|
+ ]
|
|
+ if not DEPS[0].found:
|
|
+ print ('Unable to run "sdl-config". Please make sure a development version of SDL is installed.')
|
|
+ raise SystemExit
|
|
+
|
|
+ if localbase:
|
|
+ incdirs = [localbase+d for d in origincdirs]
|
|
+ libdirs = [localbase+d for d in origlibdirs]
|
|
+ else:
|
|
+ incdirs = []
|
|
+ libdirs = []
|
|
+ incdirs += ["/boot/common"+d for d in origincdirs]
|
|
+ libdirs += ["/boot/common"+d for d in origlibdirs]
|
|
+
|
|
+ for arg in DEPS[0].cflags.split():
|
|
+ if arg[:2] == '-I':
|
|
+ incdirs.append(arg[2:])
|
|
+ elif arg[:2] == '-L':
|
|
+ libdirs.append(arg[2:])
|
|
+ for d in DEPS:
|
|
+ d.configure(incdirs, libdirs)
|
|
+
|
|
+ for d in DEPS[1:]:
|
|
+ if not d.found:
|
|
+ if not confirm("""
|
|
+Warning, some of the pygame dependencies were not found. Pygame can still
|
|
+compile and install, but games that depend on those missing dependencies
|
|
+will not run. Would you like to continue the configuration?"""):
|
|
+ raise SystemExit
|
|
+ break
|
|
+
|
|
+ return DEPS
|
|
+
|
|
+if __name__ == '__main__':
|
|
+ print ("""This is the configuration subscript for Unix.
|
|
+Please run "config.py" for full configuration.""")
|
|
+
|