Date: Thu, 28 Aug 1997 12:53:36 +0300 (IDT) From: Eli Zaretskii To: Davin Pearson cc: djgpp AT delorie DOT com Subject: Re: Why does make ignore SHELL=bash? In-Reply-To: <5u0td1$k86$1@cantuc.canterbury.ac.nz> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Precedence: bulk On 27 Aug 1997, Davin Pearson wrote: > The problem is that DJ's make utility seems to ignore the > SHELL=bash declaration and prevents me from using all of bash's > cool features. It also makes it a royal pain converting UNIX > makefiles to DJGPP. Unix-like shells (such as Bash) *are* supported in the port of Make 3.75 (get v2gnu/mak375b.zip from the DJGPP archives). After that, you need to do this: set SHELL=c:/djgpp/bin/bash.exe make (change c:/djgpp/bin to the directory where you put bash.exe). That's it! The Unix Makefiles should now work because Make will call Bash when it sees a shell feature used in a command. Alternatively, if the Makefile says "SHELL = /bin/sh", you need to make a ``symlink'' to bash.exe called sh.exe and place them both somewhere on your PATH, like so: cd c:\djgpp\bin stubify -g sh.exe stubedit sh.exe runfile=bash Of course, you will also need to install the ports of Unix programs that are called by the Makefile, such as cp, rm, cat, echo, sed etc. All of them are available in the v2gnu directory from the DJGPP archives (get fil316b.zip, txt122b.zip, shl112b.zip, sed118b.zip). Some Makefiles need cmp; you can get it from the Diffutils package, v2gnu/dif271b.zip. Additional info about Unix shell compatibility can be found in the README.DOS file in the Make distribution. Due to a sad omission, this file is only in the source zip, so you will need to download mak375s.zip as well :-(. (The next version of GNU Make will document the DOS-specific aspects in the on-line manual.) If the above setup doesn't work for you, please post the details (Makefile fragments, error messages, etc.). This method is in use for the past several months by several heavy DJGPP users, and it works. We were able to build complex GNU packages using the original Makefiles.