#GNU 'make'
8 messages in this thread
You should take a look at my RMake system. It's up on BIX, but I suppose I
should upload it here, too.
Would your RMake sytem let me define how and what to build?
SAS now has a simple make make that seems good enough, after I fixed it,
for dependencies but it assumes that you want everything in the directory
to be linked into an executable.
So for me I have to edit the generated make file to get it to make what I
want. I'm building a product that will have several executables which
have shared code that may or may not end up in a .library. I have
multiple directories and some are for the shared code which for now, I'm
putting into .lib's files with oml. In the other directories I have the
executables that need to be linked with the .lib files. So for me, the
SAS make make output is only good for the dependencies.
//
\X/ Amiga or bust! Gary Bonnstetter, Bonnsoft
Yes it will. In fact, it sounds perfect for what you want. It does not use
makefile per-se, but it has discriptor files that you can configure anyway you
want. In fact, you can have multiple configurations on line, and maintain
several compiled configurations at once. (e.g. you can have your code compiled
for 68000, 68030 no FPU, and 68040 w/FPU (and a debug configuration!) all at
once). RMake keeps the object files for different configurations in different
subdirs to pull this off.
Give me a couple of days; I'll see about getting a version uploaded here.
Is the latest version of RMake 3.08? I can download that version of RMake
from BIX, which is still cheaper for me then CompuServe will be next
month, but not by much anymore. Others would probably like it uploaded
here though.
And do use a better description then you have on BIX. 😉 That says what
is new with version 3.08, which is fine, but very little about what RMake
is. You may wany to get that updated. I had been looking for a better
make system a few months ago but I didn't want to do a download of nearly
170K when I couldn't tell what I was getting.
//
\X/ Amiga or bust! Gary Bonnstetter, Bonnsoft
No. The most recent one I have not released yet. Nor have I had a chance to get
it ready, either, due to inclement weather in my area (SNOW!!!!??&!&&!)
What I think I might do is release the Amiga version as "shareware",
and make a PC commercial version (and charge $$$$! 🙂
It'll be almost a straight port once I do a ReadArgs() replacement and
rewrite the darn directory routines.
Another annoyance with the PC is that you can only have so many files
open at once, and I took the liberty to open all the files and keep
them open for multiple passes (at least for the AutoDoc portion). So
you'll have to set your 'maxfiles' high enough. I might work around
this. But this dosen't affect much of the RMake system.
If you're talking about the MKMK utility, you can optionally specify the list
of files to be linked into the executable. The default is "all C and C++
source files in the directory", but you can change that.
Of course, you'd end up with a different makefile for each project, but
combining them would be relatively straightforward.
–Doug
I have three problems with mkmk as it is.
– In some directories I want to make a library file with oml and mkmk
seems to only want to make an executable. So I have to do editing of the
smakefile.
– In the directries I want to make an executable in, I also need to
include some of the libraries I made in the other directories. So I have
to do editing of the smakefile.
– I also like to have alternate targets in the same makefile to do things
like prototype generation and delete all generated files. Not essential
but I'm used to it. So more editing to do.
What I would like mkmk to do, would be to let me specify a file that had
my unique make stuff in. Then mkmk would use that in place of the
default link that mkmk generates. Then I could use mkmk without doing any
editing most of the time, which is what a make file generator needs to do
so it will be used used often.
//
\X/ Amiga or bust! Gary Bonnstetter, Bonnsoft
RMake will allow you to do just that. It's loosely object-oriented so
that you can specify a general setup, and make local changes on a
project-by-project basis.