setup.py :  » GUI » Biggles » python2-biggles-1.6.6 » Python Open Source

Home
Python Open Source
1.3.1.2 Python
2.Ajax
3.Aspect Oriented
4.Blog
5.Build
6.Business Application
7.Chart Report
8.Content Management Systems
9.Cryptographic
10.Database
11.Development
12.Editor
13.Email
14.ERP
15.Game 2D 3D
16.GIS
17.GUI
18.IDE
19.Installer
20.IRC
21.Issue Tracker
22.Language Interface
23.Log
24.Math
25.Media Sound Audio
26.Mobile
27.Network
28.Parser
29.PDF
30.Project Management
31.RSS
32.Search
33.Security
34.Template Engines
35.Test
36.UML
37.USB Serial
38.Web Frameworks
39.Web Server
40.Web Services
41.Web Unit
42.Wiki
43.Windows
44.XML
Python Open Source » GUI » Biggles 
Biggles » python2 biggles 1.6.6 » setup.py
#!/usr/bin/env python
#
# $Id: setup.py,v 1.34 2010/04/09 21:28:15 mrnolta Exp $
#
# Copyright (C) 2001-10 :
#
#  Berthold Hollmann <bhoel@starship.python.net>
#  Mike Nolta <mrnolta@users.sourceforge.net>
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this program; if not, write to the
# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA  02111-1307, USA.
#

#
# distutils setup file for biggles originally contributed
# by Berthold Hollmann.
#

from distutils.core import setup,Extension
from distutils.command.install_data import install_data
from distutils.sysconfig import get_python_inc
import distutils.log
import sys, os, os.path

# include/library directories
# if None, setup will try to discover the correct value automatically
plot_h_dir  = None  # dir containing plot.h (from plotutils)
libplot_dir = None  # dir containing libplot.so (from plotutils)
libX11_dir  = None  # dir containing libX11.so

def search_for_file( name, dirs ):
  for dir in dirs:
    if not os.path.isdir( dir ):
      continue
    fn = os.path.join( dir, name )
    if os.path.exists(fn):
      return dir
  #print "%s not found" % name
  return None

def search_for_library( name, dirs ):
  extns = ['a','so','dylib']
  for extn in extns:
    dir = search_for_file( 'lib'+name+'.'+extn, dirs )
    if dir is not None:
      return dir
  #print "lib%s not found" % name
  return None

def dir_ends_in( dir, x ):
  # returns True is dir is of the form "/../../x"
  head,tail = os.path.split( dir )
  if tail == '':
    head,tail = os.path.split( head )
  if tail == x:
    return True
  return False

_biggles_module_inc_dirs = []
libplot_module_inc_dirs = []
libplot_module_lib_dirs = []

if sys.platform == "win32":

  libplot_module_libs = ["plot.dll"]

else:
  try:
    import numpy
    numpy_inc_dir = numpy.get_include()
    _biggles_module_inc_dirs.append( numpy_inc_dir )
    libplot_module_inc_dirs.append( numpy_inc_dir )
  except:
    print "numpy module not found; add /path/to/numpy to PYTHONPATH"

  candidate_dirs = [
    '/usr',
    '/usr/X11R6',
    sys.prefix,
  ]

  if 'LD_LIBRARY_PATH' in os.environ:
    for dir in os.environ['LD_LIBRARY_PATH'].split(':'):
      head,tail = os.path.split( dir )
      if tail == '':
        head,tail = os.path.split( head )
      if tail == 'lib' or tail == 'lib64':
        candidate_dirs.append( head )

  candidate_dirs.append( '/usr/local' )

  candidate_lib_dirs = []
  for dir in candidate_dirs:
    candidate_lib_dirs.append( os.path.join(dir,'lib') )
    candidate_lib_dirs.append( os.path.join(dir,'lib64') )

  candidate_inc_dirs = []
  for dir in candidate_dirs:
    candidate_inc_dirs.append( os.path.join(dir,'include') )

  if plot_h_dir is None:
    plot_h_dir = search_for_file( 'plot.h', candidate_inc_dirs )
    print "found plot.h in %s" % plot_h_dir
  if libplot_dir is None:
    libplot_dir = search_for_library( 'plot', candidate_lib_dirs )
    print "found libplot in %s" % libplot_dir
  if libX11_dir is None:
    libX11_dir = search_for_library( 'X11', candidate_lib_dirs )
    print "found libX11 in %s" % libX11_dir

  if plot_h_dir is not None:
    libplot_module_inc_dirs.append( plot_h_dir )
  else:
    print 'unable to find plot.h; add "-I/path/to/plot.h"'

  if libplot_dir is not None:
    libplot_module_lib_dirs.append( libplot_dir )
  else:
    print 'unable to find libplot; add "-L/path/to/libplot"'

  if libX11_dir is not None:
    libplot_module_lib_dirs.append( libX11_dir )
  else:
    print 'unable to find plot.h; add "-L/path/to/libX11"'

  #_biggles_module_inc_dirs = [ numpy_inc_dir ]
  #libplot_module_inc_dirs = [ plot_h_dir, numpy_inc_dir ]
  #libplot_module_lib_dirs = [ libplot_dir, libX11_dir ]

  libplot_module_libs = ["plot","Xaw","Xmu","Xt","SM","ICE","Xext","X11"]

# own install_data class to allow installation of data file
# (config.ini) to biggles directory

class my_install_data( install_data ):

  def finalize_options( self ):
    self.set_undefined_options( "install", \
      ( "install_lib", "install_dir" ), \
      ( "root", "root" ), \
      ( "force", "force" ), \
    )

long_description = """\
Biggles is a Python module for creating publication-quality 2D scientific
plots. It supports multiple output formats (postscript, x11, png, svg, gif),
understands simple TeX, and sports a high-level, elegant interface. It's
intended for technical users with sophisticated plotting needs.
"""

setup(
  # Distribution meta-data

  name    = "python2-biggles",
  version    = "1.6.6",
  author    = "Mike Nolta",
  author_email  = "mike@nolta.net",
  url    = "http://biggles.sourceforge.net/",
  license    = "GPL",
  description  = "scientific plotting module",
  long_description= long_description,

  # Description of the modules and packages in the distribution

  packages  = [ "biggles", "biggles.libplot" ],
  package_dir  = { "biggles" : "src" },

  ext_package  = "biggles",
  ext_modules  = [
    Extension( "_biggles",
      ["src/_biggles.c"],
      include_dirs = _biggles_module_inc_dirs ),

    Extension( "libplot.libplot",
      ["src/libplot/libplot.c"],
      include_dirs = libplot_module_inc_dirs,
      library_dirs = libplot_module_lib_dirs,
      libraries = libplot_module_libs ), 
  ],

  cmdclass  = { "install_data" : my_install_data },
  data_files  = [ ("biggles", ["src/config.ini"]) ]
)

# vim: sts=8 sw=8 noexpandtab
www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.