Ignore:
Timestamp:
Aug 20, 2013, 10:37:37 PM (6 years ago)
Author:
jeremyhu@…
Message:

muniversal: Move code to strip arch flags into a separate procedure

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/dports/_resources/port1.0/group/muniversal-1.0.tcl

    r109847 r109860  
    453453                ui_debug "Backtrace: $errinfo"
    454454                return $result
     455            }
     456        }
     457
     458        # Merge two files (${dir1}/${fl} and ${dir2}/${fl}) to ${dir}/${fl}
     459        # by stripping out -arch XXXX, -m32, and -m64
     460        proc mergeStripArchFlags {dir1 dir2 dir fl} {
     461            set tempdir [mkdtemp "/tmp/muniversal.XXXXXXXX"]
     462            set tempfile1 "${tempdir}/1-${fl}"
     463            set tempfile2 "${tempdir}/2-${fl}"
     464
     465            copy ${dir1}/${fl} ${tempfile1}
     466            copy ${dir2}/${fl} ${tempfile2}
     467
     468            reinplace {s:-arch  *[^ ][^ ]*::} ${tempfile1} ${tempfile2}
     469            reinplace {s:-m32::} ${tempfile1} ${tempfile2}
     470            reinplace {s:-m64::} ${tempfile1} ${tempfile2}
     471
     472            if { ! [catch {system "/usr/bin/cmp -s \"${tempfile1}\" \"${tempfile2}\""}] } {
     473                # modified files are identical
     474                ui_debug "universal: merge: ${fl} differs in ${dir1} and ${dir2} but are the same when stripping out -m32, -m64, and -arch XXX"
     475                copy ${tempfile1} ${dir}/${fl}
     476                delete ${tempfile1} ${tempfile2} ${tempdir}
     477            } else {
     478                delete ${tempfile1} ${tempfile2} ${tempdir}
     479                return -code error "${fl} differs in ${dir1} and ${dir2} and cannot be merged"
    455480            }
    456481        }
     
    566591                                        *.pc -
    567592                                        *-config {
    568                                             set tempdir [mkdtemp "/tmp/muniversal.XXXXXXXX"]
    569                                             set tempfile1 "${tempdir}/${arch1}-${fl}"
    570                                             set tempfile2 "${tempdir}/${arch2}-${fl}"
    571 
    572                                             copy ${dir1}/${fl} ${tempfile1}
    573                                             copy ${dir2}/${fl} ${tempfile2}
    574 
    575                                             reinplace {s:-arch  *[^ ][^ ]*::} ${tempfile1} ${tempfile2}
    576                                             reinplace {s:-m32::} ${tempfile1} ${tempfile2}
    577                                             reinplace {s:-m64::} ${tempfile1} ${tempfile2}
    578 
    579                                             if { ! [catch {system "/usr/bin/cmp -s \"${tempfile1}\" \"${tempfile2}\""}] } {
    580                                                 # modified files are identical
    581                                                 ui_debug "universal: merge: ${prefixDir}/${fl} differs in ${base1} and ${base2} but are the same when stripping out -m32, -m64, and -arch XXX"
    582                                                 copy ${tempfile1} ${dir}/${fl}
    583                                                 delete ${tempfile1} ${tempfile2} ${tempdir}
    584                                             } else {
    585                                                 delete ${tempfile1} ${tempfile2} ${tempdir}
    586                                                 return -code error "${prefixDir}/${fl} differs in ${base1} and ${base2} and cannot be merged"
    587                                             }
     593                                            mergeStripArchFlags ${dir1} ${dir2} ${dir} ${fl}
    588594                                        }
    589595                                        *.la {
Note: See TracChangeset for help on using the changeset viewer.