]>
jfr.im git - irc/quakenet/newserv.git/blob - mkflat.pl
3 # mkflat.pl: Makes a flat, statically linked version of newserv
5 my @coredirs = ( "core", "parser", "lib" );
7 my $configfile="newserv.conf";
10 if (defined $ARGV[0]) {
14 open CFG
, $configfile or die "Unable to open $configfile: $!";
28 if ($insection && m/^loadmodule=(.*)$/) {
36 open NEWSERVH
,">", $flatdir."/newserv.h" or die "Unable to open flat header: $!";
37 open NEWSERVC
,">", $flatdir."/newserv.c" or die "Unable to open flat file : $!";
39 print NEWSERVC
'#include "newserv.h"'."\n\n";
44 my @files=readdir DIR
;
49 dofile
($dir, $_, undef);
54 foreach (@moduledirs) {
57 my @files=readdir DIR
;
62 dofile
($dir, $_, $dir);
69 my ($dirname, $filename, $modname) = @_;
71 open INFILE
, $dirname."/".$filename or die "Unable to open file: $!";
73 if ($filename =~ /h$/) {
82 open OUTFILE
, ">", $flatdir."/".$dirname."_".$filename or die "Unable to open file $flatdir/${dirname}_$filename: ";
84 # print OUTFILE '#include "newserv.h"'."\n\n";
87 # next if (/^#include \"/); # Skip local include files
89 if (/void _init\(\)/ && defined $modname) {
90 s/_init/${modname}_init/;
93 if (/void _fini\(\)/ && defined $modname) {
94 s/_fini/${modname}_fini/;
97 if (/initmodules\(\);/) {
98 foreach (@moduledirs) {
99 print OUTFILE
$_."_init\(\);";
100 print NEWSERVC
$_."_init\(\);";