home *** CD-ROM | disk | FTP | other *** search
Text File | 1993-03-16 | 947 b | 50 lines | [TEXT/????] |
- #!/usr/local/bin/perl
- $cfile = $ARGV[0]; shift;
- $hfile = $ARGV[0]; shift;
- while (<>)
- {
- if (/^#pragma segment/)
- {
- chop;
- split;
- if ($_[2] ne "Main")
- {
- $seglist{$_[2]} = $_[2];
- }
- }
- }
-
- open(CFILE,">$cfile") || die "$cfile";
- open(HFILE,">$hfile") || die "$hfile";
- print CFILE <<END_OF_DUMP;
- #ifdef RAMDISK
- #pragma load "RAM Disk:eudora.load"
- #else
- #pragma load "eudora.load"
- #endif
- END_OF_DUMP
- foreach $seg (keys(%seglist))
- {
- $count++;
- printf CFILE "#pragma segment %s\n",$seg;
- printf CFILE "void __Seg%s(void);\n",$seg;
- printf CFILE "void __Seg%s(void){}\n",$seg;
- }
- print CFILE <<"EOF";
- #pragma segment Main
- void UnloadSegments(void)
- {
- extern void _DataInit();
- extern char *strchr();
- UnloadSeg(_DataInit);
- UnloadSeg(strchr);
- EOF
- foreach $seg (keys(%seglist))
- {
- printf CFILE " UnloadSeg(__Seg%s);\n",$seg;
- }
- print CFILE "}\n";
-
- $count += 2; # code 1 and code 0
- print HFILE "#define NUM_CODE $count\n";
-