]> git.saurik.com Git - apple/coreosmakefiles.git/blob - bin/version.pl
CoreOSMakefiles-40.tar.gz
[apple/coreosmakefiles.git] / bin / version.pl
1 #!/usr/bin/perl
2 #
3 # Copyright (c) 2005 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 use POSIX ();
26
27 # Create a version string from various environment variables, from the
28 # argument list, or the current directory
29
30 my $name = $ARGV[0];
31 $name = $ENV{RC_ProjectName} unless defined($name) && $name ne '';
32 $name = $ENV{PROJECT_NAME} unless defined($name) && $name ne '';
33 my $vers = $ENV{RC_ProjectNameAndSourceVersion};
34 $vers = "$name-$ENV{RC_ProjectSourceVersion}" unless defined($vers) && $vers ne '' && defined($ENV{RC_ProjectSourceVersion}) && $ENV{RC_ProjectSourceVersion} ne '';
35 if(defined($vers) && $vers ne '') {
36 if(defined($name) && $name ne '') {
37 $vers =~ s/^[^-]*-/$name-/;
38 } else {
39 ($name = $vers) =~ s/-.*//;
40 }
41 my $build = $ENV{RC_ProjectBuildVersion};
42 $vers .= "~$build" if defined($build) && $build ne '';
43 } else {
44 if(defined($name) && $name ne '') {
45 $vers = $name;
46 } else {
47 require Cwd;
48 $vers = Cwd::cwd();
49 $name = time();
50 }
51 }
52 printf "const char __%s_version[] = \"@(#) %s %s\";\n", $name, $vers,
53 POSIX::strftime("%x %X %Z", localtime());