Installing Content 1.5 Under Mandrake 7.0 with Red Hat Motif 2.1 ---------------------------------------------------------------- The following steps should be performed from a root bash shell. I am assuming that perl is installed. My configuration is Mandrake 7.0 gcc 2.95.2, gcc c++ 2.95.2, glibc 2.1.2, XFree86 3.3.6, and Redhat Motif 2.1 running on a 380 MHz AMD K6-2 3D-now processor with 128MB RAM. 1. Make directory $CONTENT = /usr/local/src/content-1.5 and move the tar files for the Vibrant and Content source code and the Content tutorial as well as the HOW_TO and README files into the directory. 2. Change directories into $CONTENT and create a directory named vibrant. Move the Vibrant source tar file into vibrant, change directories into vibrant, and untar the archive. Then change directories back up to $CONTENT and untar the Content tar file. 3. Make sure that $DISPLAY is properly set for the root shell. If not logged in as root, this means executing "xhost LOCAL:root" from a user shell and then "export DISPLAY=:0.0" from the root shell. 4. Add the current working directory to $PATH for the root shell using the command "export PATH=$PATH:." 5. Collect the paths to all of the libraries on the system and add them and the current working directory "." to $LD_LIBRARY_PATH. A single command that will do this is export LD_LIBRARY_PATH=`/sbin/ldconfig -p | tail +2 | awk '{print $4}' \ | sed 's/\/[-a-zA-Z0-9.+_]*$//' | sort -u \ | perl -e 'print join ":", map /([^\n]+)\n/, ;'`:. 6. Change directories to $CONTENT/vibrant/make. Check to make sure that the library and include switches in the line in viball.lnx point to the right places. For my configuration, this involved adding -lXp and changing VIBFLAG to "-I/usr/X11R6/include/Xm -DWIN_MOTIF" on the line in viball.lnx. The Motif header files reside in /usr/X11R6/include/Xm. Once viball.lnx is correct, change directories to $CONTENT/vibrant/build and source ../make/viball.lnx via the comand ". ../make/viball.lnx" to build the vibrant library. See HOW_TO for further information. If wanting to capture stdout and stderr in case there are any problems, use ". ../make/viball.lnx 2>&1 | tee ../../make.out". 7. Change directories to $CONTENT/content. Edit makefile_v so that the platform variable LIN is set to an empty string and all other platform variables are set to "no". Also, check to make sure that the library and include switches under the "LINUX" heading are properly set. Under my configuration, I had to add -lXp to $(LIN)LIBVIB and add the Motif include directory /usr/X11R6/include/Xm to $(LIN)INCLUDE. See HOW_TO for further information. Once makefile_v is in proper order, execute "make -f makefile_v unix" to build Content. I used "make -f makefile_v unix 2>&1 | tee ../make.out" to capture the make output in the file $CONTENT/make.out in case something went wrong. During the build of Content, the help compiler terminates at segmentation faults in the victor and yuri subdirectories. The authors advise running helpcomp in both the yuri and victor subdirectories of $CONTENT/content repeatedly until helpcomp finishes processing all of the help files and does not terminate on a segmentation fault. Once helpcomp is finished, remove the core files and run the make command again from $CONTENT/content. If you are using tee to capture the output, you may want to use the -a command line option to tee when restarting make so that the additional output will be appended to make.out rather than overwriting it. 8. Execute "setup" from $CONTENT/content, push the "Full" button under "Setup Type", make sure all displayed fields are accurate, and push the "Setup" button. See README for further information. Running setup results in two harmless warnings. gcc: -lc: linker input file unused since linking not done gcc: -lm: linker input file unused since linking not done 9. Each user that will use Content must create a user-specific Content directory. I called this directory .content in my home directory. Each user must also have the current working directory ".", the path to the Content binary, and the path to the user-specific Content directory in $PATH. For my example, this means executing export PATH=$PATH:/usr/local/src/content-1.5/content:/home/mark/.content:. from the user shell where I intend to run Content. After adding entries to $PATH, each user must change directories into the user-specific Content directory and run the Content "setup" program. Verify that the displayed fields are correct and push the "Setup" button. 10. Once the above steps are completed, Content may be run from within the user-specific Content directory using the command "content". Attempting to start content outside of the user-specific content directory results in a segmentation fault and a core dump.