blob: 69a98594dc68de008d0a9436ec32d47c9df453d7 [file] [log] [blame]
Alexandre Lision8af73cb2013-12-10 14:11:20 -05001# $Id$
2#
3# pjsua Setup script.
4#
5# Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
6#
7# This program is free software; you can redistribute it and/or modify
8# it under the terms of the GNU General Public License as published by
9# the Free Software Foundation; either version 2 of the License, or
10# (at your option) any later version.
11#
12# This program is distributed in the hope that it will be useful,
13# but WITHOUT ANY WARRANTY; without even the implied warranty of
14# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15# GNU General Public License for more details.
16#
17# You should have received a copy of the GNU General Public License
18# along with this program; if not, write to the Free Software
19# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20#
21from distutils.core import setup, Extension
22import os
23import sys
24import platform
25
26# find pjsip version
27pj_version=""
28pj_version_major=""
29pj_version_minor=""
30pj_version_rev=""
31pj_version_suffix=""
32f = open('../../../version.mak', 'r')
33for line in f:
34 if line.find("export PJ_VERSION_MAJOR") != -1:
35 tokens=line.split("=")
36 if len(tokens)>1:
37 pj_version_major= tokens[1].strip()
38 elif line.find("export PJ_VERSION_MINOR") != -1:
39 tokens=line.split("=")
40 if len(tokens)>1:
41 pj_version_minor= line.split("=")[1].strip()
42 elif line.find("export PJ_VERSION_REV") != -1:
43 tokens=line.split("=")
44 if len(tokens)>1:
45 pj_version_rev= line.split("=")[1].strip()
46 elif line.find("export PJ_VERSION_SUFFIX") != -1:
47 tokens=line.split("=")
48 if len(tokens)>1:
49 pj_version_suffix= line.split("=")[1].strip()
50
51f.close()
52if not pj_version_major:
53 print 'Unable to get PJ_VERSION_MAJOR'
54 sys.exit(1)
55
56pj_version = pj_version_major + "." + pj_version_minor
57if pj_version_rev:
58 pj_version += "." + pj_version_rev
59if pj_version_suffix:
60 pj_version += "-" + pj_version_suffix
61
62#print 'PJ_VERSION = "'+ pj_version + '"'
63
64
65# Fill in pj_inc_dirs
66pj_inc_dirs = []
67f = os.popen("make -f helper.mak inc_dir")
68for line in f:
69 pj_inc_dirs.append(line.rstrip("\r\n"))
70f.close()
71
72# Fill in pj_lib_dirs
73pj_lib_dirs = []
74f = os.popen("make -f helper.mak lib_dir")
75for line in f:
76 pj_lib_dirs.append(line.rstrip("\r\n"))
77f.close()
78
79# Fill in pj_libs
80pj_libs = []
81f = os.popen("make -f helper.mak libs")
82for line in f:
83 pj_libs.append(line.rstrip("\r\n"))
84f.close()
85
86# Mac OS X depedencies
87if platform.system() == 'Darwin':
88 extra_link_args = ["-framework", "CoreFoundation",
89 "-framework", "AudioToolbox"]
90 version = platform.mac_ver()[0].split(".")
91 # OS X Lion (10.7.x) or above support
92 if version[0] == '10' and int(version[1]) >= 7:
93 extra_link_args += ["-framework", "AudioUnit"]
94else:
95 extra_link_args = []
96
97
98setup(name="pjsua",
99 version=pj_version,
100 description='SIP User Agent Library based on PJSIP',
101 url='http://trac.pjsip.org/repos/wiki/Python_SIP_Tutorial',
102 ext_modules = [Extension("_pjsua",
103 ["_pjsua.c"],
104 define_macros=[('PJ_AUTOCONF', '1'),],
105 include_dirs=pj_inc_dirs,
106 library_dirs=pj_lib_dirs,
107 libraries=pj_libs,
108 extra_link_args=extra_link_args
109 )
110 ],
111 py_modules=["pjsua"]
112 )
113
114