From: Jarkko Hietaniemi Date: Sun, 1 Jul 2001 15:20:38 +0000 (+0000) Subject: Make 'compile' target a little less broken. X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=f5eac2152adebf3de703707e233f00e2cd249b47;p=p5sagit%2Fp5-mst-13.2.git Make 'compile' target a little less broken. Still very broken, though: -Wall warnings from the generated code, boot_Foo prototypes missing, can't autoload Fcntl::SEEK_CUR et alia, ... p4raw-id: //depot/perl@11061 --- diff --git a/ext/B/B/C.pm b/ext/B/B/C.pm index 1f77a2c..f8df7b6 100644 --- a/ext/B/B/C.pm +++ b/ext/B/B/C.pm @@ -362,7 +362,7 @@ sub B::PMOP::save { if (defined($re)) { my $resym = sprintf("re%d", $re_index++); $decl->add(sprintf("static char *$resym = %s;", cstring($re))); - $init->add(sprintf("PM_SETRE($pm,pregcomp($resym, $resym + %u, &$pm));", + $init->add(sprintf("PM_SETRE(&$pm,pregcomp($resym, $resym + %u, &$pm));", length($re))); } if ($gvsym) { diff --git a/pod/Makefile.SH b/pod/Makefile.SH index 6848225..a481ca6 100644 --- a/pod/Makefile.SH +++ b/pod/Makefile.SH @@ -163,9 +163,9 @@ perlmodlib.pod: $(PERL) perlmodlib.PL ../mv-if-diff ../MANIFEST sh ../mv-if-diff perlmodlib.tmp perlmodlib.pod compile: all - $(REALPERL) -I../lib ../utils/perlcc -o pod2latex.exe pod2latex -log ../compilelog - $(REALPERL) -I../lib ../utils/perlcc -o pod2man.exe pod2man -log ../compilelog - $(REALPERL) -I../lib ../utils/perlcc -o pod2text.exe pod2text -log ../compilelog - $(REALPERL) -I../lib ../utils/perlcc -o checkpods.exe checkpods -log ../compilelog + $(REALPERL) -I../lib ../utils/perlcc -I .. -L .. -o pod2latex.exe pod2latex -log ../compilelog + $(REALPERL) -I../lib ../utils/perlcc -I .. -L .. -o pod2man.exe pod2man -log ../compilelog + $(REALPERL) -I../lib ../utils/perlcc -I .. -L .. -o pod2text.exe pod2text -log ../compilelog + $(REALPERL) -I../lib ../utils/perlcc -I .. -L .. -o checkpods.exe checkpods -log ../compilelog !NO!SUBS! diff --git a/utils/Makefile b/utils/Makefile index 801b4a4..043430a 100644 --- a/utils/Makefile +++ b/utils/Makefile @@ -12,16 +12,16 @@ plextractexe = ./c2ph ./h2ph ./h2xs ./perlbug ./perldoc ./pl2pm ./splain ./perl all: $(plextract) compile: all $(plextract) - $(REALPERL) -I../lib perlcc c2ph -o c2ph.exe -v 10 -log ../compilelog; - $(REALPERL) -I../lib perlcc h2ph -o h2ph.exe -v 10 -log ../compilelog; - $(REALPERL) -I../lib perlcc h2xs -o h2xs.exe -v 10 -log ../compilelog; - $(REALPERL) -I../lib perlcc perlbug -o perlbug.exe -v 10 -log ../compilelog; - $(REALPERL) -I../lib perlcc perldoc -o perldoc.exe -v 10 -log ../compilelog; - $(REALPERL) -I../lib perlcc pl2pm -o pl2pm.exe -v 10 -log ../compilelog; - $(REALPERL) -I../lib perlcc splain -o splain.exe -v 10 -log ../compilelog; - $(REALPERL) -I../lib perlcc perlcc -o perlcc.exe -v 10 -log ../compilelog; - $(REALPERL) -I../lib perlcc dprofpp -o dprofpp.exe -v 10 -log ../compilelog; - $(REALPERL) -I../lib perlcc libnetcfg -o libnetcfg.exe -v 10 -log ../compilelog; + $(REALPERL) -I../lib perlcc -I .. -L .. c2ph -o c2ph.exe -v 10 -log ../compilelog; + $(REALPERL) -I../lib perlcc -I .. -L .. h2ph -o h2ph.exe -v 10 -log ../compilelog; + $(REALPERL) -I../lib perlcc -I .. -L .. h2xs -o h2xs.exe -v 10 -log ../compilelog; + $(REALPERL) -I../lib perlcc -I .. -L .. perlbug -o perlbug.exe -v 10 -log ../compilelog; + $(REALPERL) -I../lib perlcc -I .. -L .. perldoc -o perldoc.exe -v 10 -log ../compilelog; + $(REALPERL) -I../lib perlcc -I .. -L .. pl2pm -o pl2pm.exe -v 10 -log ../compilelog; + $(REALPERL) -I../lib perlcc -I .. -L .. splain -o splain.exe -v 10 -log ../compilelog; + $(REALPERL) -I../lib perlcc -I .. -L .. perlcc -I .. -L .. -o perlcc.exe -v 10 -log ../compilelog; + $(REALPERL) -I../lib perlcc -I .. -L .. dprofpp -o dprofpp.exe -v 10 -log ../compilelog; + $(REALPERL) -I../lib perlcc -I .. -L .. libnetcfg -o libnetcfg.exe -v 10 -log ../compilelog; $(plextract): $(PERL) -I../lib $@.PL diff --git a/utils/perlcc.PL b/utils/perlcc.PL index 6304555..cdd7759 100644 --- a/utils/perlcc.PL +++ b/utils/perlcc.PL @@ -146,8 +146,10 @@ sub vprint { sub parse_argv { use Getopt::Long; -# Getopt::Long::Configure("bundling"); turned off. this is silly because -# it doesn't allow for long switches. + + # disallows using long arguments + # Getopt::Long::Configure("bundling"); + Getopt::Long::Configure("no_ignore_case"); # no difference in exists and defined for %ENV; also, a "0" @@ -173,17 +175,6 @@ sub parse_argv { 'log:s' # where to log compilation process information ); - # This is an attempt to make perlcc's arg. handling look like cc. - # if ( opt('s') ) { # must quote: looks like s)foo)bar)! - # if (opt('s') eq 'hared') { - # $Options->{shared}++; - # } elsif (opt('s') eq 'tatic') { - # $Options->{static}++; - # } else { - # warn "$0: Unknown option -s", opt('s'); - # } - # } - $Options->{v} += 0; helpme() if opt(h); # And exit @@ -334,6 +325,7 @@ sub cc_harness { $command .= " -L".$_ for split /\s+/, opt(L); my @mods = split /-?u /, $stash; $command .= " ".ExtUtils::Embed::ldopts("-std", \@mods); + $command .= " -lperl"; vprint 3, "running $Config{cc} $command"; system("$Config{cc} $command"); } @@ -582,8 +574,10 @@ perlcc - generate executables from Perl programs $ perlcc -e 'print q//' # Compiles a one-liner into 'a.out' $ perlcc -c -e 'print q//' # Creates a C file 'a.out.c' - $ perlcc -r hello # compiles 'hello' into 'a.out', runs 'a.out'. + $ perlcc -I /foo hello # extra headers (notice the space after -I) + $ perlcc -L /foo hello # extra libraries (notice the space after -L) + $ perlcc -r hello # compiles 'hello' into 'a.out', runs 'a.out'. $ perlcc -r hello a b c # compiles 'hello' into 'a.out', runs 'a.out'. # with arguments 'a b c' diff --git a/x2p/Makefile.SH b/x2p/Makefile.SH index 3f045e3..fe4fb1e 100755 --- a/x2p/Makefile.SH +++ b/x2p/Makefile.SH @@ -102,7 +102,7 @@ all: $(public) $(private) $(util) @echo " " compile: all - $(REALPERL) -I../lib ../utils/perlcc -regex 's/$$/.exe/' $(plextract) -prog -verbose dcf -log ../compilelog; + $(REALPERL) -I../lib ../utils/perlcc -I .. -L .. $(plextract) -v -log ../compilelog; a2p: $(obj) a2p$(OBJ_EXT) $(CC) -o a2p $(LDFLAGS) $(obj) a2p$(OBJ_EXT) $(libs)