iamleeg / Amiga-Smalltalk

An implementation of Blue Book Smalltalk-80
European Union Public License 1.2
17 stars 0 forks source link

file renames and (A)makefile to work on AmigaOS 3.1(.4) #14

Closed acf closed 4 years ago

acf commented 4 years ago

Finally got a build working on my real amiga after some faffing about. turns out the filename of the ObjectMemory_MarkingCollector.* was too long and the C and H were overwriting each other making for weird build errors. Also the SOURCE_FILES line in the makefile was too long leading to it being mysteriously truncated when I edited the file in Ed. Might be worth splitting SOURCE_FILES up into OM_FILES and INTERP_FILES groups.

Not a fan of the multiple makefiles, but can't see an easy alternative. Wonder if there's a way to have the "file list" part be shared somehow. The amiga one focuses on the .o files so that amake will compile each file separately and then link (for memory reasons). When I did it a different way a single VC tried to compile all the C files and link them in one invocation and memory became an issue.

So anyway, here is a rename of those files and a working makefile (tagged with amiga.acf) I can use with AMake and VBCC on my A1200/030 running WB3.1.4.

iamleeg commented 4 years ago

Could we use a configure script perhaps to parametrise the makefiles instead of keeping all of them?

iamleeg commented 4 years ago

Thinking harder about the problem, can we keep the AROS mmakefile.src as canonical and generate other build files from that? I think even template filling would be sufficient.

acf commented 4 years ago

I am absolutely up for something like that. Only caveat is that I really have to be able to generate the Amiga makefile on the amiga if we’re not going to check it in and that will limit the options for a generator.

I could stick my own little manual custom make files into vendor or something while we think about it if that’s cleaner.

iamleeg commented 4 years ago

I've accepted the PR because the file rename improves building on Amiga. I agree that we have to be able to build the Amiga project entirely on Amiga. I'm not particularly interested in writing a script that works both in Amiga and Unix, so maybe there's one for Amiga (choose compiler, maybe options like codegen flags) and one for Unix (just generating an axruntime-supporting makefile from mmakefile.src).

acf commented 4 years ago

Oh this is a good idea. It would probably be easy enough for me to gen the Mac/vbcc one on a mac. I'm happy to manually maintain the amiga one for now since I seem to be the only one building on a classic Amiga :-)

Happy again to move or rename my personal makefiles into vendor/acf or something like that until they're more useful... the rename PR shouldn't need to accept the makefiles.....

Or maybe I should just rename them... there's nothing acf-specific about them other than I don't have Aros/GCC anywhere - its just a standard VBCC and NDK install on both platforms. and I only picked VBCC over GCC because it was easy to be consistent across Mac+AmigaOS.

iamleeg commented 4 years ago

yup, I'm happy to remove your initials from the Makefile. I mostly use Mac too (I run Ubuntu in a VM to test with axruntime) so I'm also interested in switching to your vbcc Makefile process.

acf commented 4 years ago

OK I'll PR that asap.