Makefile 6.6 KB
Newer Older
F
fyrz 已提交
1 2 3 4 5 6
NATIVE_JAVA_CLASSES = org.rocksdb.AbstractComparator\
	org.rocksdb.AbstractSlice\
	org.rocksdb.BackupableDB\
	org.rocksdb.BackupableDBOptions\
	org.rocksdb.BlockBasedTableConfig\
	org.rocksdb.BloomFilter\
F
fyrz 已提交
7
	org.rocksdb.Checkpoint\
F
fyrz 已提交
8
	org.rocksdb.ColumnFamilyHandle\
9
	org.rocksdb.ColumnFamilyOptions\
F
fyrz 已提交
10 11 12 13 14
	org.rocksdb.Comparator\
	org.rocksdb.ComparatorOptions\
	org.rocksdb.DBOptions\
	org.rocksdb.DirectComparator\
	org.rocksdb.DirectSlice\
F
fyrz 已提交
15
	org.rocksdb.FlushOptions\
F
fyrz 已提交
16 17 18 19
	org.rocksdb.Filter\
	org.rocksdb.GenericRateLimiterConfig\
	org.rocksdb.HashLinkedListMemTableConfig\
	org.rocksdb.HashSkipListMemTableConfig\
F
fyrz 已提交
20
	org.rocksdb.Logger\
F
fyrz 已提交
21 22 23 24 25 26 27 28 29 30 31 32
	org.rocksdb.MergeOperator\
	org.rocksdb.Options\
	org.rocksdb.PlainTableConfig\
	org.rocksdb.ReadOptions\
	org.rocksdb.RestoreBackupableDB\
	org.rocksdb.RestoreOptions\
	org.rocksdb.RocksDB\
	org.rocksdb.RocksEnv\
	org.rocksdb.RocksIterator\
	org.rocksdb.SkipListMemTableConfig\
	org.rocksdb.Slice\
	org.rocksdb.Statistics\
F
fyrz 已提交
33
	org.rocksdb.TransactionLogIterator\
F
fyrz 已提交
34
	org.rocksdb.TtlDB\
F
fyrz 已提交
35
	org.rocksdb.VectorMemTableConfig\
F
fyrz 已提交
36
	org.rocksdb.Snapshot\
F
fyrz 已提交
37 38 39
	org.rocksdb.StringAppendOperator\
	org.rocksdb.WriteBatch\
	org.rocksdb.WriteBatch.Handler\
40
	org.rocksdb.WriteOptions\
41 42
	org.rocksdb.WriteBatchWithIndex\
	org.rocksdb.WBWIRocksIterator
A
Ankit Gupta 已提交
43

44 45 46
NATIVE_JAVA_TEST_CLASSES = org.rocksdb.WriteBatchTest\
    org.rocksdb.WriteBatchTestInternalHelper

47 48 49
ROCKSDB_MAJOR = $(shell egrep "ROCKSDB_MAJOR.[0-9]" ../include/rocksdb/version.h | cut -d ' ' -f 3)
ROCKSDB_MINOR = $(shell egrep "ROCKSDB_MINOR.[0-9]" ../include/rocksdb/version.h | cut -d ' ' -f 3)
ROCKSDB_PATCH = $(shell egrep "ROCKSDB_PATCH.[0-9]" ../include/rocksdb/version.h | cut -d ' ' -f 3)
50

51
NATIVE_INCLUDE = ./include
52
ARCH := $(shell getconf LONG_BIT)
53
ROCKSDB_JAR = rocksdbjni-$(ROCKSDB_MAJOR).$(ROCKSDB_MINOR).$(ROCKSDB_PATCH)-linux$(ARCH).jar
54
ifeq ($(PLATFORM), OS_MACOSX)
55
ROCKSDB_JAR = rocksdbjni-$(ROCKSDB_MAJOR).$(ROCKSDB_MINOR).$(ROCKSDB_PATCH)-osx.jar
56
endif
57

