Menu

Tree [39dbd0] master /
 History

HTTPS access


File Date Author Commit
 archive 2010-02-03 Matthew Sottile Matthew Sottile [d887fa] old CVS repo, rsync'd down to save the full cha...
 examples 2013-08-31 Matthew Sottile Matthew Sottile [ab1019] revised contact info and version info
 python 2010-11-02 Matthew Sottile Matthew Sottile [db755e] more updates for automake
 ruby 2010-02-03 Matthew Sottile Matthew Sottile [65cbb4] initial commit migrating to git
 siloon 2010-02-03 Matthew Sottile Matthew Sottile [65cbb4] initial commit migrating to git
 src 2013-09-13 Matthew Sottile Matthew Sottile [7c94c6] missed one
 tests 2013-09-13 Matthew Sottile Matthew Sottile [1fe655] email update
 win32 2010-02-03 Matthew Sottile Matthew Sottile [65cbb4] initial commit migrating to git
 www 2010-02-03 Matthew Sottile Matthew Sottile [65cbb4] initial commit migrating to git
 .gitignore 2013-08-12 Matthew Sottile Matthew Sottile [5ce6ca] added gitignores
 COPYING 2013-09-13 Matthew Sottile Matthew Sottile [a15e81] license stuff
 Doxyfile 2013-09-13 Matthew Sottile Matthew Sottile [27fd2d] get rid of license text in Doxyfile - it isn't ...
 INSTALL 2013-08-19 Matthew Sottile Matthew Sottile [ba2907] forgot -Wall
 LICENSE.makefile 2013-09-13 Matthew Sottile Matthew Sottile [c0027e] update
 LICENSE_LGPL 2010-02-03 Matthew Sottile Matthew Sottile [65cbb4] initial commit migrating to git
 Makefile.am 2013-09-13 Matthew Sottile Matthew Sottile [d07b2a] dist target
 README 2013-09-13 Matthew Sottile Matthew Sottile [39dbd0] formatting
 README_cmake.txt 2010-02-03 Matthew Sottile Matthew Sottile [65cbb4] initial commit migrating to git
 config.h.in 2013-08-12 Matthew Sottile Matthew Sottile [5ce6ca] added gitignores
 configure.ac 2013-08-31 Matthew Sottile Matthew Sottile [19357d] restructure configure stuff
 sexp.dot 2010-02-03 Matthew Sottile Matthew Sottile [65cbb4] initial commit migrating to git
 state_machine.txt 2010-02-03 Matthew Sottile Matthew Sottile [65cbb4] initial commit migrating to git
 test_builds.sh 2013-08-31 Matthew Sottile Matthew Sottile [36e2ef] execute bit, plus #! for bash

Read Me

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
SFSEXP: Small Fast S-Expression Library
http://sexpr.sourceforge.net/

Matt Sottile (mjsottile@gmail.com)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

1. BUILDING

(Attention Windows Users: If you are using cygwin, this section applies as
cygwin looks pretty much like unix for compilation.  Visual Studio users see
the note at the end and look inside the win32 directory.)

Configure the sources via autoconf.

    % ./configure

Currently, the only feature that can be enabled via autoconf is to enable any
debugging code in the library by specifying "--enable-debug".  Other features
such as disabling memory management by the library are toggled by setting
appropriate options in the CFLAGS:

    % CFLAGS=-D_NO_MEMORY_MANAGEMENT_ ./configure

Note that you should use the vanilla configuration unless you know that you
want to use debug mode or other options, and understand precisely what they
mean.

After building, just invoke make:

    % make

What comes out is a library called "libsexp.a".  If you wish to copy the
headers and libraries to an installation location, you should then say:

    % make install

At the current time, this is not recommended if the installation prefix is
/usr or /usr/local, since the headers do not go into an isolated subdirectory.
In the future, we will hopefully have a single consolidated header that
encapsulates all of the headers currently included in the library.  If you do
not want to aim your project that uses the library into the library source and
build directories directly, creating a separate installation prefix and
installing there is recommended.  For example, from the root of the sexpr
tree:

    % mkdir installTree
    % ./configure --prefix=`pwd`/installTree
    % make
    % make install

If you want the docs, make sure you have doxygen installed and that the
DOXYGEN variable in the Makefile.in in this directory points at the right
place.  Re-run autoconf to regenerate the makefiles, and then type:

    % make doc

2. USING

In any code that wants to use this, just include "sexp.h".  That contains the
one data structure, enumeration, and five functions for manipulating and
parsing strings and s-expressions.  Compilation typically will look like:

    % cc -I/path/to/sexp/include -L/path/to/sexp/library \
         -o foo  foo.o -lsexp

The critical parts are to ensure that the include path aims at the path
containing the library headers, the library path aims at the path containing
the compiled binary libraries, and the library is linked in with the
executable.

3. MORE INFO

For additions, bug fixes, complaints, etc., email : mjsottile@gmail.com

4. CREDITS

The library is by Matt Sottile.  Steve James of Linux Labs has contributed bug
fixes and features while developing for the related Supermon project. Sung-Eun
Choi and Paul Ruth have contributed many bug reports as the library has grown.
Erik Hendriks contributed the malloc debugging tools now used when building
with the -D_DEBUG_MALLOCS_ option.  Brad Green contributed code (in win32/)
and testing for the Windows Visual Studio build target.

5. WINDOWS USERS

Please look in the win32/ subdirectory. Note that as of 9/2013, this has not
been looked at nor tested in a number of years.  If you try to use it and find
it broken, fixes and updates to bring it up to speed with modern Windows
development environments would be appreciated!
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.