]> git.saurik.com Git - apple/libc.git/blame_incremental - makeCombos
Libc-498.tar.gz
[apple/libc.git] / makeCombos
... / ...
CommitLineData
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
24use strict;
25
26# combine arguments without a slash, with the preceding argument with a slash
27# use @ instead of space for separator
28my @args;
29my $prev;
30for(@ARGV) {
31 if(m,/,) {
32 push(@args, $prev) if $prev;
33 $prev = $_;
34 } else {
35 $prev .= "\@$_";
36 }
37}
38push(@args, $prev) if $prev;
39
40# now make all unique combinations
41my %combos;
42foreach my $variant (sort(@args)) {
43 my($v, $defines) = split('/', $variant, 2);
44 my %new;
45 @new{$v, map("$_-$v", sort(keys %combos))} = ($defines, map("$_\@$defines", sort(values %combos)));
46 %combos = (%combos, %new);
47}
48for(sort keys(%combos)) {
49 printf "%s/%s\n", $_, $combos{$_};
50}