Okay, I think it's time to abstract out how the build system's handled a 
bit. I'm not sure how much we need, but filling in a template makefile's 
not going to cut it, I think.

We've a couple of things we need to do generically:

*) Compile C code to an object module and put that module in a library
*) Link an executable
*) Link a shared library with a list of exported routines (Yes, we are 
*not* going to export everything)
*) Delete things for cleanup
*) General "X depends on Y, run perl program Z to do it" things
*) Run build in directory X

All filenames with paths can be specified in Unix format, but need to go 
through a to_native routine that puts them in platform-native format. 
(Generally just an issue on VMS and MVS, alas, but I think we might have 
issues on Win32)

Of course, how you invoke the compiler, librarian, linker, linker for 
shared libraries, delete files, and actually fire off a make is horribly 
platform-dependent, as to be otherwise would make things too easy for us.

Any takers? The source dependency files don't have to look anything like a 
Makefile if you don't want 'em to...

                                        Dan

--------------------------------------"it's like this"-------------------
Dan Sugalski                          even samurai
[EMAIL PROTECTED]                         have teddy bears and even
                                      teddy bears get drunk

Reply via email to