[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Combining perl and makefile I seem to remember asking this before but ca
From: |
Billy Patton |
Subject: |
Combining perl and makefile I seem to remember asking this before but can't find it. |
Date: |
Tue, 13 Feb 2007 10:09:38 -0600 |
I'm looking to get a makefile working inside a perl scripts.
Long explanation why, but it concerns mas quanitities of lines generated
froma a lot perl hashs
I have to generate a large amount of strings as input to a program,12+
permutations.
I would like to not to have to generate the make file and execute it
seperately.
My basic steps will be
1. create permutations with perl program, as a list of perl hashes.
2. convert hashs to strings with perl program.
Strings are command lines options for external script
3. use make to utilize the --max-load feature.
These 12k+ jobs should be < 2 second each and use virtually no memory.
Make should run them much faster then perl multithread of using LSF to
distribute across the network.
Espically LSF can take a minute to get it logged into it's system.
Here it is in bash
#!/bin/bash
printf "In bash\n";
DO_THIS=/bin/ls
make -f - all<<!
all :
@echo "In the make section"
@echo "DO_THIS = ${DO_THIS}"
!
Here's what I've tried in perl with no success
print "this is perl\n";
$make = <<MAKE;
all : do_this do_that
do_this:
address@hidden 'this'
do_that:
address@hidden 'that'
MAKE
open OUT , ">z";
print OUT "$make\n";
close OUT;
print "$make\n";
$_ = `make -j --max-load 1.0 -f - all <<$make`;
$st = $?>>8;
print "In perl again with status = $st , ret = '$_'\n";
When I execute perl z.pl
this is perl
all : do_this do_that
do_this:
@echo 'this'
do_that:
@echo 'that'
sh: -c: line 1: syntax error near unexpected token `newline'
sh: -c: line 1: `make -j --max-load 1.0 -f - all <<'
In perl again with status = 2 , ret = ''
When I execute make -f z I get:
make -f z
this
That
So I know the make file is gettting written correctly.
this is perl
all : do_this do_that
do_this:
@echo "doing_this"
do_that:
@echo "doing_doing_that"
make: *** No rule to make target `all'. Stop.
In perl again with status = 2 , ret = ''
- Combining perl and makefile I seem to remember asking this before but can't find it.,
Billy Patton <=