25 NeedNextArg($nextArg, 'file name');
28 elsif ($nextArg eq '-o')
30 NeedNextArg($nextArg, 'file name');
33 elsif ($nextArg eq '-f')
35 NeedNextArg($nextArg, 'file name');
38 elsif ($nextArg eq '-d')
40 NeedNextArg($nextArg, 'value');
41 my $customDefine=shift;
42 if ( $customDefine=~m/^\"?(\S+)=(\S*)\"?$/ )
48 print "-d expects name=value\n";
52 elsif ($nextArg eq '-h')
58 print "Unknown argument '$nextArg'\n";
63 # check if we have what we need
65 if ($sourceFile eq "" || $outputFile eq "" || $definesFile eq "")
70 open (SOURCEFILE,$sourceFile) or die "Cannot open $sourceFile for reading\n";
71 open (DEFINESFILE,$definesFile) or die "Cannot open $definesFile for reading\n";
72 open (OUTPUTFILE,"> $outputFile") or die "Cannot open $outputFile for writing\n";
79 if (/^\s*#define\s+(\S+)\s+(\S*)\s*$/)
96 while ($string=~m/\$\(([^)]+)\)/)
98 if (! defined $Defines{$1})
100 die "'$1' is not defined.\n";
102 $string=~s/\$\(([^)]+)\)/$Defines{$1}/;
104 print OUTPUTFILE $string ;
111 print "Usage: applydefines [options]\n";
112 print "\t-s <file>\t: the source file to process\n";
113 print "\t-f <file>\t: the file containing #define settings\n";
114 print "\t-o <file>\t: the output file\n";
115 print "\t-d <name>=<Value>\t: additional define\n";
124 print "'@_[0]' requires @_[1]\n";