Make 'compile' target a little less broken.
Jarkko Hietaniemi [Sun, 1 Jul 2001 15:20:38 +0000 (15:20 +0000)]
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

ext/B/B/C.pm
pod/Makefile.SH
utils/Makefile
utils/perlcc.PL
x2p/Makefile.SH

index 1f77a2c..f8df7b6 100644 (file)
@@ -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) {
index 6848225..a481ca6 100644 (file)
@@ -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!
index 801b4a4..043430a 100644 (file)
@@ -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
index 6304555..cdd7759 100644 (file)
@@ -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' 
 
index 3f045e3..fe4fb1e 100755 (executable)
@@ -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)