
include(FindPkgConfig)
if(NOT PKG_CONFIG_FOUND)
	message(FATAL_ERROR "pkg-config not found!" )
endif()

pkg_check_modules(NL3ROUTE REQUIRED IMPORTED_TARGET libnl-route-3.0)

include_directories(
	source
)

link_directories(
	${NL3ROUTE_LIBRARY_DIRS}
)

add_library(
	beegfs-common STATIC
	./source/common/Assert.cpp
	./source/common/toolkit/StorageTk.h
	./source/common/toolkit/RandomReentrant.h
	./source/common/toolkit/FsckTk.cpp
	./source/common/toolkit/HashTk.h
	./source/common/toolkit/UnitTk.h
	./source/common/toolkit/PreallocatedFile.h
	./source/common/toolkit/StringTk.h
	./source/common/toolkit/Time.h
	./source/common/toolkit/DisposalCleaner.h
	./source/common/toolkit/MessagingTk.cpp
	./source/common/toolkit/StringTk.cpp
	./source/common/toolkit/FileDescriptor.h
	./source/common/toolkit/EntryIdTk.h
	./source/common/toolkit/ObjectReferencer.h
	./source/common/toolkit/NamedException.h
	./source/common/toolkit/MapTk.cpp
	./source/common/toolkit/MapTk.h
	./source/common/toolkit/TimeAbs.h
	./source/common/toolkit/BitStore.h
	./source/common/toolkit/MetaStorageTk.h
	./source/common/toolkit/MetadataTk.cpp
	./source/common/toolkit/SessionTk.h
	./source/common/toolkit/BuildTypeTk.h
	./source/common/toolkit/ZipIterator.h
	./source/common/toolkit/HighResolutionStats.h
	./source/common/toolkit/NodesTk.h
	./source/common/toolkit/serialization/Serialization.h
	./source/common/toolkit/serialization/Byteswap.h
	./source/common/toolkit/serialization/SerializeStr.cpp
	./source/common/toolkit/OfflineWaitTimeoutTk.h
	./source/common/toolkit/AcknowledgmentStore.cpp
	./source/common/toolkit/SocketTk.h
	./source/common/toolkit/HashTk.cpp
	./source/common/toolkit/AtomicObjectReferencer.h
	./source/common/toolkit/poll/PollList.cpp
	./source/common/toolkit/poll/PollList.h
	./source/common/toolkit/poll/Pollable.h
	./source/common/toolkit/AcknowledgmentStore.h
	./source/common/toolkit/DisposalCleaner.cpp
	./source/common/toolkit/Time.cpp
	./source/common/toolkit/MinMaxStore.h
	./source/common/toolkit/NodesTk.cpp
	./source/common/toolkit/FsckTk.h
	./source/common/toolkit/UiTk.cpp
	./source/common/toolkit/MessagingTkArgs.h
	./source/common/toolkit/StorageTk.cpp
	./source/common/toolkit/MathTk.h
	./source/common/toolkit/MessagingTk.h
	./source/common/toolkit/TempFileTk.h
	./source/common/toolkit/FDHandle.h
	./source/common/toolkit/ListTk.h
	./source/common/toolkit/LockFD.cpp
	./source/common/toolkit/SocketTk.cpp
	./source/common/toolkit/SynchronizedCounter.h
	./source/common/toolkit/TimeTk.h
	./source/common/toolkit/NetFilter.h
	./source/common/toolkit/Pipe.h
	./source/common/toolkit/UnitTk.cpp
	./source/common/toolkit/BitStore.cpp
	./source/common/toolkit/TimeFine.h
	./source/common/toolkit/EntryIdTk.cpp
	./source/common/toolkit/DebugVariable.h
	./source/common/toolkit/Random.h
	./source/common/toolkit/UiTk.h
	./source/common/toolkit/LockFD.h
	./source/common/toolkit/TimeException.h
	./source/common/toolkit/TempFileTk.cpp
	./source/common/toolkit/MetadataTk.h
	./source/common/toolkit/BuildTypeTk.cpp
	./source/common/toolkit/hash_library/sha256.h
	./source/common/toolkit/hash_library/sha256.cpp
	./source/common/Common.h
	./source/common/benchmark/StorageBench.h
	./source/common/NumericID.h
	./source/common/net/sock/SocketDisconnectException.h
	./source/common/net/sock/Socket.cpp
	./source/common/net/sock/SocketTimeoutException.h
	./source/common/net/sock/RoutingTable.h
	./source/common/net/sock/RoutingTable.cpp
	./source/common/net/sock/RDMASocket.cpp
	./source/common/net/sock/StandardSocket.h
	./source/common/net/sock/SocketException.h
	./source/common/net/sock/Socket.h
	./source/common/net/sock/NetworkInterfaceCard.cpp
	./source/common/net/sock/NetworkInterfaceCard.h
	./source/common/net/sock/StandardSocket.cpp
	./source/common/net/sock/SocketInterruptedPollException.h
	./source/common/net/sock/SocketConnectException.h
	./source/common/net/sock/Channel.h
	./source/common/net/sock/PooledSocket.h
	./source/common/net/sock/RDMASocket.h
	./source/common/net/message/AbstractNetMessageFactory.cpp
	./source/common/net/message/SimpleStringMsg.h
	./source/common/net/message/mon/RequestStorageDataRespMsg.h
	./source/common/net/message/mon/RequestMetaDataMsg.h
	./source/common/net/message/mon/RequestStorageDataMsg.h
	./source/common/net/message/mon/RequestMetaDataRespMsg.h
	./source/common/net/message/SimpleIntStringMsg.h
	./source/common/net/message/AcknowledgeableMsg.h
	./source/common/net/message/NetMessage.h
	./source/common/net/message/control/AuthenticateChannelMsg.h
	./source/common/net/message/control/AckMsg.h
	./source/common/net/message/control/AuthenticateChannelMsgEx.h
	./source/common/net/message/control/AuthenticateChannelMsgEx.cpp
	./source/common/net/message/control/PeerInfoMsgEx.cpp
	./source/common/net/message/control/PeerInfoMsgEx.h
	./source/common/net/message/control/GenericResponseMsg.h
	./source/common/net/message/control/DummyMsg.h
	./source/common/net/message/control/SetChannelDirectMsg.h
	./source/common/net/message/control/PeerInfoMsg.h
	./source/common/net/message/NetMessageLogHelper.h
	./source/common/net/message/SimpleUInt16Msg.h
	./source/common/net/message/session/BumpFileVersionRespMsg.h
	./source/common/net/message/session/RefreshSessionMsg.h
	./source/common/net/message/session/opening/CloseChunkFileMsg.h
	./source/common/net/message/session/opening/OpenFileMsg.h
	./source/common/net/message/session/opening/CloseChunkFileRespMsg.h
	./source/common/net/message/session/opening/CloseFileRespMsg.h
	./source/common/net/message/session/opening/CloseFileMsg.h
	./source/common/net/message/session/opening/OpenFileRespMsg.h
	./source/common/net/message/session/AckNotifyRespMsg.h
	./source/common/net/message/session/AckNotifyMsg.h
	./source/common/net/message/session/rw/WriteLocalFileMsg.h
	./source/common/net/message/session/rw/WriteLocalFileRespMsg.h
	./source/common/net/message/session/rw/ReadLocalFileV2Msg.h
	./source/common/net/message/session/GetFileVersionMsg.h
	./source/common/net/message/session/RefreshSessionRespMsg.h
	./source/common/net/message/session/locking/FLockEntryRespMsg.h
	./source/common/net/message/session/locking/LockGrantedMsg.h
	./source/common/net/message/session/locking/FLockRangeRespMsg.h
	./source/common/net/message/session/locking/FLockRangeMsg.h
	./source/common/net/message/session/locking/FLockEntryMsg.h
	./source/common/net/message/session/locking/FLockAppendRespMsg.h
	./source/common/net/message/session/locking/FLockAppendMsg.h
	./source/common/net/message/session/FSyncLocalFileMsg.h
	./source/common/net/message/session/BumpFileVersionMsg.h
	./source/common/net/message/session/FSyncLocalFileRespMsg.h
	./source/common/net/message/session/GetFileVersionRespMsg.h
	./source/common/net/message/NetMessageTypes.h
	./source/common/net/message/SimpleMsg.h
	./source/common/net/message/SimpleIntMsg.h
	./source/common/net/message/nodes/GetMirrorBuddyGroupsRespMsg.h
	./source/common/net/message/nodes/RegisterTargetRespMsg.h
	./source/common/net/message/nodes/RemoveBuddyGroupRespMsg.h
	./source/common/net/message/nodes/GetTargetStatesMsg.h
	./source/common/net/message/nodes/GetTargetMappingsMsg.h
	./source/common/net/message/nodes/storagepools/RefreshStoragePoolsMsg.h
	./source/common/net/message/nodes/storagepools/RemoveStoragePoolMsg.h
	./source/common/net/message/nodes/storagepools/GetStoragePoolsRespMsg.h
	./source/common/net/message/nodes/storagepools/ModifyStoragePoolRespMsg.h
	./source/common/net/message/nodes/storagepools/GetStoragePoolsMsg.h
	./source/common/net/message/nodes/storagepools/ModifyStoragePoolMsg.h
	./source/common/net/message/nodes/storagepools/AddStoragePoolMsg.h
	./source/common/net/message/nodes/storagepools/RemoveStoragePoolRespMsg.h
	./source/common/net/message/nodes/storagepools/AddStoragePoolRespMsg.h
	./source/common/net/message/nodes/UnmapTargetRespMsg.h
	./source/common/net/message/nodes/GetMirrorBuddyGroupsMsg.h
	./source/common/net/message/nodes/GetTargetMappingsRespMsg.h
	./source/common/net/message/nodes/RemoveBuddyGroupMsg.h
	./source/common/net/message/nodes/GetTargetConsistencyStatesMsg.h
	./source/common/net/message/nodes/RegisterTargetMsg.h
	./source/common/net/message/nodes/PublishCapacitiesMsg.h
	./source/common/net/message/nodes/RefreshCapacityPoolsMsg.h
	./source/common/net/message/nodes/HeartbeatMsg.h
	./source/common/net/message/nodes/GetNodeCapacityPoolsMsg.h
	./source/common/net/message/nodes/UnmapTargetMsg.h
	./source/common/net/message/nodes/StorageBenchControlMsgResp.h
	./source/common/net/message/nodes/GetStatesAndBuddyGroupsMsg.h
	./source/common/net/message/nodes/HeartbeatRequestMsg.h
	./source/common/net/message/nodes/GetTargetConsistencyStatesRespMsg.h
	./source/common/net/message/nodes/SetTargetConsistencyStatesRespMsg.h
	./source/common/net/message/nodes/GenericDebugMsg.h
	./source/common/net/message/nodes/RegisterNodeMsg.h
	./source/common/net/message/nodes/RemoveNodeMsg.h
	./source/common/net/message/nodes/GetStatesAndBuddyGroupsRespMsg.h
	./source/common/net/message/nodes/SetTargetConsistencyStatesMsg.h
	./source/common/net/message/nodes/GenericDebugRespMsg.h
	./source/common/net/message/nodes/SetMirrorBuddyGroupRespMsg.h
	./source/common/net/message/nodes/GetClientStatsMsg.h
	./source/common/net/message/nodes/GetClientStatsRespMsg.h
	./source/common/net/message/nodes/GetNodeCapacityPoolsRespMsg.h
	./source/common/net/message/nodes/MapTargetsRespMsg.h
	./source/common/net/message/nodes/RefreshTargetStatesMsg.h
	./source/common/net/message/nodes/ChangeTargetConsistencyStatesRespMsg.h
	./source/common/net/message/nodes/MapTargetsMsg.h
	./source/common/net/message/nodes/StorageBenchControlMsg.h
	./source/common/net/message/nodes/RemoveNodeRespMsg.h
	./source/common/net/message/nodes/SetMirrorBuddyGroupMsg.h
	./source/common/net/message/nodes/GetNodesMsg.h
	./source/common/net/message/nodes/RegisterNodeRespMsg.h
	./source/common/net/message/nodes/GetTargetStatesRespMsg.h
	./source/common/net/message/nodes/GetNodesRespMsg.h
	./source/common/net/message/nodes/ChangeTargetConsistencyStatesMsg.h
	./source/common/net/message/AbstractNetMessageFactory.h
	./source/common/net/message/storage/TruncLocalFileMsg.h
	./source/common/net/message/storage/moving/MovingFileInsertRespMsg.h
	./source/common/net/message/storage/moving/RenameMsg.h
	./source/common/net/message/storage/moving/MovingDirInsertMsg.h
	./source/common/net/message/storage/moving/MovingFileInsertMsg.h
	./source/common/net/message/storage/moving/MovingDirInsertRespMsg.h
	./source/common/net/message/storage/moving/RenameRespMsg.h
	./source/common/net/message/storage/creating/RmDirMsg.h
	./source/common/net/message/storage/creating/MkFileWithPatternMsg.h
	./source/common/net/message/storage/creating/UnlinkFileRespMsg.h
	./source/common/net/message/storage/creating/MkFileWithPatternRespMsg.h
	./source/common/net/message/storage/creating/HardlinkRespMsg.h
	./source/common/net/message/storage/creating/UnlinkFileMsg.h
	./source/common/net/message/storage/creating/RmChunkPathsRespMsg.h
	./source/common/net/message/storage/creating/MkLocalDirRespMsg.h
	./source/common/net/message/storage/creating/MkFileMsg.h
	./source/common/net/message/storage/creating/MkFileRespMsg.h
	./source/common/net/message/storage/creating/HardlinkMsg.h
	./source/common/net/message/storage/creating/RmChunkPathsMsg.h
	./source/common/net/message/storage/creating/MkDirRespMsg.h
	./source/common/net/message/storage/creating/RmDirEntryMsg.h
	./source/common/net/message/storage/creating/MkLocalDirMsg.h
	./source/common/net/message/storage/creating/RmDirEntryRespMsg.h
	./source/common/net/message/storage/creating/RmDirRespMsg.h
	./source/common/net/message/storage/creating/UnlinkLocalFileMsg.h
	./source/common/net/message/storage/creating/RmLocalDirMsg.h
	./source/common/net/message/storage/creating/MkDirMsg.h
	./source/common/net/message/storage/creating/RmLocalDirRespMsg.h
	./source/common/net/message/storage/creating/UnlinkLocalFileRespMsg.h
	./source/common/net/message/storage/mirroring/ResyncLocalFileRespMsg.h
	./source/common/net/message/storage/mirroring/MirrorMetadataRespMsg.h
	./source/common/net/message/storage/mirroring/SetLastBuddyCommOverrideMsg.h
	./source/common/net/message/storage/mirroring/ResyncSessionStoreRespMsg.h
	./source/common/net/message/storage/mirroring/SetLastBuddyCommOverrideRespMsg.h
	./source/common/net/message/storage/mirroring/GetStorageResyncStatsRespMsg.h
	./source/common/net/message/storage/mirroring/StorageResyncStartedMsg.h
	./source/common/net/message/storage/mirroring/ResyncRawInodesRespMsg.h
	./source/common/net/message/storage/mirroring/ResyncLocalFileMsg.h
	./source/common/net/message/storage/mirroring/StorageResyncStartedRespMsg.h
	./source/common/net/message/storage/mirroring/GetMetaResyncStatsMsg.h
	./source/common/net/message/storage/mirroring/ResyncSessionStoreMsg.h
	./source/common/net/message/storage/mirroring/SetMetadataMirroringRespMsg.h
	./source/common/net/message/storage/mirroring/GetStorageResyncStatsMsg.h
	./source/common/net/message/storage/mirroring/SetMetadataMirroringMsg.h
	./source/common/net/message/storage/mirroring/GetMetaResyncStatsRespMsg.h
	./source/common/net/message/storage/mirroring/MirrorMetadataMsg.h
	./source/common/net/message/storage/attribs/RefreshEntryInfoRespMsg.h
	./source/common/net/message/storage/attribs/GetXAttrRespMsg.h
	./source/common/net/message/storage/attribs/ListXAttrRespMsg.h
	./source/common/net/message/storage/attribs/RemoveXAttrRespMsg.h
	./source/common/net/message/storage/attribs/StatRespMsg.h
	./source/common/net/message/storage/attribs/UpdateDirParentMsg.h
	./source/common/net/message/storage/attribs/SetDirPatternMsg.h
	./source/common/net/message/storage/attribs/ListXAttrMsg.h
	./source/common/net/message/storage/attribs/GetXAttrMsg.h
	./source/common/net/message/storage/attribs/StatMsg.h
	./source/common/net/message/storage/attribs/SetXAttrRespMsg.h
	./source/common/net/message/storage/attribs/SetAttrMsg.h
	./source/common/net/message/storage/attribs/RemoveXAttrMsg.h
	./source/common/net/message/storage/attribs/GetEntryInfoRespMsg.h
	./source/common/net/message/storage/attribs/RefreshEntryInfoMsg.h
	./source/common/net/message/storage/attribs/SetXAttrMsg.h
	./source/common/net/message/storage/attribs/GetChunkFileAttribsRespMsg.h
	./source/common/net/message/storage/attribs/UpdateDirParentRespMsg.h
	./source/common/net/message/storage/attribs/GetChunkFileAttribsMsg.h
	./source/common/net/message/storage/attribs/SetAttrRespMsg.h
	./source/common/net/message/storage/attribs/SetLocalAttrMsg.h
	./source/common/net/message/storage/attribs/GetEntryInfoMsg.h
	./source/common/net/message/storage/attribs/SetDirPatternRespMsg.h
	./source/common/net/message/storage/attribs/SetLocalAttrRespMsg.h
	./source/common/net/message/storage/TruncFileMsg.h
	./source/common/net/message/storage/StatStoragePathRespMsg.h
	./source/common/net/message/storage/SetStorageTargetInfoMsg.h
	./source/common/net/message/storage/SetStorageTargetInfoRespMsg.h
	./source/common/net/message/storage/lookup/LookupIntentRespMsg.h
	./source/common/net/message/storage/lookup/FindOwnerRespMsg.h
	./source/common/net/message/storage/lookup/FindLinkOwnerRespMsg.h
	./source/common/net/message/storage/lookup/LookupIntentMsg.h
	./source/common/net/message/storage/lookup/FindLinkOwnerMsg.h
	./source/common/net/message/storage/lookup/FindOwnerMsg.h
	./source/common/net/message/storage/listing/ListChunkDirIncrementalMsg.h
	./source/common/net/message/storage/listing/ListDirFromOffsetMsg.h
	./source/common/net/message/storage/listing/ListDirFromOffsetRespMsg.h
	./source/common/net/message/storage/listing/ListChunkDirIncrementalRespMsg.h
	./source/common/net/message/storage/GetHighResStatsRespMsg.h
	./source/common/net/message/storage/TruncFileRespMsg.h
	./source/common/net/message/storage/GetHighResStatsMsg.h
	./source/common/net/message/storage/quota/SetExceededQuotaMsg.h
	./source/common/net/message/storage/quota/GetDefaultQuotaRespMsg.h
	./source/common/net/message/storage/quota/GetDefaultQuotaMsg.h
	./source/common/net/message/storage/quota/SetQuotaRespMsg.h
	./source/common/net/message/storage/quota/SetDefaultQuotaMsg.h
	./source/common/net/message/storage/quota/GetQuotaInfoMsg.h
	./source/common/net/message/storage/quota/SetQuotaMsg.h
	./source/common/net/message/storage/quota/SetDefaultQuotaRespMsg.h
	./source/common/net/message/storage/quota/RequestExceededQuotaMsg.h
	./source/common/net/message/storage/quota/GetQuotaInfoRespMsg.h
	./source/common/net/message/storage/quota/SetExceededQuotaRespMsg.h
	./source/common/net/message/storage/quota/RequestExceededQuotaRespMsg.h
	./source/common/net/message/storage/TruncLocalFileRespMsg.h
	./source/common/net/message/storage/StatStoragePathMsg.h
	./source/common/net/message/fsck/RetrieveFsIDsRespMsg.h
	./source/common/net/message/fsck/FsckSetEventLoggingMsg.h
	./source/common/net/message/fsck/RetrieveDirEntriesMsg.h
	./source/common/net/message/fsck/RemoveInodesRespMsg.h
	./source/common/net/message/fsck/FetchFsckChunkListRespMsg.h
	./source/common/net/message/fsck/MoveChunkFileMsg.h
	./source/common/net/message/fsck/CreateDefDirInodesRespMsg.h
	./source/common/net/message/fsck/UpdateDirAttribsMsg.h
	./source/common/net/message/fsck/UpdateFileAttribsMsg.h
	./source/common/net/message/fsck/FetchFsckChunkListMsg.h
	./source/common/net/message/fsck/AdjustChunkPermissionsMsg.h
	./source/common/net/message/fsck/FsckSetEventLoggingRespMsg.h
	./source/common/net/message/fsck/FixInodeOwnersInDentryMsg.h
	./source/common/net/message/fsck/RecreateDentriesRespMsg.h
	./source/common/net/message/fsck/FixInodeOwnersRespMsg.h
	./source/common/net/message/fsck/RetrieveInodesRespMsg.h
	./source/common/net/message/fsck/LinkToLostAndFoundMsg.h
	./source/common/net/message/fsck/RecreateFsIDsMsg.h
	./source/common/net/message/fsck/RetrieveFsIDsMsg.h
	./source/common/net/message/fsck/MoveChunkFileRespMsg.h
	./source/common/net/message/fsck/DeleteDirEntriesMsg.h
	./source/common/net/message/fsck/FsckModificationEventMsg.h
	./source/common/net/message/fsck/DeleteDirEntriesRespMsg.h
	./source/common/net/message/fsck/FixInodeOwnersInDentryRespMsg.h
	./source/common/net/message/fsck/RemoveInodesMsg.h
	./source/common/net/message/fsck/FixInodeOwnersMsg.h
	./source/common/net/message/fsck/DeleteChunksRespMsg.h
	./source/common/net/message/fsck/UpdateDirAttribsRespMsg.h
	./source/common/net/message/fsck/CreateEmptyContDirsRespMsg.h
	./source/common/net/message/fsck/RetrieveDirEntriesRespMsg.h
	./source/common/net/message/fsck/RetrieveInodesMsg.h
	./source/common/net/message/fsck/AdjustChunkPermissionsRespMsg.h
	./source/common/net/message/fsck/DeleteChunksMsg.h
	./source/common/net/message/fsck/RecreateDentriesMsg.h
	./source/common/net/message/fsck/CreateEmptyContDirsMsg.h
	./source/common/net/message/fsck/CreateDefDirInodesMsg.h
	./source/common/net/message/fsck/UpdateFileAttribsRespMsg.h
	./source/common/net/message/fsck/LinkToLostAndFoundRespMsg.h
	./source/common/net/message/fsck/RecreateFsIDsRespMsg.h
	./source/common/net/message/SimpleInt64Msg.h
	./source/common/net/msghelpers/MsgHelperGenericDebug.cpp
	./source/common/net/msghelpers/MsgHelperGenericDebug.h
	./source/common/logging/Backtrace.h
	./source/common/components/AbstractDatagramListener.h
	./source/common/components/ComponentInitException.h
	./source/common/components/StreamListener.h
	./source/common/components/RegistrationDatagramListener.h
	./source/common/components/RegistrationDatagramListener.cpp
	./source/common/components/StatsCollector.h
	./source/common/components/StatsCollector.cpp
	./source/common/components/TimerQueue.h
	./source/common/components/worker/WriteLocalFileWork.h
	./source/common/components/worker/queue/MultiWorkQueue.cpp
	./source/common/components/worker/queue/ListWorkContainer.h
	./source/common/components/worker/queue/UserWorkContainer.h
	./source/common/components/worker/queue/StreamListenerWorkQueue.h
	./source/common/components/worker/queue/MultiWorkQueue.h
	./source/common/components/worker/queue/AbstractWorkContainer.h
	./source/common/components/worker/queue/PersonalWorkQueue.h
	./source/common/components/worker/queue/WorkQueue.h
	./source/common/components/worker/Work.h
	./source/common/components/worker/UnixConnWorker.h
	./source/common/components/worker/ReadLocalFileV2Work.h
	./source/common/components/worker/GetQuotaInfoWork.cpp
	./source/common/components/worker/GetQuotaInfoWork.h
	./source/common/components/worker/IncSyncedCounterWork.h
	./source/common/components/worker/LocalConnWorker.cpp
	./source/common/components/worker/DecAtomicWork.cpp
	./source/common/components/worker/IncAtomicWork.h
	./source/common/components/worker/IncomingDataWork.h
	./source/common/components/worker/Worker.cpp
	./source/common/components/worker/WriteLocalFileWork.cpp
	./source/common/components/worker/Worker.h
	./source/common/components/worker/ReadLocalFileV2Work.cpp
	./source/common/components/worker/DummyWork.h
	./source/common/components/worker/IncAtomicWork.cpp
	./source/common/components/worker/IncomingDataWork.cpp
	./source/common/components/worker/DecAtomicWork.h
	./source/common/components/worker/LocalConnWorker.h
	./source/common/components/TimerQueue.cpp
	./source/common/components/streamlistenerv2/StreamListenerV2.cpp
	./source/common/components/streamlistenerv2/IncomingPreprocessedMsgWork.cpp
	./source/common/components/streamlistenerv2/ConnAcceptor.cpp
	./source/common/components/streamlistenerv2/StreamListenerV2.h
	./source/common/components/streamlistenerv2/ConnAcceptor.h
	./source/common/components/streamlistenerv2/IncomingPreprocessedMsgWork.h
	./source/common/components/StreamListener.cpp
	./source/common/components/AbstractDatagramListener.cpp
	./source/common/system/System.cpp
	./source/common/system/System.h
	./source/common/app/log/LogContext.h
	./source/common/app/log/Logger.cpp
	./source/common/app/log/Logger.h
	./source/common/app/AbstractApp.cpp
	./source/common/app/AbstractApp.h
	./source/common/app/config/ICommonConfig.h
	./source/common/app/config/InvalidConfigException.h
	./source/common/app/config/ICommonConfig.cpp
	./source/common/app/config/AbstractConfig.cpp
	./source/common/app/config/AbstractConfig.h
	./source/common/threading/UniqueRWLock.h
	./source/common/threading/SafeRWLock.cpp
	./source/common/threading/RWLock.h
	./source/common/threading/RWLockException.h
	./source/common/threading/Atomics.h
	./source/common/threading/PThreadCreateException.h
	./source/common/threading/Condition.h
	./source/common/threading/PThread.cpp
	./source/common/threading/SynchronizationException.h
	./source/common/threading/PThreadException.h
	./source/common/threading/Condition.cpp
	./source/common/threading/Mutex.h
	./source/common/threading/Barrier.h
	./source/common/threading/PThread.h
	./source/common/threading/ConditionException.h
	./source/common/threading/SafeRWLock.h
	./source/common/threading/RWLockGuard.h
	./source/common/threading/MutexException.h
	./source/common/nodes/ClientOps.cpp
	./source/common/nodes/NumNodeID.h
	./source/common/nodes/NodeStoreServers.cpp
	./source/common/nodes/MirrorBuddyGroupMapper.h
	./source/common/nodes/StoragePoolStore.cpp
	./source/common/nodes/MirrorBuddyGroupCreator.h
	./source/common/nodes/NodeStore.h
	./source/common/nodes/Node.h
	./source/common/nodes/LocalNode.h
	./source/common/nodes/NodeOpStats.h
	./source/common/nodes/NodeOpStats.cpp
	./source/common/nodes/NodeConnPool.cpp
	./source/common/nodes/TargetMapper.h
	./source/common/nodes/OpCounter.h
	./source/common/nodes/StoragePoolStore.h
	./source/common/nodes/NodeConnPool.h
	./source/common/nodes/Node.cpp
	./source/common/nodes/MirrorBuddyGroupCreator.cpp
	./source/common/nodes/MirrorBuddyGroupMapper.cpp
	./source/common/nodes/DynamicPoolLimits.h
	./source/common/nodes/LocalNodeConnPool.cpp
	./source/common/nodes/DynamicPoolLimits.cpp
	./source/common/nodes/TargetStateStore.h
	./source/common/nodes/RootInfo.h
	./source/common/nodes/TargetCapacityPools.cpp
	./source/common/nodes/NodeCapacityPools.h
	./source/common/nodes/ClientOps.h
	./source/common/nodes/LocalNodeConnPool.h
	./source/common/nodes/NodeStoreServers.h
	./source/common/nodes/NodeType.h
	./source/common/nodes/NodeStoreClients.cpp
	./source/common/nodes/TargetStateInfo.h
	./source/common/nodes/NodeStoreClients.h
	./source/common/nodes/OpCounterTypes.h
	./source/common/nodes/TargetStateStore.cpp
	./source/common/nodes/MirrorBuddyGroup.h
	./source/common/nodes/TargetMapper.cpp
	./source/common/nodes/TargetCapacityPools.h
	./source/common/nodes/CapacityPoolType.h
	./source/common/nodes/NodeCapacityPools.cpp
	./source/common/nodes/AbstractNodeStore.h
	./source/common/storage/PathInfo.h
	./source/common/storage/EntryInfoWithDepth.h
	./source/common/storage/striping/Raid0Pattern.h
	./source/common/storage/striping/ChunkFileInfo.h
	./source/common/storage/striping/StripePattern.cpp
	./source/common/storage/striping/DynamicFileAttribs.h
	./source/common/storage/striping/ChunkFileInfo.cpp
	./source/common/storage/striping/BuddyMirrorPattern.h
	./source/common/storage/striping/BuddyMirrorPattern.cpp
	./source/common/storage/striping/Raid10Pattern.cpp
	./source/common/storage/striping/Raid10Pattern.h
	./source/common/storage/striping/Raid0Pattern.cpp
	./source/common/storage/striping/StripePattern.h
	./source/common/storage/Storagedata.h
	./source/common/storage/StorageTargetInfo.h
	./source/common/storage/FileEvent.h
	./source/common/storage/StoragePool.h
	./source/common/storage/EntryInfo.h
	./source/common/storage/ChunksBlocksVec.h
	./source/common/storage/EntryInfo.cpp
	./source/common/storage/StatData.h
	./source/common/storage/StorageErrors.cpp
	./source/common/storage/StatData.cpp
	./source/common/storage/mirroring/SyncCandidateStore.h
	./source/common/storage/mirroring/BuddyResyncJobStatistics.h
	./source/common/storage/StoragePoolId.h
	./source/common/storage/StorageErrors.h
	./source/common/storage/StorageDefinitions.h
	./source/common/storage/StorageTargetInfo.cpp
	./source/common/storage/StoragePool.cpp
	./source/common/storage/Path.h
	./source/common/storage/quota/ExceededQuotaPerTarget.h
	./source/common/storage/quota/QuotaDefaultLimits.h
	./source/common/storage/quota/ExceededQuotaPerTarget.cpp
	./source/common/storage/quota/GetQuotaConfig.h
	./source/common/storage/quota/QuotaDefaultLimits.cpp
	./source/common/storage/quota/ExceededQuotaStore.h
	./source/common/storage/quota/QuotaData.h
	./source/common/storage/quota/QuotaData.cpp
	./source/common/storage/quota/GetQuotaInfo.h
	./source/common/storage/quota/Quota.cpp
	./source/common/storage/quota/ExceededQuotaStore.cpp
	./source/common/storage/quota/Quota.h
	./source/common/storage/quota/QuotaConfig.h
	./source/common/storage/quota/GetQuotaInfo.cpp
	./source/common/storage/Metadata.h
	./source/common/fsck/FsckChunk.h
	./source/common/fsck/FsckFsID.h
	./source/common/fsck/FsckModificationEvent.h
	./source/common/fsck/FsckContDir.h
	./source/common/fsck/FsckFileInode.h
	./source/common/fsck/FsckTargetID.h
	./source/common/fsck/FsckDirEntry.h
	./source/common/fsck/FsckDirInode.h
)

