openbcm

Git mirror of https://github.com/Broadcom-Network-Switching-Software/OpenBCM
git clone git://git.finwo.net/mirror/broadcom/openbcm
Log | Files | Refs | README

version.pl (2169B)


      1 #!/usr/bin/perl
      2 #
      3 # Build a version.c
      4 #
      5 # 
      6 #
      7 # This license is set out in https://raw.githubusercontent.com/Broadcom-Network-Switching-Software/OpenBCM/master/Legal/LICENSE file.
      8 # 
      9 # Copyright 2007-2019 Broadcom Inc. All rights reserved.
     10 # 
     11 
     12 ($prog = $0) =~ s/.*\///;
     13 
     14 use Config;
     15 use Sys::Hostname;
     16 use Time::localtime;
     17 use Cwd;
     18 
     19 # if $SDK env var is set, read release file directly
     20 # if not set, search back from current working directory
     21 if ($ENV{'SDK'}) {
     22 	$TREE = $ENV{'SDK'};
     23 	if (open(F, "$TREE/RELEASE")) {
     24 		chop($RELEASE = <F>);
     25 		close F;
     26 	} else {
     27 		$RELEASE = "unknown_release";
     28 	}
     29 } else {
     30 	$dir = cwd();
     31 	do {
     32 		if (open(F, "$dir/RELEASE")) {
     33 			chop($RELEASE = <F>);
     34 			close F;
     35 			($TREE = $dir) =~ s@/[^/]*$@@;
     36 		} else {
     37 			$dir =~ s@/[^/]*$@@;
     38 		}
     39 	} while (!defined $RELEASE && $dir ne "");
     40 	$RELEASE = "unknown_release" unless defined $RELEASE;
     41 	$TREE = "unknown_tree" unless defined $TREE;
     42 }
     43 
     44 $USER = getlogin() || getpwuid($<) || "unknown_user";
     45 $HOST = hostname() || "unknown_host";
     46 $OS = $Config{'osname'} || "unknown_os";
     47 $ARCH = $Config{'archname'} || "unknown_arch";
     48 $ARCH =~ s/-.*$//;
     49 $DATE = ctime() || "unknown_date";
     50 $DATESTAMP = sprintf "%04d%02d%02d",
     51 	localtime->year()+1900,
     52 	localtime->mon+1,
     53 	localtime->mday;
     54 
     55 if ($ARGV[0] eq "-release") {
     56 	print $RELEASE, "\n";
     57 } elsif ($ARGV[0] eq "-tree") {
     58 	print $TREE, "\n";
     59 } elsif ($ARGV[0] eq "-user") {
     60 	print $USER, "\n";
     61 } elsif ($ARGV[0] eq "-host") {
     62 	print $HOST, "\n";
     63 } elsif ($ARGV[0] eq "-date") {
     64 	print $DATE, "\n";
     65 } elsif ($ARGV[0] eq "-datestamp") {
     66 	print $DATESTAMP, "\n";
     67 } elsif ($ARGV[0] eq "-arch") {
     68 	print $ARCH, "\n";
     69 } elsif ($ARGV[0] eq "-os") {
     70 	print $OS, "\n";
     71 } elsif ($ARGV[0] eq "-(help" || $ARGV[0] eq "-?") {
     72 	print "$prog [-release|-tree|-user|-host|-date|-datestamp|-arch|-os|-help]\n";
     73 	exit 1;
     74 } else {
     75 
     76 print <<"EOT";
     77 /*
     78  * This file is automatically generated by $prog. DO NOT EDIT!
     79  */
     80 
     81 char	*_build_release =	"$RELEASE";
     82 char	*_build_tree =		"$TREE";
     83 char	*_build_user =		"$USER";
     84 char	*_build_host =		"$HOST";
     85 char	*_build_date =		"$DATE";
     86 char	*_build_datestamp =	"$DATESTAMP";
     87 char	*_build_arch =		"$ARCH";
     88 char	*_build_os =		"$OS";
     89 EOT
     90 
     91 }