aboutsummaryrefslogtreecommitdiff
path: root/contrib
diff options
context:
space:
mode:
authorYury Gribov <y.gribov@samsung.com>2013-12-19 14:50:05 +0000
committerYury Gribov <ygribov@gcc.gnu.org>2013-12-19 14:50:05 +0000
commit26b086810a3bb6d85944429914115f21ac63a277 (patch)
treeb210c869c63e04a9b2719e1cc168a0709444a0d7 /contrib
parent9783e5984b418815896e6eb21d991c5e8457093a (diff)
downloadgcc-26b086810a3bb6d85944429914115f21ac63a277.zip
gcc-26b086810a3bb6d85944429914115f21ac63a277.tar.gz
gcc-26b086810a3bb6d85944429914115f21ac63a277.tar.bz2
mklog: Split generated message in parts.
2013-12-19 Yury Gribov <y.gribov@samsung.com> * mklog: Split generated message in parts. From-SVN: r206116
Diffstat (limited to 'contrib')
-rw-r--r--contrib/ChangeLog4
-rwxr-xr-xcontrib/mklog47
2 files changed, 39 insertions, 12 deletions
diff --git a/contrib/ChangeLog b/contrib/ChangeLog
index 3b0d763..b5adf05 100644
--- a/contrib/ChangeLog
+++ b/contrib/ChangeLog
@@ -1,3 +1,7 @@
+2013-12-19 Yury Gribov <y.gribov@samsung.com>
+
+ * mklog: Split generated message in parts.
+
2013-10-31 Chung-Ju Wu <jasonwucj@gmail.com>
* config-list.mk (nds32le-elf, nds32be-elf): Add nds32 target.
diff --git a/contrib/mklog b/contrib/mklog
index a874c72..d3f044e 100755
--- a/contrib/mklog
+++ b/contrib/mklog
@@ -34,6 +34,10 @@ $name = @n[1]; chop($name);
$addr = $username . "\@my.domain.org";
$date = `date +%Y-%m-%d`; chop ($date);
+$gcc_root = $0;
+$gcc_root =~ s/[^\\\/]+$/../;
+chdir $gcc_root;
+
#-----------------------------------------------------------------------------
# Program starts here. You should not need to edit anything below this
@@ -50,16 +54,28 @@ if ( $#ARGV != 0 ) {
$diff = $ARGV[0];
$dir = `dirname $diff`; chop ($dir);
$basename = `basename $diff`; chop ($basename);
-$cl = `mktemp /tmp/$basename.XXXXXX` || exit 1; chop ($cl);
$hdrline = "$date $name <$addr>";
-open (CLFILE, ">$cl") or die "Could not open file $cl for writing";
-
-print CLFILE "$hdrline\n\n";
+my %cl_entries;
+
+sub get_clname($) {
+ my $dirname = $_[0];
+ while ($dirname) {
+ my $clname = "$dirname/ChangeLog";
+ if (-f $clname) {
+ my $filename_rel = substr ($_[0], length ($dirname) + 1);
+ return ($filename_rel, $clname);
+ } else {
+ $dirname =~ s/[\/\\]?[^\/\\]*$//;
+ }
+ }
+ return ($_[0], 'Unknown Changelog');
+}
# For every file in the .diff print all the function names in ChangeLog
# format.
$bof = 0;
+$clname = get_clname('');
open (DFILE, $diff) or die "Could not open file $diff for reading";
while (<DFILE>) {
# Check if we found a new file.
@@ -68,10 +84,11 @@ while (<DFILE>) {
# $bof == 1), we just write out a ':' before starting the next
# file.
if ($bof == 1) {
- print CLFILE ":\n";
+ $cl_entries{$clname} .= ":\n";
}
$filename = $2;
- print CLFILE "\t* $filename";
+ ($filename_rel, $clname) = get_clname ($filename);
+ $cl_entries{$clname} .= "\t* $filename_rel";
$bof = 1;
}
@@ -122,13 +139,13 @@ while (<DFILE>) {
# to the filename, so we need an extra space before the opening
# brace.
if ($bof) {
- print CLFILE " ";
+ $cl_entries{$clname} .= " ";
$bof = 0;
} else {
- print CLFILE "\t";
+ $cl_entries{$clname} .= "\t";
}
- print CLFILE "($fn):\n";
+ $cl_entries{$clname} .= "($fn):\n";
$seen_names{$fn} = 1;
}
}
@@ -138,14 +155,20 @@ while (<DFILE>) {
# write out a ':'. This happens when there is only one file with no
# functions.
if ($bof == 1) {
- print CLFILE ":\n";
+ $cl_entries{$clname} .= ":\n";
+}
+
+$temp = `mktemp /tmp/$basename.XXXXXX` || exit 1; chop ($temp);
+open (CLFILE, ">$temp") or die "Could not open file $temp for writing";
+
+foreach my $clname (keys %cl_entries) {
+ print CLFILE "$clname:\n\n$hdrline\n\n$cl_entries{$clname}\n";
}
-print CLFILE "\n";
close (DFILE);
# Concatenate the ChangeLog template and the original .diff file.
-system ("cat $diff >>$cl && mv $cl $diff") == 0
+system ("cat $diff >>$temp && mv $temp $diff") == 0
or die "Could not add the ChangeLog entry to $diff";
exit 0;