CMU IPC

The Carnegie Mellon University's Inter Process Communication library provides fast, optimal, methods of communication between processes. These processes may be on one or more computers machines. The CMU IPC library supports multiple operating systems as well as means of communication. Depending on the data types and system configuration, the library may choose TCP/IP, standard IPC, or operating system specific methods of communication.

The CMU IPC is currently used as replacement of Player/Stage for the Mini Grand Challenge.

Installing on Linux
Install on Linux, like many other libraries, is easy and simple:
 * 1) Extract the downloaded source directory
 * 2) Make (No configuration needed)
 * 3) sudo make install

If you need to manually install, move the libipc.a file into a shared user-lib directory. You must also, when doing this, move the ipc.h header file into a shared-header directory. The executable "central" is the main server software for IPC; this can be moved wherever most appropriate for you.

Installing on OSX
Building, installing, and linking CMU IPC on OSX is supported, though there are several subtle issues. The following series of instructions will help you fix the build, install, and link with this library. You will need Fink installed for this to work correctly.


 * 1) Download the latest source code (See link below)
 * 2) Extract the file (via command line, use tar -xvf [filename])
 * 3) Launch a terminal, and change directory into the extracted directory
 * 4) Certain source files need to be changed:
 * 5) Open [CMU IPC Directory]/src/logging.c with your favorite editor
 * 6) Add #include  to line 326, which is right below the stdarg.h header
 * 7) Build the source (via command line, type make in the root directory of the CMU IPC directory)

Now we have to install the lib into your system:


 * 1) Move [CMU IPC Directory]/bin/Darwin/central into /sw/bin/.
 * 2) Move [CMU IPC Directory]/include/Darwin/ipc.h into /sw/include/.
 * 3) Move [CMU IPC Directory]/lib/Darwin/libipc.a into /sw/lib/.

At this point, based off of our Mini Grand Challenge makefiles, it should include and link correctly.