from distutils.core import setup,Extension from distutils.unixccompiler import UnixCCompiler import os.path,sys,os import presetup cross_compile = "CROSSCOMPILE" in os.environ ffmpeg_module_files = [ "ffmpeg_coreapi.c", "ptp_in.c", "ptp_out.c", "linkedlist.c", "cmdutils.c", "ffmpeg_decoder.c", "ffmpeg_encoder.c"] include_dirs = [ "SDL-CVS/include", "SDL/include", "Python/Include", "Python", "ffmpeg", "ffmpeg/libavformat", "ffmpeg/libavcodec", "ffmpeg/libavutil"] extra_compile_args = [] extra_link_args = [] libraries = ["avformat", "avcodec", "avutil"] library_dirs = ["ffmpeg/libavformat", "ffmpeg/libavcodec", "ffmpeg/libavutil", "SDL-CVS/src/.libs", "SDL-CVS/build/.libs","/usr/lib"] if cross_compile: extra_libs = ["python24.dll","SDL/src/.libs/SDL.dll"] extra_link_args.extend( extra_libs ) extra_link_args.extend( ["-shared","--export-all-symbols"] ) import distutils.sysconfig stock_get_config_vars = distutils.sysconfig.get_config_vars def new_get_config_vars( *args ): # allow init stock_get_config_vars( *args ) distutils.sysconfig._config_vars["SO"] = ".dll" distutils.sysconfig._config_vars["CC"] = "xcomp/bin/mingw32-gcc" distutils.sysconfig._config_vars["LDSHARED"] = "xcomp/bin/mingw32-gcc" distutils.sysconfig._config_vars["BASECFLAGS"] = base = "-fno-strict-aliasing -fno-common -fPIC" distutils.sysconfig._config_vars["CFLAGS"] = base + " -DNDEBUG -g -O3 -Wall -Wstrict-prototypes" return stock_get_config_vars( *args ) distutils.sysconfig.get_config_vars = new_get_config_vars else: if sys.platform == "darwin": frameworks = ["AGL","AudioUnit","AudioToolbox","IOKit","OpenGL","Carbon","Cocoa","Quicktime"] extra_link_args.extend([ "-read_only_relocs", "suppress", #"SDL-SVN/build/.libs/libSDL.a"]) "SDL-CVS/build/.libs/libSDL.a","-lSystemStubs"]) extra_compile_args.extend([ "-ffast-math","-mcpu=G4"]) for f in frameworks: extra_link_args.extend(["-framework",f]) ffmpeg_module_files.append( "ffmpeg_macapp2.m" ) if sys.platform == "linux2": SDL_CONFIG = os.popen("which sdl-config").read() if SDL_CONFIG: flags = os.popen("sdl-config --cflags").read().split() libs = os.popen("sdl-config --libs").read().split() else: # hope for the best flags = ["-I/usr/include/SDL"] libs = [] extra_compile_args.extend( flags ) extra_link_args.extend( libs ) extra_link_args.extend([ "-Wl,-whole-archive", "ffmpeg/libavformat/libavformat.a", "ffmpeg/libavcodec/libavcodec.a", "ffmpeg/libavutil/libavutil.a", "-Wl,-no-whole-archive"]) libraries = ["z"] if presetup.options.getboolean( "libs", "dc1394" ): libraries += ["raw1394","dc1394_control"] if presetup.options.getboolean( "libs", "faad" ): libraries += ["faad"] if presetup.options.getboolean( "libs", "a52" ): libraries += ["a52"] ffmpeg_module_files = map( lambda f: os.path.join("ffmpeg_module",f), ffmpeg_module_files ) setup( name = "TriblerStreaming", version = "1.0", description = "Tribler P2P Video Streaming", author = "Jan David Mol, Qin Chen, Paul Duijkers", author_email = "j.j.d.mol@tudelft.nl", url = "http://tribler.org", packages = [ "tribler_streaming" ], data_files = [ ("",[ "tribler_streaming/README", "LGPL", "COPYRIGHT", "tribler_streaming/tvset.ico", "tribler_streaming/config.ini", "tribler_streaming/source_sample.ini", "tribler_streaming/logo.png", "tribler_streaming/logo_small.png", "tribler_streaming/logo_small.bmp" ]) ], ext_modules = [Extension("tribler_streaming.ffmpeg_coreapi",ffmpeg_module_files, include_dirs = include_dirs, libraries = libraries, library_dirs = library_dirs, extra_compile_args = extra_compile_args, extra_link_args = extra_link_args)], )