From 333b605b2afd472b823aeda0adf0e8b1ea9843c0 Mon Sep 17 00:00:00 2001 From: fishsoupisgood Date: Mon, 27 May 2019 02:41:51 +0100 Subject: initial commit from asl-1.41r8.tar.gz --- README.KR | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 README.KR (limited to 'README.KR') diff --git a/README.KR b/README.KR new file mode 100644 index 0000000..7347391 --- /dev/null +++ b/README.KR @@ -0,0 +1,55 @@ +All right, you want to compile AS with a K&R compiler, and I hope you +have really thought about it before attemptimg this. Think a second +and third time before you really go this way! The procedure is +tedious and error-prone. I really regard K&R C as being obsolete, and +that is why I did not provide an 'automatic' way to compile AS with a +K&R compiler. You will probably face more problems than mentioned +here, since K&R systems are mostly old systems that also lack library +functions of newer systems. The K&R support is mostly here because I +have an old PCS/Cadmus system (the first german company in the 80s +that built Unix systems, 68k-equipped and with a very bare System V.3 +port) whose compiler is even too stupid to compile GNU-C, so the +description will orient along the things I had to do for the Cadmus. +This scheme however has also already worked for SunOS/Sparc with the +old 'cc' compiler from Sun.... + +1. remove the '#error' directives from 'sysdefs.h' - K&R + preprocessors do not know them. + +2. construct an appropriate 'Makefile.def' for your system. Since + most older systems do not define OS-specific symbols, you might + have to define them yourself and correlate them to what you query + in 'sysdefs.h' for your system. For a K&R compiler, '-Dsigned= + -Dconst=' is a good start to remove ANSI extensions. For the + Cadmus, I also had to to add '-Dvoid=int' because the compiler's + void datatype was broken. + +3. There is a tool called 'a2k' to convert ANSI sources (headers & + c-files) to K&R style. This mainly involves removing the + prototypes. Don't think this is a general ANSI-->K&R converter, + since it heavily depends on my way of formatting C sources and + some additional differences are handled in the sources themselves + via __STDC__ queries! To build a2k, a simple 'make a2k' should + suffice. + +4. Convert all header files to K&R, like in the following: + + for i in *.h; do + cp $i $i.ansi + a2k $i.ansi $i + done + +5. Change the Makefile so that a2k is called as a preprocessor to the + compiler. The simplest way is to modify the implicit rule: + + .c.o: + a2k $*.c tmp.c + $(CC) $(ALLFLAGS) -c tmp.c + mv tmp.o $*.o + rm -f tmp.c + +6. Type 'make' and pray... + +One more thing: older Unix systems do not know symbolic links, so a manual +'cp tests/t_secdrive/wd1003at.inc cp tests/t_secdrive/lowlevel.inc' might be +necessary... -- cgit v1.2.3