2 # Copyright (C) 2007, Parrot Foundation.
7 tools/build/fixup_gen_file.pl - mark a generated file as generated
11 % perl tools/build/fixup_gen_file.pl <options> <generated_file> <dest_file>
15 This script adds special headers and footers to files generated by tools
16 outside of Parrot's normal build process. This is so that people do not
17 accidentally modify these files.
25 This option adds directives to C<dest_file> that instruct headerizer to ignore
37 use Parrot
::BuildUtil
;
39 GetOptions
( \
my %opts, "noheaderizer", ) or die "error processing options";
41 my ( $gen_file, $source ) = @ARGV;
44 ? Parrot
::BuildUtil
::slurp_file
($gen_file)
45 : die "Cannot find '$gen_file': $!\n";
47 # fix slashies in source filename for display in header
50 my $header = Parrot
::BuildUtil
::generated_file_header
( $source, 'c' );
52 my $noheaderizer = <<END_NOHEADERIZER;
53 /* HEADERIZER HFILE: none */
57 # if the generated file exists, make sure the header isn't there already
58 open( my ($gen_fh), '<', $gen_file )
59 or die "Cannot read '$gen_file': $!\n";
60 read $gen_fh, my $block, length $header;
61 exit if $block eq $header;
63 open( my $dest_fh, '>', $gen_file )
64 or die "Cannot write to '$gen_file': $!\n";
66 print {$dest_fh} $header, ( exists $opts{noheaderizer} ? $noheaderizer : () ), $contents;
72 # cperl-indent-level: 4
75 # vim: expandtab shiftwidth=4: