-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathmklsbver
executable file
·33 lines (28 loc) · 1006 Bytes
/
mklsbver
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#!/usr/bin/perl
#
# generate C code describing supported LSB versions
# TODO: "default version" should be command-line settable
#
use strict;
use Getopt::Long;
sub usage() {
print STDERR "Usage: mklsbver -v <lsbversion(s)>\n";
print STDERR " LSB versions should be comma-separated.\n";
die;
}
my $lsbversion;
GetOptions( "v=s" => \$lsbversion );
if ( !$lsbversion ) { usage(); }
my @lsbversions = sort split( /,/, $lsbversion );
my @lsbversionsnumeric = @lsbversions;
for (@lsbversionsnumeric) {
s/\.//;
}
print "char *LSB_Versions[] = {\"" . join( "\", \"", @lsbversions ) . "\"};\n";
print "int LSB_Versions_Numeric[] = {"
. join( ", ", @lsbversionsnumeric ) . "};\n";
print "char *LSB_Versions_list = \"" . join( ", ", @lsbversions ) . "\";\n";
print "int num_LSB_Versions = sizeof(LSB_Versions)/sizeof(char *);\n\n";
print "int LSB_Version = -1;\n\n";
print "/* Default LSB version is latest */\n";
print "int LSB_Version_default = sizeof(LSB_Versions)/sizeof(char *) -1;\n";