Instead of simply typing:
make clean
make install
|
to compile and install Manhattan, you may also take advantage of the additional 'targets' in the Makefile to break this process down into smaller steps. This may be useful to you if you have trouble compiling portions of Manhattan on your system, since it allows you to isolate where the trouble is.
My philosophy is to try to produce a self-contained install package for Manhattan, even though an increasing part of Manhattan was written by other open source developers. (See the CREDITS file for a list.) For example, Manhattan uses the standard 'zip' and 'unzip' programs to make it easy for teachers and students to upload and download 'web sites'. While I could assume that every Linux system has zip and unzip installed, I don't. Instead, I've packaged the complete zip and unzip sources, which are compiled along with the rest of Manhattan.
In the unlikely event my versions of zip and unzip won't compile on your system, you can probably use the versions found on your filesystem.
The following series of commands, when typed in the order shown, have the same net effect as the make clean; make install combination above. The list is followed by a description of each 'target' with some ideas about what can be skipped if necessary:
make clean make clearsilver make libexpat.a make libmanhat.a make manhattan make zip make unzip make melange_chat make jpgtn make install_manhat make install_melange make install_images make install_zip make install_unzip make install_jpgtn make dirs make strip |
Deletes all programs within the src directory, which were created as a result of a previous compile. Also unpacks several tar archives and generally prepares the source code for the compilation. You can't skip this step.
Creates the Clearsilver HTML templating library used by Manhattan. see http://www.clearsilver.net The source code for this library is in the src/ClearSilver directory. This is a required step.
Creates the libexpat.a library, which is required to parse XML data. The source code for this library is in the src/expat directory. This is a required step.
Creates a library of manhattan-specific functions that are required by the core Manhattan programs. The source code for this library is in the src/manhat-lib directory. This is a required step.
Creates the core Manhattan CGI programs. The source for these programs is in the 'src' directory of the distribution. This is a required step.
Creates the 'zip' utility used within Manhattan when a teacher requests a 'zipped' copy of an attached website. The source code is located in the src/zip-2.3 directory.
This utility is the standard Info-ZIP zip program. If 'make zip' fails with an error on your system (it does under OS/X), then you can probably use the standard copy of 'zip' provided with your operating system system. Put the program in the bin directory of your Manhattan installation and skip the 'make install_zip' step.
Creates the 'unzip' utility used within Manhattan when a student or teacher attaches a wesite to a message that has been zipped. The source code is located in the src/unzip-5.40 directory.
This utility is the standard Info-ZIP unzip program. If 'make unzip' fails with an error on your system (it does under OS/X), then you can probably use the standard copy of 'unzip' provided with your operating system. Put it in the 'bin' directory of your Manhattan installation and skip the 'make install_unzip' step.
Creates the melange chat server, which 'make install_melange'will copy into the ../chat directory of your installation. The source for the chat server is in src/melange/server/src
Manhattan will work fine without this piece, although of course, people won't be able to use the Chat module. If for some bizarre reason this step fails, skip the 'make install_melange' step until you can figure out why.
Creates a program called jpgtn that's used by the People module to create thumbnail-sized jpeg images of uploaded photographs. Manhattan will work fine without this utility, however people won't be able to upload photos as part of their "Personal Info Pages" if you don't have it.
The 'make jpgtn' command starts a compilation that's takes quite a bit of time, although the utility it creates is small, and is of minor significance to Manhattan. This is because jpgtn uses a graphics library called 'libjpeg.a', which must be created first.
I've included the source code for the libjpeg.a library, along with the jpgtn source in the directory src/jpgtn-2.06
If Manhattan's distribution of jpgtn doesn't compile on your system (it does on every Linux/FreeBSD system I've tried), don't worry about it for now. Just skip the 'make install_jpgtn' step below.
Then you can grab a copy of jpgtn directly from http://jpgtn.sourceforge.net and see what can be done to get a binary working for your system. The jpgtn program goes in Manhattan's bin directory.
Copies the core Manhattan programs to the ../bin and ../sbin directories. You can't skip this step.
Copies the melange chat server files, created with the 'make melange_chat' command (see above) into the ../chat directory. You can skip this if 'make melange_chat' creates an error you can't figure out, but users won't be able to use the chat module.
Copies the image files and various JavaScript files to ../the images directory. You can't skip this step.
Copies the 'zip' program to the ../bin directory. You can skip this if 'make zip' doesn't work for you. (See notes on 'make zip' above.) You shouldn't run Manhattan without a 'zip' program, since teachers won't be able to download "attached websites" as zip files.
Copies the 'unzip' program to the ../bin directory. Skip this only if 'make unzip' doesn't work for you. (See notes on 'make unzip' above.) You shouldn't run Manhattan (for long at least) without an unzip program, since users won't be able to upload large "attached websites" as a single zip file.
Copies the jpgtn program, generated by the 'make jpgtn' command, to the ../bin directory. Skip this only if 'make jpgtn' doesn't work for you, at least until you figure out how to get jpgtn running on your system.
Creates a number of required directories to hold courses, temporary files, surveys, etc. and properly sets the access rights for all directories and program files. This step can't be skipped.
Uses the standard 'strip' program to reduce the size of Manhattan's many executable programs. Stripped programs are smaller and load faster, which is a good thing for CGI programs. Although it would be hard to find a Un*x system without 'strip' installed, this really is an optional step, which can be skipped if necessary.
![]() |
When performing the separate compilation of components method, DON'T FORGET to do step 8 in the general installation instructions, which copies the libneo.so library from /home/manhat/manhat-x.x.x/lib to /usr/local/lib and runs ldconfig. |