Home | History | Annotate | Line # | Download | only in vchiq_arm
      1  1.1  jmcneill #!/usr/bin/perl -w
      2  1.1  jmcneill 
      3  1.1  jmcneill use strict;
      4  1.1  jmcneill 
      5  1.1  jmcneill #
      6  1.1  jmcneill # Generate a version from available information
      7  1.1  jmcneill #
      8  1.1  jmcneill 
      9  1.1  jmcneill my $prefix = shift @ARGV;
     10  1.1  jmcneill my $root = shift @ARGV;
     11  1.1  jmcneill 
     12  1.1  jmcneill 
     13  1.1  jmcneill if ( not defined $root ) {
     14  1.1  jmcneill 	die "usage: $0 prefix root-dir\n";
     15  1.1  jmcneill }
     16  1.1  jmcneill 
     17  1.1  jmcneill if ( ! -d $root ) {
     18  1.1  jmcneill 	die "root directory $root not found\n";
     19  1.1  jmcneill }
     20  1.1  jmcneill 
     21  1.1  jmcneill my $version = "unknown";
     22  1.1  jmcneill my $tainted = "";
     23  1.1  jmcneill 
     24  1.1  jmcneill if ( -d "$root/.git" ) {
     25  1.1  jmcneill 	# attempt to work out git version. only do so
     26  1.1  jmcneill 	# on a linux build host, as cygwin builds are
     27  1.1  jmcneill 	# already slow enough
     28  1.1  jmcneill 
     29  1.1  jmcneill 	if ( -f "/usr/bin/git" || -f "/usr/local/bin/git" ) {
     30  1.1  jmcneill 		if (not open(F, "git --git-dir $root/.git rev-parse --verify HEAD|")) {
     31  1.1  jmcneill 			$version = "no git version";
     32  1.1  jmcneill 		}
     33  1.1  jmcneill 		else {
     34  1.1  jmcneill 			$version = <F>;
     35  1.1  jmcneill 			$version =~ s/[ \r\n]*$//;     # chomp may not be enough (cygwin).
     36  1.1  jmcneill 			$version =~ s/^[ \r\n]*//;     # chomp may not be enough (cygwin).
     37  1.1  jmcneill 		}
     38  1.1  jmcneill 
     39  1.1  jmcneill 		if (open(G, "git --git-dir $root/.git status --porcelain|")) {
     40  1.1  jmcneill 			$tainted = <G>;
     41  1.1  jmcneill 			$tainted =~ s/[ \r\n]*$//;     # chomp may not be enough (cygwin).
     42  1.1  jmcneill 			$tainted =~ s/^[ \r\n]*//;     # chomp may not be enough (cygwin).
     43  1.1  jmcneill 			if (length $tainted) {
     44  1.2     skrll 			$version = join ' ', $version, "(tainted)";
     45  1.2     skrll 		}
     46  1.2     skrll 		else {
     47  1.2     skrll 			$version = join ' ', $version, "(clean)";
     48  1.2     skrll          }
     49  1.1  jmcneill 		}
     50  1.1  jmcneill 	}
     51  1.1  jmcneill }
     52  1.1  jmcneill 
     53  1.1  jmcneill my $hostname = `hostname`;
     54  1.1  jmcneill $hostname =~ s/[ \r\n]*$//;     # chomp may not be enough (cygwin).
     55  1.1  jmcneill $hostname =~ s/^[ \r\n]*//;     # chomp may not be enough (cygwin).
     56  1.1  jmcneill 
     57  1.1  jmcneill 
     58  1.1  jmcneill print STDERR "Version $version\n";
     59  1.1  jmcneill print <<EOF;
     60  1.1  jmcneill #include "${prefix}_build_info.h"
     61  1.1  jmcneill #include <linux/broadcom/vc_debug_sym.h>
     62  1.1  jmcneill 
     63  1.1  jmcneill VC_DEBUG_DECLARE_STRING_VAR( ${prefix}_build_hostname, "$hostname" );
     64  1.1  jmcneill VC_DEBUG_DECLARE_STRING_VAR( ${prefix}_build_version, "$version" );
     65  1.1  jmcneill VC_DEBUG_DECLARE_STRING_VAR( ${prefix}_build_time,    __TIME__ );
     66  1.1  jmcneill VC_DEBUG_DECLARE_STRING_VAR( ${prefix}_build_date,    __DATE__ );
     67  1.1  jmcneill 
     68  1.1  jmcneill const char *vchiq_get_build_hostname( void )
     69  1.1  jmcneill {
     70  1.1  jmcneill    return vchiq_build_hostname;
     71  1.1  jmcneill }
     72  1.1  jmcneill 
     73  1.1  jmcneill const char *vchiq_get_build_version( void )
     74  1.1  jmcneill {
     75  1.1  jmcneill    return vchiq_build_version;
     76  1.1  jmcneill }
     77  1.1  jmcneill 
     78  1.1  jmcneill const char *vchiq_get_build_date( void )
     79  1.1  jmcneill {
     80  1.1  jmcneill    return vchiq_build_date;
     81  1.1  jmcneill }
     82  1.1  jmcneill 
     83  1.1  jmcneill const char *vchiq_get_build_time( void )
     84  1.1  jmcneill {
     85  1.1  jmcneill    return vchiq_build_time;
     86  1.1  jmcneill }
     87  1.1  jmcneill EOF
     88