Mail Archives: djgpp/1997/08/28/05:56:29
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.
- Raw text -