aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--Makefile19
-rw-r--r--src/Test.java37
-rw-r--r--src/libgamma/Libgamma.java7
3 files changed, 60 insertions, 3 deletions
diff --git a/Makefile b/Makefile
index 0f54e92..c67d5f5 100644
--- a/Makefile
+++ b/Makefile
@@ -105,16 +105,19 @@ JAVA_OBJ = AdjustmentMethod CRTC CRTCInformation GammaRamps Libgamma Partition S
# Java classes with native functions
JAVA_H = AdjustmentMethod CRTC GammaRamps LibgammaException Partition Ramp Site
+# .so files to create
+SO_FILES = bin/libgamma-java.$(SO).$(LIB_VERSION) bin/libgamma-java.$(SO).$(LIB_MAJOR) bin/libgamma-java.$(SO)
+
.PHONY: all
-all: lib
+all: lib test
.PHONY: lib
lib: jar so
.PHONY: so
-so: bin/libgamma-java.$(SO).$(LIB_VERSION) bin/libgamma-java.$(SO).$(LIB_MAJOR) bin/libgamma-java.$(SO)
+so: $(SO_FILES)
.PHONY: jar
jar: bin/jlibgamma.jar
@@ -125,6 +128,9 @@ class: $(foreach O,$(JAVA_OBJ),obj/libgamma/$(O).class)
.PHONY: header
header: $(foreach H,$(JAVA_H),obj/libgamma_$(H).h)
+.PHONY: test
+test: bin/Test.class
+
bin/jlibgamma.jar: $(foreach O,$(JAVA_OBJ),obj/libgamma/$(O).class)
@mkdir -p bin
@@ -154,8 +160,17 @@ bin/libgamma-java.$(SO):
@mkdir -p bin
ln -sf libgamma-java.$(SO).$(LIB_VERSION) $@
+bin/Test.class: src/Test.java bin/jlibgamma.jar $(SO_FILES)
+ @mkdir -p bin
+ $(JAVAC) $(JAVAC_FLAGS) -cp 'src:bin/jlibgamma.jar' -s src -d bin $<
+
.PHONY: clean
clean:
-rm -r obj bin
+
+.PHONY: run-test
+run-test: bin/Test.class
+ @env LD_LIBRARY_PATH=bin java -cp bin:bin/jlibgamma.jar Test
+
diff --git a/src/Test.java b/src/Test.java
new file mode 100644
index 0000000..6002543
--- /dev/null
+++ b/src/Test.java
@@ -0,0 +1,37 @@
+/**
+ * jlibgamma — Display server abstraction layer for gamma ramp and Java
+ * Copyright © 2014 Mattias Andrée (maandree@member.fsf.org)
+ *
+ * This library is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this library. If not, see <http://www.gnu.org/licenses/>.
+ */
+import libgamma.*;
+
+
+/**
+ * jlibgamma test class.
+ */
+public class Test
+{
+ /**
+ * Main test function.
+ *
+ * @param args Command line arguments, excluding $0.
+ */
+ public static void main(String[] args)
+ {
+ System.out.println(AdjustmentMethod.X_RANDR.is_available());
+ }
+
+}
+
diff --git a/src/libgamma/Libgamma.java b/src/libgamma/Libgamma.java
index 66e9999..dbb9d1c 100644
--- a/src/libgamma/Libgamma.java
+++ b/src/libgamma/Libgamma.java
@@ -32,7 +32,12 @@ class Libgamma
return;
Libgamma.initialised = true;
- /* TODO load the library */
+ try
+ { System.loadLibrary("gamma-java");
+ }
+ catch (Throwable err)
+ { throw new Error(err);
+ }
}