Mail Archives: djgpp/2011/11/29/20:15:11
Hi,
On Nov 29, 5:28 pm, tm <thomas DOT mer DOT DOT DOT AT gmx DOT at> wrote:
>
> I have no idea how to the fix the "Ambiguous redirect error". The
> purpose of the preprocessor macro C_COMPILER_VERSION is explained
> in a previous message.
GET_CC_VERSION_INFO = redir -o cc_vers.txt $(CC) --version
> Escaping quotes is also done in other makefiles. In this makefiles
> the argument to echo is a quoted string. Inspired by this I created
> the following makefile:
>
> ------------- begin mk_djgpp.mak ---------------
> (snip)
> ------------- end mk_djgpp.mak ---------------
I guess I should give this a try and report back?
But yes, the problem is that *nix and DOS behave differently:
echo hello "silly" world > blah.txt
DOS: hello "silly" world
Linux: hello silly world
> The only difference to the last version are the rules to produce
> "version.h" with echo commands.
>
> Please try this makefile (be careful the usenet system (google
> groups) might add line breaks), and tell me what is still missing.
Okay. You could also email me if that's easier. Though I think (?) I
can handle it for now. ;-)
> > And yet it still seems to do it when not using Bash. I don't know why.
> > Perhaps your Make is old 3.79.1?
>
> Yes, my DJGPP make has version 3.79.1
Some minor things changed between that one (old, stable) and (new,
modern) 3.81. That's why I mentioned it, I suspected it might be the
culprit. It might be easier to just have a .sh script (or even .BAT)
with simple compilation commands. Make is often overused and brittle,
kinda frustrating (IMO).
(joking) Maybe DJ can borrow some time on the GCC Power7 Compile Farm,
heheheh. "make djworld" every day at 12:01am. ;-)
> > I'm using /beta/mak381b.zip here.
> > Also I think you must have Fil41b, Txt20b, Shl2011b (aka, CoreUtils)
> > installed else it has some other error in the "make depend" stage,
> > didn't check too closely.
>
> Since I installed DJGPP long ago I cannot remember which packages
> I installed.
ls /dev/env/DJDIR/manifest/*.mft
dir c:\djgpp\manifest\*.mft /w
> I certainly did not install all packages of DJGPP.
No, definitely not, it would be too many. For whatever reason, I end
up installing / upgrading / reinstalling it a lot (and/or keep
separate versions). It's those dumb POSIX requirements to have so many
bazillion tools that complicates everything.
> When
> I was able to compile Seed7 I stopped installing DJGPP packages.
Perfectly reasonable, just hard to reproduce without much of a
clue. ;-)
> > > redir -eo hi chk_all | tee blah.txt
>
> As explained elsewhere you can start every chkxxx.sd7 program
> separately. Separate compilation of every chkxxx.sd7 programs is
> also possible.
Yes, I know, but "hi chk_all" is the official way, no?
> > I'm not sure *.cerrs is being created.
>
> You are right, no *.cerrs or *.lerrs are created.
>
> > You may still have blindly
> > assumed "2>" works everywhere.
>
> No, acually the preprocessor macro REDIRECT_C_ERRORS is
> used to redirect to *.cerrs. Since the macro is not
> defined in mk_djgpp.mak, no *.cerrs or *.lerrs is
> produced.
Well, since we have some weird errors somewhere, it might be a good
idea to temporarily enable logging of them. ;-) But I was
(sometimes) getting weird errors from REDIR (or Seed7 ?? or CWSDPMI
r7 ??) here. But typically you type "redir -eo gcc buggy_file.c >
bugs.txt" or similar.
> > But let me reiterate that "hi chkbig"
> > and "hi chkset" both work fine. Honestly, all this fuss may be (only)
> > over the compiled compiler, which I don't really "need", do I? An
> > interpreter is good enough. ;-)
>
> It would still be interesting to find out why compilation of
> chkbig.sd7 and chkset.sd7 fails. I want to be sure that the Seed7
> compiler is not the cause of the error.
Honestly, surprisingly, I don't think it is. But there are a lot of
little pieces and weird issues with various environmental things. So
it's hard to isolate (and confusing, at least to me).
> > P.S. Does your makefile depend on both "seed7/bin/hi" and "seed7/bin/
> > hi.exe" existing? They're the same exact file but wasting space with
> > duplication. Feel free to directly "-o hi.exe" (instead of "-o hi") to
> > avoid that.
>
> Thank you, I was not aware of that.
Not a big deal, just a small oversight. I'm not really complaining
since it was so minor (and some makefiles indeed rely on "prog" to
exist, not a lot of $(EXE) usage these days, all the world's a
POSIX !).
- Raw text -