#!/usr/bin/perl # IBM_PROLOG_BEGIN_TAG # This is an automatically generated prolog. # # $Source: src/usr/diag/prdf/common/framework/rule/prdrpp $ # # OpenPOWER HostBoot Project # # COPYRIGHT International Business Machines Corp. 2004,2014 # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or # implied. See the License for the specific language governing # permissions and limitations under the License. # # IBM_PROLOG_END_TAG use strict; my @search_dirs = (); foreach my $arg (@ARGV) { if ($arg =~ m/-I/) { $arg =~ s/-I//; push @search_dirs, $arg; } } read_file(\*STDIN); sub read_file { my $file = shift; while (my $line = <$file>) { if ($line =~ m/^\.include.*\".*\".*/) { my $include = $line; chomp($include); $include =~ s/.*\"(.*)\".*/$1/; print ".included \"$include\"\n"; open_file($include); print ".end_included\n"; } elsif ( $line =~ m{/\*[^\*].*\*/} ) { # Skip C-style (/* */) comments. This is needed to avoid prologs # added to the extra signature .H files. } else { print $line; } } } sub open_file { my $filename = shift; foreach my $dir (@search_dirs) { my $fileDirName = "$dir/$filename"; if (-e $fileDirName) { open FILE, "< $fileDirName" || die "Error opening $fileDirName"; read_file(\*FILE); close FILE; return; } } print STDERR "prdrpp: $filename not found!\n"; }