ccolamd now installs and works with gtsam - all tests pass

release/4.3a0
Alex Cunningham 2011-06-02 14:35:26 +00:00
parent 2d0984e9b4
commit e9b8a48c43
18 changed files with 84 additions and 568 deletions

View File

@ -16,8 +16,10 @@ AC_CONFIG_SRCDIR([gtsam/slam/pose2SLAM.cpp])
AC_CONFIG_SRCDIR([tests/testTupleValues.cpp])
AC_CONFIG_SRCDIR([examples/SimpleRotation.cpp])
# pull in all subdirectories of Eigen - FIXME: find a better way of handling this
AC_CONFIG_SRCDIR([gtsam/3rdparty/Makefile.am])
AC_CONFIG_SRCDIR([gtsam/3rdparty/ccolamd/Makefile.am])
# pull in all subdirectories of Eigen - FIXME: find a better way of handling this
AC_CONFIG_SRCDIR([gtsam/3rdparty/Eigen/Makefile.am])
AC_CONFIG_SRCDIR([gtsam/3rdparty/Eigen/src/Makefile.am])
AC_CONFIG_SRCDIR([gtsam/3rdparty/Eigen/src/Cholesky/Makefile.am])
@ -140,21 +142,21 @@ AX_BOOST_BASE([1.40])
# ])
#AC_SUBST([boost])
# ask for ccolamd library include directory
AC_ARG_WITH([ccolamd-inc],
[AS_HELP_STRING([--with-ccolamd-inc],
[specify the CCOLAMD library include directory (defaults to /HOME/include/ccolamd)])],
[CCOLAMDInc=$withval],
[CCOLAMDInc=${HOME}/include/ccolamd])
AC_SUBST([CCOLAMDInc])
# ask for sparse library lib directory
AC_ARG_WITH([ccolamd-lib],
[AS_HELP_STRING([--with-ccolamd-lib],
[specify the CCOLAMD library lib directory (defaults to /HOME/lib)])],
[CCOLAMDLib=$withval],
[CCOLAMDLib=${HOME}/lib])
AC_SUBST([CCOLAMDLib])
## ask for ccolamd library include directory
#AC_ARG_WITH([ccolamd-inc],
# [AS_HELP_STRING([--with-ccolamd-inc],
# [specify the CCOLAMD library include directory (defaults to /HOME/include/ccolamd)])],
# [CCOLAMDInc=$withval],
# [CCOLAMDInc=${HOME}/include/ccolamd])
#AC_SUBST([CCOLAMDInc])
#
## ask for sparse library lib directory
#AC_ARG_WITH([ccolamd-lib],
# [AS_HELP_STRING([--with-ccolamd-lib],
# [specify the CCOLAMD library lib directory (defaults to /HOME/lib)])],
# [CCOLAMDLib=$withval],
# [CCOLAMDLib=${HOME}/lib])
#AC_SUBST([CCOLAMDLib])
AC_CONFIG_FILES([CppUnitLite/Makefile \
gtsam/3rdparty/Eigen/src/Cholesky/Makefile \
@ -183,6 +185,7 @@ gtsam/3rdparty/Eigen/src/Eigen2Support/Makefile \
gtsam/3rdparty/Eigen/src/Eigen2Support/Geometry/Makefile \
gtsam/3rdparty/Eigen/src/Makefile \
gtsam/3rdparty/Eigen/Makefile \
gtsam/3rdparty/ccolamd/Makefile \
gtsam/3rdparty/Makefile \
gtsam/base/Makefile \
gtsam/geometry/Makefile \

View File

@ -22,7 +22,7 @@ SUBDIRS = vSLAMexample # visual SLAM examples with 3D point landmarks and 6D cam
#----------------------------------------------------------------------------------------------------
# rules to build local programs
#----------------------------------------------------------------------------------------------------
AM_CPPFLAGS = $(BOOST_CPPFLAGS) -I$(CCOLAMDInc) -I$(top_srcdir)
AM_CPPFLAGS = $(BOOST_CPPFLAGS) -I$(top_srcdir)
AM_LDFLAGS = $(BOOST_LDFLAGS)
LDADD = ../gtsam/libgtsam.la
AM_DEFAULT_SOURCE_EXT = .cpp

View File

@ -28,7 +28,7 @@ dist-hook:
#----------------------------------------------------------------------------------------------------
# rules to build local programs
#----------------------------------------------------------------------------------------------------
AM_CPPFLAGS = $(BOOST_CPPFLAGS) -I$(CCOLAMDInc) -I$(top_srcdir)
AM_CPPFLAGS = $(BOOST_CPPFLAGS) -I$(top_srcdir)
AM_LDFLAGS = $(BOOST_LDFLAGS)
LDADD = ../../gtsam/libgtsam.la
AM_DEFAULT_SOURCE_EXT = .cpp

View File

@ -1,8 +1,7 @@
# 3rd Party libraries to be built and installed along with gtsam
# All the sub-directories that need to be built
SUBDIRS = Eigen
SUBDIRS = Eigen ccolamd
# And the corresponding libraries produced
# TODO add sublibs when something in 3rdparty actually needs compilation
# SUBLIBS =
SUBLIBS = ccolamd/libccolamd.la

View File

@ -1,3 +1,14 @@
Changes for GTSAM Distribution
June 2, 2011:
* Moved all source/header files into a single folder within gtsam/3rdparty
* Removed demos, matlab examples, original makefiles
* Added UFconfig.[c|h] from the UFconfig suitesparse package
* Renamed licence file to LGPL.txt - contents remain the same
* All code is unchanged from original
Original ChangeLog by authors
Jan 25, 2011: version 2.7.3
* minor fix to "make install"

View File

@ -1,32 +0,0 @@
#-------------------------------------------------------------------------------
# CCOLAMD Makefile
#-------------------------------------------------------------------------------
default: libccolamd.a
include ../../UFconfig/UFconfig.mk
I = -I../Include -I../../UFconfig
INC = ../Include/ccolamd.h ../../UFconfig/UFconfig.h
SRC = ../Source/ccolamd.c ../Source/ccolamd_global.c
# creates libccolamd.a, a C-callable COLAMD library
libccolamd.a: $(SRC) $(INC)
$(CC) $(CFLAGS) $(I) -c ../Source/ccolamd_global.c
$(CC) $(CFLAGS) $(I) -c ../Source/ccolamd.c
$(CC) $(CFLAGS) $(I) -c ../Source/ccolamd.c -DDLONG -o ccolamd_l.o
$(AR) libccolamd.a ccolamd.o ccolamd_l.o ccolamd_global.o
ccode: libccolamd.a
library: libccolamd.a
clean:
- $(RM) $(CLEAN)
purge: distclean
distclean: clean
- $(RM) libccolamd.a

30
gtsam/3rdparty/ccolamd/Makefile.am vendored Normal file
View File

@ -0,0 +1,30 @@
#----------------------------------------------------------------------------------------------------
# GTSAM 3rdparty: CCOLAMD
# Tim Davis' sparse library for column ordering - part of suitesparse
#----------------------------------------------------------------------------------------------------
# use nostdinc to turn off -I. and -I.., we do not need them because
# header files are qualified so they can be included in external projects.
AUTOMAKE_OPTIONS = nostdinc
headers =
sources =
# CCOLAMD (with UFconfig files included)
headers += ccolamd.h UFconfig.h
sources += ccolamd.c ccolamd_global.c UFconfig.c
#----------------------------------------------------------------------------------------------------
# Create a libtool library that is not installed
# It will be packaged in the toplevel libgtsam.la as specfied in ../Makefile.am
# The headers are installed in $(includedir)/gtsam/3rdparty:
#----------------------------------------------------------------------------------------------------
ccolamddir = $(pkgincludedir)/3rdparty/ccolamd
ccolamd_HEADERS = $(headers)
noinst_LTLIBRARIES = libccolamd.la
libccolamd_la_SOURCES = $(sources)
AM_CPPFLAGS =
AM_CPPFLAGS += $(BOOST_CPPFLAGS) -I$(top_srcdir) -DDLONG
AM_LDFLAGS = $(BOOST_LDFLAGS)

View File

@ -1,386 +0,0 @@
#===============================================================================
# UFconfig.mk: common configuration file for the SuiteSparse
#===============================================================================
# This file contains all configuration settings for all packages authored or
# co-authored by Tim Davis at the University of Florida:
#
# Package Version Description
# ------- ------- -----------
# AMD 1.2 or later approximate minimum degree ordering
# COLAMD 2.4 or later column approximate minimum degree ordering
# CCOLAMD 1.0 or later constrained column approximate minimum degree ordering
# CAMD any constrained approximate minimum degree ordering
# UMFPACK 4.5 or later sparse LU factorization, with the BLAS
# CHOLMOD any sparse Cholesky factorization, update/downdate
# KLU 0.8 or later sparse LU factorization, BLAS-free
# BTF 0.8 or later permutation to block triangular form
# LDL 1.2 or later concise sparse LDL'
# LPDASA any linear program solve (dual active set algorithm)
# CXSparse any extended version of CSparse (int/long, real/complex)
# SuiteSparseQR any sparse QR factorization
#
# The UFconfig directory and the above packages should all appear in a single
# directory, in order for the Makefile's within each package to find this file.
#
# To enable an option of the form "# OPTION = ...", edit this file and
# delete the "#" in the first column of the option you wish to use.
#------------------------------------------------------------------------------
# Generic configuration
#------------------------------------------------------------------------------
# C compiler and compiler flags: These will normally not give you optimal
# performance. You should select the optimization parameters that are best
# for your system. On Linux, use "CFLAGS = -O3 -fexceptions" for example.
CC = cc
CFLAGS = -O3 -fexceptions
# C++ compiler (also uses CFLAGS)
CPLUSPLUS = g++
# ranlib, and ar, for generating libraries
RANLIB = ranlib
AR = ar cr
# copy, delete, and rename a file
CP = cp -f
RM = rm -f
MV = mv -f
# Fortran compiler (not normally required)
F77 = f77
F77FLAGS = -O
F77LIB =
# C and Fortran libraries
LIB = -lm
# For compiling MATLAB mexFunctions (MATLAB 7.5 or later)
MEX = mex -O -largeArrayDims -lmwlapack -lmwblas
# For compiling MATLAB mexFunctions (MATLAB 7.3 and 7.4)
# MEX = mex -O -largeArrayDims -lmwlapack
# For MATLAB 7.2 or earlier, you must use one of these options:
# MEX = mex -O -lmwlapack
# MEX = mex -O
# Which version of MAKE you are using (default is "make")
# MAKE = make
# MAKE = gmake
# For "make install"
INSTALL_LIB = /usr/local/lib
INSTALL_INCLUDE = /usr/local/include
#------------------------------------------------------------------------------
# BLAS and LAPACK configuration:
#------------------------------------------------------------------------------
# UMFPACK and CHOLMOD both require the BLAS. CHOLMOD also requires LAPACK.
# See Kazushige Goto's BLAS at http://www.cs.utexas.edu/users/flame/goto/ or
# http://www.tacc.utexas.edu/~kgoto/ for the best BLAS to use with CHOLMOD.
# LAPACK is at http://www.netlib.org/lapack/ . You can use the standard
# Fortran LAPACK along with Goto's BLAS to obtain very good performance.
# CHOLMOD gets a peak numeric factorization rate of 3.6 Gflops on a 3.2 GHz
# Pentium 4 (512K cache, 4GB main memory) with the Goto BLAS, and 6 Gflops
# on a 2.5Ghz dual-core AMD Opteron.
# These settings will probably not work, since there is no fixed convention for
# naming the BLAS and LAPACK library (*.a or *.so) files.
# This is probably slow ... it might connect to the Standard Reference BLAS:
BLAS = -lblas -lgfortran
LAPACK = -llapack
# NOTE: this next option for the "Goto BLAS" has nothing to do with a "goto"
# statement. Rather, the Goto BLAS is written by Dr. Kazushige Goto.
# Using the Goto BLAS:
# BLAS = -lgoto -lgfortran -lgfortranbegin
# Using non-optimized versions:
# BLAS = -lblas_plain -lgfortran -lgfortranbegin
# LAPACK = -llapack_plain
# BLAS = -lblas_plain -lgfortran -lgfortranbegin
# LAPACK = -llapack
# The BLAS might not contain xerbla, an error-handling routine for LAPACK and
# the BLAS. Also, the standard xerbla requires the Fortran I/O library, and
# stops the application program if an error occurs. A C version of xerbla
# distributed with this software (UFconfig/xerbla/libcerbla.a) includes a
# Fortran-callable xerbla routine that prints nothing and does not stop the
# application program. This is optional.
# XERBLA = ../../UFconfig/xerbla/libcerbla.a
# If you wish to use the XERBLA in LAPACK and/or the BLAS instead,
# use this option:
XERBLA =
# If you wish to use the Fortran UFconfig/xerbla/xerbla.f instead, use this:
# XERBLA = ../../UFconfig/xerbla/libxerbla.a
#------------------------------------------------------------------------------
# METIS, optionally used by CHOLMOD
#------------------------------------------------------------------------------
# If you do not have METIS, or do not wish to use it in CHOLMOD, you must
# compile CHOLMOD with the -DNPARTITION flag. You must also use the
# "METIS =" option, below.
# The path is relative to where it is used, in CHOLMOD/Lib, CHOLMOD/MATLAB, etc.
# You may wish to use an absolute path. METIS is optional. Compile
# CHOLMOD with -DNPARTITION if you do not wish to use METIS.
METIS_PATH = ../../metis-4.0
METIS = ../../metis-4.0/libmetis.a
# If you use CHOLMOD_CONFIG = -DNPARTITION then you must use the following
# options:
# METIS_PATH =
# METIS =
#------------------------------------------------------------------------------
# UMFPACK configuration:
#------------------------------------------------------------------------------
# Configuration flags for UMFPACK. See UMFPACK/Source/umf_config.h for details.
#
# -DNBLAS do not use the BLAS. UMFPACK will be very slow.
# -D'LONGBLAS=long' or -DLONGBLAS='long long' defines the integers used by
# LAPACK and the BLAS (defaults to 'int')
# -DNSUNPERF do not use the Sun Perf. Library (default is use it on Solaris)
# -DNPOSIX do not use POSIX routines sysconf and times.
# -DGETRUSAGE use getrusage
# -DNO_TIMER do not use any timing routines
# -DNRECIPROCAL do not multiply by the reciprocal
# -DNO_DIVIDE_BY_ZERO do not divide by zero
UMFPACK_CONFIG =
#------------------------------------------------------------------------------
# CHOLMOD configuration
#------------------------------------------------------------------------------
# CHOLMOD Library Modules, which appear in libcholmod.a:
# Core requires: none
# Check requires: Core
# Cholesky requires: Core, AMD, COLAMD. optional: Partition, Supernodal
# MatrixOps requires: Core
# Modify requires: Core
# Partition requires: Core, CCOLAMD, METIS. optional: Cholesky
# Supernodal requires: Core, BLAS, LAPACK
#
# CHOLMOD test/demo Modules (all are GNU GPL, do not appear in libcholmod.a):
# Tcov requires: Core, Check, Cholesky, MatrixOps, Modify, Supernodal
# optional: Partition
# Valgrind same as Tcov
# Demo requires: Core, Check, Cholesky, MatrixOps, Supernodal
# optional: Partition
#
# Configuration flags:
# -DNCHECK do not include the Check module. License GNU LGPL
# -DNCHOLESKY do not include the Cholesky module. License GNU LGPL
# -DNPARTITION do not include the Partition module. License GNU LGPL
# also do not include METIS.
# -DNGPL do not include any GNU GPL Modules in the CHOLMOD library:
# -DNMATRIXOPS do not include the MatrixOps module. License GNU GPL
# -DNMODIFY do not include the Modify module. License GNU GPL
# -DNSUPERNODAL do not include the Supernodal module. License GNU GPL
#
# -DNPRINT do not print anything.
# -D'LONGBLAS=long' or -DLONGBLAS='long long' defines the integers used by
# LAPACK and the BLAS (defaults to 'int')
# -DNSUNPERF for Solaris only. If defined, do not use the Sun
# Performance Library
CHOLMOD_CONFIG =
#------------------------------------------------------------------------------
# SuiteSparseQR configuration:
#------------------------------------------------------------------------------
# The SuiteSparseQR library can be compiled with the following options:
#
# -DNPARTITION do not include the CHOLMOD partition module
# -DNEXPERT do not include the functions in SuiteSparseQR_expert.cpp
# -DTIMING enable timing and flop counts
# -DHAVE_TBB enable the use of Intel's Threading Building Blocks (TBB)
# default, without timing, without TBB:
SPQR_CONFIG =
# with timing and TBB:
# SPQR_CONFIG = -DTIMING -DHAVE_TBB
# with timing
# SPQR_CONFIG = -DTIMING
# This is needed for IBM AIX: (but not for and C codes, just C++)
# SPQR_CONFIG = -DBLAS_NO_UNDERSCORE
# with TBB, you must select this:
# TBB = -ltbb
# without TBB:
TBB =
# with timing, you must include the timing library:
# RTLIB = -lrt
# without timing
RTLIB =
#------------------------------------------------------------------------------
# Linux
#------------------------------------------------------------------------------
# Using default compilers:
# CC = gcc
# CFLAGS = -O3 -fexceptions
# alternatives:
# CFLAGS = -g -fexceptions \
-Wall -W -Wshadow -Wmissing-prototypes -Wstrict-prototypes \
-Wredundant-decls -Wnested-externs -Wdisabled-optimization -ansi \
-funit-at-a-time
# CFLAGS = -O3 -fexceptions \
-Wall -W -Werror -Wshadow -Wmissing-prototypes -Wstrict-prototypes \
-Wredundant-decls -Wnested-externs -Wdisabled-optimization -ansi
# CFLAGS = -O3 -fexceptions -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE
# CFLAGS = -O3
# CFLAGS = -O3 -g -fexceptions
# CFLAGS = -g -fexceptions \
-Wall -W -Wshadow \
-Wredundant-decls -Wdisabled-optimization -ansi
# consider:
# -fforce-addr -fmove-all-movables -freduce-all-givs -ftsp-ordering
# -frename-registers -ffast-math -funroll-loops
# Using the Goto BLAS:
# BLAS = -lgoto -lfrtbegin -lg2c $(XERBLA) -lpthread
# Using Intel's icc and ifort compilers:
# (does not work for mexFunctions unless you add a mexopts.sh file)
# F77 = ifort
# CC = icc
# CFLAGS = -O3 -xN -vec_report=0
# CFLAGS = -g
# old (broken): CFLAGS = -ansi -O3 -ip -tpp7 -xW -vec_report0
# 64bit:
# F77FLAGS = -O -m64
# CFLAGS = -O3 -fexceptions -m64
# BLAS = -lgoto64 -lfrtbegin -lg2c -lpthread $(XERBLA)
# LAPACK = -llapack64
# SUSE Linux 10.1, AMD Opteron, with GOTO Blas
# F77 = gfortran
# BLAS = -lgoto_opteron64 -lgfortran
# SUSE Linux 10.1, Intel Pentium, with GOTO Blas
# F77 = gfortran
# BLAS = -lgoto -lgfortran
#------------------------------------------------------------------------------
# Mac
#------------------------------------------------------------------------------
# As recommended by macports, http://suitesparse.darwinports.com/
# I've tested them myself on Mac OSX 10.6.1 (Snow Leopard), on my MacBook Air.
# F77 = gfortran
# CFLAGS = -O3 -fno-common -no-cpp-precomp -fexceptions
# BLAS = -framework Accelerate
# LAPACK = -framework Accelerate
# Using netlib.org LAPACK and BLAS compiled by gfortran, with and without
# optimzation:
# BLAS = -lblas_plain -lgfortran
# LAPACK = -llapack_plain
# BLAS = -lblas_optimized -lgfortran
# LAPACK = -llapack_optimized
#------------------------------------------------------------------------------
# Solaris
#------------------------------------------------------------------------------
# 32-bit
# CFLAGS = -KPIC -dalign -xc99=%none -Xc -xlibmieee -xO5 -xlibmil -m32
# 64-bit
# CFLAGS = -fast -KPIC -xc99=%none -xlibmieee -xlibmil -m64 -Xc
# FFLAGS = -fast -KPIC -dalign -xlibmil -m64
# The Sun Performance Library includes both LAPACK and the BLAS:
# BLAS = -xlic_lib=sunperf
# LAPACK =
#------------------------------------------------------------------------------
# Compaq Alpha
#------------------------------------------------------------------------------
# 64-bit mode only
# CFLAGS = -O2 -std1
# BLAS = -ldxml
# LAPACK =
#------------------------------------------------------------------------------
# Macintosh
#------------------------------------------------------------------------------
# CC = gcc
# CFLAGS = -O3 -fno-common -no-cpp-precomp -fexceptions
# LIB = -lstdc++
# BLAS = -framework Accelerate
# LAPACK = -framework Accelerate
#------------------------------------------------------------------------------
# IBM RS 6000
#------------------------------------------------------------------------------
# BLAS = -lessl
# LAPACK =
# 32-bit mode:
# CFLAGS = -O4 -qipa -qmaxmem=16384 -qproto
# F77FLAGS = -O4 -qipa -qmaxmem=16384
# 64-bit mode:
# CFLAGS = -O4 -qipa -qmaxmem=16384 -q64 -qproto
# F77FLAGS = -O4 -qipa -qmaxmem=16384 -q64
# AR = ar -X64
#------------------------------------------------------------------------------
# SGI IRIX
#------------------------------------------------------------------------------
# BLAS = -lscsl
# LAPACK =
# 32-bit mode
# CFLAGS = -O
# 64-bit mode (32 bit int's and 64-bit long's):
# CFLAGS = -64
# F77FLAGS = -64
# SGI doesn't have ranlib
# RANLIB = echo
#------------------------------------------------------------------------------
# AMD Opteron (64 bit)
#------------------------------------------------------------------------------
# BLAS = -lgoto_opteron64 -lg2c
# LAPACK = -llapack_opteron64
# SUSE Linux 10.1, AMD Opteron
# F77 = gfortran
# BLAS = -lgoto_opteron64 -lgfortran
# LAPACK = -llapack_opteron64
#------------------------------------------------------------------------------
# remove object files and profile output
#------------------------------------------------------------------------------
CLEAN = *.o *.obj *.ln *.bb *.bbg *.da *.tcov *.gcov gmon.out *.bak *.d *.gcda *.gcno

View File

@ -1,63 +0,0 @@
#------------------------------------------------------------------------------
# CCOLAMD Makefile
#------------------------------------------------------------------------------
VERSION = 2.7.3
default: demos
include ../UFconfig/UFconfig.mk
# Compile all C code, including the C-callable routine and the mexFunctions.
# Do not the MATLAB interface.
demos:
( cd Lib ; $(MAKE) )
( cd Demo ; $(MAKE) )
# Compile all C code, including the C-callable routine and the mexFunctions.
all:
( cd Lib ; $(MAKE) )
( cd Demo ; $(MAKE) )
( cd MATLAB ; $(MAKE) )
# compile just the C-callable libraries (not mexFunctions or Demos)
library:
( cd Lib ; $(MAKE) )
# remove object files, but keep the compiled programs and library archives
clean:
( cd Lib ; $(MAKE) clean )
( cd Demo ; $(MAKE) clean )
( cd MATLAB ; $(MAKE) clean )
# clean, and then remove compiled programs and library archives
purge:
( cd Lib ; $(MAKE) purge )
( cd Demo ; $(MAKE) purge )
( cd MATLAB ; $(MAKE) purge )
distclean: purge
# get ready for distribution
dist: purge
( cd Demo ; $(MAKE) dist )
ccode: library
lib: library
# compile the MATLAB mexFunction
mex:
( cd MATLAB ; $(MAKE) )
# install CCOLAMD
install:
$(CP) Lib/libccolamd.a $(INSTALL_LIB)/libccolamd.$(VERSION).a
( cd $(INSTALL_LIB) ; ln -sf libccolamd.$(VERSION).a libccolamd.a )
$(CP) Include/ccolamd.h $(INSTALL_INCLUDE)
# uninstall CCOLAMD
uninstall:
$(RM) $(INSTALL_LIB)/libccolamd*.a
$(RM) $(INSTALL_INCLUDE)/ccolamd.h

View File

@ -1,36 +0,0 @@
# Makefile for UFconfig.c
VERSION = 3.6.0
default: ccode
include UFconfig.mk
ccode: libufconfig.a
all: libufconfig.a
libufconfig.a: UFconfig.c UFconfig.h
$(CC) $(CFLAGS) -c UFconfig.c
$(AR) libufconfig.a UFconfig.o
- $(RM) UFconfig.o
distclean: purge
purge: clean
- $(RM) *.o *.a
clean:
- $(RM) -r $(CLEAN)
# install UFconfig
install:
$(CP) libufconfig.a $(INSTALL_LIB)/libufconfig.$(VERSION).a
( cd $(INSTALL_LIB) ; ln -sf libufconfig.$(VERSION).a libufconfig.a )
$(CP) UFconfig.h $(INSTALL_INCLUDE)
# uninstall UFconfig
uninstall:
$(RM) $(INSTALL_LIB)/libufconfig*.a
$(RM) $(INSTALL_INCLUDE)/UFconfig.h

View File

@ -1,14 +1,15 @@
# All the sub-directories that need to be built
SUBDIRS = base geometry inference linear nonlinear slam 3rdparty
SUBDIRS = 3rdparty base geometry inference linear nonlinear slam
# And the corresponding libraries produced
SUBLIBS = base/libbase.la geometry/libgeometry.la inference/libinference.la \
linear/liblinear.la nonlinear/libnonlinear.la slam/libslam.la
SUBLIBS = 3rdparty/ccolamd/libccolamd.la base/libbase.la geometry/libgeometry.la \
inference/libinference.la linear/liblinear.la nonlinear/libnonlinear.la \
slam/libslam.la
# The following lines specify the actual shared library to be built with libtool
lib_LTLIBRARIES = libgtsam.la
libgtsam_la_SOURCES =
nodist_EXTRA_libgtsam_la_SOURCES = dummy.cxx
libgtsam_la_LIBADD = $(SUBLIBS) -L$(CCOLAMDLib) $(BOOST_LDFLAGS) -lccolamd
libgtsam_la_LIBADD = $(SUBLIBS) $(BOOST_LDFLAGS)
libgtsam_la_LDFLAGS = -no-undefined -version-info 0:0:0

View File

@ -55,7 +55,7 @@ libbase_la_SOURCES = $(sources)
AM_CPPFLAGS =
AM_CPPFLAGS += $(BOOST_CPPFLAGS) -I$(CCOLAMDInc) -I$(top_srcdir)
AM_CPPFLAGS += $(BOOST_CPPFLAGS) -I$(top_srcdir)
AM_LDFLAGS = $(BOOST_LDFLAGS)
#----------------------------------------------------------------------------------------------------
@ -63,8 +63,8 @@ AM_LDFLAGS = $(BOOST_LDFLAGS)
#----------------------------------------------------------------------------------------------------
TESTS = $(check_PROGRAMS)
AM_DEFAULT_SOURCE_EXT = .cpp
AM_LDFLAGS += $(boost_serialization) -L$(CCOLAMDLib) -lccolamd
LDADD = libbase.la ../../CppUnitLite/libCppUnitLite.a
AM_LDFLAGS += $(boost_serialization)
LDADD = libbase.la ../../CppUnitLite/libCppUnitLite.a ../3rdparty/ccolamd/libccolamd.la
# rule to run an executable
%.run: % $(LDADD)

View File

@ -43,17 +43,6 @@ check_PROGRAMS += tests/testEliminationTree
check_PROGRAMS += tests/testClusterTree
check_PROGRAMS += tests/testJunctionTree
#----------------------------------------------------------------------------------------------------
# discrete
#----------------------------------------------------------------------------------------------------
# Binary Inference
#headers += BinaryConditional.h
#check_PROGRAMS += tests/testBinaryBayesNet
# Timing tests
#noinst_PROGRAMS = tests/timeSymbolMaps
#----------------------------------------------------------------------------------------------------
# Create a libtool library that is not installed
# It will be packaged in the toplevel libgtsam.la as specfied in ../Makefile.am
@ -64,7 +53,7 @@ inferencedir = $(pkgincludedir)/inference
inference_HEADERS = $(headers)
noinst_LTLIBRARIES = libinference.la
libinference_la_SOURCES = $(sources)
AM_CPPFLAGS = $(BOOST_CPPFLAGS) -I$(CCOLAMDInc) -I$(top_srcdir)
AM_CPPFLAGS = $(BOOST_CPPFLAGS) -I$(top_srcdir)
AM_LDFLAGS = $(BOOST_LDFLAGS)
AM_CXXFLAGS =
@ -73,8 +62,8 @@ AM_CXXFLAGS =
#----------------------------------------------------------------------------------------------------
TESTS = $(check_PROGRAMS)
AM_LDFLAGS += $(boost_serialization)
LDADD = libinference.la ../base/libbase.la
LDADD += ../../CppUnitLite/libCppUnitLite.a
LDADD = libinference.la ../base/libbase.la ../3rdparty/ccolamd/libccolamd.la
LDADD += ../../CppUnitLite/libCppUnitLite.a
AM_DEFAULT_SOURCE_EXT = .cpp
# rule to run an executable

View File

@ -23,7 +23,7 @@
#include <iostream>
#include <vector>
#include <ccolamd.h>
#include <gtsam/3rdparty/ccolamd/ccolamd.h>
using namespace std;

View File

@ -55,7 +55,7 @@ lineardir = $(pkgincludedir)/linear
linear_HEADERS = $(headers)
noinst_LTLIBRARIES = liblinear.la
liblinear_la_SOURCES = $(sources)
AM_CPPFLAGS = $(BOOST_CPPFLAGS) -I$(CCOLAMDInc) -I$(top_srcdir)
AM_CPPFLAGS = $(BOOST_CPPFLAGS) -I$(top_srcdir)
AM_LDFLAGS = $(BOOST_LDFLAGS)
AM_CXXFLAGS =
@ -64,7 +64,7 @@ AM_CXXFLAGS =
#----------------------------------------------------------------------------------------------------
TESTS = $(check_PROGRAMS)
AM_LDFLAGS += $(boost_serialization)
LDADD = liblinear.la ../inference/libinference.la ../base/libbase.la
LDADD = liblinear.la ../inference/libinference.la ../base/libbase.la ../3rdparty/ccolamd/libccolamd.la
LDADD += ../../CppUnitLite/libCppUnitLite.a
AM_DEFAULT_SOURCE_EXT = .cpp

View File

@ -43,7 +43,7 @@ nonlineardir = $(pkgincludedir)/nonlinear
nonlinear_HEADERS = $(headers)
noinst_LTLIBRARIES = libnonlinear.la
libnonlinear_la_SOURCES = $(sources)
AM_CPPFLAGS = $(BOOST_CPPFLAGS) -I$(CCOLAMDInc) -I$(top_srcdir)
AM_CPPFLAGS = $(BOOST_CPPFLAGS) -I$(top_srcdir)
AM_LDFLAGS = $(BOOST_LDFLAGS)
AM_CXXFLAGS =
@ -52,7 +52,7 @@ AM_CXXFLAGS =
#----------------------------------------------------------------------------------------------------
TESTS = $(check_PROGRAMS)
AM_LDFLAGS += $(boost_serialization)
LDADD = libnonlinear.la ../linear/liblinear.la ../inference/libinference.la ../base/libbase.la
LDADD = libnonlinear.la ../linear/liblinear.la ../inference/libinference.la ../base/libbase.la ../3rdparty/ccolamd/libccolamd.la
LDADD += ../../CppUnitLite/libCppUnitLite.a
AM_DEFAULT_SOURCE_EXT = .cpp

View File

@ -64,7 +64,7 @@ slamdir = $(pkgincludedir)/slam
slam_HEADERS = $(headers)
noinst_LTLIBRARIES = libslam.la
libslam_la_SOURCES = $(sources)
AM_CPPFLAGS = $(BOOST_CPPFLAGS) -I$(CCOLAMDInc) -I$(top_srcdir)
AM_CPPFLAGS = $(BOOST_CPPFLAGS) -I$(top_srcdir)
AM_LDFLAGS = $(BOOST_LDFLAGS)
#----------------------------------------------------------------------------------------------------
@ -72,8 +72,8 @@ AM_LDFLAGS = $(BOOST_LDFLAGS)
#----------------------------------------------------------------------------------------------------
TESTS = $(check_PROGRAMS)
AM_DEFAULT_SOURCE_EXT = .cpp
AM_LDFLAGS += $(boost_serialization) -L$(CCOLAMDLib) -lccolamd
LDADD = libslam.la ../geometry/libgeometry.la ../nonlinear/libnonlinear.la ../linear/liblinear.la ../inference/libinference.la ../base/libbase.la
AM_LDFLAGS += $(boost_serialization)
LDADD = libslam.la ../geometry/libgeometry.la ../nonlinear/libnonlinear.la ../linear/liblinear.la ../inference/libinference.la ../base/libbase.la ../3rdparty/ccolamd/libccolamd.la
LDADD += ../../CppUnitLite/libCppUnitLite.a
# rule to run an executable

View File

@ -34,7 +34,7 @@ noinst_PROGRAMS = timeGaussianFactorGraph timeSequentialOnDataset timeMultifront
#----------------------------------------------------------------------------------------------------
TESTS = $(check_PROGRAMS)
AM_LDFLAGS = $(BOOST_LDFLAGS)
AM_CPPFLAGS = $(BOOST_CPPFLAGS) -I$(CCOLAMDInc) -I$(top_srcdir)
AM_CPPFLAGS = $(BOOST_CPPFLAGS) -I$(top_srcdir)
# link to serialization library for test
if ENABLE_SERIALIZATION