[58792] trunk/dports/emulators
ryandesign at macports.org
ryandesign at macports.org
Mon Oct 5 05:35:05 PDT 2009
Revision: 58792
http://trac.macports.org/changeset/58792
Author: ryandesign at macports.org
Date: 2009-10-05 05:35:02 -0700 (Mon, 05 Oct 2009)
Log Message:
-----------
minivmac, minivmac-devel: add machinery to build for multiple architectures; universal build is not possible until a new version of MacPorts with a fixed merge procedure (see r58777 and r58788) is released
Revision Links:
--------------
http://trac.macports.org/changeset/58777
http://trac.macports.org/changeset/58788
Modified Paths:
--------------
trunk/dports/emulators/minivmac/Portfile
trunk/dports/emulators/minivmac/files/Makefile.in
trunk/dports/emulators/minivmac-devel/Portfile
trunk/dports/emulators/minivmac-devel/files/Makefile.in
Modified: trunk/dports/emulators/minivmac/Portfile
===================================================================
--- trunk/dports/emulators/minivmac/Portfile 2009-10-05 11:58:14 UTC (rev 58791)
+++ trunk/dports/emulators/minivmac/Portfile 2009-10-05 12:35:02 UTC (rev 58792)
@@ -84,18 +84,31 @@
set my_bootstrap_app "Mini vMac.app"
set my_rom_file vMac.ROM
set my_base_options "-maintainer MacPorts -homepage http://www.macports.org/ -cl -eol unx -nex -im 1"
-set my_target ""
+set my_archs {}
options my_variations
default my_variations {}
-platform powerpc {
- set my_target mach
+# The universal variant is disabled until MacPorts 1.8.2 is released
+# and this port is upgraded to version 3.1.x final.
+if {0} {
+variant universal {
+ configure.universal_args
+ configure.universal_archs ppc i386
+ set my_archs ${configure.universal_archs}
}
-
-platform i386 {
- set my_target imch
}
+if {![variant_isset universal]} {
+ switch ${os.arch} {
+ powerpc {
+ configure.build_arch ppc
+ }
+ default {
+ configure.build_arch ${os.arch}
+ }
+ }
+ set my_archs ${configure.build_arch}
+}
pre-fetch {
set my_real_rom_dir [exec osascript ${filespath}/readalias.applescript [file normalize ${my_rom_dir}]]
@@ -155,16 +168,19 @@
pre-configure {
set i 0
- foreach {my_machine my_variation_options} ${my_variations} {
- if {${i} > 0} {
- configure.args-append {\;}
+ foreach my_arch ${my_archs} {
+ set my_target [my_arch_to_target ${my_arch}]
+ foreach {my_machine my_variation_options} ${my_variations} {
+ if {${i} > 0} {
+ configure.args-append {\;}
+ }
+ configure.args-append \
+ ${my_base_options} \
+ -t ${my_target} \
+ ${my_variation_options} \
+ -n ${version}_${revision}-[strsed [string tolower ${my_machine}] {g/[^a-z0-9_-]//}]-${my_target}
+ incr i
}
- configure.args-append \
- ${my_base_options} \
- -t ${my_target} \
- ${my_variation_options} \
- -n ${version}_${revision}-[strsed [string tolower ${my_machine}] {g/[^a-z0-9_-]//}]-${my_target}
- incr i
}
# Launch Mini vMac so the configure script can talk to it.
@@ -180,18 +196,26 @@
file mkdir ${build.dir}
set my_variation_dirs ""
set my_src_disk_mount [my_attach_disk_image ${worksrcpath}/${my_src}/${my_src}.img]
- foreach my_variation_dir [glob -nocomplain -type d -tails -directory ${my_src_disk_mount}/output *] {
- set my_variation_dirs "${my_variation_dirs} ${my_variation_dir}"
-
- # Get the configured source code.
- file copy ${my_src_disk_mount}/output/${my_variation_dir} ${build.dir}
-
- # Use the right compiler.
- reinplace "s|gcc|${configure.cc}|g" ${build.dir}/${my_variation_dir}/Makefile
-
- # Remove references to SDKs -- the 10.4u SDK is not installed by default on 10.6
- # and even if you install it manually it does not work here.
- reinplace -E {s|-isysroot /Developer/SDKs/[^ ]+||g} ${build.dir}/${my_variation_dir}/Makefile
+ foreach my_arch ${my_archs} {
+ file mkdir ${build.dir}/${my_arch}
+ set my_target [my_arch_to_target ${my_arch}]
+ foreach {my_machine unused} ${my_variations} {
+ set my_src_dir ${my_src_disk_mount}/output/${version}_${revision}-[strsed [string tolower ${my_machine}] {g/[^a-z0-9_-]//}]-${my_target}
+ if {[file isdirectory ${my_src_dir}]} {
+ set my_variation_dir ${my_arch}/${my_machine}
+ set my_variation_dirs "${my_variation_dirs} [strsed ${my_variation_dir} {g/ /\\\\ /}]"
+
+ # Get the configured source code.
+ file copy ${my_src_dir} ${build.dir}/${my_variation_dir}
+
+ # Use the right compiler.
+ reinplace "s|gcc|${configure.cc}|g" ${build.dir}/${my_variation_dir}/Makefile
+
+ # Remove references to SDKs -- the 10.4u SDK is not installed by default on 10.6
+ # and even if you install it manually it does not work here.
+ reinplace -E {s|-isysroot /Developer/SDKs/[^ ]+||g} ${build.dir}/${my_variation_dir}/Makefile
+ }
+ }
}
my_detach_disk_image ${my_src_disk_mount}
@@ -212,15 +236,21 @@
post-build {
# To save space, keep only a single copy of the Resources directory.
set i 0
- foreach my_variation_dir [glob -type d -tails -directory ${build.dir} *] {
- set my_resources_dir ${build.dir}/${my_variation_dir}/minivmac.app/Contents/Resources
- if {0 == ${i}} {
- move ${my_resources_dir} ${build.dir}
- } else {
- delete ${my_resources_dir}
+ foreach my_arch ${my_archs} {
+ set my_target [my_arch_to_target ${my_arch}]
+ foreach {my_machine unused} ${my_variations} {
+ if {[variant_isset universal]} {
+ reinplace "s|${my_target}|umch|" ${build.dir}/${my_arch}/${my_machine}/minivmac.app/Contents/Info.plist
+ }
+ set my_resources_dir ${build.dir}/${my_arch}/${my_machine}/minivmac.app/Contents/Resources
+ if {0 == ${i}} {
+ move ${my_resources_dir} ${build.dir}
+ } else {
+ delete ${my_resources_dir}
+ }
+ ln -s ${my_share_dir}/Resources ${my_resources_dir}
+ incr i
}
- ln -s ${my_share_dir}/Resources ${my_resources_dir}
- incr i
}
# Install the prettier icons.
@@ -233,12 +263,21 @@
copy ${build.dir}/Resources ${destroot}${my_share_dir}
# Install the programs.
- xinstall -d ${destroot}${my_app_dir}
- foreach {my_machine my_variation_options} ${my_variations} {
- set my_variation_dir ${version}_${revision}-[strsed [string tolower ${my_machine}] {g/[^a-z0-9_-]//}]-${my_target}
- file copy ${build.dir}/${my_variation_dir}/minivmac.app \
- "${destroot}${my_app_dir}/Mini vMac ${my_machine}.app"
+ foreach my_arch ${my_archs} {
+ if {[variant_isset universal]} {
+ set my_dest ${workpath}/pre-dest/${my_arch}
+ } else {
+ set my_dest ${destroot}
+ }
+ xinstall -d ${my_dest}${my_app_dir}
+ foreach {my_machine unused} ${my_variations} {
+ copy ${build.dir}/${my_arch}/${my_machine}/minivmac.app \
+ "${my_dest}${my_app_dir}/Mini vMac ${my_machine}.app"
+ }
}
+ if {[variant_isset universal]} {
+ merge ${workpath}/pre-dest
+ }
}
if { ![variant_isset mac128k] && ![variant_isset mac512k] && ![variant_isset mac512ke] && ![variant_isset macse] } {
@@ -265,6 +304,21 @@
my_variations-append {SE} {-m SE}
}
+# Converts normal arch names into Mini vMac target names.
+proc my_arch_to_target {arch} {
+ switch ${arch} {
+ i386 {
+ return imch
+ }
+ ppc {
+ return mach
+ }
+ default {
+ return -code error "unsupported architecture ${arch}"
+ }
+ }
+}
+
# Mounts a disk image.
proc my_attach_disk_image {disk_image} {
global my_name filespath
Modified: trunk/dports/emulators/minivmac/files/Makefile.in
===================================================================
--- trunk/dports/emulators/minivmac/files/Makefile.in 2009-10-05 11:58:14 UTC (rev 58791)
+++ trunk/dports/emulators/minivmac/files/Makefile.in 2009-10-05 12:35:02 UTC (rev 58792)
@@ -7,4 +7,4 @@
all: $(SUBDIRS)
$(SUBDIRS):
- $(MAKE) -C $@
+ $(MAKE) -C "$@"
Modified: trunk/dports/emulators/minivmac-devel/Portfile
===================================================================
--- trunk/dports/emulators/minivmac-devel/Portfile 2009-10-05 11:58:14 UTC (rev 58791)
+++ trunk/dports/emulators/minivmac-devel/Portfile 2009-10-05 12:35:02 UTC (rev 58792)
@@ -93,7 +93,7 @@
set my_bootstrap_app "Mini vMac.app"
set my_rom_file vMac.ROM
set my_base_options "-maintainer MacPorts -homepage http://www.macports.org/ -cl -eol unx -nex"
-set my_target ""
+set my_archs {}
options my_variations
my_variations {128K} {-m 128K} \
@@ -110,13 +110,25 @@
{IIx} {-m IIx -mem 8M -hres 800 -vres 600 -depth 3}
}
-platform powerpc {
- set my_target mach
+# The universal variant is disabled until MacPorts 1.8.2 is released.
+if {0} {
+variant universal {
+ configure.universal_args
+ configure.universal_archs ppc i386
+ set my_archs ${configure.universal_archs}
}
-
-platform i386 {
- set my_target imch
}
+if {![variant_isset universal]} {
+ switch ${os.arch} {
+ powerpc {
+ configure.build_arch ppc
+ }
+ default {
+ configure.build_arch ${os.arch}
+ }
+ }
+ set my_archs ${configure.build_arch}
+}
pre-fetch {
set my_real_rom_dir [exec osascript ${filespath}/readalias.applescript [file normalize ${my_rom_dir}]]
@@ -181,16 +193,19 @@
pre-configure {
set i 0
- foreach {my_machine my_variation_options} ${my_variations} {
- if {${i} > 0} {
- configure.args-append {\;}
+ foreach my_arch ${my_archs} {
+ set my_target [my_arch_to_target ${my_arch}]
+ foreach {my_machine my_variation_options} ${my_variations} {
+ if {${i} > 0} {
+ configure.args-append {\;}
+ }
+ configure.args-append \
+ ${my_base_options} \
+ -t ${my_target} \
+ ${my_variation_options} \
+ -n ${version}_${revision}-[strsed [string tolower ${my_machine}] {g/[^a-z0-9_-]//}]-${my_target}
+ incr i
}
- configure.args-append \
- ${my_base_options} \
- -t ${my_target} \
- ${my_variation_options} \
- -n ${version}_${revision}-[strsed [string tolower ${my_machine}] {g/[^a-z0-9_-]//}]-${my_target}
- incr i
}
# Launch Mini vMac so the configure script can talk to it.
@@ -206,18 +221,26 @@
file mkdir ${build.dir}
set my_variation_dirs ""
set my_output_disk_mount [my_attach_disk_image ${worksrcpath}/output.img]
- foreach my_variation_dir [glob -nocomplain -type d -tails -directory ${my_output_disk_mount} *] {
- set my_variation_dirs "${my_variation_dirs} ${my_variation_dir}"
-
- # Get the configured source code.
- file copy ${my_output_disk_mount}/${my_variation_dir} ${build.dir}
-
- # Use the right compiler.
- reinplace "s|gcc|${configure.cc}|g" ${build.dir}/${my_variation_dir}/Makefile
-
- # Remove references to SDKs -- the 10.4u SDK is not installed by default on 10.6
- # and even if you install it manually it does not work here.
- reinplace -E {s|-isysroot /Developer/SDKs/[^ ]+||g} ${build.dir}/${my_variation_dir}/Makefile
+ foreach my_arch ${my_archs} {
+ file mkdir ${build.dir}/${my_arch}
+ set my_target [my_arch_to_target ${my_arch}]
+ foreach {my_machine unused} ${my_variations} {
+ set my_src_dir ${my_output_disk_mount}/${version}_${revision}-[strsed [string tolower ${my_machine}] {g/[^a-z0-9_-]//}]-${my_target}
+ if {[file isdirectory ${my_src_dir}]} {
+ set my_variation_dir ${my_arch}/${my_machine}
+ set my_variation_dirs "${my_variation_dirs} [strsed ${my_variation_dir} {g/ /\\\\ /}]"
+
+ # Get the configured source code.
+ file copy ${my_src_dir} ${build.dir}/${my_variation_dir}
+
+ # Use the right compiler.
+ reinplace "s|gcc|${configure.cc}|g" ${build.dir}/${my_variation_dir}/Makefile
+
+ # Remove references to SDKs -- the 10.4u SDK is not installed by default on 10.6
+ # and even if you install it manually it does not work here.
+ reinplace -E {s|-isysroot /Developer/SDKs/[^ ]+||g} ${build.dir}/${my_variation_dir}/Makefile
+ }
+ }
}
my_detach_disk_image ${my_output_disk_mount}
@@ -238,15 +261,21 @@
post-build {
# To save space, keep only a single copy of the Resources directory.
set i 0
- foreach my_variation_dir [glob -type d -tails -directory ${build.dir} *] {
- set my_resources_dir ${build.dir}/${my_variation_dir}/minivmac.app/Contents/Resources
- if {0 == ${i}} {
- move ${my_resources_dir} ${build.dir}
- } else {
- delete ${my_resources_dir}
+ foreach my_arch ${my_archs} {
+ set my_target [my_arch_to_target ${my_arch}]
+ foreach {my_machine unused} ${my_variations} {
+ if {[variant_isset universal]} {
+ reinplace "s|${my_target}|umch|" ${build.dir}/${my_arch}/${my_machine}/minivmac.app/Contents/Info.plist
+ }
+ set my_resources_dir ${build.dir}/${my_arch}/${my_machine}/minivmac.app/Contents/Resources
+ if {0 == ${i}} {
+ move ${my_resources_dir} ${build.dir}
+ } else {
+ delete ${my_resources_dir}
+ }
+ ln -s ${my_share_dir}/Resources ${my_resources_dir}
+ incr i
}
- ln -s ${my_share_dir}/Resources ${my_resources_dir}
- incr i
}
# Install the prettier icons.
@@ -259,14 +288,38 @@
copy ${build.dir}/Resources ${destroot}${my_share_dir}
# Install the programs.
- xinstall -d ${destroot}${my_app_dir}
- foreach {my_machine my_variation_options} ${my_variations} {
- set my_variation_dir ${version}_${revision}-[strsed [string tolower ${my_machine}] {g/[^a-z0-9_-]//}]-${my_target}
- file copy ${build.dir}/${my_variation_dir}/minivmac.app \
- "${destroot}${my_app_dir}/Mini vMac ${my_machine}.app"
+ foreach my_arch ${my_archs} {
+ if {[variant_isset universal]} {
+ set my_dest ${workpath}/pre-dest/${my_arch}
+ } else {
+ set my_dest ${destroot}
+ }
+ xinstall -d ${my_dest}${my_app_dir}
+ foreach {my_machine unused} ${my_variations} {
+ copy ${build.dir}/${my_arch}/${my_machine}/minivmac.app \
+ "${my_dest}${my_app_dir}/Mini vMac ${my_machine}.app"
+ }
}
+ if {[variant_isset universal]} {
+ merge ${workpath}/pre-dest
+ }
}
+# Converts normal arch names into Mini vMac target names.
+proc my_arch_to_target {arch} {
+ switch ${arch} {
+ i386 {
+ return imch
+ }
+ ppc {
+ return mach
+ }
+ default {
+ return -code error "unsupported architecture ${arch}"
+ }
+ }
+}
+
# Mounts a disk image.
proc my_attach_disk_image {disk_image} {
global my_name filespath
Modified: trunk/dports/emulators/minivmac-devel/files/Makefile.in
===================================================================
--- trunk/dports/emulators/minivmac-devel/files/Makefile.in 2009-10-05 11:58:14 UTC (rev 58791)
+++ trunk/dports/emulators/minivmac-devel/files/Makefile.in 2009-10-05 12:35:02 UTC (rev 58792)
@@ -7,4 +7,4 @@
all: $(SUBDIRS)
$(SUBDIRS):
- $(MAKE) -C $@
+ $(MAKE) -C "$@"
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macports-changes/attachments/20091005/6b5cafbc/attachment-0001.html>
More information about the macports-changes
mailing list