F
fyrz 已提交
58
JAVA_TESTS = org.rocksdb.BackupableDBOptionsTest\
59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
	org.rocksdb.BackupableDBTest\
	org.rocksdb.BlockBasedTableConfigTest\
	org.rocksdb.CheckPointTest\
	org.rocksdb.ColumnFamilyOptionsTest\
	org.rocksdb.ColumnFamilyTest\
	org.rocksdb.ComparatorOptionsTest\
	org.rocksdb.ComparatorTest\
	org.rocksdb.CompressionOptionsTest\
	org.rocksdb.DBOptionsTest\
	org.rocksdb.DirectComparatorTest\
	org.rocksdb.DirectSliceTest\
	org.rocksdb.util.EnvironmentTest\
	org.rocksdb.FilterTest\
	org.rocksdb.FlushTest\
	org.rocksdb.InfoLogLevelTest\
	org.rocksdb.KeyMayExistTest\
F
fyrz 已提交
75
    org.rocksdb.LoggerTest\
76 77 78
	org.rocksdb.MemTableTest\
	org.rocksdb.MergeTest\
	org.rocksdb.MixedOptionsTest\
F
fyrz 已提交
79
    org.rocksdb.NativeLibraryLoaderTest\
80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97
	org.rocksdb.OptionsTest\
	org.rocksdb.PlainTableConfigTest\
	org.rocksdb.ReadOnlyTest\
	org.rocksdb.ReadOptionsTest\
	org.rocksdb.RocksDBTest\
	org.rocksdb.RocksEnvTest\
	org.rocksdb.RocksIteratorTest\
	org.rocksdb.util.SizeUnitTest\
	org.rocksdb.SliceTest\
	org.rocksdb.SnapshotTest\
	org.rocksdb.TransactionLogIteratorTest\
	org.rocksdb.TtlDBTest\
	org.rocksdb.StatisticsCollectorTest\
	org.rocksdb.WriteBatchHandlerTest\
	org.rocksdb.WriteBatchTest\
	org.rocksdb.WriteOptionsTest\
	org.rocksdb.WriteBatchWithIndexTest

98
MAIN_SRC = src/main/java
99 100
TEST_SRC = src/test/java
OUTPUT = target
101
MAIN_CLASSES = $(OUTPUT)/classes
102
TEST_CLASSES = $(OUTPUT)/test-classes
103
JAVADOC = $(OUTPUT)/apidocs
F
fyrz 已提交
104

105 106 107 108
BENCHMARK_MAIN_SRC = benchmark/src/main/java
BENCHMARK_OUTPUT = benchmark/target
BENCHMARK_MAIN_CLASSES = $(BENCHMARK_OUTPUT)/classes

109 110 111 112
SAMPLES_MAIN_SRC = samples/src/main/java
SAMPLES_OUTPUT = samples/target
SAMPLES_MAIN_CLASSES = $(SAMPLES_OUTPUT)/classes

113 114 115 116 117 118 119
JAVA_TEST_LIBDIR = test-libs
JAVA_JUNIT_JAR = $(JAVA_TEST_LIBDIR)/junit-4.12.jar
JAVA_HAMCR_JAR = $(JAVA_TEST_LIBDIR)/hamcrest-core-1.3.jar
JAVA_MOCKITO_JAR = $(JAVA_TEST_LIBDIR)/mockito-all-1.10.19.jar
JAVA_CGLIB_JAR = $(JAVA_TEST_LIBDIR)/cglib-2.2.2.jar
JAVA_ASSERTJ_JAR = $(JAVA_TEST_LIBDIR)/assertj-core-1.7.1.jar
JAVA_TESTCLASSPATH = $(JAVA_JUNIT_JAR):$(JAVA_HAMCR_JAR):$(JAVA_MOCKITO_JAR):$(JAVA_CGLIB_JAR):$(JAVA_ASSERTJ_JAR)
F
fyrz 已提交
120

