[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: Newbie problems?
From: |
Andy Voelkel |
Subject: |
RE: Newbie problems? |
Date: |
Sun, 9 Nov 2003 23:33:00 -0800 |
> >> %.obj:%.c
> >> cl500 $(COPT) -fr$(OBJDIR) -i\progs\c54x\ -cg -i$(INCDIR) $<
>
> gc> I'll guess that $(OBJDIR) uses backslash '\' rather than forward
> gc> slash '/'. Maybe make is trying to interpret '\' as a *nix escape
> gc> character instead of a msw path separator. Try using forward
> gc> slashes instead--many msw compilers accept that.
>
>GNU make doesn't interpret any slashes at all, either forward or
>backslashes. The only character that is special to make (in a command
>script) is "$".
Right, that is how it behaves for me. Backslashes or forward slashes,
makes no difference.
>However, it's still a very good idea to use forward slashes in all make
>commands. As you point out, almost all Windows programs ack slashes.
Right.
>Problems like yours are, in my experience, most often related to what
>shell make is invoking to run the commands. Be sure you read the
>README.W32 file that comes with GNU make and understand how your
version
>was built and what shell it will use. I don't have a Windows system
>anywhere to test with so that's about all the advice I can give :(.
>From what I've been able to gather (from the readme and from another
knowledgable friend), the problem is most likely the method that GNU
make uses to fire up a shell and execute its commands. Other make
programs that are more Windows-friendly don't seem to have this problem.
Same machine environment, same tools, almost identical makefiles.
Personally, I consider this a shortcoming of GNU make stemming from
unix-centricity. Someone suggested this is because GNU make tries to use
a CreateProcess() instead of a System() call. Whatever it is, it is too
bad. It makes it harder for me to advocate a switch to GNU make for my
group.
I wish I could figure a way to control how shells and commands are
invoked without messing with make's source code or such mucking around.
Any pointers to any tips on this?
- Andy Voelkel