import numpy
# do not push to master
from numpy.distutils.core import setup, Extension
#from numpy.distutils.ccompiler import CCompiler
import os,sys,string
from setuptools import setup, Extension

include_dirs = [numpy.lib.utils.get_include(),"include","include/cdTime","include/json-c"]

library_dirs = [ os.path.join("@prefix@","lib") ,'.']
include_dirs.append(os.path.join("@prefix@","include"))
libraries = []
link_args = []

for st in ["@NCLDFLAGS@", "@NCCFLAGS@",  
           "@UDUNITS2FLAGS@", "@UDUNITS2LDFLAGS@",
           "@UUIDFLAGS@", "@UUIDLDFLAGS@"]:
   sp = st.strip().split()
   for s in sp:
      if s[:2]=='-L':
        library_dirs.append(s[2:])
      if s[:2]=='-l':
        libraries.append(s[2:])
      if s[:2]=='-I':
        include_dirs.append(s[2:])
      if s[:4]=='-Wl,':
        link_args.append(s)

srcfiles = "@LIBSOURCES@".split()
srcfiles_CV = "@LIBSOURCESCV@".split()

macros=[]
for m in "@MACROS@".split():
   macros.append((m[2:],None))
   
ld =[]
for p in library_dirs:
   if os.path.exists(p):
      ld.append(p)
library_dirs=ld

ld =[]
for p in include_dirs:
   if os.path.exists(p):
      ld.append(p)
include_dirs=ld

print 'Setting up python module with:'
print 'libraries:',libraries
print 'libdir:',library_dirs
print 'incdir',include_dirs
print 'src:',srcfiles
print 'macros:',macros

setup (name = "CMOR",
       version='3.3',
       author='Denis Nadeau, AIMS',
       description = "Python Interface to CMOR output library",
       url = "http://cmor.llnl.gov/",
       zip_safe=False,
       packages = ['cmor', 'cmip6_cv', 'cmor.Test', 'cmip6_cv.PrePARE' ],
       package_dir = {'cmor': 'Lib', 'cmip6_cv': 'LibCV', 'cmor.Test':'Test', 'cmip6_cv.PrePARE':'LibCV/PrePARE'},
#       scripts=['scripts/PrePARE.py' ],
       ext_modules = [
            Extension('cmor._cmor',
                  srcfiles,
                  include_dirs = include_dirs,
                  library_dirs = library_dirs,
                  libraries = libraries,
                  define_macros = macros,
                  extra_compile_args = [ "-DgFortran"],
                  extra_link_args = link_args
                  ),
            Extension('cmip6_cv._cmip6_cv',
                  srcfiles_CV,
                  include_dirs = include_dirs,
                  library_dirs = library_dirs,
                  libraries = libraries,
                  define_macros = macros,
                  extra_compile_args = [ "-DgFortran"],
                  extra_link_args = link_args
                  ),
        ],
       entry_points = {
          'console_scripts':['PrePARE=cmip6_cv.PrePARE:main'],
        }

      )

