1 # SPDX-FileCopyrightText: 2023 EfficiOS Inc. 2 # 3 # SPDX-License-Identifier: MIT 4 5 doc_examplesdir = ${docdir}/examples 6 7 doc_examples_urcu_flavorsdir = ${doc_examplesdir}/urcu-flavors 8 9 dist_doc_examples_urcu_flavors_DATA = \ 10 urcu-flavors/Makefile \ 11 urcu-flavors/Makefile.qsbr \ 12 urcu-flavors/Makefile.mb \ 13 urcu-flavors/Makefile.membarrier \ 14 urcu-flavors/Makefile.bp \ 15 urcu-flavors/qsbr.c \ 16 urcu-flavors/mb.c \ 17 urcu-flavors/membarrier.c \ 18 urcu-flavors/bp.c 19 20 dist_doc_examples_DATA = \ 21 dist-files/Makefile \ 22 Makefile.examples.template 23 24 doc_examples_listdir = ${doc_examplesdir}/list 25 26 dist_doc_examples_list_DATA = \ 27 list/Makefile \ 28 list/Makefile.cds_list_add_rcu \ 29 list/Makefile.cds_list_add_tail_rcu \ 30 list/Makefile.cds_list_del_rcu \ 31 list/Makefile.cds_list_for_each_rcu \ 32 list/Makefile.cds_list_for_each_entry_rcu \ 33 list/Makefile.cds_list_replace_rcu \ 34 list/cds_list_add_rcu.c \ 35 list/cds_list_add_tail_rcu.c \ 36 list/cds_list_del_rcu.c \ 37 list/cds_list_for_each_rcu.c \ 38 list/cds_list_for_each_entry_rcu.c \ 39 list/cds_list_replace_rcu.c 40 41 doc_examples_hlistdir = ${doc_examplesdir}/hlist 42 43 dist_doc_examples_hlist_DATA = \ 44 hlist/Makefile \ 45 hlist/Makefile.cds_hlist_add_head_rcu \ 46 hlist/Makefile.cds_hlist_del_rcu \ 47 hlist/Makefile.cds_hlist_for_each_rcu \ 48 hlist/Makefile.cds_hlist_for_each_entry_rcu \ 49 hlist/cds_hlist_add_head_rcu.c \ 50 hlist/cds_hlist_del_rcu.c \ 51 hlist/cds_hlist_for_each_rcu.c \ 52 hlist/cds_hlist_for_each_entry_rcu.c 53 54 doc_examples_wfcqueuedir = ${doc_examplesdir}/wfcqueue 55 56 dist_doc_examples_wfcqueue_DATA = \ 57 wfcqueue/Makefile \ 58 wfcqueue/Makefile.cds_wfcq_enqueue \ 59 wfcqueue/Makefile.cds_wfcq_dequeue \ 60 wfcqueue/Makefile.cds_wfcq_splice \ 61 wfcqueue/cds_wfcq_enqueue.c \ 62 wfcqueue/cds_wfcq_dequeue.c \ 63 wfcqueue/cds_wfcq_splice.c 64 65 doc_examples_wfstackdir = ${doc_examplesdir}/wfstack 66 67 dist_doc_examples_wfstack_DATA = \ 68 wfstack/Makefile \ 69 wfstack/Makefile.cds_wfs_push \ 70 wfstack/Makefile.cds_wfs_pop \ 71 wfstack/Makefile.cds_wfs_pop_all_blocking \ 72 wfstack/cds_wfs_push.c \ 73 wfstack/cds_wfs_pop.c \ 74 wfstack/cds_wfs_pop_all_blocking.c 75 76 doc_examples_lfstackdir = ${doc_examplesdir}/lfstack 77 78 dist_doc_examples_lfstack_DATA = \ 79 lfstack/Makefile \ 80 lfstack/Makefile.cds_lfs_push \ 81 lfstack/Makefile.cds_lfs_pop_blocking \ 82 lfstack/Makefile.cds_lfs_pop_all_blocking \ 83 lfstack/cds_lfs_push.c \ 84 lfstack/cds_lfs_pop_blocking.c \ 85 lfstack/cds_lfs_pop_all_blocking.c 86 87 doc_examples_rculfqueuedir = ${doc_examplesdir}/rculfqueue 88 89 dist_doc_examples_rculfqueue_DATA = \ 90 rculfqueue/Makefile \ 91 rculfqueue/Makefile.cds_lfq_enqueue \ 92 rculfqueue/Makefile.cds_lfq_dequeue \ 93 rculfqueue/cds_lfq_enqueue.c \ 94 rculfqueue/cds_lfq_dequeue.c 95 96 doc_examples_rculfhashdir = ${doc_examplesdir}/rculfhash 97 98 dist_doc_examples_rculfhash_DATA = \ 99 rculfhash/Makefile \ 100 rculfhash/jhash.h \ 101 rculfhash/Makefile.cds_lfht_add \ 102 rculfhash/Makefile.cds_lfht_add_unique \ 103 rculfhash/Makefile.cds_lfht_add_replace \ 104 rculfhash/Makefile.cds_lfht_del \ 105 rculfhash/Makefile.cds_lfht_destroy \ 106 rculfhash/Makefile.cds_lfht_lookup \ 107 rculfhash/Makefile.cds_lfht_for_each_entry_duplicate \ 108 rculfhash/cds_lfht_add.c \ 109 rculfhash/cds_lfht_add_unique.c \ 110 rculfhash/cds_lfht_add_replace.c \ 111 rculfhash/cds_lfht_del.c \ 112 rculfhash/cds_lfht_destroy.c \ 113 rculfhash/cds_lfht_lookup.c \ 114 rculfhash/cds_lfht_for_each_entry_duplicate.c 115 116 # Building the examples requires the shared libraries to be enabled 117 if ENABLE_EXAMPLES 118 119 SUBDIRS_PROXY = hlist list urcu-flavors wfcqueue rculfqueue \ 120 wfstack lfstack rculfhash 121 122 # Copies are for VPATH build support. 123 all-local: 124 $(AM_V_at)if [ x"$(srcdir)" != x"$(builddir)" ]; then \ 125 cp -pfR $(srcdir)/dist-files $(builddir); \ 126 chmod -R u+w $(builddir)/dist-files; \ 127 cp -pf $(srcdir)/Makefile.examples.template $(builddir); \ 128 chmod u+w $(builddir)/Makefile.examples.template; \ 129 for subdir in $(SUBDIRS_PROXY); do \ 130 cp -pfR $(srcdir)/$$subdir $(builddir); \ 131 chmod -R u+w $(builddir)/$$subdir; \ 132 done; \ 133 fi; \ 134 if [ x"$(shell echo "$(top_srcdir)" | $(GREP) "^/" | wc -l)" = x"1" ]; then \ 135 rel_src_subdir=""; \ 136 else \ 137 rel_src_subdir="../"; \ 138 fi; \ 139 if [ x"$(shell echo "$(top_builddir)" | $(GREP) "^/" | wc -l)" = x"1" ]; then \ 140 rel_build_subdir=""; \ 141 else \ 142 rel_build_subdir="../"; \ 143 fi; \ 144 $(MAKE) -f dist-files/Makefile CC="$(CC)" CPPFLAGS="$(CPPFLAGS)" AM_CPPFLAGS="$(AM_CPPFLAGS) -I"$${rel_src_subdir}/$(top_srcdir)/include/" -I"$${rel_src_subdir}/$(top_srcdir)/src/" -I"$${rel_build_subdir}$(top_builddir)/include/" -I"$${rel_build_subdir}$(top_builddir)/include/src/"" CFLAGS="$(CFLAGS)" AM_CFLAGS="$(AM_CFLAGS)" LDFLAGS="$(LDFLAGS)" AM_LDFLAGS="$(AM_LDFLAGS) -L../../../src/.libs/ -Wl,-rpath "$(PWD)/../../src/.libs/"" AM_V_P="$(AM_V_P)" AM_V_at="$(AM_V_at)" $(AM_MAKEFLAGS) all; 145 146 clean-local: 147 $(AM_V_at)$(MAKE) -f dist-files/Makefile $(AM_MAKEFLAGS) clean; \ 148 if [ x"$(srcdir)" != x"$(builddir)" ]; then \ 149 for subdir in $(SUBDIRS_PROXY); do \ 150 rm -rf $(builddir)/$$subdir; \ 151 done; \ 152 rm -f $(builddir)/Makefile.examples.template; \ 153 rm -rf $(builddir)/dist-files; \ 154 fi; 155 endif 156