5 # Note that the order of SUBDIRS matters.
6 # Many subdirectories depend on libfollytest from the test directory,
7 # so it must appear before other directories
8 SUBDIRS = . test experimental $(MAYBE_INIT) io/test stats/test
10 ACLOCAL_AMFLAGS = -I m4
15 noinst_PROGRAMS = generate_fingerprint_tables
16 generate_fingerprint_tables_SOURCES = build/GenerateFingerprintTables.cpp
17 generate_fingerprint_tables_LDADD = libfollybase.la
19 noinst_LTLIBRARIES = \
20 libfollybasesse42.la \
27 follyincludedir = $(includedir)/folly
29 nobase_follyinclude_HEADERS = \
37 AtomicHashArray-inl.h \
40 AtomicIntrusiveLinkedList.h \
43 AtomicUnorderedMap.h \
51 ClockGettimeWrappers.h \
52 ConcurrentSkipList.h \
53 ConcurrentSkipList-inl.h \
59 concurrency/CacheLocality.h \
60 concurrency/ConcurrentHashMap.h \
61 concurrency/CoreCachedSharedPtr.h \
62 concurrency/detail/ConcurrentHashMap-detail.h \
64 detail/AtomicHashUtils.h \
65 detail/AtomicUnorderedMapUtils.h \
66 detail/AtomicUtils.h \
67 detail/BitIteratorDetail.h \
68 detail/ChecksumDetail.h \
69 detail/DiscriminatedPtrDetail.h \
70 detail/FileUtilDetail.h \
71 detail/FingerprintPolynomial.h \
73 detail/GroupVarintDetail.h \
75 detail/IPAddressSource.h \
77 detail/MemoryIdler.h \
78 detail/MPMCPipelineDetail.h \
79 detail/RangeCommon.h \
82 detail/SlowFingerprint.h \
83 detail/SocketFastOpen.h \
84 detail/StaticSingletonManager.h \
85 detail/ThreadLocalDetail.h \
86 detail/TurnSequencer.h \
87 detail/UncaughtExceptionCounter.h \
98 ExceptionWrapper-inl.h \
101 concurrency/AtomicSharedPtr.h \
102 concurrency/detail/AtomicSharedPtr-detail.h \
103 experimental/AsymmetricMemoryBarrier.h \
104 experimental/AutoTimer.h \
105 experimental/ThreadedRepeatingFunctionRunner.h \
106 experimental/Bits.h \
107 experimental/BitVectorCoding.h \
108 experimental/CodingDetail.h \
109 experimental/DynamicParser.h \
110 experimental/DynamicParser-inl.h \
111 experimental/ExecutionObserver.h \
112 experimental/EliasFanoCoding.h \
113 experimental/EnvUtil.h \
114 experimental/EventCount.h \
115 experimental/Instructions.h \
116 experimental/bser/Bser.h \
117 experimental/exception_tracer/ExceptionAbi.h \
118 experimental/exception_tracer/ExceptionCounterLib.h \
119 experimental/exception_tracer/ExceptionTracer.h \
120 experimental/exception_tracer/ExceptionTracerLib.h \
121 experimental/exception_tracer/StackTrace.h \
122 experimental/FunctionScheduler.h \
123 experimental/FutureDAG.h \
124 experimental/hazptr/debug.h \
125 experimental/hazptr/hazptr.h \
126 experimental/hazptr/hazptr-impl.h \
127 experimental/hazptr/memory_resource.h \
128 experimental/io/FsUtil.h \
129 experimental/JemallocNodumpAllocator.h \
130 experimental/JSONSchema.h \
131 experimental/LockFreeRingBuffer.h \
132 experimental/logging/AsyncFileWriter.h \
133 experimental/logging/GlogStyleFormatter.h \
134 experimental/logging/ImmediateFileWriter.h \
135 experimental/logging/Init.h \
136 experimental/logging/LogCategory.h \
137 experimental/logging/LogFormatter.h \
138 experimental/logging/Logger.h \
139 experimental/logging/LoggerDB.h \
140 experimental/logging/LogHandler.h \
141 experimental/logging/LogLevel.h \
142 experimental/logging/LogMessage.h \
143 experimental/logging/LogName.h \
144 experimental/logging/LogStream.h \
145 experimental/logging/LogStreamProcessor.h \
146 experimental/logging/LogWriter.h \
147 experimental/logging/printf.h \
148 experimental/logging/RateLimiter.h \
149 experimental/logging/StandardLogHandler.h \
150 experimental/logging/xlog.h \
151 experimental/NestedCommandLineApp.h \
152 experimental/observer/detail/Core.h \
153 experimental/observer/detail/GraphCycleDetector.h \
154 experimental/observer/detail/ObserverManager.h \
155 experimental/observer/detail/Observer-pre.h \
156 experimental/observer/Observable.h \
157 experimental/observer/Observable-inl.h \
158 experimental/observer/Observer.h \
159 experimental/observer/Observer-inl.h \
160 experimental/observer/SimpleObservable.h \
161 experimental/observer/SimpleObservable-inl.h \
162 experimental/ProgramOptions.h \
163 experimental/ReadMostlySharedPtr.h \
164 experimental/Select64.h \
165 experimental/StampedPtr.h \
166 experimental/StringKeyedCommon.h \
167 experimental/StringKeyedMap.h \
168 experimental/StringKeyedSet.h \
169 experimental/StringKeyedUnorderedMap.h \
170 experimental/StringKeyedUnorderedSet.h \
171 experimental/TestUtil.h \
172 experimental/TLRefCount.h \
173 experimental/TupleOps.h \
188 futures/DrivableExecutor.h \
189 futures/Future-pre.h \
192 futures/Future-inl.h \
193 futures/FutureException.h \
194 futures/FutureSplitter.h \
195 futures/InlineExecutor.h \
196 futures/ManualExecutor.h \
197 futures/Promise-inl.h \
199 futures/QueuedImmediateExecutor.h \
200 futures/ScheduledExecutor.h \
201 futures/SharedPromise.h \
202 futures/SharedPromise-inl.h \
203 futures/ThreadWheelTimekeeper.h \
204 futures/Timekeeper.h \
205 futures/detail/Core.h \
206 futures/detail/FSM.h \
207 futures/detail/Types.h \
208 futures/test/TestExecutor.h \
209 hash/SpookyHashV1.h \
210 hash/SpookyHashV2.h \
222 gen/ParallelMap-inl.h \
225 GlobalThreadPoolList.h \
231 IPAddressException.h \
244 io/ShutdownSocketSet.h \
245 io/async/AsyncPipe.h \
246 io/async/AsyncTimeout.h \
247 io/async/AsyncTransport.h \
248 io/async/AsyncUDPServerSocket.h \
249 io/async/AsyncUDPSocket.h \
250 io/async/AsyncServerSocket.h \
251 io/async/AsyncSignalHandler.h \
252 io/async/AsyncSocket.h \
253 io/async/AsyncSocketBase.h \
254 io/async/AsyncSSLSocket.h \
255 io/async/AsyncSocketException.h \
256 io/async/DecoratedAsyncTransportWrapper.h \
257 io/async/DelayedDestructionBase.h \
258 io/async/DelayedDestruction.h \
259 io/async/DestructorCheck.h \
260 io/async/EventBase.h \
261 io/async/EventBaseLocal.h \
262 io/async/EventBaseManager.h \
263 io/async/EventBaseThread.h \
264 io/async/EventFDWrapper.h \
265 io/async/EventHandler.h \
266 io/async/EventUtil.h \
267 io/async/NotificationQueue.h \
268 io/async/HHWheelTimer.h \
269 io/async/ssl/OpenSSLUtils.h \
270 io/async/ssl/SSLErrors.h \
271 io/async/ssl/TLSDefinitions.h \
273 io/async/SSLContext.h \
274 io/async/SSLOptions.h \
275 io/async/ScopedEventBaseThread.h \
276 io/async/TimeoutManager.h \
277 io/async/VirtualEventBase.h \
278 io/async/WriteChainAsyncTransportWrapper.h \
279 io/async/test/AsyncSSLSocketTest.h \
280 io/async/test/AsyncSocketTest2.h \
281 io/async/test/BlockingSocket.h \
282 io/async/test/MockAsyncSocket.h \
283 io/async/test/MockAsyncServerSocket.h \
284 io/async/test/MockAsyncSSLSocket.h \
285 io/async/test/MockAsyncTransport.h \
286 io/async/test/MockAsyncUDPSocket.h \
287 io/async/test/MockTimeoutManager.h \
288 io/async/test/ScopedBoundPort.h \
289 io/async/test/SocketPair.h \
290 io/async/test/TestSSLServer.h \
291 io/async/test/TimeUtil.h \
292 io/async/test/UndelayedDestruction.h \
293 io/async/test/Util.h \
294 io/compression/Utils.h \
295 io/compression/Zlib.h \
312 memory/UninitializedMemoryHacks.h \
326 portability/Atomic.h \
327 portability/BitsFunctexcept.h \
328 portability/Builtins.h \
329 portability/Config.h \
330 portability/Constexpr.h \
331 portability/Dirent.h \
332 portability/Event.h \
333 portability/Fcntl.h \
334 portability/GFlags.h \
335 portability/GMock.h \
336 portability/GTest.h \
337 portability/IOVec.h \
338 portability/Libgen.h \
339 portability/Malloc.h \
341 portability/Memory.h \
342 portability/OpenSSL.h \
343 portability/PThread.h \
344 portability/Semaphore.h \
345 portability/Sockets.h \
346 portability/Stdio.h \
347 portability/Stdlib.h \
348 portability/String.h \
349 portability/Syslog.h \
350 portability/SysFile.h \
351 portability/SysMembarrier.h \
352 portability/SysMman.h \
353 portability/SysResource.h \
354 portability/SysStat.h \
355 portability/SysSyscall.h \
356 portability/SysTime.h \
357 portability/SysTypes.h \
358 portability/SysUio.h \
360 portability/TypeTraits.h \
361 portability/Unistd.h \
362 portability/Windows.h \
364 PriorityMPMCQueue.h \
365 ProducerConsumerQueue.h \
377 SingletonThreadLocal.h \
381 sorted_vector_types.h \
385 ssl/OpenSSLCertUtils.h \
387 ssl/OpenSSLPtrTypes.h \
388 ssl/OpenSSLVersionFinder.h \
390 ssl/OpenSSLLockTypes.h \
391 ssl/detail/OpenSSLThreading.h \
392 ssl/detail/SSLSessionImpl.h \
393 stats/detail/Bucket.h \
394 stats/BucketedTimeSeries-defs.h \
395 stats/BucketedTimeSeries.h \
396 stats/Histogram-defs.h \
398 stats/MultiLevelTimeSeries-defs.h \
399 stats/MultiLevelTimeSeries.h \
400 stats/TimeseriesHistogram-defs.h \
401 stats/TimeseriesHistogram.h \
408 test/FBStringTestBenchmarks.cpp.h \
409 test/FBVectorTestBenchmarks.cpp.h \
410 test/function_benchmark/benchmark_impl.h \
411 test/function_benchmark/test_functions.h \
412 test/SynchronizedTestLib.h \
413 test/SynchronizedTestLib-inl.h \
415 ThreadCachedArena.h \
422 tracing/StaticTracepoint.h \
423 tracing/ScopedTraceSection.h \
430 UncaughtExceptions.h \
438 FormatTables.cpp: build/generate_format_tables.py
439 $(PYTHON) build/generate_format_tables.py
440 CLEANFILES += FormatTables.cpp
442 EscapeTables.cpp: build/generate_escape_tables.py
443 $(PYTHON) build/generate_escape_tables.py
444 CLEANFILES += EscapeTables.cpp
446 GroupVarintTables.cpp: build/generate_varint_tables.py
447 $(PYTHON) build/generate_varint_tables.py
448 CLEANFILES += GroupVarintTables.cpp
450 libfollybasesse42_la_SOURCES = \
451 detail/Crc32cDetail.cpp \
452 detail/ChecksumDetail.cpp \
453 detail/RangeSse42.cpp
455 libfollybase_la_SOURCES = \
458 detail/RangeCommon.cpp \
464 portability/BitsFunctexcept.cpp \
468 libfolly_la_SOURCES = \
471 ClockGettimeWrappers.cpp \
472 concurrency/CacheLocality.cpp \
474 detail/IPAddress.cpp \
475 detail/StaticSingletonManager.cpp \
476 detail/ThreadLocalDetail.cpp \
478 ExceptionWrapper.cpp \
482 FingerprintTables.cpp \
483 futures/Barrier.cpp \
485 futures/FutureException.cpp \
486 futures/ManualExecutor.cpp \
487 futures/QueuedImmediateExecutor.cpp \
488 futures/ThreadWheelTimekeeper.cpp \
489 futures/test/TestExecutor.cpp \
490 experimental/hazptr/hazptr.cpp \
491 experimental/hazptr/memory_resource.cpp \
492 GlobalThreadPoolList.cpp \
494 GroupVarintTables.cpp \
495 hash/SpookyHashV1.cpp \
496 hash/SpookyHashV2.cpp \
507 io/ShutdownSocketSet.cpp \
508 io/async/AsyncPipe.cpp \
509 io/async/AsyncTimeout.cpp \
510 io/async/AsyncUDPSocket.cpp \
511 io/async/AsyncServerSocket.cpp \
512 io/async/AsyncSignalHandler.cpp \
513 io/async/AsyncSocket.cpp \
514 io/async/AsyncSSLSocket.cpp \
515 io/async/EventBase.cpp \
516 io/async/EventBaseLocal.cpp \
517 io/async/EventBaseManager.cpp \
518 io/async/EventBaseThread.cpp \
519 io/async/EventHandler.cpp \
520 io/async/Request.cpp \
521 io/async/SSLContext.cpp \
522 io/async/SSLOptions.cpp \
523 io/async/ScopedEventBaseThread.cpp \
524 io/async/VirtualEventBase.cpp \
525 io/async/HHWheelTimer.cpp \
526 io/async/TimeoutManager.cpp \
527 io/async/test/ScopedBoundPort.cpp \
528 io/async/test/SocketPair.cpp \
529 io/async/test/TimeUtil.cpp \
530 io/async/ssl/OpenSSLUtils.cpp \
531 io/async/ssl/SSLErrors.cpp \
532 io/compression/Zlib.cpp \
534 detail/MemoryIdler.cpp \
535 detail/SocketFastOpen.cpp \
538 portability/Dirent.cpp \
539 portability/Fcntl.cpp \
540 portability/Libgen.cpp \
541 portability/Malloc.cpp \
542 portability/Memory.cpp \
543 portability/OpenSSL.cpp \
544 portability/PThread.cpp \
545 portability/Sockets.cpp \
546 portability/Stdio.cpp \
547 portability/Stdlib.cpp \
548 portability/String.cpp \
549 portability/SysFile.cpp \
550 portability/SysMembarrier.cpp \
551 portability/SysMman.cpp \
552 portability/SysResource.cpp \
553 portability/SysStat.cpp \
554 portability/SysTime.cpp \
555 portability/SysUio.cpp \
556 portability/Time.cpp \
557 portability/Unistd.cpp \
568 ssl/OpenSSLCertUtils.cpp \
569 ssl/OpenSSLHash.cpp \
570 ssl/detail/OpenSSLThreading.cpp \
571 ssl/detail/SSLSessionImpl.cpp \
572 stats/BucketedTimeSeries.cpp \
573 stats/Histogram.cpp \
574 stats/MultiLevelTimeSeries.cpp \
575 stats/TimeseriesHistogram.cpp \
577 ThreadCachedArena.cpp \
583 experimental/AsymmetricMemoryBarrier.cpp \
584 experimental/ThreadedRepeatingFunctionRunner.cpp \
585 experimental/bser/Dump.cpp \
586 experimental/bser/Load.cpp \
587 experimental/DynamicParser.cpp \
588 experimental/EnvUtil.cpp \
589 experimental/FunctionScheduler.cpp \
590 experimental/io/FsUtil.cpp \
591 experimental/JemallocNodumpAllocator.cpp \
592 experimental/JSONSchema.cpp \
593 experimental/NestedCommandLineApp.cpp \
594 experimental/observer/detail/Core.cpp \
595 experimental/observer/detail/ObserverManager.cpp \
596 experimental/ProgramOptions.cpp \
597 experimental/Select64.cpp \
598 experimental/TestUtil.cpp
601 nobase_follyinclude_HEADERS += \
602 experimental/io/HugePages.h
603 libfolly_la_SOURCES += \
604 experimental/io/HugePages.cpp
607 if !HAVE_WEAK_SYMBOLS
608 libfollybase_la_SOURCES += detail/MallocImpl.cpp
611 if HAVE_BOOST_CONTEXT
612 nobase_follyinclude_HEADERS += \
614 fibers/AddTasks-inl.h \
615 fibers/AtomicBatchDispatcher.h \
616 fibers/AtomicBatchDispatcher-inl.h \
619 fibers/BatchDispatcher.h \
620 fibers/BoostContextCompatibility.h \
621 fibers/detail/AtomicBatchDispatcher.h \
622 fibers/EventBaseLoopController.h \
623 fibers/EventBaseLoopController-inl.h \
626 fibers/FiberManager.h \
627 fibers/FiberManager-inl.h \
628 fibers/FiberManagerInternal.h \
629 fibers/FiberManagerInternal-inl.h \
630 fibers/FiberManagerMap.h \
632 fibers/ForEach-inl.h \
633 fibers/GenericBaton.h \
634 fibers/GuardPageAllocator.h \
635 fibers/LoopController.h \
637 fibers/Promise-inl.h \
639 fibers/SimpleLoopController.h \
640 fibers/TimedMutex.h \
641 fibers/TimedMutex-inl.h \
642 fibers/TimeoutController.h \
647 libfolly_la_SOURCES += \
649 fibers/detail/AtomicBatchDispatcher.cpp \
651 fibers/FiberManager.cpp \
652 fibers/FiberManagerMap.cpp \
653 fibers/GuardPageAllocator.cpp \
654 fibers/Semaphore.cpp \
655 fibers/TimeoutController.cpp
659 nobase_follyinclude_HEADERS += \
660 experimental/symbolizer/Elf.h \
661 experimental/symbolizer/Elf-inl.h \
662 experimental/symbolizer/ElfCache.h \
663 experimental/symbolizer/Dwarf.h \
664 experimental/symbolizer/LineReader.h \
665 experimental/symbolizer/SignalHandler.h \
666 experimental/symbolizer/StackTrace.h \
667 experimental/symbolizer/Symbolizer.h
669 libfolly_la_SOURCES += \
670 experimental/symbolizer/Elf.cpp \
671 experimental/symbolizer/ElfCache.cpp \
672 experimental/symbolizer/Dwarf.cpp \
673 experimental/symbolizer/LineReader.cpp \
674 experimental/symbolizer/SignalHandler.cpp \
675 experimental/symbolizer/StackTrace.cpp \
676 experimental/symbolizer/Symbolizer.cpp
679 libfollybasesse42_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(LT_VERSION)
680 libfollybasesse42_la_CXXFLAGS = -msse4.2 -mpclmul
682 libfollybase_la_LIBADD = libfollybasesse42.la
683 libfollybase_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(LT_VERSION)
685 libfolly_la_LIBADD = libfollybase.la
686 libfolly_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(LT_VERSION) -lssl
688 FingerprintTables.cpp: generate_fingerprint_tables
689 ./generate_fingerprint_tables
690 CLEANFILES += FingerprintTables.cpp
692 libfollybenchmark_la_SOURCES = Benchmark.cpp
693 libfollybenchmark_la_LIBADD = libfolly.la
694 libfollybenchmark_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(LT_VERSION)
696 # install pkg-config metadata file
697 pkgconfigdir = $(libdir)/pkgconfig
698 nodist_pkgconfig_DATA = libfolly.pc