Changeset 9378


Ignore:
Timestamp:
2007-10-20T21:10:06+02:00 (10 years ago)
Author:
nbd
Message:

reorganize subtargets, sort subtargets below top level targets

Location:
trunk
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/target.mk

    r9368 r9378  
    2323TARGETID:=$(BOARD)$(if $(SUBTARGET),/$(SUBTARGET)) 
    2424PLATFORM_SUBDIR:=$(PLATFORM_DIR)$(if $(SUBTARGET),/$(SUBTARGET)) 
    25  
    26 define Target 
    27   KERNEL_TARGETS+=$(1) 
    28   ifeq ($(DUMP),1) 
    29     ifeq ($(SUBTARGET),) 
    30       BuildTarget=$$(BuildTargets/DumpAll) 
    31     endif 
    32   endif 
    33 endef 
    3425 
    3526ifneq ($(TARGET_BUILD),1) 
     
    133124endif 
    134125 
    135 define BuildTargets/DumpAll 
    136   dumpinfo: 
    137         @$(foreach SUBTARGET,$(KERNEL_TARGETS),$(SUBMAKE) -s DUMP=1 SUBTARGET=$(SUBTARGET); ) 
    138 endef 
    139  
    140126define BuildTargets/DumpCurrent 
    141  
     127  .PHONY: dumpinfo 
    142128  dumpinfo: 
    143129        @echo 'Target: $(TARGETID)'; \ 
    144130         echo 'Target-Board: $(BOARD)'; \ 
    145131         echo 'Target-Kernel: $(KERNEL)'; \ 
    146          echo 'Target-Name: $(BOARDNAME) [$(KERNEL)]'; \ 
     132         echo 'Target-Name: $(BOARDNAME)$(if $(SUBTARGET),, [$(KERNEL)])'; \ 
    147133         echo 'Target-Path: $(subst $(TOPDIR)/,,$(PWD))'; \ 
    148134         echo 'Target-Arch: $(ARCH)'; \ 
     
    157143         echo 'Default-Packages: $(DEFAULT_PACKAGES)'; \ 
    158144         $(DUMPINFO) 
     145        $(if $(SUBTARGET),,@$(foreach SUBTARGET,$(SUBTARGETS),$(SUBMAKE) -s DUMP=1 SUBTARGET=$(SUBTARGET); )) 
    159146endef 
    160147 
  • trunk/scripts/metadata.pl

    r9311 r9378  
    1616        my $file = shift @ARGV; 
    1717        my ($target, @target, $profile); 
     18        my %target; 
     19 
    1820        open FILE, "<$file" or do { 
    1921                warn "Can't open file '$file': $!\n"; 
     
    2325                chomp; 
    2426                /^Target:\s*(.+)\s*$/ and do { 
     27                        my $name = $1; 
    2528                        $target = { 
    26                                 id => $1, 
    27                                 conf => confstr($1), 
     29                                id => $name, 
     30                                board => $name, 
     31                                boardconf => confstr($name), 
     32                                conf => confstr($name), 
    2833                                profiles => [], 
    2934                                features => [], 
    30                                 depends => [] 
     35                                depends => [], 
     36                                subtargets => [] 
    3137                        }; 
    3238                        push @target, $target; 
    33                 }; 
    34                 /^Target-Board:\s*(.+)\s*$/ and do { 
    35                         $target->{board} = $1; 
    36                         $target->{boardconf} = confstr($1); 
     39                        $target{$name} = $target; 
     40                        if ($name =~ /([^\/]+)\/([^\/]+)/) { 
     41                                push @{$target{$1}->{subtargets}}, $2; 
     42                                $target->{board} = $1; 
     43                                $target->{boardconf} = confstr($1); 
     44                                $target->{subtarget} = 1; 
     45                                $target->{parent} = $target{$1}; 
     46                        } 
    3747                }; 
    3848                /^Target-Kernel:\s*(\d+\.\d+)\s*$/ and $target->{kernel} = $1; 
     
    152162} 
    153163 
     164sub target_name($) { 
     165        my $target = shift; 
     166        my $parent = $target->{parent}; 
     167        if ($parent) { 
     168                return $target->{parent}->{name}." - ".$target->{name}; 
     169        } else { 
     170                return $target->{name}; 
     171        } 
     172} 
     173 
     174sub print_target($) { 
     175        my $target = shift; 
     176        my $features = target_config_features(@{$target->{features}}); 
     177        my $help = $target->{desc}; 
     178        my $kernel = $target->{kernel}; 
     179        my $confstr; 
     180        $kernel =~ tr/./_/; 
     181 
     182        chomp $features; 
     183        $features .= "\n"; 
     184        if ($help =~ /\w+/) { 
     185                $help =~ s/^\s*/\t  /mg; 
     186                $help = "\thelp\n$help"; 
     187        } else { 
     188                undef $help; 
     189        } 
     190 
     191        $confstr = <<EOF; 
     192config TARGET_$target->{conf} 
     193        bool "$target->{name}" 
     194        select LINUX_$kernel 
     195EOF 
     196        if ($target->{subtarget}) { 
     197                $confstr .= "\tdepends TARGET_$target->{boardconf}\n"; 
     198        } 
     199        if (@{$target->{subtargets}} > 0) { 
     200                $confstr .= "\tselect HAS_SUBTARGETS\n"; 
     201        } else { 
     202                $confstr .= "\tselect $target->{arch}\n"; 
     203                foreach my $dep (@{$target->{depends}}) { 
     204                        my $mode = "depends"; 
     205                        my $flags; 
     206                        my $name; 
     207 
     208                        $dep =~ /^([@\+\-]+)(.+)$/; 
     209                        $flags = $1; 
     210                        $name = $2; 
     211 
     212                        $flags =~ /-/ and $mode = "deselect"; 
     213                        $flags =~ /\+/ and $mode = "select"; 
     214                        $flags =~ /@/ and $confstr .= "\t$mode $name\n"; 
     215                } 
     216                $confstr .= $features; 
     217        } 
     218 
     219        $confstr .= "$help\n\n"; 
     220        print $confstr; 
     221} 
    154222 
    155223sub gen_target_config() { 
    156224        my @target = parse_target_metadata(); 
    157225 
    158         @target = sort { 
    159                 $a->{name} cmp $b->{name} 
     226        my @target_sort = sort { 
     227                target_name($a) cmp target_name($b); 
    160228        } @target; 
    161          
    162          
     229 
     230 
    163231        print <<EOF; 
    164232choice 
     
    169237EOF 
    170238 
    171         foreach my $target (@target) { 
    172                 my $features = target_config_features(@{$target->{features}}); 
    173                 my $help = $target->{desc}; 
    174                 my $kernel = $target->{kernel}; 
    175                 $kernel =~ tr/./_/; 
    176  
    177                 chomp $features; 
    178                 $features .= "\n"; 
    179                 if ($help =~ /\w+/) { 
    180                         $help =~ s/^\s*/\t  /mg; 
    181                         $help = "\thelp\n$help"; 
    182                 } else { 
    183                         undef $help; 
    184                 } 
    185          
    186                 print <<EOF; 
    187 config TARGET_$target->{conf} 
    188         bool "$target->{name}" 
    189         select $target->{arch} 
    190         select LINUX_$kernel 
    191 EOF 
    192                 if ($target->{id} ne $target->{board}) { 
    193                         print "\tselect TARGET_".$target->{boardconf}."\n"; 
    194                 } 
    195                 foreach my $dep (@{$target->{depends}}) { 
    196                         my $mode = "depends"; 
    197                         my $flags; 
    198                         my $name; 
    199  
    200                         $dep =~ /^([@\+\-]+)(.+)$/; 
    201                         $flags = $1; 
    202                         $name = $2; 
    203  
    204                         $flags =~ /-/ and $mode = "deselect"; 
    205                         $flags =~ /\+/ and $mode = "select"; 
    206                         $flags =~ /@/ and print "\t$mode $name\n"; 
    207                 } 
    208                  
    209                 print "$features$help\n\n" 
     239        foreach my $target (@target_sort) { 
     240                next if $target->{subtarget}; 
     241                print_target($target); 
    210242        } 
    211243 
     
    213245endchoice 
    214246 
    215 config TARGET_BOARD 
    216         string 
     247choice 
     248        prompt "Subtarget" if HAS_SUBTARGETS 
     249 
    217250EOF 
    218251        foreach my $target (@target) { 
    219                 print "\t\tdefault \"".$target->{board}."\" if TARGET_".$target->{conf}."\n"; 
    220         } 
    221  
    222         # add hidden target config options  
    223         foreach my $target (@target) { 
    224                 next if $board{$target->{board}}; 
    225                 if ($target->{id} ne $target->{board}) { 
    226                         print "\nconfig TARGET_".$target->{boardconf}."\n\tbool\n"; 
    227                         $board{$target->{board}} = 1; 
    228                 } 
    229         } 
    230         print <<EOF; 
     252                next unless $target->{subtarget}; 
     253                print_target($target); 
     254        } 
     255 
     256print <<EOF; 
     257endchoice 
    231258 
    232259choice 
     
    234261 
    235262EOF 
    236          
     263 
    237264        foreach my $target (@target) { 
    238265                my $profiles = $target->{profiles}; 
    239                  
     266 
    240267                foreach my $profile (@$profiles) { 
    241268                        print <<EOF; 
     
    254281        } 
    255282 
    256         print "endchoice\n"; 
     283        print <<EOF; 
     284endchoice 
     285 
     286config HAS_SUBTARGETS 
     287        bool 
     288 
     289config TARGET_BOARD 
     290        string 
     291 
     292EOF 
     293        foreach my $target (@target) { 
     294                $target->{subtarget} or print "\t\tdefault \"".$target->{board}."\" if TARGET_".$target->{conf}."\n"; 
     295        } 
     296 
    257297} 
    258298 
     
    312352                my $flags = $1; 
    313353                my $vdep; 
    314          
     354 
    315355                if ($vdep = $package{$depend}->{vdepends}) { 
    316356                        $depend = join("||", map { "PACKAGE_".$_ } @$vdep); 
     
    341381        my %menus; 
    342382        my %menu_dep; 
    343          
     383 
    344384        return unless $category{$cat}; 
    345          
     385 
    346386        print "menu \"$cat\"\n\n"; 
    347387        my %spkg = %{$category{$cat}}; 
    348          
     388 
    349389        foreach my $spkg (sort {uc($a) cmp uc($b)} keys %spkg) { 
    350390                foreach my $pkg (@{$spkg{$spkg}}) { 
     
    403443        } 
    404444        print "endmenu\n\n"; 
    405          
     445 
    406446        undef $category{$cat}; 
    407447} 
     
    438478                my $config; 
    439479                my $pkg = $package{$name}; 
    440                  
     480 
    441481                next if defined $pkg->{vdepends}; 
    442482                if ($ENV{SDK}) { 
     
    452492                        $pkg->{prereq} and print "prereq-$config += $pkg->{subdir}$pkg->{src}\n"; 
    453493                } 
    454          
     494 
    455495                my $hasdeps = 0; 
    456496                my $depline = ""; 
     
    478518                } 
    479519        } 
    480          
     520 
    481521        if ($line ne "") { 
    482522                print "\n$line"; 
  • trunk/target/linux/adm5120/Makefile

    r9260 r9378  
    99 
    1010BOARD:=adm5120 
     11BOARDNAME:=Infineon ADM5120 
    1112LINUX_VERSION:=2.6.23 
    1213FEATURES:=squashfs jffs2 tgz broken 
     14SUBTARGETS:=router_le router_be 
    1315 
    1416include $(INCLUDE_DIR)/target.mk 
     
    1618DEFAULT_PACKAGES += admswconfig 
    1719 
    18 $(eval $(call Target,router_be)) 
    19 $(eval $(call Target,router_le)) 
    2020$(eval $(call BuildTarget)) 
  • trunk/target/linux/adm5120/router_be/target.mk

    r8694 r9378  
    11ARCH:=mips 
    22SUBTARGET:=router_be 
    3 BOARDNAME:=ADM5120 Boards (Big Endian) 
     3BOARDNAME:=Big Endian 
    44 
    55define Target/Description 
  • trunk/target/linux/adm5120/router_le/target.mk

    r8694 r9378  
    11ARCH:=mipsel 
    22SUBTARGET:=router_le 
    3 BOARDNAME:=ADM5120 Boards (Little Endian) 
     3BOARDNAME:=Little Endian 
    44 
    55define Target/Description 
  • trunk/target/linux/x86/Makefile

    r9264 r9378  
    1111BOARDNAME:=x86 
    1212FEATURES:=squashfs jffs2 ext2 
     13SUBTARGETS=generic mediacenter 
    1314 
    1415LINUX_VERSION:=2.6.23 
     
    1718DEFAULT_PACKAGES += kmod-natsemi kmod-ne2k-pci 
    1819 
    19 $(eval $(call Target,generic)) 
    20 $(eval $(call Target,mediacenter)) 
    2120$(eval $(call BuildTarget)) 
     21 
    2222$(eval $(call $(if $(CONFIG_TARGET_ROOTFS_ISO),RequireCommand,Ignore),mkisofs, \ 
    2323        Please install mkisofs. \ 
  • trunk/target/linux/x86/generic/target.mk

    r9128 r9378  
    1 SUBTARGET:=generic 
     1BOARDNAME:=Generic 
    22 
    33define Target/Description 
  • trunk/target/linux/x86/mediacenter/target.mk

    r9128 r9378  
    11ARCH:=i686 
    2 SUBTARGET:=Mediacenter 
    3 BOARDNAME:=X86 (Mediacenter) 
     2BOARDNAME:=Mediacenter 
    43 
    54define Target/Description 
Note: See TracChangeset for help on using the changeset viewer.