source: trunk/dports/math/atlas/Portfile @ 105083

Last change on this file since 105083 was 105083, checked in by jmr@…, 7 years ago

atlas: add missing error catching probably responsible for failure to index, and use internal sysctl proc (#38677, maintainer timeout)

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 24.0 KB
Line 
1# $Id: Portfile 105083 2013-04-09 10:43:39Z jmr@macports.org $
2
3PortSystem              1.0
4PortGroup               muniversal 1.0
5
6categories              math
7license                 BSD
8name                    atlas
9version                 3.10.1
10revision                3
11
12# additional versions
13set lapackversion       3.4.2
14set lapackname          lapack
15set atlasdist           ${name}${version}.tar.bz2
16set lapackdist          ${lapackname}-${lapackversion}.tgz
17
18maintainers             vince
19platforms               darwin
20
21description             Portable optimal linear algebra software
22long_description        Provides a complete BLAS and LAPACK API.\nATLAS\
23                        achieves performance on par\
24                        with machine-specific tuned libraries.
25
26# No precompiled binaries
27archive_sites
28
29homepage                http://math-atlas.sourceforge.net/
30
31master_sites            sourceforge:math-atlas:atlas \
32                        http://www.netlib.org/lapack:lapack
33
34distfiles               ${atlasdist}:atlas \
35                        ${lapackdist}:lapack
36
37patchfiles              patch-emit_mm_c.diff \
38                        patch-ATL_cmm4x4x128_av_c.diff
39
40
41checksums               atlas3.10.1.tar.bz2 \
42rmd160  67f928ad900caa300b23e2f824b8a495f416c8d6 \
43sha256  a215b492204aae0205f4028e7c4076492a5d6a564f8f859ff062fd79587bcc86 \
44                        lapack-3.4.2.tgz \
45rmd160  8740c35c9a85b71424fe1ffeed192256aebeb431 \
46sha256  60a65daaf16ec315034675942618a2230521ea7adf85eea788ee54841072faf0
47
48
49set     gcc_version         0
50set     use_clang           ""
51
52variant gcc48               conflicts   gcc46 gcc47 \
53                                        clang mpclang32 mpclang33 \
54                            description {build using macports-gcc-4.8} {
55
56    depends_build-append    port:gcc48
57    configure.compiler      macports-gcc-4.8
58
59    set gcc_version         48
60    set use_clang           ""
61}
62
63variant gcc47               conflicts   gcc46 gcc48 \
64                                        clang mpclang32 mpclang33 \
65                            description {build using macports-gcc-4.7} {
66
67    depends_build-append    port:gcc47
68    configure.compiler      macports-gcc-4.7
69
70    set gcc_version         47
71    set use_clang           ""
72}
73
74variant gcc46               conflicts   gcc47 gcc48 \
75                                        clang mpclang32 mpclang33 \
76                            description {build using macports-gcc-4.6} {
77
78    depends_build-append    port:gcc46
79    configure.compiler      macports-gcc-4.6
80
81    set gcc_version         46
82    set use_clang           ""
83
84}
85
86variant clang               conflicts   gcc46 gcc47 gcc48 \
87                                        mpclang32 mpclang33 \
88                            description {use XCode clang and gfortran} {
89
90    if {[vercmp $xcodeversion 4.3] < 0} {
91        pre-fetch {
92            return -code error "Your version of clang is too old!"
93        }
94    }
95
96    configure.compiler      clang
97
98    set use_clang           "XCode"
99    set gcc_version         0
100}
101
102variant mpclang32           conflicts   gcc46 gcc47 gcc48 \
103                                        clang mpclang33 \
104                            description {use mp-clang-3.2 and gfortran} {
105
106    depends_build-append    port:clang-3.2
107    configure.compiler      macports-clang-3.2
108
109    set use_clang           "32"
110    set gcc_version         0
111}
112
113variant mpclang33           conflicts   gcc46 gcc47 gcc48 \
114                                        clang mpclang32 \
115                            description {use mp-clang-3.3 and gfortran} {
116
117    depends_build-append    port:clang-3.3
118    configure.compiler      macports-clang-3.3
119
120    set use_clang           "33"
121    set gcc_version         0
122}
123
124variant nofortran       description {Forgo use of fortran compiler} {
125}
126
127# AVX or higher?
128
129if {${os.major} > 10 && \
130        ![catch {sysctl hw.optional.avx1_0} result1] && $result1 == 1} {
131
132    set has_avx "yes"
133} else {
134
135    set has_avx "no"
136}
137
138# If none of the above variants is chosen, make gcc47 the default for
139# up to SSE4.2 (Core i1) capable processors, and mp-clang-3.3 for newer
140
141if {![variant_isset gcc46] && ![variant_isset gcc47] && \
142    ![variant_isset gcc48] && ![variant_isset clang] && \
143    ![variant_isset mpclang32] && ![variant_isset mpclang33]} {
144
145    if {${has_avx} == "no"} {
146   
147        # Defaults to gcc47
148        default_variants    +gcc47
149        set gcc_version     47
150        set use_clang       ""
151    } else {
152   
153        # Defaults to clang-mp-3.3
154        default_variants    +mpclang33
155        set gcc_version     0
156        set use_clang       "33"
157    }
158}
159
160set universal           [variant_isset universal]
161
162# Finds the type of CPU we are running on
163set native_arch $build_arch
164if {${os.arch} == "i386"} {
165
166    set universal_archs_supported {i386 x86_64}
167    if {![catch {sysctl hw.machine} result]} {
168        set native_arch $result
169    }
170} elseif {${os.arch} == "powerpc"} {
171
172    set universal_archs_supported {ppc  ppc64}
173    if {![catch {sysctl hw.cpusubtype} result] && $result == 100} {
174        set native_arch "ppc64"
175    } else {
176   
177        set native_arch "ppc"
178    }
179}
180
181configure.args \
182    --with-netlib-lapack-tarfile=${distpath}/${lapackdist} \
183    -O 12 \
184    -v 5 \
185    --dylibs
186
187# Chose the right flags for GCC and Clang compilers
188
189if {${build_arch} == "i386" || ${build_arch} == "x86_64"} {
190
191    # General flags
192    # GCC
193    set gcc_flags   "-fomit-frame-pointer -mfpmath=sse -O3\
194                     -fno-schedule-insns2 -fPIC"
195
196    # Clang
197    if {${use_clang} == "32" || ${use_clang} == "XCode" } {
198
199        pre-fetch {       
200            ui_warn "Compiling Atlas with this version of clang is\
201                    likely *NOT* to work. Please use clang-3.3 or\
202                    higher."
203        }
204        set clang_flags "-O3 -fomit-frame-pointer -fPIC"
205    } else {
206
207        # Clang 3.3 – Use loop and straight vectorizer
208        set clang_flags "-O3 -fomit-frame-pointer -fPIC\
209                         -fvectorize -fslp-vectorize"
210
211    }
212
213    # Vectorizing unit flags
214    if {${has_avx} == "yes"} {
215
216        # GCC compilers do not support AVX on OS X
217        set gvct_flag   "-msse4.2"
218        set cvct_flag   "-mavx"
219    } elseif {${os.major} > 9 && \
220            ![catch {sysctl hw.optional.sse4_2} result1] && $result1 == 1} {
221
222        set gvct_flag   "-msse4.2"
223        set cvct_flag   "-msse4.2"
224    } elseif {${os.major} > 9 && \
225            ![catch {sysctl hw.optional.sse4_1} result1] && $result1 == 1} {
226
227        set gvct_flag   "-msse4.1"
228        set cvct_flag   "-msse4.1"
229    } elseif {${os.major} > 8 && \
230    ![catch {sysctl hw.optional.supplementalsse3} result1] && $result1 == 1} {
231
232        set gvct_flag   "-mssse3"
233        set cvct_flag   "-mssse3"
234    } else {
235
236        # Default vectorization flag is sse3 (CoreSolo / CoreDuo)
237        set gvct_flag   "-msse3"
238        set cvct_flag   "-msse3"
239    }
240} elseif {${build_arch} == "ppc"} {
241
242    # PPC
243    set gcc_flags           "-O3 -mcpu=7400 -mtune=7400\
244                            -fno-schedule-insns -fschedule-insns2 -fPIC"
245    set clang_flags         "-O3 -arch ppc -fPIC"
246
247    set gvct_flag           "-maltivec -mabi=altivec"
248    set cvct_flag           "-maltivec"
249   
250    configure.args-append   -A 4
251
252    # On Leopard, we may warn the user that ppc
253    # is not as efficient as ppc64
254    pre-fetch {
255        if {${native_arch} == "ppc64"} {
256
257                ui_msg "Compiling for ppc on a G5 machine.\
258                        This could lead to reduced performance."
259        }
260    }
261
262} else {
263
264    # PPC64
265    set gcc_flags           "-mcpu=970 -mtune=970 -mvrsave -mpowerpc64\
266                            -fno-schedule-insns -fschedule-insns2 -fPIC"
267    # Clang has no PPC64 target so compile for PPC
268    set clang_flags         "-O3 -arch ppc -fPIC"
269
270    set gvct_flag           "-maltivec -mabi=altivec"
271    set cvct_flag           "-maltivec"
272}
273
274# Basic universal config
275# Advanced config (flags) is done during pre-configure phase
276
277if {${universal} == 1} {
278
279    configure.universal_args-delete         --disable-dependency-tracking
280
281    lappend merger_configure_args(ppc)      --cflags=-m32 \
282                                            -b 32 \
283                                            -A 4 \
284                                            -V 2 \
285                                            -s gas_ppc \
286                                            -Fa alg -force_cpusubtype_ALL
287
288    lappend merger_configure_args(ppc64)    --cflags=-m64 \
289                                            -b 64 \
290                                            -A 5 \
291                                            -V 2 \
292                                            -s gas_ppc \
293                                            -Fa alg -force_cpusubtype_ALL
294
295    lappend merger_configure_args(i386)     --cflags=-m32 \
296                                            -b 32 \
297                                            -A 22 \
298                                            -V 6 \
299                                            -s gas_x86_32
300
301    lappend merger_configure_args(x86_64)   --cflags=-m64 \
302                                            -b 64 \
303                                            -s gas_x86_64
304}
305
306# Threading
307# If we run on a mono-processor machine (PPC), then disable threading
308
309if {![catch {sysctl hw.logicalcpu} result] && $result == 1} {
310
311    configure.args-append    -t 0
312    set no_threads  1
313} else {
314
315    set no_threads  0
316
317    # Threading relies on OpenMP if gcc compilers are selected
318    if {${gcc_version} != 0} {
319
320        configure.args-append   -Si omp 1
321    }
322}
323
324# Phases (moonlike)
325
326extract {
327    # extract Atlas and move to a consistent working directory name
328    system -W ${workpath}   "bunzip2 -dc ${distpath}/${atlasdist} | \
329                             gnutar --no-same-owner -xf -"
330    system  "mv ${workpath}/ATLAS ${workpath}/${name}-${version}"
331}
332
333post-patch {
334    if {${build_arch} == "ppc" || ${build_arch} == "ppc64"} {
335        reinplace \
336        "s|cMVFLAGS=\\\\\"%s\\\\\"|cMVFLAGS=\\\\\"-force_cpusubtype_ALL\ %s\\\\\"|" \
337         ${worksrcpath}/include/atlas_mvtesttime.h
338
339    # Remove all references to threads directories
340    exec sed -i bak -E "/.*threads.*/d" ${worksrcpath}/Make.top
341    }
342}
343
344# Change the default compilers
345pre-configure {
346
347    # Inform user of selected C compiler
348    ui_msg "Selected C compiler: ${configure.cc}"
349
350    # Fortran stuff
351    set fortran [expr ! [variant_isset nofortran]]
352
353    # If we use clang, we must grasp a gfortran compiler to build
354    # Fortran sources (do not impact overall Atlas performance)
355
356    if {${use_clang} != "" && ${fortran} == 1} {
357
358        set gflist  [glob -noc ${prefix}/bin/gfortran-mp-4.*]
359        if {[llength ${gflist}] == 0} {
360
361            # No fortran compiler found. Act as if nofortran was set.
362            ui_warn "No gfortran-mp-4.* compiler found.\
363                     Disabling fortran API."
364            set fortran  0
365        } else {
366
367            # Select most recent gfortran
368            global gcc_version
369
370            configure.f77   [lindex [lsort -dec ${gflist}] 0]
371            set gcc_version   \
372            [join [split [string range ${configure.f77} end-2 end] "."] ""]           
373        }
374    }
375
376    if {${fortran} == 1} {
377
378        # Output the F77 selected compiler
379        ui_msg "Selected F77 compiler: gfortran${gcc_version}"
380    } else {
381
382        # No Fortran
383        configure.args-append   --nof77
384    }
385   
386    # Now set the flags according to the compiler family chosen
387    # Also set “width” of the processor (32 or 64-bit)
388
389    if {${gcc_version} != 0} {
390        set libgccpath                  ${prefix}/lib/gcc${gcc_version}
391    }
392   
393    # Non-universal builds
394    if {${universal} == 0} {
395
396        configure.args-append   -C acg ${configure.cc}
397       
398        # If we build for the CPU of the machine, use
399        # machine arch tuning (except on ppc)
400        # -march=natives supersedes -msse4.2 so disable it on AVX
401        # capable machines
402        if {${has_avx} == "no" && ${build_arch} != "ppc"} {
403
404            append gcc_flags    " -march=native"
405        }
406        append clang_flags  " -march=native"
407       
408        # AVX stuff. GCC compilers cannot use AVX instruction set because the
409        # system as(1) is outdated
410        # Clang 3.2 has a bug affecting some AVX instructions
411        # Clang 3.3 should be fine
412
413        if {${has_avx} == "yes"} {
414
415            if {${use_clang} == ""} {
416
417                # Force Core i1 arch for ASM kernels
418                ui_warn "GCC compilers on MacOS do not support AVX:\
419                        downgrading."
420                configure.args-append   -A 25
421            } else {
422
423                # Clang: AVX only on versions >= 3.3
424                if {${use_clang} == "32" || ${use_clang} == "XCode" } {
425
426                    ui_warn "AVX support is broken in these versions\
427                             of clang. Please use clang-3.3 or higher.\
428                            Downgrading."
429                    configure.args-append   -A 25
430                }
431            }
432        }
433       
434        if {${build_arch} == "ppc"} {
435       
436            # ppc uses altivec vectorizing unit
437            configure.args-append       -V 2
438        }
439
440        if {${use_clang} == ""} {
441       
442            # GCC
443            configure.args-append       -F acg "'${gcc_flags} ${gvct_flag}'"
444           
445            if {${fortran} == 1} {
446           
447                configure.args-append   -C if ${configure.f77}
448                configure.args-append   -F if "'${gcc_flags} ${gvct_flag}'"
449                configure.args-append   -Ss f77lib \
450                                            ${libgccpath}/libgfortran.dylib
451            }
452            if {${build_arch} == "x86_64" || ${build_arch} == "ppc64"} {
453
454                configure.args-append   -b 64
455            } else {
456
457                configure.args-append   -b 32
458            }
459        } else {
460
461            # clang
462            configure.args-append   -F acg  "'${clang_flags} ${cvct_flag}'"
463            if {${fortran} == 1} {
464
465                configure.args-append   -C if ${configure.f77}           
466                configure.args-append   -F if "'${gcc_flags} ${gvct_flag}'"
467                configure.args-append   -Ss f77lib \
468                                            ${libgccpath}/libgfortran.dylib
469            }
470
471            if {${build_arch} == "x86_64"} {
472
473                configure.args-append   -b 64
474            } else {
475
476                # Clang has no ppc64 target so ppc64 ➸ regular ppc (32 bit)
477                configure.args-append   -b 32
478            }
479        }
480       
481        # Create build directory
482        file mkdir ${worksrcpath}/build
483    } else {
484   
485        # Universal builds
486        foreach arch ${universal_archs_to_use} {
487           
488            # Init ‘universal’ flags
489            set gcc_univ_flags          ${gcc_flags}
490            set gvct_univ_flag          ${gvct_flag}
491            set clang_univ_flags        ${clang_flags}
492            set cvct_univ_flag          ${cvct_flag}
493            set gcc_supp_flags          ""
494            set clang_supp_flags        ""
495           
496            # We build for the native architecture
497            if {${arch} == ${native_arch} && ${build_arch} != "ppc"} {
498               
499                if {${has_avx} == "no"} {
500               
501                    append gcc_supp_flags   "-march=native "
502                }
503                append clang_supp_flags     "-march=native "
504            }
505           
506            # Non-native targets. Apply a priori flags.
507           
508            # Clamp i386 optimization to -sse3 in universal builds and
509            # forces clang/gcc to use -m32 flag
510            if {${arch} == "i386" && ${native_arch} != "i386"} {
511
512                set gvct_univ_flag      "-msse3"
513                set cvct_univ_flag      "-msse3"
514       
515                append gcc_supp_flags   "-m32"
516                append clang_supp_flags "-m32"
517            }
518           
519            # For x86_64 builds, be conservative and use only -ssse3
520            # Core2 CPU and SSE3 ASM kernels
521            if {${arch} == "x86_64" && ${native_arch} != "x86_64"} {
522           
523                set gvct_univ_flag      "-mssse3"
524                set cvct_univ_flag      "-mssse3"
525               
526                append gcc_supp_flags   "-m64"
527                append clang_supp_flags "-m64"
528               
529                lappend merger_configure_args("x86_64") -A 25 -V 6
530            }
531           
532            # ppc (on Intel or ppc64 machines)
533            if {${arch} == "ppc" && ${native_arch} != "ppc"} {
534           
535                set gcc_univ_flags      "-O3 -mcpu=7400 -mtune=7400\
536                                         -fno-schedule-insns -fschedule-insns2\
537                                         -fPIC"
538                set clang_univ_flags    "-O3 -arch ppc -fPIC"
539
540                set gvct_univ_flag      "-maltivec -mabi=altivec"
541                set cvct_univ_flag      "-maltivec"
542
543                append gcc_supp_flags   "-m32"
544                append clang_supp_flags "-m32"
545            }
546           
547            # ppc64 (only for gcc, for clang this is taken to be the
548            # same target as ppc)
549            if {${arch} == "ppc64" && ${native_arch} != "ppc64"} {
550           
551                set gcc_univ_flags      "-mcpu=970 -mtune=970 -mvrsave \
552                                         -mpowerpc64 -fno-schedule-insns\
553                                         -fschedule-insns2 -fPIC"
554                set clang_univ_flags    "-O3 -arch ppc -fPIC"
555
556                set gvct_univ_flag      "-maltivec -mabi=altivec"
557                set cvct_univ_flag      "-maltivec"
558
559                append gcc_supp_flags   "-m64"
560                append clang_supp_flags "-m64"
561            }
562           
563            # Now add the flags to merger_configure_args(${arch})
564            # Same code as the non-universal case
565            lappend merger_configure_args(${arch})  -C acg ${configure.cc}
566            if {${use_clang} == ""} {
567       
568                # GCC
569                lappend merger_configure_args(${arch}) \
570                    -F acg "'${gcc_univ_flags} ${gcc_supp_flags}\
571                             ${gvct_univ_flag}'"
572           
573                if {${fortran} == 1} {
574           
575                    lappend merger_configure_args(${arch}) \
576                        -C if ${configure.f77} \
577                        -F if "'${gcc_univ_flags} ${gcc_supp_flags}\
578                                ${gvct_univ_flag}'"
579               
580                    set libgccarchpath    ${libgccpath}/${arch}
581                    if {[file exists ${libgccarchpath}/libgfortran.dylib]} {
582
583                        lappend merger_configure_args(${arch}) \
584                            -Ss f77lib ${libgccarchpath}/libgfortran.dylib
585                    } else {
586
587                        lappend merger_configure_args(${arch}) \
588                            -Ss f77lib ${libgccpath}/libgfortran.dylib
589                    }
590                }
591            } else {
592
593                # clang
594                lappend merger_configure_args(${arch}) \
595                    -F acg "'${clang_univ_flags} ${clang_supp_flags}\
596                             ${cvct_univ_flag}'"
597           
598                if {${fortran} == 1} {
599           
600                    lappend merger_configure_args(${arch}) \
601                        -C if ${configure.f77} \
602                        -F if "'${gcc_univ_flags} ${gcc_supp_flags}\
603                                ${gvct_univ_flag}'"
604               
605                    set libgccarchpath    ${libgccpath}/${arch}
606                    if {[file exists ${libgccarchpath}/libgfortran.dylib]} {
607
608                        lappend merger_configure_args(${arch}) \
609                            -Ss f77lib ${libgccarchpath}/libgfortran.dylib
610                    } else {
611
612                        lappend merger_configure_args(${arch}) \
613                            -Ss f77lib ${libgccpath}/libgfortran.dylib
614                    }
615                }
616            }
617           
618            # Remove spurious { } from arguments list
619            set merger_configure_args(${arch}) \
620                [join [split $merger_configure_args(${arch}) "{}"]]
621               
622            # Create ${arch} build tree
623            copy ${workpath}/${name}-${version} \
624                ${workpath}/${name}-${version}-${arch}
625            file mkdir ${workpath}/${name}-${version}-${arch}/build
626        }
627    }
628   
629    # Overrides goodgcc
630    reinplace -E "s|GOODGCC =.*|GOODGCC = ${configure.cc}\");|" \
631        ${worksrcpath}/CONFIG/src/SpewMakeInc.c
632
633    # Some further tweaks
634    reinplace    "s|cc=gcc|cc=${configure.cc}|g" \
635                    ${worksrcpath}/configure
636    reinplace    "s|-no-cpp-precomp||g" \
637                    ${worksrcpath}/CONFIG/src/atlcomp.txt
638                   
639    # On PPC64 we need extra flags for configuring
640    if {${native_arch} == "ppc64"} {
641        configure.args-append   --cc="\"${configure.cc} -m32 \
642                                 -force_cpusubtype_ALL\""
643    }
644
645    # Get some system specific variables for maximum optimization
646    set cpufreq [expr {[sysctl hw.cpufrequency] / 1000000}]
647
648    if {${os.arch} == "powerpc"} {
649
650        configure.args-append    -D c -DWALL
651    } else {
652
653        configure.args-append    -D c -DPentiumCPS=${cpufreq}
654    }   
655}
656
657# We configure from the build directory
658configure.dir            ${worksrcpath}/build
659configure.cmd            ../configure
660
661post-configure {
662
663    # Store in ${atlas_paths} the ${worksrcpath}s corresponding to the
664    # archs Atlas is being built for.
665    set     atlas_paths {}
666    if {${universal} == 1} {
667
668        foreach arch ${universal_archs_to_use} {
669
670            lappend atlas_paths ${workpath}/${name}-${version}-${arch}
671        }
672    } else {
673
674        lappend atlas_paths ${worksrcpath}
675    }
676
677    foreach path ${atlas_paths} {
678
679        # Recursively remove directories
680        ui_debug    "Patch to recursively remove directories on clean."
681        reinplace   "s|rm -f|rm -rf|g" ${path}/build/Makefile
682
683        # Threading — ensure libgomp is correctly pulled in during link
684        if {${gcc_version} != 0 && ${no_threads} == 0} {
685
686            set gmpfx    ${prefix}/lib/gcc${gcc_version}
687            set arch     [lindex [split [lindex [split $path "/"] end] "-"] 2]
688            if {${arch} != "" && \
689                [file exists ${gmpfx}/${arch}/libgomp.dylib]} {
690
691                reinplace -E \
692                    "s|(LIBS =.*)|\\1 ${gmpfx}/${arch}/libgomp.dylib|" \
693                    ${path}/build/Make.inc
694            } else {
695
696                reinplace -E \
697                    "s|(LIBS =.*)|\\1 ${gmpfx}/libgomp.dylib|" \
698                    ${path}/build/Make.inc
699            }
700        }
701    }
702}
703
704build.env-append        "CC=${configure.cc} CXX=${configure.cxx}"
705use_parallel_build      no
706build.target            build
707build.dir               ${worksrcpath}/build
708
709post-build {
710    if {${universal} == 0} {
711
712        set libdir ${build.dir}/lib
713        reinplace "s|^LIBTOOL=.*$|LIBTOOL=\$\(GCC\) \$\(GCCFLAGS\)|" \
714            ${libdir}/Makefile
715        reinplace "s|dynamic|dynamiclib|g" ${libdir}/Makefile
716
717        # On mono-processors machines, build libsatlas.dylib only
718        if {${no_threads} == 1} {
719
720            system -W ${libdir} "${build.cmd} dylib"
721        } else {
722
723            system -W ${libdir} "${build.cmd} shared_all"
724        }
725    } else {
726
727        foreach arch ${universal_archs_to_use} {
728
729            set libdir ${workpath}/${name}-${version}-${arch}/build/lib
730            reinplace "s|^LIBTOOL=.*$|LIBTOOL=\$\(GCC\) \$\(GCCFLAGS\)|" \
731                ${libdir}/Makefile
732            reinplace "s|dynamic|dynamiclib|g" ${libdir}/Makefile
733
734            # Same as above
735            if {${no_threads} == 1} {
736
737                system -W ${libdir} "${build.cmd} dylib"
738            } else {
739
740                system -W ${libdir} "${build.cmd} shared_all"
741            }
742        }
743    }
744}
745
746destroot.dir          ${build.dir}
747destroot.destdir      DESTDIR=${destroot}${prefix}
748
749post-destroot {
750    # On monoprocessor machines, make tatlas and satlas synonymous
751    if {${no_threads} == 1} {
752
753        set libdir ${destroot}${prefix}/lib
754        system -W ${libdir} "ln -s libsatlas.dylib libtatlas.dylib"
755    }
756}
757
758livecheck.name        math-atlas
759livecheck.distname    Stable
Note: See TracBrowser for help on using the repository browser.