[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Make recursion does not appear working in VMS
From: |
h.becker |
Subject: |
Re: Make recursion does not appear working in VMS |
Date: |
Thu, 13 Mar 2014 14:14:28 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux i686; rv:17.0) Gecko/20130519 Icedove/17.0.5 |
On 03/13/2014 01:17 PM, John E. Malmberg wrote:
> EAGLE> del 1.inc;,2.inc;
> EAGLE>
> EAGLE>
> EAGLE> make -f /lcl_root/make/tests/work/features/parallelism.mk_2 "-j4"
> THREE.inc
> ONE.inc
> TWO.inc
> make: execve: make: no such file or directory
> /lcl_root/make/tests/work/features/parallelism.mk_2:2: recipe for target
> 'recurse' failed
> make: *** [recurse] Error 0xbf2bffbc
>
> Or if you prefer:
>
> EAGLE> del 1.inc;,2.inc;
> EAGLE> make -f [.work.features]parallelism.mk_2 "-j4"
> THREE.inc
> ONE.inc
> TWO.inc
> make: execve: make: no such file or directory
> [.work.features]parallelism.mk_2:2: recipe for target 'recurse' failed
> make: *** [recurse] Error 0xbf2bffbc
It looks like execve uses argv[0] to run make.
With a VMS/DCL-style version of the Makefile and my mcr version of make
it seems to work:
$ del %.inc;*
$ mc [.make]mcr -f parallelism.mk_2 -j4
THREE.inc
ONE.inc
TWO.inc
ONE
TWO
THREE
success
$
$ del %.inc;*
$ mc [.make]mcr -nf parallelism.mk_2 -j4
mcr eisner$lda2:[usr_ods5.][becker_h.make.make]mcr.exe;1
--no-print-directory -f parallelism.mk_2 "INC=yes" all
THREE.inc
ONE.inc
TWO.inc
ONE
TWO
THREE
success
$
$ type parallelism.mk_2
recurse : ; @$(MAKE) --no-print-directory -f parallelism.mk_2 "INC=yes" all
all : 1 2 ; @write sys$$output "success "
INC = no
ifeq ($(INC),yes)
-include 1.inc 2.inc
endif
1.inc : ; @pipe write sys$$output "ONE.inc" ; wait 0:0:2 ; write
sys$$output "TWO.inc" ; define sys$$output $@ ; write sys$$output "1 : ;
@pipe write sys$$$$output ""ONE"" ; wait 0:0:2 ; write sys$$$$output
""TWO""" ; close sys$$output
2.inc : ; @pipe wait 0:0:1 ; write sys$$output "THREE.inc" ; define
sys$$output $@ ; write sys$$output "2: ; @pipe wait 0:0:1 ; write
sys$$$$output ""THREE""" ; close sys$$output
$