diff --git a/configure.ac b/configure.ac index 2bbd60d12..fe6e77f40 100644 --- a/configure.ac +++ b/configure.ac @@ -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 \ diff --git a/examples/Makefile.am b/examples/Makefile.am index 3f7de2b33..c33a4abf7 100644 --- a/examples/Makefile.am +++ b/examples/Makefile.am @@ -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 diff --git a/examples/vSLAMexample/Makefile.am b/examples/vSLAMexample/Makefile.am index 8f951bb85..120030991 100644 --- a/examples/vSLAMexample/Makefile.am +++ b/examples/vSLAMexample/Makefile.am @@ -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 diff --git a/gtsam/3rdparty/Makefile.am b/gtsam/3rdparty/Makefile.am index e30e3be6d..1b196f8df 100644 --- a/gtsam/3rdparty/Makefile.am +++ b/gtsam/3rdparty/Makefile.am @@ -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 diff --git a/gtsam/3rdparty/ccolamd/ChangeLog b/gtsam/3rdparty/ccolamd/ChangeLog index 499d2fc69..807135c4d 100644 --- a/gtsam/3rdparty/ccolamd/ChangeLog +++ b/gtsam/3rdparty/ccolamd/ChangeLog @@ -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" diff --git a/gtsam/3rdparty/ccolamd/Lib_Makefile.mk b/gtsam/3rdparty/ccolamd/Lib_Makefile.mk deleted file mode 100644 index c5a0ce39e..000000000 --- a/gtsam/3rdparty/ccolamd/Lib_Makefile.mk +++ /dev/null @@ -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 diff --git a/gtsam/3rdparty/ccolamd/Makefile.am b/gtsam/3rdparty/ccolamd/Makefile.am new file mode 100644 index 000000000..7732736f1 --- /dev/null +++ b/gtsam/3rdparty/ccolamd/Makefile.am @@ -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) diff --git a/gtsam/3rdparty/ccolamd/UFconfig.mk b/gtsam/3rdparty/ccolamd/UFconfig.mk deleted file mode 100644 index 60c951b6a..000000000 --- a/gtsam/3rdparty/ccolamd/UFconfig.mk +++ /dev/null @@ -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 diff --git a/gtsam/3rdparty/ccolamd/ccolamd_Makefile.mk b/gtsam/3rdparty/ccolamd/ccolamd_Makefile.mk deleted file mode 100644 index 782695062..000000000 --- a/gtsam/3rdparty/ccolamd/ccolamd_Makefile.mk +++ /dev/null @@ -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 - diff --git a/gtsam/3rdparty/ccolamd/core_ufconfig_Makefile.mk b/gtsam/3rdparty/ccolamd/core_ufconfig_Makefile.mk deleted file mode 100644 index b8ef789a4..000000000 --- a/gtsam/3rdparty/ccolamd/core_ufconfig_Makefile.mk +++ /dev/null @@ -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 - diff --git a/gtsam/Makefile.am b/gtsam/Makefile.am index 0308bdc16..fffa6594f 100644 --- a/gtsam/Makefile.am +++ b/gtsam/Makefile.am @@ -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 diff --git a/gtsam/base/Makefile.am b/gtsam/base/Makefile.am index 30dc29249..a32aef4d1 100644 --- a/gtsam/base/Makefile.am +++ b/gtsam/base/Makefile.am @@ -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) diff --git a/gtsam/inference/Makefile.am b/gtsam/inference/Makefile.am index 9d8ca3b0a..cc4016ad4 100644 --- a/gtsam/inference/Makefile.am +++ b/gtsam/inference/Makefile.am @@ -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 diff --git a/gtsam/inference/inference.cpp b/gtsam/inference/inference.cpp index d30ea79c4..a9ac330b1 100644 --- a/gtsam/inference/inference.cpp +++ b/gtsam/inference/inference.cpp @@ -23,7 +23,7 @@ #include #include -#include +#include using namespace std; diff --git a/gtsam/linear/Makefile.am b/gtsam/linear/Makefile.am index 2c15270c1..85ad8e3b6 100644 --- a/gtsam/linear/Makefile.am +++ b/gtsam/linear/Makefile.am @@ -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 diff --git a/gtsam/nonlinear/Makefile.am b/gtsam/nonlinear/Makefile.am index 2e1072b41..371c03dd8 100644 --- a/gtsam/nonlinear/Makefile.am +++ b/gtsam/nonlinear/Makefile.am @@ -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 diff --git a/gtsam/slam/Makefile.am b/gtsam/slam/Makefile.am index d65aaeb31..3c6eba813 100644 --- a/gtsam/slam/Makefile.am +++ b/gtsam/slam/Makefile.am @@ -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 diff --git a/tests/Makefile.am b/tests/Makefile.am index 5015d973f..acf78e5db 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -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