| 1 | |
|---|
| 2 | |
|---|
| 3 | |
|---|
| 4 | |
|---|
| 5 | |
|---|
| 6 | |
|---|
| 7 | |
|---|
| 8 | |
|---|
| 9 | |
|---|
| 10 | |
|---|
| 11 | |
|---|
| 12 | |
|---|
| 13 | |
|---|
| 14 | |
|---|
| 15 | |
|---|
| 16 | |
|---|
| 17 | |
|---|
| 18 | |
|---|
| 19 | |
|---|
| 20 | |
|---|
| 21 | |
|---|
| 22 | |
|---|
| 23 | |
|---|
| 24 | |
|---|
| 25 | |
|---|
| 26 | |
|---|
| 27 | |
|---|
| 28 | |
|---|
| 29 | |
|---|
| 30 | |
|---|
| 31 | |
|---|
| 32 | |
|---|
| 33 | |
|---|
| 34 | |
|---|
| 35 | |
|---|
| 36 | set python.versions {python24 python25 python26} |
|---|
| 37 | set python.default_version python26 |
|---|
| 38 | |
|---|
| 39 | |
|---|
| 40 | if {![info exists frameworks_dir]} { |
|---|
| 41 | set frameworks_dir ${prefix}/Library/Frameworks |
|---|
| 42 | } |
|---|
| 43 | |
|---|
| 44 | |
|---|
| 45 | set python24.prefix ${prefix} |
|---|
| 46 | set python25.prefix ${prefix} |
|---|
| 47 | set python26.prefix ${frameworks_dir}/Python.framework/Versions/2.6 |
|---|
| 48 | |
|---|
| 49 | proc python.versions {versions} { |
|---|
| 50 | global python.versions |
|---|
| 51 | set python.versions $versions |
|---|
| 52 | } |
|---|
| 53 | |
|---|
| 54 | categories python |
|---|
| 55 | dist_subdir python |
|---|
| 56 | |
|---|
| 57 | use_configure no |
|---|
| 58 | |
|---|
| 59 | build.target build |
|---|
| 60 | |
|---|
| 61 | pre-destroot { |
|---|
| 62 | xinstall -d -m 755 ${destroot}${prefix}/share/doc/${name}/examples |
|---|
| 63 | } |
|---|
| 64 | |
|---|
| 65 | |
|---|
| 66 | foreach v ${python.versions} { |
|---|
| 67 | if {[variant_isset $v]} { |
|---|
| 68 | set python.version_chosen ${v} |
|---|
| 69 | } |
|---|
| 70 | } |
|---|
| 71 | if {![info exists python.version_chosen]} { |
|---|
| 72 | variant_set ${python.default_version} |
|---|
| 73 | set python.primary_version ${python.default_version} |
|---|
| 74 | } else { |
|---|
| 75 | set python.primary_version python.version_chosen |
|---|
| 76 | } |
|---|
| 77 | |
|---|
| 78 | foreach v ${python.versions} { |
|---|
| 79 | |
|---|
| 80 | set python.dotversion [string range $v 0 end-1].[string index $v end] |
|---|
| 81 | |
|---|
| 82 | set ${v}.bin [set ${v}.prefix]/bin/${python.dotversion} |
|---|
| 83 | set ${v}.libdir [set ${v}.prefix]/lib/${python.dotversion} |
|---|
| 84 | set ${v}.pkgd [set ${v}.prefix]/lib/${python.dotversion}/site-packages |
|---|
| 85 | set ${v}.include [set ${v}.prefix]/include/${python.dotversion} |
|---|
| 86 | set ${v}.version [string range ${v} end-1 end-1].[string range ${v} end end] |
|---|
| 87 | set ${v}.framework ${frameworks_dir}/Python.framework/Versions/[set ${v}.version] |
|---|
| 88 | |
|---|
| 89 | |
|---|
| 90 | |
|---|
| 91 | |
|---|
| 92 | |
|---|
| 93 | |
|---|
| 94 | |
|---|
| 95 | variant $v "post-patch { copy \${worksrcpath} \${worksrcpath}-${v} }\n post-destroot { private_python_post_destroot ${v} } " |
|---|
| 96 | |
|---|
| 97 | |
|---|
| 98 | |
|---|
| 99 | if { [set ${v}.version] <= 2.5 } { |
|---|
| 100 | set ${v}.lib [set ${v}.prefix]/lib/lib[set ${v}.version].dylib |
|---|
| 101 | set ${v}.setup setup.py |
|---|
| 102 | } else { |
|---|
| 103 | set ${v}.lib [set ${v}.prefix]/Python |
|---|
| 104 | set ${v}.setup {setup.py --no-user-cfg} |
|---|
| 105 | } |
|---|
| 106 | |
|---|
| 107 | if {[variant_isset $v]} { |
|---|
| 108 | depends_lib-append port:${v} |
|---|
| 109 | } |
|---|
| 110 | } |
|---|
| 111 | |
|---|
| 112 | build { |
|---|
| 113 | foreach v ${python.versions} { |
|---|
| 114 | if {[variant_isset $v]} { |
|---|
| 115 | set buildcmd "[set ${v}.bin] [set ${v}.setup]" |
|---|
| 116 | system "cd ${worksrcpath}-${v} && ${buildcmd} ${build.target}" |
|---|
| 117 | } |
|---|
| 118 | } |
|---|
| 119 | } |
|---|
| 120 | |
|---|
| 121 | destroot { |
|---|
| 122 | |
|---|
| 123 | |
|---|
| 124 | foreach v ${python.versions} { |
|---|
| 125 | if {[variant_isset $v]} { |
|---|
| 126 | copy ${destroot} ${destroot}-${v} |
|---|
| 127 | } |
|---|
| 128 | } |
|---|
| 129 | |
|---|
| 130 | foreach v ${python.versions} { |
|---|
| 131 | if {[variant_isset ${v}]} { |
|---|
| 132 | destroot.destdir --prefix=[set ${v}.prefix] --root=${destroot}-${v} |
|---|
| 133 | set destrootcmd "[set ${v}.bin] [set ${v}.setup]" |
|---|
| 134 | |
|---|
| 135 | system "cd ${worksrcpath}-${v} && ${destrootcmd} ${destroot.target} ${destroot.destdir}" |
|---|
| 136 | |
|---|
| 137 | |
|---|
| 138 | foreach dir {bin lib/pkgconfig share/pkgconfig} { |
|---|
| 139 | xinstall -d -m 755 ${destroot}-${v}[set ${v}.framework]/${dir} |
|---|
| 140 | foreach file [glob -nocomplain -directory ${destroot}-${v}${prefix}/${dir} *] { |
|---|
| 141 | move ${file} ${destroot}-${v}[set ${v}.framework]/${dir}/ |
|---|
| 142 | } |
|---|
| 143 | } |
|---|
| 144 | foreach mani [glob -nocomplain -directory ${destroot}-${v}${prefix}/share/man *] { |
|---|
| 145 | foreach man [glob -nocomplain -directory ${mani} *] { |
|---|
| 146 | xinstall -d -m 755 ${destroot}-${v}[set ${v}.framework]/share/man/[file tail ${mani}] |
|---|
| 147 | move ${man} ${destroot}-${v}[set ${v}.framework]/share/man/[file tail ${mani}]/ |
|---|
| 148 | } |
|---|
| 149 | } |
|---|
| 150 | |
|---|
| 151 | |
|---|
| 152 | foreach file [glob -nocomplain -tails -directory ${destroot}-${v}[set ${v}.framework]/bin *] { |
|---|
| 153 | if { [string range ${file} end-2 end] != [set ${v}.version] } { |
|---|
| 154 | |
|---|
| 155 | ln -s [set ${v}.framework]/bin/${file} ${destroot}${prefix}/bin/${file}-[set ${v}.version] |
|---|
| 156 | } |
|---|
| 157 | } |
|---|
| 158 | } |
|---|
| 159 | } |
|---|
| 160 | } |
|---|
| 161 | |
|---|
| 162 | |
|---|
| 163 | |
|---|
| 164 | |
|---|
| 165 | |
|---|
| 166 | |
|---|
| 167 | proc private_rename_recur {olddir newdir} { |
|---|
| 168 | foreach fl [glob -nocomplain -tails -directory ${olddir} *] { |
|---|
| 169 | if { [file isdirectory ${olddir}/${fl}] && [file type ${olddir}/${fl}] != "link" } { |
|---|
| 170 | xinstall -d ${newdir}/${fl} |
|---|
| 171 | private_rename_recur ${olddir}/${fl} ${newdir}/${fl} |
|---|
| 172 | } else { |
|---|
| 173 | move ${olddir}/${fl} ${newdir}/${fl} |
|---|
| 174 | } |
|---|
| 175 | } |
|---|
| 176 | } |
|---|
| 177 | |
|---|
| 178 | |
|---|
| 179 | |
|---|
| 180 | |
|---|
| 181 | proc private_python_post_destroot {v} { |
|---|
| 182 | global destroot frameworks_dir destroot python.versions prefix |
|---|
| 183 | foreach vv ${python.versions} { |
|---|
| 184 | global ${vv}.version ${vv}.framework |
|---|
| 185 | } |
|---|
| 186 | |
|---|
| 187 | private_rename_recur ${destroot}-${v} ${destroot} |
|---|
| 188 | |
|---|
| 189 | |
|---|
| 190 | foreach file [glob -nocomplain -tails -directory ${destroot}[set ${v}.framework]/bin *] { |
|---|
| 191 | if { [string range ${file} end-2 end] ne [set ${v}.version] } { |
|---|
| 192 | |
|---|
| 193 | ln -sf ${frameworks_dir}/Python.framework/Versions/Current/bin/${file} ${destroot}${prefix}/bin/${file} |
|---|
| 194 | } |
|---|
| 195 | } |
|---|
| 196 | foreach dir {lib/pkgconfig share/pkgconfig} { |
|---|
| 197 | foreach file [glob -nocomplain -tails -directory ${destroot}[set ${v}.framework]/${dir} *] { |
|---|
| 198 | ln -sf ${frameworks_dir}/Python.framework/Versions/Current/${dir}/${file} ${destroot}${prefix}/${dir}/${file} |
|---|
| 199 | } |
|---|
| 200 | } |
|---|
| 201 | foreach mani [glob -nocomplain -tails -directory ${destroot}[set ${v}.framework]/share/man *] { |
|---|
| 202 | foreach man [glob -nocomplain -tails -directory ${destroot}[set ${v}.framework]/share/man/${mani} *] { |
|---|
| 203 | ln -sf ${frameworks_dir}/Python.framework/Versions/Current/share/man/${mani}/${man} ${destroot}${prefix}/share/man/${mani} |
|---|
| 204 | } |
|---|
| 205 | } |
|---|
| 206 | } |
|---|
| 207 | |
|---|
| 208 | test { |
|---|
| 209 | foreach v ${python.versions} { |
|---|
| 210 | if {[variant_isset $v]} { |
|---|
| 211 | set destrootcmd "[set ${v}.bin] [set ${v}.setup]" |
|---|
| 212 | system "cd ${worksrcpath}-${v} && ${destrootcmd} test" |
|---|
| 213 | } |
|---|
| 214 | } |
|---|
| 215 | } |
|---|
| 216 | |
|---|
| 217 | |
|---|
| 218 | |
|---|
| 219 | |
|---|
| 220 | |
|---|
| 221 | |
|---|
| 222 | |
|---|
| 223 | |
|---|