jerasure library with packaging
 
 
 
 
 
Go to file
David Glessner e79904ea00 This is the squashed pull request from David Glessner, squashed
and reviewed by Kevin Greenan.

Updated README

Allow out-of-source builds. Quiet autogen.sh warnings.

Use AM_CPPFLAGS instead of INCLUDES. Use $(top_srcdir).

Add .gitignore to quiet git status.

Add project URL to AC_INIT.

Stop libtool from compiling files twice.

Have git ignore .deps/.

Don't override user CPPFLAGS.

(PIC options appear to be set already. INCLUDES already included.)

Clean configure.ac.

Make it closer to autoscan output.

Have autotools create INSTALL.

Use AC_MSG_FAILURE if GF-Complete not found.

Run autogen.sh.

(autoconf 2.69, automake 1.14.1, libtool 2.4.2)

Add some .gitignore files.

Fix configure cpuid unknown issue.

Move AX_EXT before AC_CHECK_LIB(gf_complete...) so that
-lgf_complete doesn't cause CPUID conftest compile to fail.

Don't check for internal gf_int.h header.

GF-Complete doesn't install it.

Quiet some autoreconf warnings.

INCLUDES is now AM_CPPFLAGS. Use single-argument AM_INIT_AUTOMAKE.

Remove some AC_REQUIRE whose conftest always failed.

Quiet configure warning.

(ARCH_64 doesn't appear to be used.)

CPUID "unknown" fix from upstream autoconf-archive.

Allow out-of-source builds. Use dependency tracking.

Remove config.h.in~.

Update ax_check_compile_flag.m4 from autoconf-archive.

Add .gitattributes.

Remove autoreconf-generated files.

Remove ACLOCAL_AMFLAGS.

See Automake 1.13 release notes.

Add files for 'make dist'.

Quiet some warnings.

getcwd() in <unistd.h>. Remove some vars.

Make headers compatible with C++.

Quiet some warnings.

Install additional headers in include/jerasure/.

Quiet some configure check internal failures.

Use new AX_REQUIRE_DEFINED instead of AC_REQUIRE, which expands
the macro and causes internal compile failure.

Fix file permissions.

Remove INTEL_SSE compiler defines.

(Can use HAVE_xxx or __xxx__ instead.)

Set default CFLAGS to '-g -O3 -Wall'.

Add more checks from autoscan.

Use AC_CONFIG_AUX_DIR([build-aux]).

Use processor time for timing.

Use clock() instead of gettimeofday().

Use common LDADD in Makefile.am.

Remove pre-autotools makefiles.

Ignore *.a. (Missed earlier.)

Quiet more warnings.

Document need for autoreconf -fi.

Removed README.nd and README.txt so changes don't need to be duplicated.

Remove autogen.sh.

Just use "autoreconf --force --install".
2014-03-28 08:34:46 -07:00
Examples This is the squashed pull request from David Glessner, squashed 2014-03-28 08:34:46 -07:00
include This is the squashed pull request from David Glessner, squashed 2014-03-28 08:34:46 -07:00
m4 This is the squashed pull request from David Glessner, squashed 2014-03-28 08:34:46 -07:00
src This is the squashed pull request from David Glessner, squashed 2014-03-28 08:34:46 -07:00
.gitattributes This is the squashed pull request from David Glessner, squashed 2014-03-28 08:34:46 -07:00
.gitignore This is the squashed pull request from David Glessner, squashed 2014-03-28 08:34:46 -07:00
AUTHORS Setup autoconf to work with Jerasure 2013-12-04 23:08:08 -08:00
COPYING Make autoconf put BSD license in COPYING. 2014-01-07 08:40:05 -08:00
ChangeLog Setup autoconf to work with Jerasure 2013-12-04 23:08:08 -08:00
License.txt Added new license header for version 2.0 2013-11-23 12:05:19 -08:00
Makefile.am This is the squashed pull request from David Glessner, squashed 2014-03-28 08:34:46 -07:00
Manual.pdf Added the user manual PDF to Manual.pdf 2014-01-29 16:39:29 -05:00
NEWS Setup autoconf to work with Jerasure 2013-12-04 23:08:08 -08:00
PERF.txt Added performance numbers and more text to the README 2013-11-24 18:41:24 -08:00
README This is the squashed pull request from David Glessner, squashed 2014-03-28 08:34:46 -07:00
configure.ac This is the squashed pull request from David Glessner, squashed 2014-03-28 08:34:46 -07:00

README

This is revision 2.0 of Jerasure.  This is pretty much Jerasure 1.2 without the
original Galois Field backend.  Version 2.0 links directly to GF-Complete, which
is more flexible than the original, and *much* faster, because it leverages SIMD
instructions.
Authors: James S. Plank (University of Tennessee)
         Kevin M. Greenan (Box)

------------------------------------------------------------

External Documentation:

See the file Manual.pdf for the programmer's manual and tutorial.  This manual
is also available at http://web.eecs.utk.edu/~plank/plank/papers/UT-EECS-14-721.html.

See https://bitbucket.org/jimplank/gf-complete for GF-Complete.

NOTE: You must have GF-Complete installed (or compiled) in order to use Jerasure 2.0.

There are two directories of source code:

The src directory contains the jerasure code.
The Examples directory contains the example programs.

------------------------------------------------------------

If you do have Autoconf 2.65 or later installed, you can simply build
from the tarball distribution:

http://www.kaymgee.com/Kevin_Greenan/Software_files/jerasure.tar.gz

Installing if you are allowed to install GF-Complete on your machine:
(You can skip the autoreconf step if you're using a tarball distribution.)

1.) Install GF-Complete
2.) autoreconf --force --install (*skip* if you are building from tarball)
3.) ./configure
4.) make
5.) sudo make install

This will install the library into your machine's lib directory,
the headers into include, and the example programs into bin.

The configuration process assumes shared objects are searched for in
/usr/local/lib. If this is not the case on your system, you can specify a
search path at configuration time. For example:
  ./configure LD_LIBRARY_PATH=/usr/local/lib

------------------------------------------------------------

Installing if you can compile GF-Complete, but you cannot install it:

1.) Install GF-Complete.  Let's suppose the full path to GF-Complete is
    in the environment variable  GFP
2A.) On Linux, set the environment variable LD_LIBRARY_PATH so that it
     includes $GFP/src/.libs
2B.) On a mac, set the environment variable DYLD_LIBRARY_PATH so that it
     includes $GFP/src/.libs
2.) ./configure LDFLAGS=-L$GFP/src/.libs/ CPPFLAGS=-I$GFP/include
3.) make

The examples will be in the directory Examples.  The include files will
be in the directory include, and the library will be called libJerasure.a
in the directory src/.libs.

------------------------------------------------------------

As long as GF-Complete is installed, Jerasure 2.0 can be used just as previous
versions.  There is no need to define custom Galois Fields.  Jerasure will
determine the default field to use, if one is not specified.

If you would like to explore a using a different Galois Field implementation,
please see the manual.