=============================================================================== Prerequisites for building SWISH++ for Unix =============================================================================== SWISH++ has the following software as prerequisites: 1. A C++ compiler. SWISH++ has been built using g++ 3.4.x (earlier 3.x versions may work also); g++ 2.95.x and earlier versions are no longer supported. Other non-g++, ANSI C++ compilers should work also. 2. A version of STL, the ANSI/ISO C++ Standard Template Library. If you are using g++ or egcs, then you also need (the matching version of) libstd++. If you are not using g++, then you need to have a port of STL that works with your compiler. Ports for various platforms are available from: http://www.stlport.org/ For more about STL in general, see: http://www.cs.rpi.edu/~musser/stl.html http://www.sgi.com/Technology/STL/ 3. GNU make 3.79.1 or later. 4. Perl 5 (or later), but only if you intend on using either httpindex, splitmail, or WWW.pm. 5. The GNU wget command, but only if you intend on using httpindex. All GNU software is freely available from: ftp://prep.ai.mit.edu/pub/gnu/ as well as many other mirror sites. =============================================================================== Building SWISH++ for Unix =============================================================================== 1. Edit the "config.h" file to your liking. This file controls how the software runs. You REALLY need to understand and properly set TempDirectory and WordThreshold. Improperly set, SWISH++ can take hours to index whereas it should only take minutes. Once you understand them, comment out the #error lines. (The #error lines are there intentionally to force you to edit the file.) 2. Go to the "config" directory and edit the "config.mk" file as necessary. This file controls how the software is compiled. 3. Go back to the top-level directory and type "make". If everything works out, the software will be built. 4. Type "make install". =============================================================================== Running SWISH++'s search(1) as a daemon for Unix =============================================================================== If you are going to run search(1) as a daemon and you want it started automatically on system boot, you need to call searchmonitor from your system's start-up scripts. For SysV-like systems, e.g. Linux and Solaris, type "make install_sysv" and then edit the variable definitions in the beginning of /etc/init.d/searchd if necessary. For most other types of Unix systems, e.g., FreeBSD, add a call to searchmonitor in /etc/rc.local like: /path/to/searchmonitor -c /path/to/swish++.conf -s /path/to/search & In either case, also edit /etc/swish++.conf to your liking. If you are running search(1) under Solaris and you expect that it will be heavily used, read README.Solaris. If you are running search(1) under Mac OS X 10.4 (Tiger) or later, you should use launchd(8) to start it. Included in this distribution (in the search.plist file) is a sample launchd propertly list file for doing this. If you want to use SWISH++ to index your incoming mail automatically, you need to use Procmail to split messages into individual files. Included in this distribution (in the procmailrc file) is a sample Procmail recipe for doing this. =============================================================================== Notes =============================================================================== 1. Don't complain to me or bother asking me for help if you get either "No such file or directory" for or errors in the standard C++ headers. It means that your C++ compiler and/or libraries are improperly installed. I know nothing about your OS or how your system is (mis)configured. Complain to your sysadmin: the person who botched the installation and whose job it is to fix it. 2. Don't bother asking me for precompiled binaries for a particular OS -- I don't have them. 3. Don't ask me questions like, "Can SWISH++ do this?" The documentation describing SWISH++ is complete. If you read the documentation and what you are looking for is not there, then SWISH++ doesn't do it.