#!/usr/bin/perl use strict; my @tmp_string; my $svn_status; my $svn_filename; my $svn_version; my $svn_root = "."; my $svn_root_version; my $svn_root_url; my @header_defines = ( "#ifndef _SSV_VERSION_H_", "#define _SSV_VERSION_H_", "", ); sub get_version { foreach (@_) { if($_ =~ m/^Last Changed Rev: (\d*)/) { return $1; } } # file doesn't exist on svn return -1; } sub get_url { foreach (@_) { if($_ =~ m/^URL: (.*)/) { return $1; } } # file doesn't exist on svn return -1; } printf("## script to generate version infomation header ##\n"); # step-0: get root svn number $svn_root_version = get_version(qx(svn info $svn_root)); if ($svn_root_version == -1) { exit 0; } # step-1: get root svn url $svn_root_url = get_url(qx(svn info $svn_root)); OUTPUT_HEADER: # step-3: output header files if (defined($ARGV[0])) { open HEADER, ">", $ARGV[0]; select HEADER; } else { print "Error! Please specify header file\n"; } foreach (@header_defines) { printf("%s\n", $_); } ## printf("static u32 ssv_root_version = %d;\n\n", $svn_root_version); printf("#define SSV_ROOT_URl \"$svn_root_url\"\n"); use Sys::Hostname; my $host = hostname(); printf("#define COMPILERHOST \"$host\"\n"); use POSIX qw(strftime); my $date = strftime "%m-%d-%Y-%H:%M:%S", localtime; printf("#define COMPILERDATE \"$date\"\n"); ## use Config; printf("#define COMPILEROS \"$Config{osname}\"\n"); printf("#define COMPILEROSARCH \"$Config{archname}\"\n"); printf("\n#endif\n\n"); exit 1;