drk@athena.mit.edu (David R Kohr) (05/03/89)
I have been comparing the "make" program that comes with Borland Turbo C 2.0 with the "make" on Sun Unix (v. 3.5) and have found it to be largely incompatible. Can anyone recommend a "make" that is very closely compatible with Unix "make"? I'd prefer something that's public-domain or shareware, but I might consider commercial offerings as well. (The chief incompatibilities that I've encountered are the syntax for file inclusion, lack of built-in implicit rules like ".c.obj" in Borland's make, a serious bug in Borland's make involving the definition of macros within !include'd files, and the handling of shell commands--especially cd--within action lines.) David R. Kohr, M.I.T. Lincoln Laboratory email: KOHR@LL.LL.MIT.EDU (preferred) OR drk@athena.mit.edu phone: (617)981-0775 (work), (617)527-3908 (home)
brown@astroatc.UUCP (Vidiot) (05/03/89)
In article <11053@bloom-beacon.MIT.EDU> drk@athena.mit.edu (David R Kohr) writes:
<I have been comparing the "make" program that comes with Borland
<Turbo C 2.0 with the "make" on Sun Unix (v. 3.5) and have found it
<to be largely incompatible. Can anyone recommend a "make" that is
<very closely compatible with Unix "make"? I'd prefer something
<that's public-domain or shareware, but I might consider commercial
<offerings as well. (The chief incompatibilities that I've encountered
<are the syntax for file inclusion, lack of built-in implicit rules
<like ".c.obj" in Borland's make, a serious bug in Borland's make
<involving the definition of macros within !include'd files, and
<the handling of shell commands--especially cd--within action lines.)
Check your local BBS for NDMAKE. You can get it from BROWNBULL,
(608) 274-9275 24hrs/day, 300-1200-2400 w/MNP. Details about OPUS make,
are attached below.
OPUS Software
presents
OPUS MAKE version 5.0
_I_n_t_r_o_d_u_c_t_i_o_n
In an effort to provide better products and service, the
OPUS Software company has been created. The first offering is an
updated version of the shareware program NDMAKE. OPUS MAKE ver-
sion 5.0 is written by the same author as is NDMAKE. The name
change was necessary to distinguish the shareware from the com-
mercial version. In the rest of this document, the name MAKE
will refer to this version of OPUS MAKE.
_F_e_a_t_u_r_e_s
MAKE is available in two packages: a professional version
and a somewhat scaled down personal version. MAKE includes all
the features of NDMAKE 4.5 with the addition of:
o+ Conditional directives. _i_f/_e_l_s_e/_e_l_i_f/_e_n_d_i_f directives provide
both read-time and run-time control in MAKE. If the condi-
tional starts in the first column of the makefile, it is in
effect when the makefile is read in. If the conditional is
part of the set of shell lines associated with updating a tar-
get, the conditional is evaluated at run-time. An example of
these is a compile-edit loop which will be shown a little
later.
o+ Loop directives. _f_o_r_e_a_c_h/_w_h_i_l_e/_b_r_e_a_k/_c_o_n_t_i_n_u_e/_e_n_d directives
provide iteration capability to MAKE. Basically, they allow
you to do shell lines a controllable number of times.
o+ Include and error directives. These allow MAKE the ability to
read in other files and to abort the make under user control.
o+ Internalized redirection. Support for all methods of DOS
redirection (except pipes) have been internalized into MAKE.
As well, MAKE supports the additional modes >& and >>& for
redirecting standard error messages. In conjunction with con-
ditional and loop directives, it is possible to redirect error
messages into a file, and depending on the exit status of the
compile (available with the _s_t_a_t_u_s macro), invoke an editor or
remove the error file.
Here is an example of the use of several of the aforementioned
features in an automatic compile-edit loop.
CV =
!if $(CV) # if CV is not null we use CodeView
CFLAGS = -Od -Zi
!else
CFLAGS = -Ox
!endif
# A default rule for .c -> .obj files. If the compile is successful,
# break out of the enclosing loop (removing the error file). Otherwise,
# startup the BRIEF editor and use the next_error macro to find the
# first error in the source file. Note the use of >& redirection to
# redirect error messages from the compiler into the error file.
.c.obj:
!while 1 # Loop forever
- cl ${CFLAGS} -c $< >& $*.err
!if $(status) == 0
!break# quit if no error
!endif
b -mnext_error $<# else start up BRIEF
!end
rm $*.err
o+ Small and large model executables. The small model executable
has a limit of 64K of data, which may not be enough for large
or complicated makefiles. The large model executable supports
up to 1M of data.
o+ Update to an OS/2 version for a nominal charge as soon as we
have one. We will be fully supporting OS/2.
The following are available with the professional version:
o+ Reduced memory usage. MAKE uses a paging scheme to reduce its
memory usage from about 45000 bytes down to 2000 bytes. This
makes it feasible to run MAKE from inside an editor such as
BRIEF without running into memory shortage problems. This
feature is crutial for memory hunger applications.
o+ Polytron PVCS support. MAKE can read Polytron PVCS log files
to determine the time and date of files. This ensures the
correct time will be used when comparing files with sources
stored in the log files.
o+ Automatic makefile generator. To ease the generation and
maintenance of makefiles, the MKMF program is also included.
This collects a list of source files (you determine what it
considers to be sources) from your working directory, option-
ally scans them for include files and writes out an updated
makefile with several macros corrected (most notably, OBJS).
MKMF also generates a list of dependencies of object files on
source files, including include files.
o+ "Maximum work" flag. In addition to the -k flag (keep going,
ignoring errors), there is a -K flag which is slightly dif-
ferent and more useful. MAKE keeps track of which targets had
errors and doesn't try to make targets which depend on these
targets. -K allows the most amount of work to be done safely.
It is perfectly suited for long, unattended compilations.
o+ Directory caching. For a large numbers of files caching
greatly speeds MAKE's lookup process. Caching is controlled
by a command line flag.
_C_o_s_t
The professional version of OPUS MAKE is available for $79, while
the personal version costs $49. Sales tax of 6 1/2 per cent must
be added for California residents. Each order is subject to a $3
shipping and handling fee. We have volume discounts for profes-
sional MAKE. Please contact us for details.
There is a 30-day money back guarentee. If you aren't happy with
the product, send it back to us and we will return your money.
_U_p_g_r_a_d_e _p_o_l_i_c_y
In recognition of its birth as the shareware product NDMAKE, OPUS
MAKE is available as an upgrade for registered owners of NDMAKE.
The upgrade cost for the professional version is $44, for the
personal version is $14. This is subject to California sales tax
of 6 1/2 per cent and a $3 shipping and handling fee. Volume
discounts apply for upgrading to the professional version.
_O_r_d_e_r_i_n_g _d_e_t_a_i_l_s
To place an order, contact us at:
OPUS Software
1468 - 8th ave
San Francisco CA, 94122
phone: (415) 731-3108
(this number may change)
If you can't reach us at that number and you have any questions,
contact us at:
Don Kneller
John Thomason
(415) 476-8291 (days) 759-8347 (home)
--
harvard\ att!nicmad\
Vidiot ucbvax!uwvax..........!astroatc!brown
rutgers/ decvax!nicmad/
ARPA/INTERNET: brown%astroatc.UUCP@spool.cs.wisc.edu
hollen@eta.megatek.uucp (Dion Hollenbeck) (05/04/89)
From article <11053@bloom-beacon.MIT.EDU>, by drk@athena.mit.edu (David R Kohr): > I have been comparing the "make" program that comes with Borland > Turbo C 2.0 with the "make" on Sun Unix (v. 3.5) and have found it > to be largely incompatible. Can anyone recommend a "make" that is > very closely compatible with Unix "make"? I'd prefer something > that's public-domain or shareware, but I might consider commercial > offerings as well. (The chief incompatibilities that I've encountered > are the syntax for file inclusion, lack of built-in implicit rules > like ".c.obj" in Borland's make, a serious bug in Borland's make > involving the definition of macros within !include'd files, and > the handling of shell commands--especially cd--within action lines.) > David R. Kohr, M.I.T. Lincoln Laboratory > email: KOHR@LL.LL.MIT.EDU (preferred) OR drk@athena.mit.edu > phone: (617)981-0775 (work), (617)527-3908 (home) NDMAKE by Don Kneller is wonderful and is seriously compatible with UNIX make. I have ported many makefiles (very complicated) over from UNIX (I do cross-compilations there most of the time) to my PC and use NDMAKE. I have not had to change a single line of code in the make file to be compatible. NDMAKE is shareware and is worth more than the $35 which I was asked to pay for it. It has many additional features which I wish were in UNIX make. The last time I had an address for Don it was: kneller@ucsfcgl If you cannot reach him in this way, I will look through my archives at home and dredge a USNAIL address for him. Dion Hollenbeck (619) 455-5590 x2814 Megatek Corporation, 9645 Scranton Road, San Diego, CA 92121 seismo!s3sun!megatek!hollen ames!scubed/