Re: [AD] - Makefile problem

[ Thread Index | Date Index | More lists.liballeg.org/allegro-developers Archives ]


On Sat, Mar 24, 2001 at 03:57:05PM -0500, Bob wrote:
> It looks to me like it's searching for echo.exe specifically, and won't
> settle for the system echo. I tried looking for it in the Simtel ftp
> site to no avail. Does anyone know which package contains the command
> 'echo'?

DJGPP does. :)  It should be compatible too.  But I think this
problem is caused by Make getting confused over which shell to
use... or maybe it's trying to get away with not using a shell
at all.  In Unix, Make always invokes a shell for each command,
and lets the shell sort this stuff out, but I can see that in
Windows that would be slow.  Anyway, try setting SHELL to
cmd.exe or something like that.

> In any case, I found a work around. If I create a batch file called
> 'echo.bat' with the line 'echo %1 %2 %3... %9' in it, then the make
> process works! (Should this be documented?)

Maybe it should just be supplied with Allegro. :)

> Now the compilation stops at:
> Compiling Allegro for MINGW32, optimised. Please wait...
> make: *** No rule to make target `obj\mingw32\plugins.h', needed by
> `obj/mingw32
> /alleg/datedit.o'.  Stop.
> 
> This isn't right. There should be forward slashes in that path name.
> 
> I'm sorry but I'm no makefile expert (esp not in the Allegro makefile
> mess :-)
> Could someone post a patch for this?

I'll have a closer look.  There's a similar problem with slash
directions in msvcmake.bat, and a weird reference to someone's
E: drive too.

On Sat, Mar 24, 2001 at 04:00:27PM -0500, Bob wrote:
> Still with this problem. I tried running 'make install' and now I get:
> G:\MingW32\ALLEGRO>make install
> copy lib\mingw32\liballeg.a \mingw32\lib
> process_begin: CreateProcess((null), copy libmingw32liballeg.a
> mingw32lib, ...)
> failed.
> make (e=2): The system cannot find the file specified.
> make: *** [/mingw32/lib/liballeg.a] Error 2
> 
> This isn't right "libmingw32liballeg.a" is missing the slashes...

It could be just a weirdness of that CreateProcess function's
printing.  IMHO the most likely problem is that it's looking for
a `copy.exe' here.

It's also possible that, as I suggested above, Make is using an
internal parser to avoid spawning shells for each line.  In this
case, the internal parser could be acting too much like a Unix
shell, stripping the backslashes before calling the actual
command.  Try "echo copy %1 %2 > copy.bat" and make again, to
see if this is going to work.

George

-- 
Random project update:
09/05/2000: Libnet 0.10.8 uploaded -- a few bugfixes
        http://www.canvaslink.com/libnet/  (try changes-0.10.8.txt)



Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/