if(NOT BEEGFS_SKIP_TESTS)
	add_executable(
		test-common
		./tests/TestIPv4Network.cpp
		./tests/TestUiTk.cpp
		./tests/TestPreallocatedFile.cpp
		./tests/TestRWLock.cpp
		./tests/TestLockFD.cpp
		./tests/TestPath.cpp
		./tests/TestRWLock.h
		./tests/TestUnitTk.cpp
		./tests/TestStringTk.cpp
		./tests/TestEntryIdTk.cpp
		./tests/TestNIC.cpp
		./tests/TestNetFilter.cpp
		./tests/TestSerialization.cpp
		./tests/TestBitStore.cpp
		./tests/TestTargetCapacityPools.cpp
		./tests/TestStorageTk.cpp
		./tests/TestStripePattern.cpp
		./tests/TestListTk.cpp
		./tests/TestTimerQueue.cpp
	)

	target_link_libraries(
		test-common
		beegfs-common
		pthread
		gtest_main
		dl
		${NL3ROUTE_LIBRARIES}
	)

	add_test(
		NAME test-common
		COMMAND test-common --compiler
	)
endif()

add_library(
	beegfs_ib SHARED
	./ib_lib/RDMASocketImpl.h
	./ib_lib/net/sock/ibvsocket/OpenTk_IBVSocket.h
	./ib_lib/net/sock/ibvsocket/IBVSocket.h
	./ib_lib/net/sock/ibvsocket/IBVSocket.cpp
	./ib_lib/RDMASocketImpl.cpp
)

target_include_directories(
	beegfs-common PRIVATE ${NL3ROUTE_INCLUDE_DIRS}
)

target_link_libraries(
	beegfs-common
	${NL3ROUTE_LIBRARIES}
	ssl
	crypto
)

target_include_directories(beegfs_ib PRIVATE ./ib_lib)

target_link_libraries(
	beegfs_ib
	rdmacm
	ibverbs
)

install(
	TARGETS beegfs_ib
	DESTINATION "usr/lib"
	COMPONENT "libbeegfs-ib"
)
