diff packages/pkgconf.tcl @ 12:4cc3eff958ab ecos-sw-1999-06-04

Merge from eCos master repository on 1999-06-04-22:24:56-BST
author jlarmour
date Fri, 04 Jun 1999 15:08:16 +0000
parents 1d7f19c9e4d1
children 01ce82f3e11a
line wrap: on
line diff
--- a/packages/pkgconf.tcl
+++ b/packages/pkgconf.tcl
@@ -1160,7 +1160,12 @@ proc pkgconf::read_targets { } {
 	}
 	
 	proc command_prefix { str } {
-	    set_target_data "$::current_target,prefix" $str
+	    # Allow the command prefix to be overridden on a per-platform basis
+	    if { $::current_platform != "" } {
+		set_target_data "$::current_target,$::current_platform,prefix" $str
+	    } else {
+		set_target_data "$::current_target,prefix" $str
+	    }
 	}
 
 	proc packages { list } {
@@ -1179,6 +1184,14 @@ proc pkgconf::read_targets { } {
 	    }
 	}
 	
+	proc base_platform { str } {
+	    if { $::current_platform != "" } {
+		set_target_data "$::current_target,$::current_platform,base_platform" $str
+	    } else {
+		set_target_data "$::current_target,base_platform" $str
+	    }
+	}
+	
 	proc platform { name body } {
 
 	    add_known_platform $::current_target $name
@@ -1511,6 +1524,24 @@ proc pkgconf::get_default_platform { tar
     return $platform
 }
 
+proc pkgconf::get_base_platform { target platform } {
+
+    ASSERT { $target   != "" }
+    ASSERT { $platform != "" }
+
+    set target [find_target $target]
+    ASSERT { $target != "" }
+    set platform [find_platform $target $platform]
+    ASSERT { $platform != "" }
+    
+    if [info exists pkgconf::target_data($target,$platform,base_platform) ] {
+	set base_platform [lindex $pkgconf::target_data($target,$platform,base_platform) 0]
+    } else {
+	set base_platform $platform
+    }
+    return $base_platform
+}
+
 proc pkgconf::get_default_startup { target platform } {
 
     ASSERT { $target   != "" }
@@ -1550,6 +1581,7 @@ proc pkgconf::setup_defaults { } {
     
     set pkgconf::config_data(target)    ""
     set pkgconf::config_data(platform)  ""
+    set pkgconf::config_data(base_platform)  ""
     set pkgconf::config_data(startup)   ""
     set pkgconf::config_data(prefix)    ""
     set pkgconf::config_data(use_links) 0
@@ -1590,6 +1622,7 @@ proc pkgconf::setup_defaults { } {
 
 	ASSERT { $pkgconf::target_data($pkgconf::config_data(target),known_platforms) != "" }
 	set pkgconf::config_data(platform) [get_default_platform $pkgconf::config_data(target)]
+	set pkgconf::config_data(base_platform) [get_base_platform $pkgconf::config_data(target) $pkgconf::config_data(platform)]
 
 	ASSERT { $pkgconf::target_data($pkgconf::config_data(target),$pkgconf::config_data(platform),startup) != "" }
 	set pkgconf::config_data(startup) [get_default_startup $pkgconf::config_data(target) $pkgconf::config_data(platform)]
@@ -1670,6 +1703,7 @@ proc pkgconf::read_save_file { } {
 	    set pkgconf::saved_data(target)    $target_name
 	    set pkgconf::config_data(target)   $target_name
 	    set pkgconf::config_data(platform) [get_default_platform $pkgconf::config_data(target)]
+	    set pkgconf::config_data(base_platform) [get_base_platform $pkgconf::config_data(target) $pkgconf::config_data(platform)]
 	    set pkgconf::config_data(startup) \
 		    [get_default_startup $pkgconf::config_data(target) $pkgconf::config_data(platform)]
 	}
@@ -1690,6 +1724,7 @@ The platform $pkgconf::config_data(platf
 	    } else {
 		set pkgconf::saved_data(platform)  $platform_name
 		set pkgconf::config_data(platform) $platform_name
+		set pkgconf::config_data(base_platform) [get_base_platform $pkgconf::config_data(target) $pkgconf::saved_data(platform)]
 		set pkgconf::config_data(startup) [get_default_startup $pkgconf::config_data(target) $platform_name]
 	    }
 	    
@@ -1865,6 +1900,10 @@ proc pkgconf::write_save_file { } {
 	    puts $open_file "set_saved_data platform $pkgconf::config_data(platform)"
 	    set pkgconf::saved_data(platform) $pkgconf::config_data(platform)
 	}
+	if { $pkgconf::config_data(base_platform) != "" } {
+	    puts $open_file "set_saved_data base_platform $pkgconf::config_data(base_platform)"
+	    set pkgconf::saved_data(base_platform) $pkgconf::config_data(base_platform)
+	}
 	if { $pkgconf::config_data(startup) != "" } {
 	    puts $open_file "set_saved_data startup  $pkgconf::config_data(startup)"
 	    set pkgconf::saved_data(startup) $pkgconf::config_data(startup)
@@ -1990,6 +2029,7 @@ proc pkgconf::process_arguments { } {
 	if { $platform != "" } {
 	    set platform [find_platform $target $platform]
 	    set pkgconf::config_data(platform) $platform
+	    set pkgconf::config_data(base_platform) [get_base_platform $target $platform]
 	    if { ($platform != "") && ($startup != "") } {
 		if { [lsearch -exact $pkgconf::target_data($target,$platform,startup) $startup] == -1 } {
 		    set startup ""
@@ -2022,6 +2062,8 @@ proc pkgconf::process_arguments { } {
 	set pkgconf::config_data(platform) $platform
     }
 
+    set pkgconf::config_data(base_platform) [get_base_platform $target $platform]
+
     if { ($target != "") && ($platform != "") && ($pkgconf::startup_arg != "" ) } {
 	
 	if { [lsearch -exact $pkgconf::target_data($target,$platform,startup) $pkgconf::startup_arg] == -1 } {
@@ -3041,6 +3083,7 @@ proc pkgconf::nbpage_targets_leave { win
 
 	set config_data(target)     [lindex $target_page_data(selection) 0]
 	set config_data(platform)   [lindex $target_page_data(selection) 1]
+	set config_data(base_platform) [get_base_platform $config_data(target) $config_data(platform)]
 	set config_data(startup)    [lindex $target_page_data(selection) 2]
 	set build_tree_needs_update 1
 
@@ -5437,7 +5480,12 @@ proc pkgconf::produce_misc_files { } {
 	# and hence the default.
 	puts $file "\ndefault: build\n"
 	
-	set command_prefix $pkgconf::target_data($pkgconf::config_data(target),prefix)
+	set platform $pkgconf::config_data(platform)
+	if [info exists pkgconf::target_data($pkgconf::config_data(target),$platform,prefix)] {
+	    set command_prefix $pkgconf::target_data($pkgconf::config_data(target),$platform,prefix)
+	} else {
+	    set command_prefix $pkgconf::target_data($pkgconf::config_data(target),prefix)
+	}
 
 	puts $file ""
 	puts $file "COMPONENT_REPOSITORY\t\t:= [get_pathname_for_make $pkgconf::component_repository]"
@@ -5447,6 +5495,7 @@ proc pkgconf::produce_misc_files { } {
 	# per-target files.
 	puts $file "TARGET\t\t\t\t:= $pkgconf::config_data(target)"
 	puts $file "PLATFORM\t\t\t:= $pkgconf::config_data(platform)"
+	puts $file "BASE_PLATFORM\t\t\t:= $pkgconf::config_data(base_platform)"
 	puts $file "STARTUP\t\t\t\t:= $pkgconf::config_data(startup)"
 	
 	# The prefix (i.e. install directory) should default to somewhere
@@ -5558,13 +5607,13 @@ endif"
 
 	# Additions for the MLT
 	puts $file "\n"
-	puts $file "#define CYGHWR_MEMORY_LAYOUT_LDI <pkgconf/mlt_[set pkgconf::config_data(target)]_[set pkgconf::config_data(platform)]_[set pkgconf::config_data(startup)].ldi>"
-	puts $file "#define CYGHWR_MEMORY_LAYOUT_H   <pkgconf/mlt_[set pkgconf::config_data(target)]_[set pkgconf::config_data(platform)]_[set pkgconf::config_data(startup)].h>"
+	puts $file "#define CYGHWR_MEMORY_LAYOUT_LDI <pkgconf/mlt_[set pkgconf::config_data(target)]_[set pkgconf::config_data(base_platform)]_[set pkgconf::config_data(startup)].ldi>"
+	puts $file "#define CYGHWR_MEMORY_LAYOUT_H   <pkgconf/mlt_[set pkgconf::config_data(target)]_[set pkgconf::config_data(base_platform)]_[set pkgconf::config_data(startup)].h>"
 
 	# Also output details of the HAL header files that should be included
 	puts $file "\n"
 	puts $file "#define CYGBLD_HAL_TARGET_H   <pkgconf/hal_[set pkgconf::config_data(target)].h>"
-	puts $file "#define CYGBLD_HAL_PLATFORM_H <pkgconf/hal_[set pkgconf::config_data(target)]_[set pkgconf::config_data(platform)].h>"
+	puts $file "#define CYGBLD_HAL_PLATFORM_H <pkgconf/hal_[set pkgconf::config_data(target)]_[set pkgconf::config_data(base_platform)].h>"
 	
 	puts $file "\
 \n#endif  /* CYGONCE_PKGCONF_SYSTEM_H */ 		
@@ -5879,6 +5928,7 @@ proc pkgconf::initialise_data { } {
     if { 0 } {
 	puts "target:   $pkgconf::config_data(target)"
 	puts "platform: $pkgconf::config_data(platform)"
+	puts "base_platform: $pkgconf::config_data(base_platform)"
 	puts "startup:  $pkgconf::config_data(startup)"
 	puts "prefix:   $pkgconf::config_data(prefix)"
 	puts "packages: $pkgconf::config_data(packages)"