Subject: Re: question my sh commands in makefile works on linux but not on cygwin
From: "Gerrit P. Haase" <[email-masked]>
To: "Earl Mitchell" <[email-masked]>
Cc: [email-masked]
Date: Sat, 15 Jun 2002 10:11:57 +0200

Hallo Earl,

Am Samstag, 15. Juni 2002 um 09:31 schriebst du:

>> >Need help with following problem.
>> >I have very simple makefile with following rule:
>> >
>> >test:
>> >        @echo "this is a test"
>> >        @if [ "1" = "1" ] ; then \
>> >                echo "working" ; \
>> >        fi ;
>> >
>> >If I do a make on linux I correctly see ...
>> >
>> >this is a test
>> >working
>> >
>> >But in cygwin when I make using same makeifle I see this ...
>> >
>> >"this is a test"
>> >"1" was unexpected at this time.
>> >make.exe: *** [test] Error 0x1
>> >
>> >The MAKE_MODE is set to unix. Does anybody
>> >know why the make is failing to parse this? I checked
>> >the newsgroup and manual don't see what is causing
>> >this to fail.

>> I was going to say that it was a bash vs ash issue but it works fine
>> here for me using /bin/bash or /bin/sh (ash).  Maybe you want to look
>> at the results of cygcheck -s -r -v if you haven't already.

> Here's the dump from cygcheck. I don't see anything wrong?

You have two different cygwin DLL's, see below:

> But there's got to be something setup wrong here? /bin/sh commands should
> always work in makefiles?

[...]
> Found: C:\cygwin\bin\ls.exe
> Found: c:\Tornado\host\x86-win32\bin\make.exe

This is not the current version of make.

>     Cygwin DLL version info:
>         DLL version: 1.3.10

This is the current DLL.

>         DLL epoch: 19
>         DLL bad signal mask: 19005
>         DLL old termios: 5
>         DLL malloc env: 28
>         API major: 0
>         API minor: 51
>         Shared data: 3
>         DLL identifier: cygwin1
>         Mount registry: 2
>         Cygnus registry name: Cygnus Solutions
>         Cygwin registry name: Cygwin
>         Program options name: Program Options
>         Cygwin mount registry name: mounts v2
>         Cygdrive flags: cygdrive flags
>         Cygdrive prefix: cygdrive prefix
>         Cygdrive default prefix:
>         Build date: Mon Feb 25 11:14:34 EST 2002
>         Shared id: cygwin1S3

>   386k 1998/06/17 c:\Tornado\host\x86-win32\bin\cygwinb19.dll - os=4.0
> img=1.0 sys=4.0
>                   "cygwinb19.dll" v0.0 ts=1998/2/25 2:22

What is this dll?  You should never use more than one Cygwin DLL.
Your make uses the old DLL but you are in shell started with
cygwin1.dll,  obviously this doesn't work.

[...]
> libreadline5        4.2a-1
> login               1.4-3
> ncurses             5.2-8
> pcre                3.7-1
> readline            4.2a-1
[...]

You have no make installed.
Remove all the old stuff and install the latest versions of all the
tools you need.

Gerrit
-- 
=^..^=

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Bug reporting:         http://cygwin.com/bugs.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/