Can amu deal with paths to c. and o. or just in the CSD?
Alan Williams (2601) 88 posts |
I am trying in import a make file for the Dropbear SSH client. It builds under GCCSDK ok but ultimately I want the code in a module so I am moving it to the NutPI DDE CC 5.76. The make file list hundreds of objects at least three or folders deep. It seems that amu and cc don’t have a grip on this. I get Compilation aborted couldn’t write file ‘o.whirltab’ But src.hashes.whirl.o does exist. I get the same impression from amu,that it doesn’t understand that its rules have to work at the end of a path. Is there a better ‘make’ that will work with Norcoft or do I parse all the object paths out of the make file and script a call to CC for each, doing make out of a job? or create a make file for every folder? then how would I make them all run? Many thanks |
Paolo Fabio Zaino (28) 1882 posts |
@ Alan
You can actually build modules for RISC OS using GCC, I shared how to in another thread. If you have !GCC for RISC OS there is some documentation inside it in !GCC.Docs However if you want to use DDE make sure that your C code is not using any GNU C and it’s pure ANSI C (C99 now works really well on DDE and they also started to add support for C11). Also make sure your code doesn’t have any dependencies on UnixLib which in both cases can cause problems when you want to build a module out of your code.
So I would suggest to start from creating a TaskObey script that makes sure to dir on the directory you want to use as build root for amu, so something like: Dir <Obey$Dir> WimpSlot -min 1024k amu blah blah Note: the wimpslot is to make sure there is enough memory for amu and cc. Then in the amu file you can use the “@” symbol to refer to the actual root position for each file, this works on both GCC and CC, so should keep compatibility on both.
Finally, this is an error you get when cc cannot find the “o” directory in the destination path, so make sure you specify the destination path with something like @.o.whiltab in the cc command and followed the procedure above to make sure @ points at the right place and, obviously, you’ve created the “o” directory before starting to compile your code. Hope this helps! :) |