adrian@ora.UUCP (Adrian Nye ) (11/29/88)
Someone posted a few days ago asking for tips on building R3 with 55 meg free. I just built the R3 core distribution on a Sun with a single 50 meg disk (less than 30 meg free). The following is a workable (but probably not optimized) procedure for building on a small disk. It's not really that difficult, but this should anyone in this position some false starts. 1. Backup entire disk. 2. Erase everything that's not absolutely vital. I was able to get almost 29 meg free; that's what you need to get the entire core tape on in one go. I erased my old X server and clients completely to make space. If you do this, you'll need another terminal to work from on occasion. 3. util is last on the tar tape but it's the first thing you need when building, so you may have to delete some of the hardcopy as it comes in to make room for util. Move the hardcopy version of the release notes to your top directory and delete the rest after step 4. Make doesn't expect the hardcopy directory to be there, as it does most others, so this doesn't cause any problems. 4. Make a cpio backup of the distribution, so that you can easily restore single files after deleting them (using wildcards). People say there's a way to do this with tar, but I've never figured it out. 5. Leave everything else in the tree on the system even if you think you don't need it, because "make World", which propogates the configuration info through the distribution, will die if any directory that includes a Makefile has been erased. One thing you can do to make some space is to move all the manpages (.man) into a different partition or erase them. 6. Follow the configuration directions in the release notes. The Sun directions tell you to make sure to set the pad flag for the font compiler before doing make World. It took me a while to figure out exactly how to do this properly. Add the following lines to /util/imake.includes/Sun.macros (and change the OS version to whatever yours is) before doing make World. #ifndef FontCompilerFlags #define FontCompilerFlags -t -p4 #endif The p4 part is what these lines really change. It wasn't that obvious that this was what to do. 7. Then, do make World >& make.world& like the directions say. Once it is through making all the makefiles, you can delete the examples directory. You might be able to erase util now too, because imake is built and nothing else in there is needed immediately, but I'm not sure. 8. You might want to stop it at this point and continue using: %make >& make.out& %tail -f make.out& This instructs make not to continue after errors. Otherwise, the compile will certainly continue until the disk is full, and the last file written will be incomplete. Unfortunately, make doesn't know that, and next time you make it will consider that incomplete file up-to-date. This problem is usually caught by the linker (for clients and servers) or ranlib (for libraries) anyway. Once detected, you can fix the problem by recompiling the offending source file. Another reason to leave out -k is that otherwise you will need to remove all the .o files for the compiles after the error to make space to continue. It's easier to control the space usage problem without the -k. On the other hand, it might help in diagnosing problems to see how the problem recurred throughout the build. 9. Once the libraries and server have successfully built, make xterm and xinit in their own directories, move the server, xinit and xterm into one directory in your path, and test the server according to the directions in the release notes. If everything works you can install the server and rm the server tree which should give you enough room to build the clients. You can't remove the lib tree or X11 tree even after they are installed because the makefiles for the clients depend on finding the include files there. 10. Once they compile and install, demos, fonts, and rgb can be removed. Look through util to see if there is anything you need (like patch) or want and then remove util. 11. Build the clients by moving to the clients directory and using: %make install This way, you can make clean in the directories that successfully install to make you more space for the later clients. The clients take up the most space as they compile. How it went: On my system, the definitions of timeval, tv_sec and tv_usec were undefined in several compiles because /X11/sys was linked to /usr/include/ instead of /usr/include/sys. I don't know how this happened or if it is this way in the distribution. Other than that, I had no problems. It took about 24 hours altogether on a Sun-3 (including several reruns to fix errors and much reading and writing off tape). About half of that time I was able to do other things (but not on that system). -- Adrian Nye (617) 527-4210 O'Reilly & Associates, Inc., Publishers of Nutshell Handbooks 981 Chestnut Street, Newton, MA 02164 UUCP: uunet!ora!adrian ARPA: adrian@ora.uu.net
jim@EXPO.LCS.MIT.EDU (Jim Fulton) (11/29/88)
> 6. Follow the configuration directions in the release notes. > The Sun directions tell you to make sure to set the pad flag for the font > compiler before doing make World. It took me a while to figure out exactly > how to do this properly. Add the following lines > to /util/imake.includes/Sun.macros (and change the OS version to whatever > yours is) before doing make World. Unfortunately, as has been pointed out before, this is a bug in the Sun README file. Do not change FontCompilerFlags. > On my system, the definitions of timeval, tv_sec and tv_usec > were undefined in several compiles because /X11/sys Nope, no X11/sys in the distribution.