Waldek Hebisch <[EMAIL PROTECTED]> writes:

| > 
| > The use of ENV in the Makefiles conflicts with established practice
| > with shells (that are POSIXilly correct).  
| > 
| 
| I am not sure what you mean: in the main Makefile ENV is make variable
| which expands to shell syntax:
| 
| VAR1=val1 VAR2=val2 ... command
| 
| Do you mean that this syntax is illegal?

No, I mean that different tools have a different idea of what ENV
means; in particular the POSIXilly correct shells want it to mean
something precisely defined.  

Furthermore this particular uses 

  $(ENV) $(MAKE)

means that if you're not at toplevel, then you get the wrong
substitution like in:


  monad[12:04]% make                              ~/build/axiom/src/input
  /etc/bash.bashrc make
  DAASE=/home/gdr/build/axiom/target/x86_64-suse-linux regression-tests
  make: execvp: /etc/bash.bashrc: Permission denied
  make: *** [regress] Error 127


| In subdirectories make variable ENV is unset, so its expansion is
| empty.

No, again you're making the assumption that ENV does not mean anything
particular.  ENV means something very precise is POSIXilly correct
shells.  In particular its value is exported, which means that if you
don't set it, you get what it is supposed to be (not empty).  The
above is an experiment you can reproduce with a POSIX-compliant shell.

The issue is very simple: avoid ENV.  Use MAKEFLAGS (which I'm working on).

-- Gaby


_______________________________________________
Axiom-developer mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/axiom-developer

Reply via email to