1#!/usr/bin/perl 2use strict; 3 4my @tmp_string; 5my $svn_status; 6my $svn_filename; 7my $svn_version; 8 9my $svn_root = "."; 10my $svn_root_version; 11my $svn_root_url; 12 13my @header_defines = ( 14 "#ifndef _SSV_VERSION_H_", 15 "#define _SSV_VERSION_H_", 16 "", 17); 18 19sub get_version { 20 foreach (@_) { 21 if($_ =~ m/^Last Changed Rev: (\d*)/) { 22 return $1; 23 } 24 } 25 # file doesn't exist on svn 26 return -1; 27} 28 29sub get_url { 30 foreach (@_) { 31 if($_ =~ m/^URL: (.*)/) { 32 return $1; 33 } 34 } 35 # file doesn't exist on svn 36 return -1; 37} 38 39printf("## script to generate version infomation header ##\n"); 40 41# step-0: get root svn number 42$svn_root_version = get_version(qx(svn info $svn_root)); 43 44if ($svn_root_version == -1) { 45 exit 0; 46} 47 48# step-1: get root svn url 49$svn_root_url = get_url(qx(svn info $svn_root)); 50 51OUTPUT_HEADER: 52# step-3: output header files 53if (defined($ARGV[0])) { 54 open HEADER, ">", $ARGV[0]; 55 select HEADER; 56} 57else { 58 print "Error! Please specify header file\n"; 59} 60 61 62foreach (@header_defines) { 63 printf("%s\n", $_); 64} 65 66## 67printf("static u32 ssv_root_version = %d;\n\n", $svn_root_version); 68printf("#define SSV_ROOT_URl \"$svn_root_url\"\n"); 69 70use Sys::Hostname; 71my $host = hostname(); 72printf("#define COMPILERHOST \"$host\"\n"); 73 74use POSIX qw(strftime); 75my $date = strftime "%m-%d-%Y-%H:%M:%S", localtime; 76printf("#define COMPILERDATE \"$date\"\n"); 77## 78 79use Config; 80printf("#define COMPILEROS \"$Config{osname}\"\n"); 81printf("#define COMPILEROSARCH \"$Config{archname}\"\n"); 82 83printf("\n#endif\n\n"); 84 85exit 1; 86