Revision
69218
Author
dports@macports.org
Date
2010-06-28 19:08:31 -0700 (Mon, 28 Jun 2010)

Log Message

texlive portgroup: speed installation by only generating format files
for formats that are actually being installed

Modified Paths

Diff

Modified: trunk/dports/_resources/port1.0/group/texlive-1.0.tcl (69217 => 69218)


--- trunk/dports/_resources/port1.0/group/texlive-1.0.tcl	2010-06-29 02:06:45 UTC (rev 69217)
+++ trunk/dports/_resources/port1.0/group/texlive-1.0.tcl	2010-06-29 02:08:31 UTC (rev 69218)
@@ -263,17 +263,34 @@
 
     post-activate {
         system "${prefix}/bin/mktexlsr"
-        if {${texlive.forceupdatecnf} || ${texlive.languages} != ""} {
+        if {${texlive.forceupdatecnf}} {
+            # If force was specified, update all the config files, and
+            # regenerate all maps and formats.
             system "${prefix}/libexec/texlive-update-cnf language.dat"
             system "${prefix}/libexec/texlive-update-cnf language.def"
-        }
-        if {${texlive.forceupdatecnf} || ${texlive.maps} != ""} {
             system "${prefix}/libexec/texlive-update-cnf updmap.cfg"
+            system "${prefix}/libexec/texlive-update-cnf fmtutil.cnf"
             system "${prefix}/bin/updmap-sys"
-        }
-        if {${texlive.forceupdatecnf} || ${texlive.formats} != ""} {
-            system "${prefix}/libexec/texlive-update-cnf fmtutil.cnf"
             system "${prefix}/bin/fmtutil-sys --all"
+        } else {
+            # Otherwise, only update the config files that are
+            # actually affected, and only generate the formats that
+            # are being installed.
+            if {${texlive.languages} != ""} {
+                system "${prefix}/libexec/texlive-update-cnf language.dat"
+                system "${prefix}/libexec/texlive-update-cnf language.def"
+            }
+            if {${texlive.maps} != ""} {
+                system "${prefix}/libexec/texlive-update-cnf updmap.cfg"
+                system "${prefix}/bin/updmap-sys"
+            }
+            if {${texlive.formats} != ""} {
+                system "${prefix}/libexec/texlive-update-cnf fmtutil.cnf"
+                foreach x ${texlive.formats} {
+                    set fmtname [lindex $x 1]
+                    system "${prefix}/bin/fmtutil-sys --byfmt $fmtname"
+                }
+            }
         }
     }