from distutils.core import setup,Extension
import os

def get_vlcconfig():
    vlcconfig=None
    for n in ( 'vlc-config',
               os.path.sep.join( ( '..', 'vlc-config' ))):
        if os.path.exists(n):
            vlcconfig=n
            break
    if vlcconfig is None:
        print "*** Warning *** Cannot find vlc-config"
    elif os.sys.platform == 'win32':
        # Win32 does not know how to invoke the shell itself.
        vlcconfig="sh %s" % vlcconfig
    return vlcconfig

def get_cflags():
    vlcconfig=get_vlcconfig()
    if vlcconfig is None:
        return []
    else:
        cflags=os.popen('%s --cflags' % vlcconfig, 'r').readline().rstrip().split()
	cflags.append( "-D__LIBVLC__")
        return cflags

def get_ldflags():
    vlcconfig=get_vlcconfig()
    if vlcconfig is None:
        return []
    else:
	os.environ['top_builddir'] = '..'
	ldflags = []
	if os.sys.platform == 'darwin':
	    ldflags = "-read_only_relocs warning".split()
        ldflags.extend(os.popen('%s --libs vlc builtin' % vlcconfig, 'r').readline().rstrip().split())
	if os.sys.platform == 'darwin':
	    ldflags.append('-lstdc++')
        return ldflags

# To compile in a local vlc tree
native_libvlc_test = Extension( 'native_libvlc_test',
                sources = ['native/init.c', 'native/url.c', 'native/i18n.c',
			    'native/stats.c', 'native/libvlc.c', 'native/profiles.c',
                'native/algo.c', 'native/threads.c'],
                include_dirs = ['../include', '../', '/usr/win32/include' ],
                extra_objects = [ '../src/.libs/libvlc.so', '../src/.libs/libvlc-control.so' ],
                extra_compile_args = get_cflags(),
       		    extra_link_args = [ '-L../..' ]  + get_ldflags(),
                )

native_gc_test = Extension( 'native_gc_test',
                sources = ['native/gc.c'],
                include_dirs = ['../include', '../', '/usr/win32/include' ],
                extra_objects = [ '../src/.libs/libvlc.so' ],
                extra_compile_args = get_cflags(),
       		    extra_link_args = [ '-L../..' ]  + get_ldflags(),
                )

setup( name = 'native_libvlc_test' ,version = '1242', ext_modules = [ native_libvlc_test ] )


setup( name = 'native_gc_test' ,version = '1242', ext_modules = [ native_gc_test ] )