121
clean:
F
fyrz 已提交
122
	rm -rf include/*
F
fyrz 已提交
123
	rm -rf test-libs/
124
	rm -rf $(OUTPUT)
125
	rm -rf $(BENCHMARK_OUTPUT)
126
	rm -rf $(SAMPLES_OUTPUT)
F
fyrz 已提交
127

128

129
javadocs:
130 131
	mkdir -p $(JAVADOC)
	javadoc -d $(JAVADOC) -sourcepath $(MAIN_SRC) -subpackages org
132

133
javalib: java java_test javadocs
F
fyrz 已提交
134

135
java:
136 137 138 139
	mkdir -p $(MAIN_CLASSES)
	javac -d $(MAIN_CLASSES)\
		$(MAIN_SRC)/org/rocksdb/util/*.java\
		$(MAIN_SRC)/org/rocksdb/*.java
140 141
	@cp ../HISTORY.md ./HISTORY-CPP.md
	@rm -f ./HISTORY-CPP.md
142
	javah -cp $(MAIN_CLASSES) -d $(NATIVE_INCLUDE) -jni $(NATIVE_JAVA_CLASSES)
143

144
sample: java
145 146
	mkdir -p $(SAMPLES_MAIN_CLASSES)
	javac -cp $(MAIN_CLASSES) -d $(SAMPLES_MAIN_CLASSES) $(SAMPLES_MAIN_SRC)/RocksDBSample.java
147 148
	@rm -rf /tmp/rocksdbjni
	@rm -rf /tmp/rocksdbjni_not_found
149
	java -ea -Xcheck:jni -Djava.library.path=target -cp $(MAIN_CLASSES):$(SAMPLES_MAIN_CLASSES) RocksDBSample /tmp/rocksdbjni
150 151
	@rm -rf /tmp/rocksdbjni
	@rm -rf /tmp/rocksdbjni_not_found
152

F
fyrz 已提交
153
column_family_sample: java
154 155
	mkdir -p $(SAMPLES_MAIN_CLASSES)
	javac -cp $(MAIN_CLASSES) -d $(SAMPLES_MAIN_CLASSES) $(SAMPLES_MAIN_SRC)/RocksDBColumnFamilySample.java
F
fyrz 已提交
156
	@rm -rf /tmp/rocksdbjni
157
	java -ea -Xcheck:jni -Djava.library.path=target -cp $(MAIN_CLASSES):$(SAMPLES_MAIN_CLASSES) RocksDBColumnFamilySample /tmp/rocksdbjni
F
fyrz 已提交
158 159
	@rm -rf /tmp/rocksdbjni

F
fyrz 已提交
160 161
resolve_test_deps:
	mkdir -p "$(JAVA_TEST_LIBDIR)"
162
	test -s "$(JAVA_JUNIT_JAR)" || curl -k -L -o $(JAVA_JUNIT_JAR) http://search.maven.org/remotecontent?filepath=junit/junit/4.12/junit-4.12.jar
163
	test -s "$(JAVA_HAMCR_JAR)" || curl -k -L -o $(JAVA_HAMCR_JAR) http://search.maven.org/remotecontent?filepath=org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar
164
	test -s "$(JAVA_MOCKITO_JAR)" || curl -k -L -o "$(JAVA_MOCKITO_JAR)" http://search.maven.org/remotecontent?filepath=org/mockito/mockito-all/1.10.19/mockito-all-1.10.19.jar
165
	test -s "$(JAVA_CGLIB_JAR)" || curl -k -L -o "$(JAVA_CGLIB_JAR)" http://search.maven.org/remotecontent?filepath=cglib/cglib/2.2.2/cglib-2.2.2.jar
166
	test -s "$(JAVA_ASSERTJ_JAR)" || curl -k -L -o "$(JAVA_ASSERTJ_JAR)" http://central.maven.org/maven2/org/assertj/assertj-core/1.7.1/assertj-core-1.7.1.jar
F
fyrz 已提交
167

168 169
java_test: resolve_test_deps
	mkdir -p $(TEST_CLASSES)
170 171 172 173
	javac -cp $(MAIN_CLASSES):$(JAVA_TESTCLASSPATH) -d $(TEST_CLASSES)\
		$(TEST_SRC)/org/rocksdb/test/*.java\
		$(TEST_SRC)/org/rocksdb/util/*.java\
		$(TEST_SRC)/org/rocksdb/*.java
174 175 176
	javah -cp $(MAIN_CLASSES):$(TEST_CLASSES) -d $(NATIVE_INCLUDE) -jni $(NATIVE_JAVA_TEST_CLASSES)

test: java resolve_test_deps java_test
F
fyrz 已提交
177
	java -ea -Xcheck:jni -Djava.library.path=target -cp "$(MAIN_CLASSES):$(TEST_CLASSES):$(JAVA_TESTCLASSPATH):target/*" org.rocksdb.test.RocksJunitRunner $(JAVA_TESTS)
178 179

db_bench: java
180 181
	mkdir -p $(BENCHMARK_MAIN_CLASSES)
	javac -cp $(MAIN_CLASSES) -d $(BENCHMARK_MAIN_CLASSES) $(BENCHMARK_MAIN_SRC)/org/rocksdb/benchmark/*.java