[comp.sys.ibm.pc] MKS Make

mshiels@tmsoft.uucp (Michael A. Shiels) (04/21/89)

People interested in a reasonably priced MAKE should contact

OPUS Software (sorry don't have the address handy since I just finished
packing for a move)  BUT I WILL POST IT IN A FEW DAYS.

They have a very excellent make which is compatable with standard
makes but adds functionality for DOS users.  

I am just a very very satisfied user of OPUS MAKE.

rkl1@hound.UUCP (K.LAUX) (04/21/89)

In article <LFK.89Apr20131438@mbio.med.upenn.edu>, lfk@mbio.med.upenn.edu (Lee Kolakowski) writes:
| 
| 
| I posted a note asking about MKS Make.  I was less than clear about
| what I wanted to know, also I got the first name of author of NDMAKE
| wrong (Sorry Don Kneller! :->)
| 
| I want to know the following:
| 
| 	1) Does it work with shell so that I can have parts of a 
| 	script in may makefile, or does it use the dos exec function?

	Yes, it does work with the MKS Korn Shell.
 
| 	2) Does it do anything radically different and better than 
| 	NDMAKE.

	Don't know.  Never used NDMAKE before.
 
| 	3) Is it possible to be running the MKS ksh, then Jove
| 	then type M-x compile then have make run than have MS-C
| 	run and have enough space? Supposedly OPUS will do that.

	Don't know.  How much Memory do you have?
 
| 	4) What are some of the other features of the make?

	- Allows colons in filenames for Disk Drive designation
	- Has :: for Targets with more than one recipe
	- Very sophisticated Macro Facility
		- allows $(name) constructs within other $(name) contstructs
			CC_TURBO = tcc
			CC_MS = msc
			a.obj:
				$(CC_$(COMP)) -c ....
			allows you to specify to invoke Make as follows:
				make "COMP=MS"
			and you get the MSC compiler instead of Turbo C
		- allows user to modify the way Macros get expanded
			FILE = /usr/longpath/.../program.c
			$(FILE:b)	is	program
			$(FILE:f)	is	program.c
			$(FILE:db)	is	/usr/longpath/.../program
		- also has string substitution and tokenization
			LIST = a b c
			$(LIST:t"+"	is	a+b+c
		- allows constructs such as
			prefix{token1 token2 ...}suffix
			{main fn1 fn2}.c	is	main.c fn1.c fn2.c
	- Has text diversion capability as in
		link <@<
		....
		<

	- Comes with: ar, cc, cp, diff, echo, glob, grep, help, lc, ls, make,
		mv, nm, rm, size, strip, switch, touch, unstrip commands

	- Comes well documented with Manual of 200+ pages, with Tutorial, User,
		and Reference sections
			 
| 	5) There is some info about ar. Is the output of the ar .lib format?

	Yes, ar maintains archive libraries of Intel Object Module Format files.

| 	6) Is it worth the $149.00 as compared to OPUS?

	Don't know capabilities of OPUS.  You 'make' the call.
| 
| Frank Kolakowski 
| 

--rkl

(an Owner of MKS Make, but in no way affiliated with Mortice Kern Systems)

wheels@mks.UUCP (Gerry Wheeler) (05/02/89)

The original article was posted some time ago.  We wanted to see what
other responses there were before jumping in, so here goes... 

In article <LFK.89Apr20131438@mbio.med.upenn.edu>,
lfk@mbio.med.upenn.edu (Lee Kolakowski) writes:
> ... about MKS Make ...
> 
> 	1) Does it work with shell so that I can have parts of a 
> 	script in may makefile, or does it use the dos exec function?

Both.  If the command is simple, make will run it directly.  If there
are "magic" characters in the command, it calls either our Korn shell or
command.com.  Magic characters are defined in the startup file make
uses, but usually include redirection, quotes, pipes, etc. 

> 	2) Does it do anything radically different and better than 
> 	NDMAKE.

Sorry, I don't know enough about ndmake to say for sure.  I would
venture that ours can do the things most other makes can do.  It can be
customised by changing the startup file that defines the implicit rules. 
(Several examples are provided.)

