#!/usr/bin/env perl ################################################################################ # (C) COPYRIGHT 2000, Eric Busboom # http://www.softwarestudio.org # # This program is free software; you can redistribute it and/or modify # it under the terms of either: # # The LGPL as published by the Free Software Foundation, version # 2.1, available at: http://www.gnu.org/licenses/lgpl-2.1.txt # # Or: # # The Mozilla Public License Version 1.0. You may obtain a copy of # the License at http://www.mozilla.org/MPL/ ################################################################################ use Getopt::Std; getopts('chspi:'); # ARG 0 is components.txt open(PV, "$ARGV[0]") || die "Can't open components file $ARGV[0]:$!"; my @components; while () { s/#.*//; chop; push(@components, $_); } close PV; # Write the file inline by copying everything before a demarcation # line, and putting the generated data after the demarcation if ($opt_i) { open(IN, $opt_i) || die "Can't open input file \"$opt_i\""; while () { if (/Do not edit/) { last; } print; } if ($opt_i) { print "# Everything below this line is machine generated. Do not edit. \n"; } else { print "/* Everything below this line is machine generated. Do not edit. */\n"; } } if ($opt_c or $opt_h and !$opt_i) { print < /* for va_arg functions */ EOM } if ($opt_p and !$opt_i) { print <