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

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

Fix a misplaced line following the previous commit.

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