|
1 |
| -Before starting installation you should read |
2 |
| -the file doc/install.pr |
| 1 | +# $Source$ |
| 2 | +# $State$ |
| 3 | + |
| 4 | +Installing the ACK on a modern platform |
| 5 | +======================================= |
| 6 | + |
| 7 | +This document provides some very quick and dirty instructions for installing |
| 8 | +the ACK on a modern platform. It is not intended as a substitute for the |
| 9 | +real instructions, which can be found in doc/install.pr. |
| 10 | + |
| 11 | +Let me repeat myself: |
| 12 | + |
| 13 | +THE FULL INSTALLATION INSTRUCTIONS ARE IN doc/install.pr. |
| 14 | + |
| 15 | +The ACK is a very large and complex package and has received minimal |
| 16 | +maintenance for the best part of a decade. During that time, the Unix |
| 17 | +world has moved on, and many APIs have changed. It compiles cleanly on |
| 18 | +my, dtrg's, test machine, which is a Debian Ubuntu Linux system. Your |
| 19 | +mileage may vary. |
| 20 | + |
| 21 | +All disclaimers now done, now on to the good stuff: |
| 22 | + |
| 23 | +Building the ACK |
| 24 | +---------------- |
| 25 | + |
| 26 | +I'm assuming you're using Linux here, because that's what I use. If you |
| 27 | +don't use Linux, please let me know if you have any trouble and I'll update |
| 28 | +the instructions. |
| 29 | + |
| 30 | +1. Configure the build. |
| 31 | + |
| 32 | + To do this, run the first/first script. You will be asked several |
| 33 | + questions. |
| 34 | + |
| 35 | + * What is the root of the ACK source tree? |
| 36 | + |
| 37 | + This is the directory that you have unpacked the distribution into. |
| 38 | + For example, /home/dg/src/Ack-5.6. |
| 39 | + |
| 40 | + * What is the root of the configuration tree? |
| 41 | + |
| 42 | + This is the directory that the build process will use for temporary |
| 43 | + files. You'll only need this during the compilation process; it can |
| 44 | + be removed afterwards. |
| 45 | + For example, /tmp/ack-conf |
| 46 | + |
| 47 | + * What is the root of the ACK binaries? |
| 48 | + |
| 49 | + This is the ACK's installation path; where the binaries will live. |
| 50 | + This needs to be writable during the build process --- if you want |
| 51 | + to install in /usr/local, you either have to make /usr/local |
| 52 | + writable or compile as root. Sorry! |
| 53 | + |
| 54 | + * What is your system type? |
| 55 | + |
| 56 | + Linux isn't on the list. Choose ANY. |
| 57 | + |
| 58 | + * Is this the system you are running on? |
| 59 | + |
| 60 | + Yes. |
| 61 | + |
| 62 | + * Are you satisfied? |
| 63 | + |
| 64 | + Yes. |
| 65 | + |
| 66 | + * What default machine do you wish to compile for? |
| 67 | + |
| 68 | + The ACK wants to know what architecture to target if you don't manually |
| 69 | + specify an architecture. Unfortunately, it can't generate runnable |
| 70 | + binaries for Linux or any other modern system (except possible Solaris |
| 71 | + on Sparc). I'd recommend you choose em44. This will produce portable |
| 72 | + binaries using the ACK's intermediate format, which you can run using |
| 73 | + the int interpreter. |
| 74 | + |
| 75 | + * What kind of Unix are you running? |
| 76 | + |
| 77 | + Linux is a mixture, but I pick SYS_5 and it works. |
| 78 | + |
| 79 | + * Do you wish to limit the installation? |
| 80 | + |
| 81 | + No. If you pick Yes, the script will ask detailed questions about |
| 82 | + exactly what you want to build. Modern systems are fast enough that |
| 83 | + we may as well build everything. |
| 84 | + |
| 85 | + * Which system call library do you wish to use on the VAX? |
| 86 | + |
| 87 | + I don't have a VAX; the only person I know who has one uses it to vacuum |
| 88 | + his carpets. I pick libsysV_2 with no ill effects. |
| 89 | + |
| 90 | + If the configuration script is happy, it will generate a script called |
| 91 | + INSTALL. |
| 92 | + |
| 93 | +2. Do the compilation. |
| 94 | + |
| 95 | + The configuration script will recommend a command line. Execute this. On |
| 96 | + modern systems, the compilation doesn't take long. |
| 97 | + |
| 98 | + Check the output of the configuration script for "Failed" lines. On my |
| 99 | + system there are two: |
| 100 | + |
| 101 | + $ grep Failed INSTALL.out |
| 102 | + Failed for Intel 8080 download programs, see dl/Out |
| 103 | + Failed for Intel 8080 support |
| 104 | + |
| 105 | + You can ignore these. They aren't important. |
| 106 | + |
| 107 | +3. Use the ACK. |
| 108 | + |
| 109 | + Ensure that the ACK's binary directory is on your path; this is /bin in |
| 110 | + the directory you specified during the configuration process. In my |
| 111 | + example, this is /usr/local/bin. The /man subdirectory should go on your |
| 112 | + manpath. |
| 113 | + |
| 114 | + To test your path, do: ack |
| 115 | + |
| 116 | + This should return silently. |
| 117 | + |
| 118 | + To test your manpath, do: man ack |
| 119 | + |
| 120 | + This will produce the documentation for the main compiler driver. |
| 121 | + |
| 122 | + If this works, you can remove the conf tree (/tmp/ack-conf in my example). |
| 123 | + |
| 124 | +Gotchas |
| 125 | +------- |
| 126 | + |
| 127 | +There are some things you should be aware of. |
| 128 | + |
| 129 | +* The ACK's archiver tool is called 'arch'. This conflicts on Linux platforms |
| 130 | + with a utility that displays the current architecture. If your compilation |
| 131 | + occasionally fails obscurely and displays something like 'i686', you are |
| 132 | + running afoul of this. As a workaround, rearrange your path so the ACK's |
| 133 | + bin directory comes first --- but do be aware that some Linux system |
| 134 | + tools may stop working. |
| 135 | + |
| 136 | +* By default, the ack tool will compile K&R C. Practically all C source these |
| 137 | + days is ANSI C --- use the -ansi switch to enable ANSI mode. No, the ACK is |
| 138 | + not C99 compatible. |
| 139 | + |
| 140 | +* Not all combinations of optimisation and architectures work. This is |
| 141 | + perfectly normal, but the combinations are not well documented. Everything |
| 142 | + supports -O. |
| 143 | + |
| 144 | +Disclaimer |
| 145 | +---------- |
| 146 | + |
| 147 | +The ACK is mature, well-tested software, but the environment in which it was |
| 148 | +developed for and tested under is rather different from that available on |
| 149 | +today's machines. There will probably be little in the way of logical bugs, |
| 150 | +but there may be many compilation and API bugs. |
| 151 | + |
| 152 | +If you wish to use the ACK, *please* join the mailing list. We are interested |
| 153 | +in any reports of success and particularly, failure. If it does fail for you, |
| 154 | +we would love to know why, in as much detail as possible. Bug fixes are even |
| 155 | +more welcome. |
| 156 | + |
| 157 | +The ACK is licensed under a BSD-like license. Please see the 'Copyright' file |
| 158 | +for the full text. |
| 159 | + |
| 160 | +You can find the mailing list on the project's web site: |
| 161 | + |
| 162 | + http://tack.sourceforge.net/ |
| 163 | + |
| 164 | +Please enjoy. |
| 165 | + |
| 166 | +David Given (dtrg on Sourceforge) |
| 167 | +dg@cowlark.com |
| 168 | +2005-06-24, 23:53 |
| 169 | + |
| 170 | +# Revision history |
| 171 | +# $Log$ |
| 172 | +# Revision 2.2 2005-06-24 23:20:41 dtrg |
| 173 | +# Added some new readmes at the top level. |
| 174 | +# |
0 commit comments