]> git.proxmox.com Git - ceph.git/blob - ceph/src/rocksdb/java/Makefile
import 14.2.4 nautilus point release
[ceph.git] / ceph / src / rocksdb / java / Makefile
1 NATIVE_JAVA_CLASSES = org.rocksdb.AbstractCompactionFilter\
2 org.rocksdb.AbstractCompactionFilterFactory\
3 org.rocksdb.AbstractSlice\
4 org.rocksdb.AbstractTableFilter\
5 org.rocksdb.AbstractTraceWriter\
6 org.rocksdb.AbstractTransactionNotifier\
7 org.rocksdb.AbstractWalFilter\
8 org.rocksdb.BackupEngine\
9 org.rocksdb.BackupableDBOptions\
10 org.rocksdb.BlockBasedTableConfig\
11 org.rocksdb.BloomFilter\
12 org.rocksdb.Checkpoint\
13 org.rocksdb.ClockCache\
14 org.rocksdb.CassandraCompactionFilter\
15 org.rocksdb.CassandraValueMergeOperator\
16 org.rocksdb.ColumnFamilyHandle\
17 org.rocksdb.ColumnFamilyOptions\
18 org.rocksdb.CompactionJobInfo\
19 org.rocksdb.CompactionJobStats\
20 org.rocksdb.CompactionOptions\
21 org.rocksdb.CompactionOptionsFIFO\
22 org.rocksdb.CompactionOptionsUniversal\
23 org.rocksdb.CompactRangeOptions\
24 org.rocksdb.Comparator\
25 org.rocksdb.ComparatorOptions\
26 org.rocksdb.CompressionOptions\
27 org.rocksdb.DBOptions\
28 org.rocksdb.DirectComparator\
29 org.rocksdb.DirectSlice\
30 org.rocksdb.Env\
31 org.rocksdb.EnvOptions\
32 org.rocksdb.FlushOptions\
33 org.rocksdb.Filter\
34 org.rocksdb.IngestExternalFileOptions\
35 org.rocksdb.HashLinkedListMemTableConfig\
36 org.rocksdb.HashSkipListMemTableConfig\
37 org.rocksdb.HdfsEnv\
38 org.rocksdb.Logger\
39 org.rocksdb.LRUCache\
40 org.rocksdb.MemoryUsageType\
41 org.rocksdb.MemoryUtil\
42 org.rocksdb.MergeOperator\
43 org.rocksdb.NativeComparatorWrapper\
44 org.rocksdb.OptimisticTransactionDB\
45 org.rocksdb.OptimisticTransactionOptions\
46 org.rocksdb.Options\
47 org.rocksdb.OptionsUtil\
48 org.rocksdb.PersistentCache\
49 org.rocksdb.PlainTableConfig\
50 org.rocksdb.RateLimiter\
51 org.rocksdb.ReadOptions\
52 org.rocksdb.RemoveEmptyValueCompactionFilter\
53 org.rocksdb.RestoreOptions\
54 org.rocksdb.RocksCallbackObject\
55 org.rocksdb.RocksDB\
56 org.rocksdb.RocksEnv\
57 org.rocksdb.RocksIterator\
58 org.rocksdb.RocksMemEnv\
59 org.rocksdb.SkipListMemTableConfig\
60 org.rocksdb.Slice\
61 org.rocksdb.SstFileManager\
62 org.rocksdb.SstFileWriter\
63 org.rocksdb.Statistics\
64 org.rocksdb.ThreadStatus\
65 org.rocksdb.TimedEnv\
66 org.rocksdb.Transaction\
67 org.rocksdb.TransactionDB\
68 org.rocksdb.TransactionDBOptions\
69 org.rocksdb.TransactionOptions\
70 org.rocksdb.TransactionLogIterator\
71 org.rocksdb.TtlDB\
72 org.rocksdb.VectorMemTableConfig\
73 org.rocksdb.Snapshot\
74 org.rocksdb.StringAppendOperator\
75 org.rocksdb.UInt64AddOperator\
76 org.rocksdb.WriteBatch\
77 org.rocksdb.WriteBatch.Handler\
78 org.rocksdb.WriteOptions\
79 org.rocksdb.WriteBatchWithIndex\
80 org.rocksdb.WriteBufferManager\
81 org.rocksdb.WBWIRocksIterator
82
83 NATIVE_JAVA_TEST_CLASSES = org.rocksdb.RocksDBExceptionTest\
84 org.rocksdb.NativeComparatorWrapperTest.NativeStringComparatorWrapper\
85 org.rocksdb.WriteBatchTest\
86 org.rocksdb.WriteBatchTestInternalHelper
87
88 ROCKSDB_MAJOR = $(shell egrep "ROCKSDB_MAJOR.[0-9]" ../include/rocksdb/version.h | cut -d ' ' -f 3)
89 ROCKSDB_MINOR = $(shell egrep "ROCKSDB_MINOR.[0-9]" ../include/rocksdb/version.h | cut -d ' ' -f 3)
90 ROCKSDB_PATCH = $(shell egrep "ROCKSDB_PATCH.[0-9]" ../include/rocksdb/version.h | cut -d ' ' -f 3)
91
92 NATIVE_INCLUDE = ./include
93 ARCH := $(shell getconf LONG_BIT)
94 ROCKSDB_JAR = rocksdbjni-$(ROCKSDB_MAJOR).$(ROCKSDB_MINOR).$(ROCKSDB_PATCH)-linux$(ARCH).jar
95 ifeq ($(PLATFORM), OS_MACOSX)
96 ROCKSDB_JAR = rocksdbjni-$(ROCKSDB_MAJOR).$(ROCKSDB_MINOR).$(ROCKSDB_PATCH)-osx.jar
97 endif
98
99 JAVA_TESTS = org.rocksdb.BackupableDBOptionsTest\
100 org.rocksdb.BackupEngineTest\
101 org.rocksdb.BlockBasedTableConfigTest\
102 org.rocksdb.util.BytewiseComparatorTest\
103 org.rocksdb.CheckPointTest\
104 org.rocksdb.ClockCacheTest\
105 org.rocksdb.ColumnFamilyOptionsTest\
106 org.rocksdb.ColumnFamilyTest\
107 org.rocksdb.CompactionFilterFactoryTest\
108 org.rocksdb.CompactionJobInfoTest\
109 org.rocksdb.CompactionJobStatsTest\
110 org.rocksdb.CompactionOptionsTest\
111 org.rocksdb.CompactionOptionsFIFOTest\
112 org.rocksdb.CompactionOptionsUniversalTest\
113 org.rocksdb.CompactionPriorityTest\
114 org.rocksdb.CompactionStopStyleTest\
115 org.rocksdb.ComparatorOptionsTest\
116 org.rocksdb.ComparatorTest\
117 org.rocksdb.CompressionOptionsTest\
118 org.rocksdb.CompressionTypesTest\
119 org.rocksdb.DBOptionsTest\
120 org.rocksdb.DirectComparatorTest\
121 org.rocksdb.DirectSliceTest\
122 org.rocksdb.EnvOptionsTest\
123 org.rocksdb.HdfsEnvTest\
124 org.rocksdb.IngestExternalFileOptionsTest\
125 org.rocksdb.util.EnvironmentTest\
126 org.rocksdb.FilterTest\
127 org.rocksdb.FlushTest\
128 org.rocksdb.InfoLogLevelTest\
129 org.rocksdb.KeyMayExistTest\
130 org.rocksdb.LoggerTest\
131 org.rocksdb.LRUCacheTest\
132 org.rocksdb.MemoryUtilTest\
133 org.rocksdb.MemTableTest\
134 org.rocksdb.MergeTest\
135 org.rocksdb.MixedOptionsTest\
136 org.rocksdb.MutableColumnFamilyOptionsTest\
137 org.rocksdb.MutableDBOptionsTest\
138 org.rocksdb.NativeComparatorWrapperTest\
139 org.rocksdb.NativeLibraryLoaderTest\
140 org.rocksdb.OptimisticTransactionTest\
141 org.rocksdb.OptimisticTransactionDBTest\
142 org.rocksdb.OptimisticTransactionOptionsTest\
143 org.rocksdb.OptionsUtilTest\
144 org.rocksdb.OptionsTest\
145 org.rocksdb.PlainTableConfigTest\
146 org.rocksdb.RateLimiterTest\
147 org.rocksdb.ReadOnlyTest\
148 org.rocksdb.ReadOptionsTest\
149 org.rocksdb.RocksDBTest\
150 org.rocksdb.RocksDBExceptionTest\
151 org.rocksdb.DefaultEnvTest\
152 org.rocksdb.RocksIteratorTest\
153 org.rocksdb.RocksMemEnvTest\
154 org.rocksdb.util.SizeUnitTest\
155 org.rocksdb.SliceTest\
156 org.rocksdb.SnapshotTest\
157 org.rocksdb.SstFileManagerTest\
158 org.rocksdb.SstFileWriterTest\
159 org.rocksdb.TableFilterTest\
160 org.rocksdb.TimedEnvTest\
161 org.rocksdb.TransactionTest\
162 org.rocksdb.TransactionDBTest\
163 org.rocksdb.TransactionOptionsTest\
164 org.rocksdb.TransactionDBOptionsTest\
165 org.rocksdb.TransactionLogIteratorTest\
166 org.rocksdb.TtlDBTest\
167 org.rocksdb.StatisticsTest\
168 org.rocksdb.StatisticsCollectorTest\
169 org.rocksdb.WalFilterTest\
170 org.rocksdb.WALRecoveryModeTest\
171 org.rocksdb.WriteBatchHandlerTest\
172 org.rocksdb.WriteBatchTest\
173 org.rocksdb.WriteBatchThreadedTest\
174 org.rocksdb.WriteOptionsTest\
175 org.rocksdb.WriteBatchWithIndexTest
176
177 MAIN_SRC = src/main/java
178 TEST_SRC = src/test/java
179 OUTPUT = target
180 MAIN_CLASSES = $(OUTPUT)/classes
181 TEST_CLASSES = $(OUTPUT)/test-classes
182 JAVADOC = $(OUTPUT)/apidocs
183
184 BENCHMARK_MAIN_SRC = benchmark/src/main/java
185 BENCHMARK_OUTPUT = benchmark/target
186 BENCHMARK_MAIN_CLASSES = $(BENCHMARK_OUTPUT)/classes
187
188 SAMPLES_MAIN_SRC = samples/src/main/java
189 SAMPLES_OUTPUT = samples/target
190 SAMPLES_MAIN_CLASSES = $(SAMPLES_OUTPUT)/classes
191
192 JAVA_TEST_LIBDIR = test-libs
193 JAVA_JUNIT_JAR = $(JAVA_TEST_LIBDIR)/junit-4.12.jar
194 JAVA_HAMCR_JAR = $(JAVA_TEST_LIBDIR)/hamcrest-core-1.3.jar
195 JAVA_MOCKITO_JAR = $(JAVA_TEST_LIBDIR)/mockito-all-1.10.19.jar
196 JAVA_CGLIB_JAR = $(JAVA_TEST_LIBDIR)/cglib-2.2.2.jar
197 JAVA_ASSERTJ_JAR = $(JAVA_TEST_LIBDIR)/assertj-core-1.7.1.jar
198 JAVA_TESTCLASSPATH = $(JAVA_JUNIT_JAR):$(JAVA_HAMCR_JAR):$(JAVA_MOCKITO_JAR):$(JAVA_CGLIB_JAR):$(JAVA_ASSERTJ_JAR)
199
200 MVN_LOCAL = ~/.m2/repository
201
202 # Set the default JAVA_ARGS to "" for DEBUG_LEVEL=0
203 JAVA_ARGS? =
204
205 JAVAC_ARGS? =
206
207 # When debugging add -Xcheck:jni to the java args
208 ifneq ($(DEBUG_LEVEL),0)
209 JAVA_ARGS = -ea -Xcheck:jni
210 JAVAC_ARGS = -Xlint:deprecation -Xlint:unchecked
211 endif
212
213 SEARCH_REPO_URL?=http://search.maven.org/remotecontent?filepath=
214 CENTRAL_REPO_URL?=http://central.maven.org/maven2/
215
216 clean:
217 $(AM_V_at)rm -rf include/*
218 $(AM_V_at)rm -rf test-libs/
219 $(AM_V_at)rm -rf $(OUTPUT)
220 $(AM_V_at)rm -rf $(BENCHMARK_OUTPUT)
221 $(AM_V_at)rm -rf $(SAMPLES_OUTPUT)
222
223
224 javadocs: java
225 $(AM_V_GEN)mkdir -p $(JAVADOC)
226 $(AM_V_at)javadoc -d $(JAVADOC) -sourcepath $(MAIN_SRC) -subpackages org
227
228 javalib: java java_test javadocs
229
230 java:
231 $(AM_V_GEN)mkdir -p $(MAIN_CLASSES)
232 $(AM_V_at)javac $(JAVAC_ARGS) -d $(MAIN_CLASSES)\
233 $(MAIN_SRC)/org/rocksdb/util/*.java\
234 $(MAIN_SRC)/org/rocksdb/*.java
235 $(AM_V_at)@cp ../HISTORY.md ./HISTORY-CPP.md
236 $(AM_V_at)@rm -f ./HISTORY-CPP.md
237 $(AM_V_at)javah -cp $(MAIN_CLASSES) -d $(NATIVE_INCLUDE) -jni $(NATIVE_JAVA_CLASSES)
238
239 sample: java
240 $(AM_V_GEN)mkdir -p $(SAMPLES_MAIN_CLASSES)
241 $(AM_V_at)javac $(JAVAC_ARGS) -cp $(MAIN_CLASSES) -d $(SAMPLES_MAIN_CLASSES) $(SAMPLES_MAIN_SRC)/RocksDBSample.java
242 $(AM_V_at)@rm -rf /tmp/rocksdbjni
243 $(AM_V_at)@rm -rf /tmp/rocksdbjni_not_found
244 java $(JAVA_ARGS) -Djava.library.path=target -cp $(MAIN_CLASSES):$(SAMPLES_MAIN_CLASSES) RocksDBSample /tmp/rocksdbjni
245 $(AM_V_at)@rm -rf /tmp/rocksdbjni
246 $(AM_V_at)@rm -rf /tmp/rocksdbjni_not_found
247
248 column_family_sample: java
249 $(AM_V_GEN)mkdir -p $(SAMPLES_MAIN_CLASSES)
250 $(AM_V_at)javac $(JAVAC_ARGS) -cp $(MAIN_CLASSES) -d $(SAMPLES_MAIN_CLASSES) $(SAMPLES_MAIN_SRC)/RocksDBColumnFamilySample.java
251 $(AM_V_at)@rm -rf /tmp/rocksdbjni
252 java $(JAVA_ARGS) -Djava.library.path=target -cp $(MAIN_CLASSES):$(SAMPLES_MAIN_CLASSES) RocksDBColumnFamilySample /tmp/rocksdbjni
253 $(AM_V_at)@rm -rf /tmp/rocksdbjni
254
255 transaction_sample: java
256 $(AM_V_GEN)mkdir -p $(SAMPLES_MAIN_CLASSES)
257 $(AM_V_at)javac -cp $(MAIN_CLASSES) -d $(SAMPLES_MAIN_CLASSES) $(SAMPLES_MAIN_SRC)/TransactionSample.java
258 $(AM_V_at)@rm -rf /tmp/rocksdbjni
259 java -ea -Xcheck:jni -Djava.library.path=target -cp $(MAIN_CLASSES):$(SAMPLES_MAIN_CLASSES) TransactionSample /tmp/rocksdbjni
260 $(AM_V_at)@rm -rf /tmp/rocksdbjni
261
262 optimistic_transaction_sample: java
263 $(AM_V_GEN)mkdir -p $(SAMPLES_MAIN_CLASSES)
264 $(AM_V_at)javac -cp $(MAIN_CLASSES) -d $(SAMPLES_MAIN_CLASSES) $(SAMPLES_MAIN_SRC)/OptimisticTransactionSample.java
265 $(AM_V_at)@rm -rf /tmp/rocksdbjni
266 java -ea -Xcheck:jni -Djava.library.path=target -cp $(MAIN_CLASSES):$(SAMPLES_MAIN_CLASSES) OptimisticTransactionSample /tmp/rocksdbjni
267 $(AM_V_at)@rm -rf /tmp/rocksdbjni
268
269 resolve_test_deps:
270 test -d "$(JAVA_TEST_LIBDIR)" || mkdir -p "$(JAVA_TEST_LIBDIR)"
271 test -s "$(JAVA_JUNIT_JAR)" || cp $(MVN_LOCAL)/junit/junit/4.12/junit-4.12.jar $(JAVA_TEST_LIBDIR) || curl -k -L -o $(JAVA_JUNIT_JAR) $(SEARCH_REPO_URL)junit/junit/4.12/junit-4.12.jar
272 test -s "$(JAVA_HAMCR_JAR)" || cp $(MVN_LOCAL)/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar $(JAVA_TEST_LIBDIR) || curl -k -L -o $(JAVA_HAMCR_JAR) $(SEARCH_REPO_URL)org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar
273 test -s "$(JAVA_MOCKITO_JAR)" || cp $(MVN_LOCAL)/org/mockito/mockito-all/1.10.19/mockito-all-1.10.19.jar $(JAVA_TEST_LIBDIR) || curl -k -L -o "$(JAVA_MOCKITO_JAR)" $(SEARCH_REPO_URL)org/mockito/mockito-all/1.10.19/mockito-all-1.10.19.jar
274 test -s "$(JAVA_CGLIB_JAR)" || cp $(MVN_LOCAL)/cglib/cglib/2.2.2/cglib-2.2.2.jar $(JAVA_TEST_LIBDIR) || curl -k -L -o "$(JAVA_CGLIB_JAR)" $(SEARCH_REPO_URL)cglib/cglib/2.2.2/cglib-2.2.2.jar
275 test -s "$(JAVA_ASSERTJ_JAR)" || cp $(MVN_LOCAL)/org/assertj/assertj-core/1.7.1/assertj-core-1.7.1.jar $(JAVA_TEST_LIBDIR) || curl -k -L -o "$(JAVA_ASSERTJ_JAR)" $(CENTRAL_REPO_URL)org/assertj/assertj-core/1.7.1/assertj-core-1.7.1.jar
276
277 java_test: java resolve_test_deps
278 $(AM_V_GEN)mkdir -p $(TEST_CLASSES)
279 $(AM_V_at)javac $(JAVAC_ARGS) -cp $(MAIN_CLASSES):$(JAVA_TESTCLASSPATH) -d $(TEST_CLASSES)\
280 $(TEST_SRC)/org/rocksdb/test/*.java\
281 $(TEST_SRC)/org/rocksdb/util/*.java\
282 $(TEST_SRC)/org/rocksdb/*.java
283 $(AM_V_at)javah -cp $(MAIN_CLASSES):$(TEST_CLASSES) -d $(NATIVE_INCLUDE) -jni $(NATIVE_JAVA_TEST_CLASSES)
284
285 test: java java_test run_test
286
287 run_test:
288 java $(JAVA_ARGS) -Djava.library.path=target -cp "$(MAIN_CLASSES):$(TEST_CLASSES):$(JAVA_TESTCLASSPATH):target/*" org.rocksdb.test.RocksJunitRunner $(JAVA_TESTS)
289
290 db_bench: java
291 $(AM_V_GEN)mkdir -p $(BENCHMARK_MAIN_CLASSES)
292 $(AM_V_at)javac $(JAVAC_ARGS) -cp $(MAIN_CLASSES) -d $(BENCHMARK_MAIN_CLASSES) $(BENCHMARK_MAIN_SRC)/org/rocksdb/benchmark/*.java