]>
Commit | Line | Data |
---|---|---|
3d9156a7 A |
1 | #!/usr/bin/perl |
2 | # | |
3 | # Copyright (c) 2004 Apple Computer, Inc. All rights reserved. | |
4 | # | |
5 | # @APPLE_LICENSE_HEADER_START@ | |
6 | # | |
7 | # This file contains Original Code and/or Modifications of Original Code | |
8 | # as defined in and that are subject to the Apple Public Source License | |
9 | # Version 2.0 (the 'License'). You may not use this file except in | |
10 | # compliance with the License. Please obtain a copy of the License at | |
11 | # http://www.opensource.apple.com/apsl/ and read it before using this | |
12 | # file. | |
13 | # | |
14 | # The Original Code and all software distributed under the License are | |
15 | # distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | |
16 | # EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | |
17 | # INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | |
18 | # FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | |
19 | # Please see the License for the specific language governing rights and | |
20 | # limitations under the License. | |
21 | # | |
22 | # @APPLE_LICENSE_HEADER_END@ | |
23 | ||
24 | use strict; | |
25 | ||
26 | # combine arguments without a slash, with the preceding argument with a slash | |
27 | # use @ instead of space for separator | |
28 | my @args; | |
29 | my $prev; | |
30 | for(@ARGV) { | |
31 | if(m,/,) { | |
32 | push(@args, $prev) if $prev; | |
33 | $prev = $_; | |
34 | } else { | |
35 | $prev .= "\@$_"; | |
36 | } | |
37 | } | |
38 | push(@args, $prev) if $prev; | |
39 | ||
40 | # now make all unique combinations | |
41 | my %combos; | |
42 | foreach my $variant (@args) { | |
43 | my($v, $defines) = split('/', $variant, 2); | |
44 | my %new; | |
45 | @new{$v, map("$_-$v", keys %combos)} = ($defines, map("$_\@$defines", values %combos)); | |
46 | %combos = (%combos, %new); | |
47 | } | |
48 | for(sort keys(%combos)) { | |
49 | printf "%s/%s\n", $_, $combos{$_}; | |
50 | } |