3 # Perl script be a wrapper around the gnu gcc. the exportable perl.exe
4 # is built, special processing is done.
5 # This script is caled by the gcc2 shell script when the flag
6 # -buildperl is passed to gcc2
8 print "perlgcc: building exportable perl...\n";
26 $libstring = join(" ",@libobs);
27 $obsString = join(" ",@obs);
28 $libflagString = join(" ",@libFlags);
31 my $command = "echo EXPORTS > perl.def";
35 $command ="nm $libstring | grep '^........ [TCD] _'| grep -v _impure_ptr | sed 's/[^_]*_//' >> perl.def";
39 # Build the perl.a lib to link to:
40 $command ="dlltool --as=as --dllname perl.exe --def perl.def --output-lib perl.a";
44 # change name of export lib to libperlexp so that is can be understood by ld2/perlld
45 $command ="mv perl.a libperlexp.a";
49 # get the full path name of a few libs:
50 my $crt0 = `gcc -print-file-name=crt0.o`;
52 my $libdir = `gcc -print-file-name=libcygwin.a`;
54 $libdir =~ s/libcygwin\.a//g;
57 $command = "ld --base-file perl.base -o perl.exe $crt0 $obsString $libstring -L$libdir $libflagString";
61 $command = "dlltool --as=as --dllname perl.exe --def perl.def --base-file perl.base --output-exp perl.exp";
65 $command = "ld --base-file perl.base perl.exp -o perl.exe $crt0 $obsString $libstring -L$libdir $libflagString";
69 $command = "dlltool --as=as --dllname perl.exe --def perl.def --base-file perl.base --output-exp perl.exp";
73 $command = "ld perl.exp -o perl.exe $crt0 $obsString $libstring -L$libdir $libflagString";
77 print "perlgcc: Completed\n";