Instructions for compiling Sozobon C on Sun's for use as a crosscompiler. ========================================================================= = 1. Obtain sources for Sozobon C V1.2., these can be found at atari.archive.umich.edu and panarthea.ebay.sun.com among others. 2. Obtain dlibs.a, libm.a or any other ST/Alcyon format libraries you wish to use. See above ftp sites for these, as well. 3. Create the following directory structure: (you can cut and paste this as a shell script if you'd like.) mkdir mkdir mkdir mkdir mkdir mkdir mkdir mkdir mkdir mkdir mkdir sozobon/ sozobon/bin sozobon/include sozobon/include/sys sozobon/lib sozobon/src sozobon/src/hcc sozobon/src/jas sozobon/src/tools sozobon/src/ld sozobon/src/top 5. Move the sozobon sources to the appropriate directories: all of the .h files associated with the libraries go in the include directory. all .c files go in the appropriate tool directory under the src tree. all .a files and the dstart.o file go under lib 6. unpack the archive. 7. patch the sources, example: cd src/hcc patch < hcc.diff (then answer prompts) 8. run makeall script from the sozobon root directory. (if you want to create a debug version of the sozobon tools define the environment variable DEBUG as -g ) 9. the following binaries should appear in the bin/ directory: hcc.ttp scc.ttp snm.ttp sld.ttp top.ttp jas.ttp ar.ttp han's cc compiler sozobon c compiler driver sozobon 'nm' tool sozobon ld tool tony's optimizer joe's assembler sozobon library maintainer NOTE: a. I put the s in front of cc, ld, and nm to avoid naming conflicts with my setup. If you don't like the s's just change the makefiles. b. The glob.ttp tool is not supported for this release. 10. try compiling the 'hex.c' file using sozobon: scc.ttp hex.c If everything went properly this should produce an ST executable called hex.ttp in the same directory. (Unoptimized File size: 8839) Additional features in Sun version: =================================== The compiler driver scc supports the following environment variables: LIBC - defines file name C runtime library to link against - i.e. setenv LIBC dlibs.a CSU - defines file name of 'C startup' code (i.e. dstart.o) - i.e. setenv CSU dstart.o LIBM - defines file name of math library - i.e. setenv LIBM libm.a NOTE: scc will prepend the path name in the environment variable LIB to the above filenames. TIPS for using Sozobon C on BSD: ================================ 1. Put the sozobon/bin directory in your PATH environment variable. 2. setup links to the binaries in the bin area without the .ttp extension. (ex: 'ln -s scc.ttp scc' then you can just type scc -flags file.c) The '.ttp' extension is required for scc to be able to find the other tools. I didn't feel like modifying it. Caveats: ======== The Sozobon preprocessor has some problems handling certain constructs. It seemed to improperly handle the '\' line break mechanism properly, as well. I think these are part of Sozobon itself. Rather than peculiarities of this particular port. Obligatory Disclaimer: ====================== This port comes with no warranty express or implied, but if you do have problems feel free to cry on my shoulder. :^) Bug Reports/ Questions/ Fixes : Kent.Dalton@FtCollins.NCR.com (preferred) 72320.3306@compuserve.com