Date: Fri, 19 Dec 2003 00:04:01 EST-10EDT,10,-1,0,7200,3,-1,0,7200,3600 Subject: [UnixOS2_Archive] No. 273 ************************************************** Thursday 18 December 2003 Number 273 ************************************************** Subjects for today 1 Re: Make bugs? : Andreas Buening 2 Re: Make bugs? : Dave and Natalie" 3 Re: Strange cmd.exe behaviour (was: Make bugs?) : Andreas Buening **= Email 1 ==========================** Date: Wed, 17 Dec 2003 22:22:42 +0100 From: Andreas Buening Subject: Re: Make bugs? Dave and Natalie wrote: > > Seems make 3.76 to make 3.79.2a1r2 (newest I have) have problems with capital letters in a cmd.exe as > shell setting > eg > X:\usr\src\gnuplot\src >make -f ../config/makefile.os2 clean > IF EXIST config.h DEL config.h > make: IF: Command not found > make: spawn: No such file or directory > > This works if IF EXIST and DEL are lower cased. It also works if make 3.75 is used. In the gnuplot thread you > can see some sed errors and I even had gcc not find foo.RES but renaming to foo.res worked. Confirmed and (hopefully) fixed: http://unix.os2site.com/sw/pub/binary/make/make-3.81rc1-r3-bin.zip Bye, Andreas **= Email 2 ==========================** Date: Wed, 17 Dec 2003 16:16:13 -0800 From: "Dave and Natalie" Subject: Re: Make bugs? On Wed, 17 Dec 2003 22:22:42 +0100, Andreas Buening wrote: >> can see some sed errors and I even had gcc not find foo.RES but renaming to foo.res worked. > >Confirmed and (hopefully) fixed: >http://unix.os2site.com/sw/pub/binary/make/make-3.81rc1-r3-bin.zip Make still is having problems with this sed command X:\usr\src\gnuplot\src >make -f ../config/makefile.os2 Building allterm.h echo T=..\term\ | tr \\ / >4alltrm.sh grep "(T)" makefile.all | \ sed "s/CORETERM = /CORETERM=%/;s/xlib.trm/xlib.trm%/" | \ sed "s/%/\""/g;s/(/{/g;s/)/}/g" >>4alltrm.sh sed: -e expression #1, char 11: Unknown option to `s' Process terminated by SIGPIPE make: *** [..\docs\allterm.h] Error 1 Whereas using make 3.75 gives X:\usr\src\gnuplot\src >make3_75 -f ../config/makefile.os2 "Building allterm.h" echo T=..\term\ | tr \\ / >4alltrm.sh grep "(T)" makefile.all | \ sed "s/CORETERM = /CORETERM=%/;s/xlib.trm/xlib.trm%/" | \ sed "s/%/\""/g;s/(/{/g;s/)/}/g" >>4alltrm.sh bash ./4alltrm.sh >..\docs\allterm.h .... It appears to be the equals sign that make is stumbling over. Dave New Email Address - please update your Address book dave_yeo at paralynx.com **= Email 3 ==========================** Date: Thu, 18 Dec 2003 12:11:11 +0100 From: Andreas Buening Subject: Re: Strange cmd.exe behaviour (was: Make bugs?) Dave and Natalie wrote: > > On Wed, 17 Dec 2003 22:22:42 +0100, Andreas Buening wrote: > > >> can see some sed errors and I even had gcc not find foo.RES but renaming to foo.res worked. > > > >Confirmed and (hopefully) fixed: > >http://unix.os2site.com/sw/pub/binary/make/make-3.81rc1-r3-bin.zip > > Make still is having problems with this sed command > X:\usr\src\gnuplot\src >make -f ../config/makefile.os2 > Building allterm.h > echo T=..\term\ | tr \\ / >4alltrm.sh > grep "(T)" makefile.all | \ > sed "s/CORETERM = /CORETERM=%/;s/xlib.trm/xlib.trm%/" | \ > sed "s/%/\""/g;s/(/{/g;s/)/}/g" >>4alltrm.sh > sed: -e expression #1, char 11: Unknown option to `s' > > Process terminated by SIGPIPE > make: *** [..\docs\allterm.h] Error 1 > > Whereas using make 3.75 gives > > X:\usr\src\gnuplot\src >make3_75 -f ../config/makefile.os2 > "Building allterm.h" > echo T=..\term\ | tr \\ / >4alltrm.sh > grep "(T)" makefile.all | \ > sed "s/CORETERM = /CORETERM=%/;s/xlib.trm/xlib.trm%/" | \ > sed "s/%/\""/g;s/(/{/g;s/)/}/g" >>4alltrm.sh > bash ./4alltrm.sh >..\docs\allterm.h > ... > > It appears to be the equals sign that make is stumbling over. Okay, that shouldn't be. Another question: Do you think sed "s/%/\""/g..." is correctly quoted? There seems to be an unmatched double quote. Btw, is there any documentation of how cmd processes strings? c:\bin\echo.exe .\"foo bar" gives ."foo bar echo .\"foo bar" gives .\"foo bar" dir .\"foo bar" shows directory 'foo bar' ls.exe .\"foo bar" complains ls.exe: ."foo: No such file or directory ls.exe: bar: No such file or directory The builtin "echo" command seems to print a line as is: (" -> ", \" -> \") Other builtin commands like "dir" remove double quotes and ignore backslash-escaped quotes like \": (" -> , \" -> \") For external commands double quotes are removed and backslash- escaped quotes are supported: (" -> , \" -> ") Is there a phisosophy behind this? And, is this behavour the same on all OS/2 versions? Bye, Andreas