#!/usr/bin/perl -w # ompts_makeHeader [options] -f=NAME -t=DIR # # Creats the headerfile for the OpenMP-Testsuite out of the templatefiles # witch are in the default/explicitely specified dir and the settings in the # given config file. # # ATTENTION: # At the moment it builts only a c-headerfile! # # -f=FILENAME: Using file FILENAME as configfile # -t=DIR: Directory holding the template files # # options # -i=FILENAME: Include other Headerfile. The files to be included must be specified # after setting this option. (Not implemented yet.) # -o=FILENAME: outputfilename (default is "omp_testsuite.h") $headerfile = "\/\* Global headerfile of the OpenMP Testsuite \*\/\n\n\/\* This file was created with the ompts_makeHeader.pl script using the following opions:\ *\/\n\/\* "; if(@ARGV > 0) { foreach $opt (@ARGV) { $headerfile .= "$opt "; } } else { $headerfile .= "No options were specified"; } $headerfile .=" \*\/\n\n\n"; use Getopt::Long; GetOptions("-o=s" => \$outfile, "-f=s" =>\$configfile, "-t=s" => \$templatedir, "-i=s" => \$include); $include = ""; # Getting and verifying the necessary options: if(!$configfile) { die "Config file name is missing."; } else { if (!(-e $configfile)) { die "Could not find config file $configfile."; } } if(!$templatedir) { die "Directoryname is missing."; } if(!$outfile){ $outfile = "omp_testsuite.h"; # setting default value for the headerfile } #@includefiles; # list holing extra includefiles specified by the user # generating the head of the includeguard: $headerfile .= "\#ifndef OMP_TESTSUITE_H\n\#define OMP_TESTSUITE_H\n\n"; # inserting general settings out of the configfile: open(OMPTS_CONF,$configfile) or die "Could not open the global config file $configfile."; while(){ $headerfile .= $_; } close(OMPTS_CONF); # searching the tests: opendir TEMPLATEDIR, $templatedir or die "Could not open dir $templatedir."; @templates = grep /(.*)\.c/, readdir TEMPLATEDIR; closedir TEMPLATEDIR; # inserting the function declarations: foreach $template (@templates){ $source = ""; open(TEMPLATE,$templatedir."/".$template) or die "Could not open the following sourcefile: ".$templatedir."/".$template; while(