summaryrefslogtreecommitdiff
path: root/util/sort-includes
diff options
context:
space:
mode:
authorNathan Binkert <nate@binkert.org>2011-04-15 10:43:06 -0700
committerNathan Binkert <nate@binkert.org>2011-04-15 10:43:06 -0700
commite5ecfde222d6b76de7320750c219960e6f6ec3ca (patch)
treeabc2266d778fe470dcbabd090cc353f42c53127f /util/sort-includes
parent07815c3379d26a5d132696b41a5f1efc618cb0e6 (diff)
downloadgem5-e5ecfde222d6b76de7320750c219960e6f6ec3ca.tar.xz
util: python implementation of a routine that will sort includes
I didn't realize that the perl version existed when I started this, this version has a lot more features than the previous one since it will sort and separate python, system, and m5 headers in separate groups, it will remove duplicates, it will also convert c headers to stl headers
Diffstat (limited to 'util/sort-includes')
-rwxr-xr-xutil/sort-includes91
1 files changed, 0 insertions, 91 deletions
diff --git a/util/sort-includes b/util/sort-includes
deleted file mode 100755
index 8ae40be52..000000000
--- a/util/sort-includes
+++ /dev/null
@@ -1,91 +0,0 @@
-#! /usr/bin/env perl
-# Copyright (c) 2003 The Regents of The University of Michigan
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are
-# met: redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer;
-# redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in the
-# documentation and/or other materials provided with the distribution;
-# neither the name of the copyright holders nor the names of its
-# contributors may be used to endorse or promote products derived from
-# this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-# Authors: Steve Reinhardt
-
-open (FOO, "<$ARGV[0]") or die;
-
-# Suck in everything before the first include
-# (line-by-line into @before list).
-while (($_ = <FOO>) && !/^#include/) {
- push @before, $_;
-}
-
-#print join("", @before);
-#print "##########################\n";
-
-# Suck in include lines into @includes list.
-# Skip blank lines (keep processing, but don't put in @includes).
-# End on first non-blank, non-include line.
-# Note that this means that files with comments or #ifdefs
-# interspersed among their #includes will only get the initial
-# set of #includes sorted.
-do {
- push @includes, $_ unless /^\s*$/;
-} while (($_ = <FOO>) && /^#include|^\s*$/);
-
-# Now sort the includes. This simple ordering function
-# puts system includes first, followed by non-system includes.
-# Within each group the sort is alphabetical.
-# We may want something a little more sophisticated.
-# Personally, I'd like to see something like:
-# <sys/*.h> - header files from sys subdir
-# <*.h> - other system headers
-# <*> - STL headers
-# "base/*" - M5 base headers
-# "sim/*" - M5 sim headers
-# "*" - other M5 headers
-# ...but I didn't have the energy to code that up.
-sub sortorder {
- my $sysa = ($a =~ /<.*>/);
- my $sysb = ($b =~ /<.*>/);
- return -1 if ($sysa && !$sysb);
- return 1 if ($sysb && !$sysa);
- return $a cmp $b;
-}
-
-@includes = sort sortorder @includes;
-#print join("", @includes);
-#print "##########################\n";
-
-# Put everything after the includes in the @after list.
-do {
- push @after, $_;
- if (/^#include/) {
- print "$ARGV[0]: ";
- print $after[0];
- exit 0;
- }
-} while ($_ = <FOO>);
-
-#print join("", @after);
-#print "##########################\n";
-
-# Print out the file with sorted includes.
-
-print join("", @before, @includes, @after);
-