Mail Archives: djgpp-workers/2000/04/09/06:26:08
> > -----
> > CCDEPMODE = depmode=gcc
> >
> > .c.o:
> > source='$<' object='$@' libtool=no \
> > depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' \
> > $(CCDEPMODE) $(depcomp) \
> > $(COMPILE) -c -o $@ `test -f $< || echo '$(srcdir)/'`$<
> > -----
> >
> It's not Make's job to pass variables to the child program, in this
> case. The syntax "foo=bar xyz=abc foobar.exe" is processed entirely
> by a Unixy shell, such as Bash, which Make should invoke. If that
> command is passed by Make to Bash, the values of the variables will be
> passed to "d:/djgpp/bin/sh.exe" and to the script. I just tried this
> in a short Makefile, and it worked for me, in all versions of Make
> (3.75, 3.76, 3.77, 3.78.1, and the hot-off-the-grill Make 3.79).
Thanks Eli. I got make 3.81 but it didn't help. You're right. Make isn't the
culprit here. Looks to me like a bug in BASH. To verify this, I did the foll:
1> Copied out the lines manually to the bash shell and tried. No, it didn't
work.
2> Modified the last line to
$(COMPILE) -c -o $@ $<
and it works! In fact BASH doesn't like anything within the `....`
For now, I'll write up an sed script to strip off this portion lines. But maybe
this should be fixed (if that's a real bug).
I just had a glance at the READMEs and I think it doesn't use libtool because
it was built with the latest version of autoconf and automake (WIP).
Unfortunately, the diffs I sent to the Sh-utils maintainer during the previous
beta release was lost because of change in his E-Mail ID. So, I'll have to send
them to him again :-(.
- Raw text -