################################ # # Algebra Configuration File # ################################ # Master switch to use all algebras # SECONDO_ACTIVATE_ALL_ALGEBRAS := true ifdef SECONDO_ACTIVATE_ALL_ALGEBRAS # For several reasons, e.g. missing 3rd party libraries, one # needs to exclude some algebras. # Therefore one needs to define them a syntax suitible for # sed and find commands # EXCLUDE_ALGEBRAS := /GraphViz/d; EXCLUDE_ALGEBRA_DIRS := ! -name "GraphViz" # # Below all 3rd party libraries which are needed by # any of the algebra modules must be listed here again. # Sorry for the inconvenience but the whole algebra # registration in the system needs to be re-designed in # order to be more user/programmer friendly. # #ALGEBRA_DEP_DIRS += /usr/lib/graphviz #ALGEBRA_DEPS += gvc ALGEBRA_DEPS += gsl gslcblas ALGEBRA_DEPS += jpeg endif # Master switch to compile the minimal set # of interdependet algebras. # SECONDO_MIN_ALGEBRA_SET := true # never change this ALGEBRA_DIRS := Standard-C++ ALGEBRAS := StandardAlgebra ALGEBRA_DEPS := ALGEBRA_LINK_FLAGS := ALGEBRA_DEP_DIRS := $(SECONDO_SDK)/lib ALGEBRA_DIRS += FText ALGEBRAS += FTextAlgebra ALGEBRA_DIRS += Relation-C++ ALGEBRAS += RelationAlgebra ALGEBRA_DIRS += ExtRelation-C++ ALGEBRAS += ExtRelationAlgebra ALGEBRA_DIRS += ExtRelation-2 ALGEBRAS += ExtRelation2Algebra ALGEBRA_DIRS += OrderedRelation ALGEBRAS += OrderedRelationAlgebra ALGEBRA_DIRS += BTree ALGEBRAS += BTreeAlgebra ALGEBRA_DIRS += TupleIdentifier ALGEBRAS += TupleIdentifierAlgebra ALGEBRA_DIRS += Stream ALGEBRAS += StreamAlgebra ALGEBRA_DIRS += Function-C++ ALGEBRAS += FunctionAlgebra #ALGEBRA_DIRS += MainMemory #ALGEBRAS += MainMemoryAlgebra ALGEBRA_DIRS += MainMemory2 ALGEBRAS += MainMemory2Algebra ALGEBRA_DIRS += Guide ALGEBRAS += GuideAlgebra # required by outerjoin operators in the ExtRelationAlgebra: ALGEBRA_DIRS += Hash ALGEBRAS += HashAlgebra # comment out or add new algebras in this file. # You have to define an algebra name and a directory # name which contains the algebras source code. # All uncommented algebras are compiled and linked. To define # if an algebra is active or not edit the file AlgebraList.i # But be careful, the configuration here and in the .i file have # to be one to one otherwise the linker will get in trouble. # # Many functions in the algebra module are global definitions. # It would be better to embrace the Algebra code in # using namespace { ... Algebra Code ... }. If the # linker complains about multiple definitions this can be a solution # to correct it. # # When you call "make alg=auto " the .i file will be # created automatically and therefore it will be correct. If # you dont like that edit AlgebraList.i manually. # # ALGEBRAS defines a list of names which are later prefixed by # -lname1 -lname2 ... etc. This is used to link the algebra objects # into an executable. If the algebra code itself depends on other # librares, e.g. the jpeg algebra depends on libjpeg, put these libraries # and its directory into the variable ALGEBRA_DEPS and ALGEBRA_DEP_DIRS. ifndef SECONDO_MIN_ALGEBRA_SET ########## Example Algebras ALGEBRA_DIRS += PointRectangle ALGEBRAS += PointRectangleAlgebra ALGEBRA_DIRS += StreamExample ALGEBRAS += StreamExampleAlgebra ALGEBRA_DIRS += Polygon ALGEBRAS += PolygonAlgebra ALGEBRA_DIRS += BinaryFile ALGEBRAS += BinaryFileAlgebra ########### ALGEBRA_DIRS += Date ALGEBRAS += DateAlgebra ALGEBRA_DIRS += RTree ALGEBRAS += RTreeAlgebra ALGEBRA_DIRS += TBTree ALGEBRAS += TBTreeAlgebra ALGEBRA_DIRS += Geoid ALGEBRAS += GeoidAlgebra ALGEBRA_DIRS += Rectangle ALGEBRAS += RectangleAlgebra ALGEBRA_DIRS += Spatial ALGEBRAS += SpatialAlgebra #ALGEBRA_DIRS += SpatialLR #ALGEBRAS += SpatialLRAlgebra #ALGEBRA_DIRS += Spatial3D #ALGEBRAS += Spatial3DAlgebra #ALGEBRA_DIRS += SPart #ALGEBRAS += SPartAlgebra ALGEBRA_DIRS += RobustPlaneSweep ALGEBRAS += RobustPlaneSweepAlgebra ALGEBRA_DIRS += Temporal ALGEBRAS += TemporalAlgebra ALGEBRA_DIRS += TemporalExt ALGEBRAS += TemporalExtAlgebra ALGEBRA_DIRS += TemporalLifted ALGEBRAS += TemporalLiftedAlgebra ALGEBRA_DIRS += TemporalUnit ALGEBRAS += TemporalUnitAlgebra ALGEBRA_DIRS += DateTime ALGEBRAS += DateTimeAlgebra ALGEBRA_DIRS += Raster2 ALGEBRAS += Raster2Algebra ALGEBRA_DIRS += Network ALGEBRAS += NetworkAlgebra #ALGEBRA_DIRS += Network2 #ALGEBRAS += Network2Algebra ALGEBRA_DIRS += TemporalNet ALGEBRAS += TemporalNetAlgebra #ALGEBRA_DIRS += TemporalNet2 #ALGEBRAS += TemporalNet2Algebra ALGEBRA_DIRS += STPattern ALGEBRAS += STPatternAlgebra #ALGEBRA_DIRS += SymbolicTrajectory #ALGEBRAS += SymbolicTrajectoryAlgebra ALGEBRA_DIRS += SymbolicTrajectoryBasic ALGEBRAS += SymbolicTrajectoryBasicAlgebra ALGEBRA_DIRS += TrajectorySimilarity ALGEBRAS += TrajectorySimilarityAlgebra ALGEBRA_DIRS += PlugJoin ALGEBRAS += PlugJoinAlgebra ALGEBRA_DIRS += UpdateRel ALGEBRAS += UpdateRelationAlgebra # to use the import/export algebra, also the # topops and the toprel algebras has to be included ALGEBRA_DIRS += IMEX ALGEBRAS += ImExAlgebra #ALGEBRA_DIRS += PointSequence #ALGEBRAS += PointSequenceAlgebra ALGEBRA_DIRS += MovingRegion ALGEBRAS += MovingRegionAlgebra #ALGEBRA_DIRS += MovingRegion2 #ALGEBRAS += MovingRegion2Algebra #ALGEBRA_DIRS += MovingRegion3 #ALGEBRAS += MovingRegion3Algebra #ALGEBRA_DIRS += FixedMRegion #ALGEBRAS += FixedMRegionAlgebra #ALGEBRA_DIRS += MRegionOps3 #ALGEBRAS += MRegionOps3Algebra #ALGEBRA_DEPS += gmpxx gmp #ALGEBRA_DIRS += RegionInterpolation2 #ALGEBRAS += RegionInterpolation2Algebra ALGEBRA_DIRS += PlaneSweep ALGEBRAS += PlaneSweepAlgebra ALGEBRA_DIRS += TopRel ALGEBRAS += TopRelAlgebra ALGEBRA_DIRS += TopOps ALGEBRAS += TopOpsAlgebra ALGEBRA_DIRS += PartitionedStream ALGEBRAS += PartitionedStreamAlgebra ALGEBRA_DIRS += Array ALGEBRAS += ArrayAlgebra #ALGEBRA_DIRS += MP3b #ALGEBRAS += MP3Algebra CCFLAGS += -DNO_MP3 #ALGEBRA_DIRS += ImageSimilarity #ALGEBRAS += ImageSimilarityAlgebra CCFLAGS += -DNO_IMAGESIMILARITY ALGEBRA_DIRS += Picture ALGEBRAS += PictureAlgebra ALGEBRA_DEPS += jpeg ALGEBRA_DIRS += Graph ALGEBRAS += GraphAlgebra #ALGEBRA_DIRS += HubLabeling #ALGEBRAS += HubLabelingAlgebra # needs the grahpviz library: www.graphviz.org #ALGEBRA_DIRS += GraphViz #ALGEBRAS += GraphVizAlgebra #ALGEBRA_DEPS += gvc #ALGEBRA_DEP_DIRS += /usr/lib/graphviz # The path above may be system dependent, # also add this direcory to LD_LIBRARY_PATH ALGEBRA_DIRS += GSL ALGEBRAS += GSLAlgebra ALGEBRA_DEPS += gsl gslcblas # The chess algebras from student projects # during practical courses in 07/08 and 08/09 # # You can only activate one of them at the same time! # #ALGEBRA_DIRS += Chess #ALGEBRAS += ChessAlgebra #ALGEBRA_DIRS += ChessB #ALGEBRAS += ChessBAlgebra #CCFLAGS += -DChessB #ALGEBRA_DIRS += HierarchicalGeo #ALGEBRAS += HierarchicalGeoAlgebra ALGEBRA_DIRS += Simulation ALGEBRAS += SimulationAlgebra ALGEBRA_DEPS += gsl gslcblas ALGEBRA_DIRS += Histogram ALGEBRAS += HistogramAlgebra ALGEBRA_DIRS += Collection ALGEBRAS += CollectionAlgebra #ALGEBRA_DIRS += Midi #ALGEBRAS += MidiAlgebra #ALGEBRA_DIRS += Web #ALGEBRAS += WebAlgebra ALGEBRA_DIRS += Cluster ALGEBRAS += ClusterAlgebra #ALGEBRA_DIRS += Cluster2 #ALGEBRAS += Cluster2Algebra ALGEBRA_DIRS += Optics ALGEBRAS += OpticsAlgebra #ALGEBRA_DIRS += DBScan #ALGEBRAS += DBScanAlgebra ALGEBRA_DIRS += FileIndexAlgebra ALGEBRAS += FileIndexAlgebra ALGEBRA_DIRS += NestedRelation ALGEBRAS += NestedRelationAlgebra #ALGEBRA_DIRS += NestedRelation2 #ALGEBRAS += NestedRelation2Algebra ALGEBRA_DIRS += Auxiliary ALGEBRAS += AuxiliaryAlgebra #ALGEBRA_DIRS += Distributed #ALGEBRAS += DistributedAlgebra #ALGEBRA_DEPS += ZThread ## on max os X the framework CoreServices must be added ## uncomment the next line if you use mac os ##ALGEBRA_LINK_FLAGS += -framework CoreServices #ALGEBRA_DIRS += Distributed2 #ALGEBRAS += Distributed2Algebra #DEFAULTCCFLAGS += -pthread -DTHREAD_SAFE #CCFLAGS += -pthread -DTHREAD_SAFE #COMMON_LD_FLAGS += -lboost_thread -lboost_system # On systems that have boost::chrono compiled without header-only # option, the following line is required #COMMON_LD_FLAGS += -lboost_chrono # note if you want to enable thread save compilation the first time # on your system, goto into Secondo's home directory and enter: # touch $(grep -l "THREAD_SAFE" $(find -iname "*.h" -o -iname "*.cpp")) # This esnures a recompilation of files depending on the # THREAD_SAFE definition # Note on some system, all boost things from above must be # extended by -mt, meaning, the following lines are required there: #ALGEBRA_DIRS += Distributed2 #ALGEBRAS += Distributed2Algebra #DEFAULTCCFLAGS += -pthread -DTHREAD_SAFE #CCFLAGS += -pthread -DTHREAD_SAFE #COMMON_LD_FLAGS += -lboost_thread-mt -lboost_system-mt #ALGEBRA_DIRS += Distributed3 #ALGEBRAS += Distributed3Algebra #DEFAULTCCFLAGS += -pthread -DTHREAD_SAFE #CCFLAGS += -pthread -DTHREAD_SAFE #COMMON_LD_FLAGS += -lboost_thread -lboost_system #ALGEBRA_DIRS += DRel #ALGEBRAS += DRelAlgebra #ALGEBRA_DIRS += DistributedUpdate #ALGEBRAS += DistributedUpdateAlgebra #ALGEBRA_DIRS += Pregel #ALGEBRAS += PregelAlgebra #COMMON_LD_FLAGS += -lboost_log -lboost_log_setup -lboost_system -lboost_date_time -lboost_thread -lboost_filesystem -lboost_chrono -lboost_regex #ALGEBRA_DIRS += Distributed4 #ALGEBRAS += Distributed4Algebra #COMMON_LD_FLAGS += -lboost_filesystem #ALGEBRA_DIRS += Distributed5 #ALGEBRAS += Distributed5Algebra #COMMON_LD_FLAGS += -lboost_filesystem #ALGEBRA_DIRS += DBService #ALGEBRAS += DBServiceAlgebra #ALGEBRA_DIRS += DistributedClustering #ALGEBRAS += DistributedClusteringAlgebra #ALGEBRA_DIRS += KeyValueStore #ALGEBRAS += KeyValueStoreAlgebra #ALGEBRA_DIRS += TIN #ALGEBRAS += TinAlgebra #ALGEBRA_DEPS += quadmath gmp gmpxx #ALGEBRA_DIRS += Tile #ALGEBRAS += TileAlgebra #ALGEBRA_DIRS += LineFunction #ALGEBRAS += LineFunctionAlgebra #ALGEBRA_DIRS += RoutePlanning #ALGEBRAS += RoutePlanningAlgebra #ALGEBRA_DIRS += Pointcloud #ALGEBRAS += PointcloudAlgebra #ALGEBRA_DIRS += Pointcloud2 #ALGEBRAS += Pointcloud2Algebra #ALGEBRA_DIRS += Constraint #ALGEBRAS += ConstraintAlgebra ALGEBRA_DIRS += MTree ALGEBRAS += MTreeAlgebra ALGEBRA_DIRS += GeneralTree ALGEBRAS += GeneralTreeAlgebra ALGEBRA_DIRS += XTree ALGEBRAS += XTreeAlgebra #ALGEBRA_DIRS += OldRelation-C++ #ALGEBRAS += OldRelationAlgebra #ALGEBRA_DIRS += OptAux #ALGEBRAS += OptAuxAlgebra #ALGEBRA_DIRS += SETI #ALGEBRAS += SETIAlgebra #ALGEBRA_DIRS += UGrid #ALGEBRAS += UGridAlgebra ALGEBRA_DIRS += BTree2 ALGEBRAS += BTree2Algebra # Under Construction: Some bug fixing needed #ALGEBRA_DIRS += MONTree #ALGEBRAS += MONTreeAlgebra #ALGEBRA_DIRS += Traffic #ALGEBRAS += TrafficAlgebra #ALGEBRA_DIRS += TrajectoryAnnotation #ALGEBRAS += TrajectoryAnnotationAlgebra ALGEBRA_DIRS += Record ALGEBRAS += RecordAlgebra ALGEBRA_DIRS += SpatialJoin ALGEBRAS += SpatialJoinAlgebra ALGEBRA_DIRS += Trie ALGEBRAS += TrieAlgebra #ALGEBRA_DIRS += NearestNeighbor #ALGEBRAS += NearestNeighborAlgebra ALGEBRA_DIRS += CostEstimation ALGEBRAS += CostEstimationAlgebra #ALGEBRA_DIRS += MapMatching #ALGEBRAS += MapMatchingAlgebra #ALGEBRA_DEPS += xml2 #ALGEBRA_DIRS += MapMatchingP #ALGEBRAS += MapMatchingPAlgebra ALGEBRA_DIRS += SuffixTree ALGEBRAS += SuffixTreeAlgebra #ALGEBRA_DIRS += OSM #ALGEBRAS += OsmAlgebra #ALGEBRA_DEPS += xml2 # in some linux or macosx distributions, the xml2 library is outside # of standard paths, iff so, add the missing parts here #ALGEBRA_DEP_DIRS += /usr/lib/libxml2 #ALGEBRA_INCLUDE_DIRS += /usr/include/libxml2 # on max os X the framework CoreServices must be added # uncomment the next line if you use mac os #ALGEBRA_LINK_FLAGS += -framework CoreServices ALGEBRA_DIRS += Groupby ALGEBRAS += GroupbyAlgebra #ALGEBRA_DIRS += RIndex #ALGEBRAS += RIndexAlgebra ALGEBRA_DIRS += MMRTree ALGEBRAS += MMRTreeAlgebra #ALGEBRA_DIRS += RobustGeometry #ALGEBRAS += RobustGeometryAlgebra #ALGEBRA_DIRS += Hadoop #ALGEBRAS += HadoopAlgebra #ALGEBRA_DIRS += HadoopParallel #ALGEBRAS += HadoopParallelAlgebra ALGEBRA_DIRS += JNet ALGEBRAS += JNetAlgebra #ALGEBRA_DIRS += CStream #ALGEBRAS += CStreamAlgebra #COMMON_LD_FLAGS += -lboost_thread -lboost_system -lboost_regex #ALGEBRA_DIRS += PMRegion #ALGEBRAS += PMRegionAlgebra #ALGEBRA_DEPS += CGAL boost_thread boost_system mpfr gmp gmpxx #If CGAL is installed header-only (default for CGAL 5.0.0) use the #following ALGEBRA_DEPS (otherwise the linker will complain about #a missing libCGAL): #ALGEBRA_DEPS += boost_thread boost_system mpfr gmp gmpxx #ALGEBRA_DIRS += DFS #ALGEBRAS += DFSAlgebra #COMMON_LD_FLAGS += -L$(SECONDO_BUILD_DIR)/Tools/DFS/dfs -ldfs #COMMON_LD_FLAGS += -L$(SECONDO_BUILD_DIR)/Tools/DFS/shared -lshared #COMMON_LD_FLAGS += -L$(SECONDO_BUILD_DIR)/Tools/DFS/commlayer -lcommlayer #ALGEBRA_DIRS += ContinuousUpdate #ALGEBRAS += ContinuousUpdateAlgebra #ALGEBRA_DIRS += ContinuousQueries #ALGEBRAS += ContinuousQueriesAlgebra #ALGEBRA_DIRS += CRel #ALGEBRAS += CRelAlgebra #ALGEBRA_DIRS += ColumnSpatial #ALGEBRAS += ColumnSpatialAlgebra #ALGEBRA_DIRS += ColumnMoving #ALGEBRAS += ColumnMovingAlgebra #ALGEBRA_DIRS += CRel2 #ALGEBRAS += CRel2Algebra #ALGEBRA_DIRS += CSpatialJoin #ALGEBRAS += CSpatialJoinAlgebra #ALGEBRA_DIRS += CDACSpatialJoin #ALGEBRAS += CDACSpatialJoinAlgebra #ALGEBRA_DIRS += SpatialJoin2 #ALGEBRAS += SpatialJoin2Algebra #ALGEBRA_DIRS += CompiledExpressions #ALGEBRAS += CompiledExpressionsAlgebra #ALGEBRA_DIRS += Mail #ALGEBRAS += MailAlgebra #ALGEBRA_DIRS += Cassandra #ALGEBRAS += CassandraAlgebra #ALGEBRA_DEPS += uv cassandra #ALGEBRA_INCLUDE_DIRS += $(DSECONDO_DIR)/driver/cpp-driver/include #ALGEBRA_INCLUDE_DIRS += $(DSECONDO_DIR)/driver/libuv/include #ALGEBRA_DEP_DIRS += $(DSECONDO_DIR)/driver/libuv/.libs #ALGEBRA_DEP_DIRS += $(DSECONDO_DIR)/driver/cpp-driver #ALGEBRA_DIRS += Flock #ALGEBRAS += FlockAlgebra #ALGEBRA_DIRS += GIS #ALGEBRAS += GISAlgebra #ALGEBRA_DIRS += GPattern #ALGEBRAS += GPatternAlgebra #ALGEBRA_DIRS += HybridTrajectory #ALGEBRAS += HybridTrajectoryAlgebra #ALGEBRA_DIRS += Indoor #ALGEBRAS += IndoorAlgebra #ALGEBRA_DIRS += MAttia #ALGEBRAS += MAttiaAlgebra #ALGEBRA_DIRS += MRegionOps #ALGEBRAS += MRegionOpsAlgebra #ALGEBRA_DIRS += MRegionOps2 #ALGEBRAS += MRegionOps2Algebra #ALGEBRA_DIRS += MTopRel #ALGEBRAS += MTopRelAlgebra #ALGEBRA_DIRS += Periodic #ALGEBRAS += PeriodicAlgebra #ALGEBRA_DIRS += Precise #ALGEBRAS += PreciseAlgebra #ALGEBRA_DIRS += Precise2D #ALGEBRAS += Precise2DAlgebra #In order to build the KafkaAlgebra, you may need the installation of #librdkafka and WebSocket libraries. #Under Ubuntu Linux, this can be done by running the following statements: #sudo apt install librdkafka-dev #sudo apt-get install libcpprest-dev #sudo apt-get install libwebsocketpp-dev #ALGEBRA_DIRS += Kafka #ALGEBRAS += KafkaAlgebra #ALGEBRA_DEPS += rdkafka++ ssl crypto boost_system #ALGEBRA_DIRS += Raster #ALGEBRAS += RasterAlgebra #ALGEBRA_DIRS += RasterSpatial #ALGEBRAS += RasterSpatialAlgebra #ALGEBRA_DIRS += Region2 #ALGEBRAS += Region2Algebra #ALGEBRA_DIRS += RegionInterpolation #ALGEBRAS += RegionInterpolationAlgebra #ALGEBRA_DIRS += RemoteStream #ALGEBRAS += RemoteStreamAlgebra #ALGEBRA_DIRS += SharedStream #ALGEBRAS += SharedStreamAlgebra #ALGEBRA_DIRS += Parallel #ALGEBRAS += ParallelAlgebra #ALGEBRA_DIRS += Temporal2 #ALGEBRAS += Temporal2Algebra #ALGEBRA_DIRS += TimeSequence #ALGEBRAS += TimeSequenceAlgebra #ALGEBRA_DIRS += TransportationMode #ALGEBRAS += TransportationModeAlgebra #ALGEBRA_DIRS += TupleVector #ALGEBRAS += TupleVectorAlgebra #ALGEBRA_DIRS += TypeMapTest #ALGEBRAS += TypeMapTestAlgebra #ALGEBRA_DIRS += Urel #ALGEBRAS += UrelAlgebra #ALGEBRA_DIRS += SpatialJoinTOUCH #ALGEBRAS += SpatialJoinTOUCHAlgebra # JNI Algebras - Java code will be called from C++ code. #JNI_ALGEBRA_DIRS := Fuzzy #JNIALGEBRAS := FuzzyAlgebra #JNI_ALGEBRA_DIRS := JBBox #JNIALGEBRAS := JBBoxAlgebra #JNI_ALGEBRA_DIRS += Rose #JNIALGEBRAS += RoseAlgebra #see readme.txt in the Conversion folder for further information #ALGEBRA_DIRS += Conversion #ALGEBRAS += ConversionAlgebra #ALGEBRA_DIRS += PropertyGraph #ALGEBRAS += PropertyGraphAlgebra #ALGEBRA_DIRS += PyStream #ALGEBRAS += PyStreamAlgebra #ALGEBRA_DIRS += AssociationAnalysis #ALGEBRAS += AssociationAnalysisAlgebra #ALGEBRA_DIRS += ParThread #ALGEBRAS += ParThreadAlgebra #the flag is used to activate code in QueryProcessor #to use the ParThreadAlgebra #DEFAULTCCFLAGS += -DUSE_MULTIHREADED_QUERY_PROCESSING #DEFAULTCCFLAGS += -pthread -DTHREAD_SAFE #CCFLAGS += -pthread -DTHREAD_SAFE #COMMON_LD_FLAGS += -lboost_thread -lboost_system -lboost_filesystem #COMMON_LD_FLAGS += -L$(TBB_LIB_DIR) -ltbb #ALGEBRA_INCLUDE_DIRS += $(TBB_INCLUDE_DIR) # Needed deb packages: libmysqlclient-dev libpq-dev postgresql-server-dev-10 #ALGEBRA_DIRS += BasicEngine #ALGEBRAS += BasicEngineAlgebra #ALGEBRA_INCLUDE_DIRS += /usr/include/postgresql #ALGEBRA_INCLUDE_DIRS += /usr/include/postgresql/10/server #ALGEBRA_INCLUDE_DIRS += /usr/include/mysql #COMMON_LD_FLAGS += -lpq #COMMON_LD_FLAGS += -lmysqlclient endif ALGEBRA_DEPS := $(sort $(ALGEBRA_DEPS))