2009-08-22 06:23:24 +08:00
|
|
|
|
|
|
|
|
|
# the install destination
|
|
|
|
|
includedir = ${prefix}/include/gtsam
|
|
|
|
|
libdir = ${exec_prefix}/lib
|
|
|
|
|
|
|
|
|
|
# library version
|
|
|
|
|
current = 0 # The most recent interface number that this library implements.
|
|
|
|
|
revision = 0 # The implementation number of the current interface
|
|
|
|
|
age = 0 # The difference between the newest and oldest interfaces that \
|
|
|
|
|
this library implements. In other words, the library implements all \
|
|
|
|
|
the interface numbers in the range from number current - age to \
|
|
|
|
|
current.
|
|
|
|
|
|
|
|
|
|
# from libtool manual:
|
|
|
|
|
# Here are a set of rules to help you update your library version information:
|
|
|
|
|
# Start with version information of ‘0:0:0’ for each libtool library.
|
|
|
|
|
# - Update the version information only immediately before a public
|
|
|
|
|
# release of your software.
|
|
|
|
|
# - If the library source code has changed at all since the last
|
|
|
|
|
# update, then increment revision
|
|
|
|
|
# - If any interfaces have been added, removed, or changed since the
|
|
|
|
|
# last update, increment current, and set revision to 0.
|
|
|
|
|
# - If any interfaces have been added since the last public release,
|
|
|
|
|
# then increment age.
|
|
|
|
|
# - If any interfaces have been removed since the last public release,
|
|
|
|
|
# then set age to 0.
|
|
|
|
|
version = $(current):$(revision):$(age)
|
|
|
|
|
|
|
|
|
|
external_libs:
|
|
|
|
|
@echo Compiling CppUnitLite...; cd ../CppUnitLite; make all
|
|
|
|
|
@echo Compiling Colamd...; cd ../colamd; make all
|
|
|
|
|
|
|
|
|
|
clean : clean_external_libs
|
|
|
|
|
@echo Cleaning Cpp...; rm -f *.o *.lo *.*~ libgtsam.la $(check_PROGRAMS)
|
|
|
|
|
|
|
|
|
|
clean_external_libs:
|
|
|
|
|
@echo Cleaning CppUnitLite...; cd ../CppUnitLite; make clean
|
|
|
|
|
@echo Cleaning Colamd...; cd ../colamd; make clean
|
|
|
|
|
|
|
|
|
|
# we specify the library in levels
|
|
|
|
|
|
|
|
|
|
# basic Math
|
2010-01-11 02:23:47 +08:00
|
|
|
|
sources = Vector.cpp svdcmp.cpp Matrix.cpp
|
2009-08-22 06:23:24 +08:00
|
|
|
|
check_PROGRAMS = testVector testMatrix
|
|
|
|
|
testVector_SOURCES = testVector.cpp
|
2009-11-12 12:54:31 +08:00
|
|
|
|
testVector_LDADD = libgtsam.la
|
2009-08-22 06:23:24 +08:00
|
|
|
|
testMatrix_SOURCES = testMatrix.cpp
|
2009-11-12 12:54:31 +08:00
|
|
|
|
testMatrix_LDADD = libgtsam.la
|
2009-08-22 06:23:24 +08:00
|
|
|
|
|
2009-11-12 12:54:31 +08:00
|
|
|
|
# GTSAM basics
|
|
|
|
|
# The header files will be installed in ~/include/gtsam
|
|
|
|
|
headers = gtsam.h Value.h Testable.h Factor.h Conditional.h
|
|
|
|
|
sources += Ordering.cpp
|
2009-08-22 06:23:24 +08:00
|
|
|
|
example = smallExample.cpp
|
2009-11-12 12:54:31 +08:00
|
|
|
|
|
2009-12-11 09:38:45 +08:00
|
|
|
|
# Symbolic Inference
|
|
|
|
|
headers += SymbolicConditional.h
|
|
|
|
|
sources += SymbolicFactor.cpp SymbolicFactorGraph.cpp SymbolicBayesNet.cpp
|
|
|
|
|
check_PROGRAMS += testSymbolicFactor testSymbolicFactorGraph testSymbolicBayesNet
|
|
|
|
|
testSymbolicFactor_SOURCES = $(example) testSymbolicFactor.cpp
|
|
|
|
|
testSymbolicFactor_LDADD = libgtsam.la
|
|
|
|
|
testSymbolicFactorGraph_SOURCES = $(example) testSymbolicFactorGraph.cpp
|
|
|
|
|
testSymbolicFactorGraph_LDADD = libgtsam.la
|
|
|
|
|
testSymbolicBayesNet_SOURCES = $(example) testSymbolicBayesNet.cpp
|
|
|
|
|
testSymbolicBayesNet_LDADD = libgtsam.la
|
|
|
|
|
|
2009-11-12 12:54:31 +08:00
|
|
|
|
# Inference
|
|
|
|
|
headers += inference.h inference-inl.h
|
|
|
|
|
headers += FactorGraph.h FactorGraph-inl.h
|
2009-12-10 03:39:25 +08:00
|
|
|
|
headers += BayesNet.h BayesNet-inl.h
|
2009-12-28 07:15:36 +08:00
|
|
|
|
headers += BayesTree.h BayesTree-inl.h
|
|
|
|
|
headers += ISAM.h ISAM-inl.h GaussianISAM.h
|
2009-12-29 13:57:05 +08:00
|
|
|
|
headers += ISAM2.h ISAM2-inl.h GaussianISAM2.h
|
|
|
|
|
sources += GaussianISAM.cpp GaussianISAM2.cpp
|
2009-12-28 07:15:36 +08:00
|
|
|
|
check_PROGRAMS += testFactorgraph testInference testOrdering
|
2009-12-29 13:57:05 +08:00
|
|
|
|
check_PROGRAMS += testBayesTree testISAM testGaussianISAM testGaussianISAM2
|
2009-11-12 12:54:31 +08:00
|
|
|
|
testFactorgraph_SOURCES = testFactorgraph.cpp
|
|
|
|
|
testInference_SOURCES = $(example) testInference.cpp
|
|
|
|
|
testFactorgraph_LDADD = libgtsam.la
|
|
|
|
|
testInference_LDADD = libgtsam.la
|
2009-11-29 02:35:36 +08:00
|
|
|
|
testOrdering_SOURCES = testOrdering.cpp
|
|
|
|
|
testOrdering_LDADD = libgtsam.la
|
2009-12-28 07:15:36 +08:00
|
|
|
|
testBayesTree_SOURCES = $(example) testBayesTree.cpp
|
|
|
|
|
testBayesTree_LDADD = libgtsam.la
|
|
|
|
|
testGaussianISAM_SOURCES = $(example) testGaussianISAM.cpp
|
|
|
|
|
testGaussianISAM_LDADD = libgtsam.la
|
2009-12-29 13:57:05 +08:00
|
|
|
|
testGaussianISAM2_SOURCES = $(example) testGaussianISAM2.cpp
|
|
|
|
|
testGaussianISAM2_LDADD = libgtsam.la
|
2009-12-28 07:15:36 +08:00
|
|
|
|
testISAM_SOURCES = $(example) testISAM.cpp
|
|
|
|
|
testISAM_LDADD = libgtsam.la
|
2009-11-12 12:54:31 +08:00
|
|
|
|
|
2009-12-07 05:46:46 +08:00
|
|
|
|
# Binary Inference
|
|
|
|
|
headers += BinaryConditional.h
|
|
|
|
|
check_PROGRAMS += testBinaryBayesNet
|
|
|
|
|
testBinaryBayesNet_SOURCES = testBinaryBayesNet.cpp
|
|
|
|
|
testBinaryBayesNet_LDADD = libgtsam.la
|
|
|
|
|
|
2009-11-12 12:54:31 +08:00
|
|
|
|
# Gaussian inference
|
2009-12-31 20:56:47 +08:00
|
|
|
|
headers += GaussianFactorSet.h
|
|
|
|
|
sources += Errors.cpp VectorConfig.cpp GaussianFactor.cpp GaussianFactorGraph.cpp GaussianConditional.cpp GaussianBayesNet.cpp
|
|
|
|
|
check_PROGRAMS += testVectorConfig testGaussianFactor testGaussianFactorGraph testGaussianConditional testGaussianBayesNet
|
2009-11-12 12:54:31 +08:00
|
|
|
|
testVectorConfig_SOURCES = testVectorConfig.cpp
|
|
|
|
|
testVectorConfig_LDADD = libgtsam.la
|
2009-12-28 17:44:30 +08:00
|
|
|
|
testGaussianFactor_SOURCES = $(example) testGaussianFactor.cpp
|
|
|
|
|
testGaussianFactor_LDADD = libgtsam.la
|
|
|
|
|
testGaussianFactorGraph_SOURCES = $(example) testGaussianFactorGraph.cpp
|
|
|
|
|
testGaussianFactorGraph_LDADD = libgtsam.la
|
2009-11-13 00:41:18 +08:00
|
|
|
|
testGaussianConditional_SOURCES = $(example) testGaussianConditional.cpp
|
|
|
|
|
testGaussianConditional_LDADD = libgtsam.la
|
2009-11-12 12:54:31 +08:00
|
|
|
|
testGaussianBayesNet_SOURCES = $(example) testGaussianBayesNet.cpp
|
|
|
|
|
testGaussianBayesNet_LDADD = libgtsam.la
|
2009-12-31 20:56:47 +08:00
|
|
|
|
|
|
|
|
|
# Iterative Methods
|
|
|
|
|
headers += iterative-inl.h
|
2010-01-03 04:24:59 +08:00
|
|
|
|
sources += iterative.cpp BayesNetPreconditioner.cpp SubgraphPreconditioner.cpp
|
2009-12-31 20:56:47 +08:00
|
|
|
|
check_PROGRAMS += testIterative testBayesNetPreconditioner testSubgraphPreconditioner
|
|
|
|
|
testIterative_SOURCES = $(example) testIterative.cpp
|
|
|
|
|
testIterative_LDADD = libgtsam.la
|
|
|
|
|
testBayesNetPreconditioner_SOURCES = $(example) testBayesNetPreconditioner.cpp
|
|
|
|
|
testBayesNetPreconditioner_LDADD = libgtsam.la
|
|
|
|
|
testSubgraphPreconditioner_SOURCES = $(example) testSubgraphPreconditioner.cpp
|
|
|
|
|
testSubgraphPreconditioner_LDADD = libgtsam.la
|
2009-08-22 06:23:24 +08:00
|
|
|
|
|
2010-01-03 08:23:16 +08:00
|
|
|
|
# the timing tests below are broken for now.
|
|
|
|
|
#noinst_PROGRAMS = timeGaussianFactor timeGaussianFactorGraph
|
2009-08-22 06:23:24 +08:00
|
|
|
|
|
2010-01-03 08:23:16 +08:00
|
|
|
|
#timeGaussianFactor_SOURCES = timeGaussianFactor.cpp
|
|
|
|
|
#timeGaussianFactorGraph_SOURCES = timeGaussianFactorGraph.cpp
|
|
|
|
|
|
|
|
|
|
#timeGaussianFactor_LDADD = libgtsam.la
|
|
|
|
|
#timeGaussianFactorGraph_LDADD = libgtsam.la
|
2009-10-28 10:57:38 +08:00
|
|
|
|
|
2009-11-12 12:54:31 +08:00
|
|
|
|
# Nonlinear inference
|
|
|
|
|
headers += NonlinearFactorGraph.h NonlinearFactorGraph-inl.h
|
|
|
|
|
headers += NonlinearOptimizer.h NonlinearOptimizer-inl.h
|
2009-11-13 10:06:52 +08:00
|
|
|
|
sources += NonlinearFactor.cpp
|
2009-12-18 09:24:28 +08:00
|
|
|
|
check_PROGRAMS += testNonlinearFactor testNonlinearFactorGraph testNonlinearOptimizer
|
2009-11-12 12:54:31 +08:00
|
|
|
|
testNonlinearFactor_SOURCES = $(example) testNonlinearFactor.cpp
|
|
|
|
|
testNonlinearFactor_LDADD = libgtsam.la
|
|
|
|
|
testNonlinearFactorGraph_SOURCES = $(example) testNonlinearFactorGraph.cpp
|
|
|
|
|
testNonlinearFactorGraph_LDADD = libgtsam.la
|
|
|
|
|
testNonlinearOptimizer_SOURCES = $(example) testNonlinearOptimizer.cpp
|
|
|
|
|
testNonlinearOptimizer_LDADD = libgtsam.la
|
2009-12-18 09:24:28 +08:00
|
|
|
|
|
|
|
|
|
# Nonlinear constraints
|
|
|
|
|
headers += SQPOptimizer.h SQPOptimizer-inl.h
|
|
|
|
|
headers += NonlinearConstraint.h NonlinearConstraint-inl.h
|
|
|
|
|
headers += NonlinearEquality.h
|
|
|
|
|
check_PROGRAMS += testNonlinearConstraint testNonlinearEquality testSQP testSQPOptimizer
|
|
|
|
|
testNonlinearConstraint_SOURCES = testNonlinearConstraint.cpp
|
|
|
|
|
testNonlinearConstraint_LDADD = libgtsam.la
|
|
|
|
|
testNonlinearEquality_SOURCES = testNonlinearEquality.cpp
|
|
|
|
|
testNonlinearEquality_LDADD = libgtsam.la
|
|
|
|
|
testSQP_SOURCES = $(example) testSQP.cpp
|
|
|
|
|
testSQP_LDADD = libgtsam.la
|
|
|
|
|
testSQPOptimizer_SOURCES = $(example) testSQPOptimizer.cpp
|
|
|
|
|
testSQPOptimizer_LDADD = libgtsam.la
|
2009-11-12 12:54:31 +08:00
|
|
|
|
|
2009-08-22 06:23:24 +08:00
|
|
|
|
# geometry
|
2010-01-10 07:15:06 +08:00
|
|
|
|
headers += Lie.h Lie-inl.h
|
2009-12-10 05:50:27 +08:00
|
|
|
|
sources += Point2.cpp Rot2.cpp Pose2.cpp Point3.cpp Rot3.cpp Pose3.cpp Cal3_S2.cpp
|
2010-01-10 14:35:16 +08:00
|
|
|
|
check_PROGRAMS += testPoint2 testRot2 testPose2 testPoint3 testRot3 testPose3 testCal3_S2 testLieConfig
|
2009-08-22 06:23:24 +08:00
|
|
|
|
testPoint2_SOURCES = testPoint2.cpp
|
2009-12-10 05:50:27 +08:00
|
|
|
|
testRot2_SOURCES = testRot2.cpp
|
2009-08-29 09:24:26 +08:00
|
|
|
|
testPose2_SOURCES = testPose2.cpp
|
2009-08-22 06:23:24 +08:00
|
|
|
|
testPoint3_SOURCES = testPoint3.cpp
|
|
|
|
|
testRot3_SOURCES = testRot3.cpp
|
|
|
|
|
testPose3_SOURCES = testPose3.cpp
|
2010-01-10 14:35:16 +08:00
|
|
|
|
testCal3_S2_SOURCES = testCal3_S2.cpp
|
|
|
|
|
testLieConfig_SOURCES = testLieConfig.cpp
|
2009-08-22 06:23:24 +08:00
|
|
|
|
|
|
|
|
|
testPoint2_LDADD = libgtsam.la
|
2009-12-10 05:50:27 +08:00
|
|
|
|
testRot2_LDADD = libgtsam.la
|
2009-08-29 09:24:26 +08:00
|
|
|
|
testPose2_LDADD = libgtsam.la
|
2009-08-22 06:23:24 +08:00
|
|
|
|
testPoint3_LDADD = libgtsam.la
|
|
|
|
|
testRot3_LDADD = libgtsam.la
|
|
|
|
|
testPose3_LDADD = libgtsam.la
|
|
|
|
|
testCal3_S2_LDADD = libgtsam.la
|
2010-01-10 14:35:16 +08:00
|
|
|
|
testLieConfig_LDADD = libgtsam.la
|
2009-08-22 06:23:24 +08:00
|
|
|
|
|
2010-01-03 08:23:16 +08:00
|
|
|
|
noinst_PROGRAMS = timeRot3
|
|
|
|
|
timeRot3_SOURCES = timeRot3.cpp
|
|
|
|
|
timeRot3_LDADD = libgtsam.la
|
2010-01-02 22:28:18 +08:00
|
|
|
|
|
2009-08-22 06:23:24 +08:00
|
|
|
|
# simulated2D example
|
|
|
|
|
sources += simulated2D.cpp
|
|
|
|
|
testSimulated2D_SOURCES = testSimulated2D.cpp
|
|
|
|
|
testSimulated2D_LDADD = libgtsam.la
|
|
|
|
|
check_PROGRAMS += testSimulated2D
|
|
|
|
|
|
|
|
|
|
# simulated3D example
|
|
|
|
|
sources += Simulated3D.cpp
|
|
|
|
|
testSimulated3D_SOURCES = testSimulated3D.cpp
|
|
|
|
|
testSimulated3D_LDADD = libgtsam.la
|
|
|
|
|
check_PROGRAMS += testSimulated3D
|
|
|
|
|
|
2010-01-11 02:37:55 +08:00
|
|
|
|
# Pose SLAM headers
|
|
|
|
|
headers += BetweenFactor.h LieConfig.h LieConfig-inl.h
|
|
|
|
|
|
2010-01-11 02:21:20 +08:00
|
|
|
|
# 2D Pose constraints
|
2010-01-11 02:37:55 +08:00
|
|
|
|
headers += Pose2Factor.h Pose2Prior.h
|
2010-01-08 23:32:45 +08:00
|
|
|
|
sources += Pose2Config.cpp Pose2Graph.cpp
|
2010-01-11 02:21:20 +08:00
|
|
|
|
check_PROGRAMS += testPose2Factor testPose2Config testPose2Graph
|
2009-12-18 09:24:28 +08:00
|
|
|
|
testPose2Factor_SOURCES = $(example) testPose2Factor.cpp
|
|
|
|
|
testPose2Factor_LDADD = libgtsam.la
|
2010-01-10 23:46:18 +08:00
|
|
|
|
testPose2Config_SOURCES = $(example) testPose2Config.cpp
|
|
|
|
|
testPose2Config_LDADD = libgtsam.la
|
2009-12-18 09:24:28 +08:00
|
|
|
|
testPose2Graph_SOURCES = $(example) testPose2Graph.cpp
|
|
|
|
|
testPose2Graph_LDADD = libgtsam.la
|
2010-01-11 02:21:20 +08:00
|
|
|
|
|
2010-01-12 10:10:42 +08:00
|
|
|
|
# 2D Bearing and Range
|
|
|
|
|
headers += BearingFactor.h
|
|
|
|
|
sources +=
|
|
|
|
|
check_PROGRAMS += testBearingFactor
|
|
|
|
|
testBearingFactor_SOURCES = $(example) testBearingFactor.cpp
|
|
|
|
|
testBearingFactor_LDADD = libgtsam.la
|
|
|
|
|
|
2010-01-11 02:21:20 +08:00
|
|
|
|
# 3D Pose constraints
|
|
|
|
|
headers += Pose3Factor.h
|
|
|
|
|
sources += Pose3Config.cpp Pose3Graph.cpp
|
|
|
|
|
check_PROGRAMS += testPose3Factor testPose3Config testPose3Graph
|
2009-12-18 09:24:28 +08:00
|
|
|
|
testPose3Factor_SOURCES = $(example) testPose3Factor.cpp
|
|
|
|
|
testPose3Factor_LDADD = libgtsam.la
|
2010-01-11 02:21:20 +08:00
|
|
|
|
testPose3Config_SOURCES = $(example) testPose3Config.cpp
|
|
|
|
|
testPose3Config_LDADD = libgtsam.la
|
|
|
|
|
testPose3Graph_SOURCES = $(example) testPose3Graph.cpp
|
|
|
|
|
testPose3Graph_LDADD = libgtsam.la
|
2009-12-18 09:24:28 +08:00
|
|
|
|
|
2009-11-12 12:54:31 +08:00
|
|
|
|
# Cameras
|
|
|
|
|
sources += CalibratedCamera.cpp SimpleCamera.cpp
|
|
|
|
|
check_PROGRAMS += testCalibratedCamera testSimpleCamera
|
2009-08-22 06:23:24 +08:00
|
|
|
|
testCalibratedCamera_SOURCES = testCalibratedCamera.cpp
|
|
|
|
|
testCalibratedCamera_LDADD = libgtsam.la
|
|
|
|
|
testSimpleCamera_SOURCES = testSimpleCamera.cpp
|
|
|
|
|
testSimpleCamera_LDADD = libgtsam.la
|
2009-11-12 12:54:31 +08:00
|
|
|
|
|
|
|
|
|
# Visual SLAM
|
|
|
|
|
sources += VSLAMConfig.cpp VSLAMGraph.cpp VSLAMFactor.cpp
|
2009-11-24 23:12:59 +08:00
|
|
|
|
check_PROGRAMS += testVSLAMFactor testVSLAMGraph testVSLAMConfig
|
2009-08-22 06:23:24 +08:00
|
|
|
|
testVSLAMFactor_SOURCES = testVSLAMFactor.cpp
|
|
|
|
|
testVSLAMFactor_LDADD = libgtsam.la
|
2009-11-13 02:55:03 +08:00
|
|
|
|
testVSLAMGraph_SOURCES = testVSLAMGraph.cpp
|
|
|
|
|
testVSLAMGraph_LDADD = libgtsam.la
|
2009-11-24 23:12:59 +08:00
|
|
|
|
testVSLAMConfig_SOURCES = testVSLAMConfig.cpp
|
|
|
|
|
testVSLAMConfig_LDADD = libgtsam.la
|
2009-08-22 06:23:24 +08:00
|
|
|
|
|
2009-10-30 12:54:11 +08:00
|
|
|
|
headers += Point2Prior.h Simulated2DOdometry.h Simulated2DMeasurement.h smallExample.h
|
2009-09-09 12:43:04 +08:00
|
|
|
|
headers += $(sources:.cpp=.h)
|
2009-08-22 06:23:24 +08:00
|
|
|
|
|
|
|
|
|
# create both dynamic and static libraries
|
|
|
|
|
AM_CXXFLAGS = -I$(boost) -fPIC
|
|
|
|
|
lib_LTLIBRARIES = libgtsam.la
|
|
|
|
|
libgtsam_la_SOURCES = $(sources)
|
|
|
|
|
libgtsam_la_CPPFLAGS = $(AM_CXXFLAGS)
|
|
|
|
|
libgtsam_la_LDFLAGS = -version-info $(version) -L../colamd -lcolamd #-lboost_serialization-mt
|
|
|
|
|
|
2009-09-03 23:15:20 +08:00
|
|
|
|
# enable debug if --enable-debug is set in configure
|
|
|
|
|
if DEBUG
|
|
|
|
|
AM_CXXFLAGS += -g
|
|
|
|
|
endif
|
|
|
|
|
|
2009-08-22 06:23:24 +08:00
|
|
|
|
# install the header files
|
|
|
|
|
include_HEADERS = $(headers)
|
|
|
|
|
|
|
|
|
|
AM_CXXFLAGS += -I..
|
|
|
|
|
AM_LDFLAGS = -L../CppUnitLite -lCppUnitLite $(BOOST_LDFLAGS) $(boost_serialization) #-L. -lgtsam
|
|
|
|
|
|
|
|
|
|
TESTS = $(check_PROGRAMS)
|
2009-09-01 11:32:11 +08:00
|
|
|
|
CXXLINK = $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
|
|
|
|
|
$(CXXLD) -g $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
|
2009-09-01 11:45:37 +08:00
|
|
|
|
-o $@ # CXXLINK is only used for unit tests
|
2009-08-22 06:23:24 +08:00
|
|
|
|
|
|
|
|
|
# rule to run an executable
|
|
|
|
|
%.run: % libgtsam.la
|
|
|
|
|
./$^
|
2009-08-25 04:06:42 +08:00
|
|
|
|
|
2009-08-25 05:55:36 +08:00
|
|
|
|
# to compile colamd and cppunitlite first when make all and make install.
|
|
|
|
|
# The part after external_libs is copied from automatically generated Makefile when without the following line
|
|
|
|
|
libgtsam.la: external_libs $(libgtsam_la_OBJECTS) $(libgtsam_la_DEPENDENCIES)
|
|
|
|
|
$(libgtsam_la_LINK) -rpath $(libdir) $(libgtsam_la_OBJECTS) $(libgtsam_la_LIBADD) $(LIBS)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|