> 	3) Is it possible to be running the MKS ksh, then Jove
> 	then type M-x compile then have make run than have MS-C
> 	run and have enough space?

Don't know for sure, but I doubt it.  Our make is fairly small, but it
doesn't swap itself out to make more room. 

> 	4) What are some of the other features of the make?

It knows how to pass long command lines to other MKS utilities.  It has
an enhanced syntax to let you specify that a response file should be
created.  The startup files lets you tailor it for any C compiler,
version control system, librarian, etc. 

> 	5) Is the output of the ar .lib format?

Yes.

> 	6) Is it worth the $149.00 as compared to OPUS?

Only you can decide that for sure. :-)

The package also includes a generic cc command.  Cc reads a script to
decide what to do based on the command options you pass it.  (The script
is really a small language in its own right.) We provide scripts for
several common compilers.  This way, you can call cc with Unix-standard
options, and let cc translate them to whatever your local compiler
needs.  No need to strain the brain remembering options.
-- 
     Gerry Wheeler                           Phone: (519)884-2251
Mortice Kern Systems Inc.               UUCP: uunet!watmath!mks!wheels
   35 King St. North                             BIX: join mks
Waterloo, Ontario  N2J 2W9                  CompuServe: 73260,1043

kneller@cgl.ucsf.edu (Don Kneller) (05/05/89)

In article <LFK.89Apr20131438@mbio.med.upenn.edu> lfk@mbio.med.upenn.edu (Lee Kolakowski) writes:
>
>
>I posted a note asking about MKS Make.  I was less than clear about
>what I wanted to know, also I got the first name of author of NDMAKE
>wrong (Sorry Don Kneller! :->)
That's OK.  I have a brother named Doug.

>
>I want to know the following:
>
>	1) Does it work with shell so that I can have parts of a 
>	script in may makefile, or does it use the dos exec function?
>
>	2) Does it do anything radically different and better than 
>	NDMAKE.

I think the big difference is MKS Make is more attuned with MKS shell.
We (OPUS Make) are more like a UNIX make running under MSDOS (and OS/2)
with some higher level support that looks like a shell (conditionals,
foreach and while).  We will be adding MKS shell support and MKS RCS
support in the near future, but we don't have it yet.

>
>	3) Is it possible to be running the MKS ksh, then Jove
>	then type M-x compile then have make run than have MS-C
>	run and have enough space? Supposedly OPUS will do that.

Yes, OPUS does run in *at most* 3K of memory with a command line flag.
So, if you can compile from inside of your editor, you will be able
to "make" from inside of it too, which is really what you want to do
if you're maintaining a project.

>
>	4) What are some of the other features of the make?

I'll mention some of our features (at the risk of plugging).
	- automatic response files for link and lib (and link and lib
	  compatibles (TLINK, OPTLINK, OPTLIB) to overcome the DOS
	  command line limits.
	- multiple directory support
	- POLYTRON PVCS logfile support (Burton Systems TLIB and
	  MKS RCS pending)
	- enhanced I/O redirection ala OS/2 under MSDOS
	- OS/2 version included

One major difference is that we have an automatic dependency generator
which snoops through your source files to find includes and deposits
the information in your makefile.

>	5) There is some info about ar. Is the output of the ar .lib format?

Our version 5.20 supports timestamps inside of LIB files in an OPTLIB
compatible format.  So you don't have to have separate OBJ files and
duplicates inside of the library.

>	6) Is it worth the $149.00 as compared to OPUS?

If you need the MKS shell compatibility now, I would say yes.
If not, then it is up to you.  We have some of the capability of the shell
builtin to our product.  Our dependency generator is a nice addition.

-----
	Don Kneller
UUCP:		...ucbvax!ucsfcgl!kneller
INTERNET:	kneller@cgl.ucsf.edu
BITNET:		kneller@ucsfcgl.BITNET

SMAIL:		OPUS Software
		1032 Irving Street #439
		San Francisco, CA 94122
		(415) 664-7901 (OPUS)  476-8291 (my other job)
-----
	Don Kneller
UUCP:		...ucbvax!ucsfcgl!kneller
INTERNET:	kneller@cgl.ucsf.edu
BITNET:		kneller@ucsfcgl.BITNET