Use current debian packages to build libraries for x86 and arm debian hosts.
Signed-off-by: Keith Packard <keithp@keithp.com>
altosuilib_$(ALTOSUILIB_VERSION).jar
if MULTI_ARCH
-LIBALTOS_LINUX=libaltos32.so libaltos64.so
+LIBALTOS_LINUX=libaltos_i686.so libaltos_amd64.so libaltos_aarch64.so libaltos_armel.so libaltos_armhf.so
else
LIBALTOS_LINUX=libaltos.so
endif
classes/altosui:
mkdir -p classes/altosui
-$(JAR): classaltosui.stamp Manifest.txt $(JAVA_ICONS) $(ALTOSLIB_CLASS) $(ALTOSUILIB_CLASS)
+$(JAR): classaltosui.stamp Manifest.txt $(JAVA_ICONS) $(ALTOSLIB_CLASS) $(ALTOSUILIB_CLASS) build-libaltos
jar cfm $@ Manifest.txt \
$(ICONJAR) \
-C classes altosui \
-rm -f "$@"
$(LN_S) ../libaltos/.libs/"$@" .
-libaltos32.so: build-libaltos
+libaltos_i686.so: build-libaltos
-rm -f "$@"
$(LN_S) ../libaltos/.libs/"$@" .
-libaltos64.so: build-libaltos
+libaltos_amd64.so: build-libaltos
+ -rm -f "$@"
+ $(LN_S) ../libaltos/.libs/"$@" .
+
+libaltos_aarch64.so: build-libaltos
+ -rm -f "$@"
+ $(LN_S) ../libaltos/.libs/"$@" .
+
+libaltos_armel.so: build-libaltos
+ -rm -f "$@"
+ $(LN_S) ../libaltos/.libs/"$@" .
+
+libaltos_armhf.so: build-libaltos
-rm -f "$@"
$(LN_S) ../libaltos/.libs/"$@" .
-rm -f "$@"
$(LN_S) ../libaltos/"$@" .
-altos.dll: ../libaltos/altos.dll
+altos.dll: build-libaltos
-rm -f "$@"
$(LN_S) ../libaltos/"$@" .
-altos64.dll: ../libaltos/altos64.dll
+altos64.dll: build-libaltos
-rm -f "$@"
$(LN_S) ../libaltos/"$@" .
-../libaltos/.libs/libaltos64.so: ../libaltos/.libs/libaltos32.so
-
-../libaltos/.libs/libaltos32.so: build-libaltos
-
-../libaltos/.libs/libaltos.so: build-libaltos
-
-../libaltos/altos.dll: build-altos-dll
-
-../libaltos/altos64.dll: build-altos64-dll
-
build-libaltos:
- +cd ../libaltos && make libaltos.la
-build-altos-dll:
- +cd ../libaltos && make altos.dll
-
-build-altos64-dll:
- +cd ../libaltos && make altos64.dll
+ +cd ../libaltos && make
$(ALTOSLIB_CLASS):
-rm -f "$@"
static public boolean loaded_library = false;
static public boolean has_bluetooth = false;
- static final String[] library_names_32 = { "altos", "altos32", "altos64" };
- static final String[] library_names_64 = { "altos", "altos64", "altos32" };
+ static final String[] library_names = {
+ "altos",
+ "altos32",
+ "altos64",
+ "altos_i686",
+ "altos_amd64",
+ "altos_aarch64",
+ "altos_armel",
+ "altos_armhf"
+ };
public static boolean load_library() {
if (!initialized) {
- String model = System.getProperty("sun.arch.data.model", "missing");
- boolean is_64 = false;
- if (model.equals("64")) {
- is_64 = true;
- } else if (model.equals("32")) {
- ;
- } else {
- String arch = System.getProperty("os.arch", "missing");
- if (arch.endsWith("64"))
- is_64 = true;
- }
- for (String name : is_64 ? library_names_64 : library_names_32) {
+ for (String name : library_names) {
try {
System.loadLibrary(name);
libaltos.altos_init();
+export PATH=$(shell echo "$$PWD:$$PATH")
AM_CFLAGS=-DLINUX -DPOSIX_TTY -I$(JVM_INCLUDE) -I$(JVM_INCLUDE)/linux
AM_JAVACFLAGS=$(JAVAC_VERSION_FLAGS) -encoding UTF-8 -Xlint:deprecation -Xlint:unchecked
btletest_LDADD=-lbluetooth
if MULTI_ARCH
-altoslib_LTLIBRARIES+=libaltos32.la libaltos64.la
-
-libaltos32_la_LDFLAGS=$(libaltos_la_LDFLAGS)
-libaltos64_la_LDFLAGS=$(libaltos_la_LDFLAGS)
-
-libaltos32_la_CFLAGS=-m32 $(AM_CFLAGS)
-libaltos64_la_CFLAGS=-m64 $(AM_CFLAGS)
-
-libaltos32_la_SOURCES=$(libaltos_la_SOURCES)
-libaltos64_la_SOURCES=$(libaltos_la_SOURCES)
-
-noinst_PROGRAMS+=cjnitest32 cjnitest64
-
-cjnitest32_CFLAGS=-m32
-cjnitest64_CFLAGS=-m64
-
-cjnitest32_SOURCES=$(cjnitest_SOURCES)
-cjnitest64_SOURCES=$(cjnitest_SOURCES)
-
-cjnitest32_LDADD=libaltos32.la
-cjnitest64_LDADD=libaltos64.la
+altoslib_LTLIBRARIES+=libaltos_i686.la libaltos_amd64.la libaltos_aarch64.la libaltos_armel.la libaltos_armhf.la
+
+I686=i686-linux-gnu
+libaltos_i686_la_LDFLAGS=-Wl,arch=$(I686) $(libaltos_la_LDFLAGS)
+libaltos_i686_la_CFLAGS=-Warch=i686-linux-gnu $(AM_CFLAGS)
+libaltos_i686_la_SOURCES=$(libaltos_la_SOURCES)
+
+AMD64=x86_64-linux-gnu
+libaltos_amd64_la_LDFLAGS=-Wl,arch=$(AMD64) $(libaltos_la_LDFLAGS)
+libaltos_amd64_la_CFLAGS=-Warch=x86_64-linux-gnu $(AM_CFLAGS)
+libaltos_amd64_la_SOURCES=$(libaltos_la_SOURCES)
+
+AARCH64=aarch64-linux-gnu
+libaltos_aarch64_la_LDFLAGS=-Wl,arch=$(AARCH64) $(libaltos_la_LDFLAGS)
+libaltos_aarch64_la_CFLAGS=-Warch=$(AARCH64) $(AM_CFLAGS)
+libaltos_aarch64_la_SOURCES=$(libaltos_la_SOURCES)
+
+ARMEL=arm-linux-gnueabi
+libaltos_armel_la_LDFLAGS=-Wl,arch=$(ARMEL) $(libaltos_la_LDFLAGS)
+libaltos_armel_la_CFLAGS=-Warch=$(ARMEL) $(AM_CFLAGS)
+libaltos_armel_la_SOURCES=$(libaltos_la_SOURCES)
+
+ARMHF=arm-linux-gnueabihf
+libaltos_armhf_la_LDFLAGS=-Wl,arch=$(ARMHF) $(libaltos_la_LDFLAGS)
+libaltos_armhf_la_CFLAGS=-Warch=$(ARMHF) $(AM_CFLAGS)
+libaltos_armhf_la_SOURCES=$(libaltos_la_SOURCES)
+
+noinst_PROGRAMS+=cjnitest_i686 cjnitest_amd64 cjnitest_aarch64 cjnitest_armel cjnitest_armhf
+
+cjnitest_i686_CFLAGS=$(libaltos_i686_la_CFLAGS)
+cjnitest_i686_LDFLAGS=-Wl,arch=$(I686)
+cjnitest_i686_SOURCES=$(cjnitest_SOURCES)
+cjnitest_i686_LDADD=libaltos_i686.la
+
+cjnitest_amd64_CFLAGS=$(libaltos_amd64_la_CFLAGS)
+cjnitest_amd64_LDFLAGS=-Wl,arch=$(AMD64)
+cjnitest_amd64_SOURCES=$(cjnitest_SOURCES)
+cjnitest_amd64_LDADD=libaltos_amd64.la
+
+cjnitest_aarch64_CFLAGS=$(libaltos_aarch64_la_CFLAGS)
+cjnitest_aarch64_LDFLAGS=-Wl,arch=$(AARCH64)
+cjnitest_aarch64_SOURCES=$(cjnitest_SOURCES)
+cjnitest_aarch64_LDADD=libaltos_aarch64.la
+
+cjnitest_armel_CFLAGS=$(libaltos_armel_la_CFLAGS)
+cjnitest_armel_LDFLAGS=-Wl,arch=$(ARMEL)
+cjnitest_armel_SOURCES=$(cjnitest_SOURCES)
+cjnitest_armel_LDADD=libaltos_armel.la
+
+cjnitest_armhf_CFLAGS=$(libaltos_armhf_la_CFLAGS)
+cjnitest_armhf_LDFLAGS=-Wl,arch=$(ARMHF)
+cjnitest_armhf_SOURCES=$(cjnitest_SOURCES)
+cjnitest_armhf_LDADD=libaltos_armhf.la
endif
all-local: classlibaltos.stamp
+test:
+ which gcc
+
libaltos_wrap.c: classlibaltos.stamp
classlibaltos.stamp: $(SWIG_FILE)
fat: all altos.dll altos64.dll
-#altos.dll: $(WINDOWS_SRC) $(WINDOWS_H)
-# $(MINGCC32) -o $@ $(MINGFLAGS) -shared $(WINDOWS_SRC) $(MINGLIBS)
+altos.dll: $(WINDOWS_SRC) $(WINDOWS_H)
+ $(MINGCC32) -o $@ $(MINGFLAGS) -shared $(WINDOWS_SRC) $(MINGLIBS)
-#altos64.dll: $(WINDOWS_SRC) $(WINDOWS_H)
-# $(MINGCC64) -o $@ $(MINGFLAGS) -shared $(WINDOWS_SRC) $(MINGLIBS)
+altos64.dll: $(WINDOWS_SRC) $(WINDOWS_H)
+ $(MINGCC64) -o $@ $(MINGFLAGS) -shared $(WINDOWS_SRC) $(MINGLIBS)
clean-local:
- -rm -rf libaltosJNI *.class *.java classlibaltos.stamp $(SWIG_FILE) libaltos_wrap.c
-# -rm -rf altos.dll altos64.dll
+ -rm -rf libaltosJNI *.class *.java classlibaltos.stamp $(SWIG_FILE) libaltos_wrap.c altos.dll altos64.dll
--- /dev/null
+#!/bin/bash
+NEW_PATH=`echo $PATH | sed 's/^[^:]*://'`
+PATH=$NEW_PATH
+CC=gcc
+args=()
+for i in "$@"; do
+ case "$i" in
+ -Wl,arch=*)
+ arch=`echo "$i" | sed -e 's/^-Wl,arch=//'`
+ CC="$arch"-gcc
+ ;;
+ -Warch=*)
+ arch=`echo "$i" | sed -e 's/^-Warch=//'`
+ CC="$arch"-gcc
+ ;;
+ *)
+ args+=( "$i" )
+ ;;
+ esac
+done
+echo " " "$CC" "${args[@]}"
+exec "$CC" "${args[@]}"
FATJAR=micropeak-fat.jar
if MULTI_ARCH
-LIBALTOS_LINUX=libaltos32.so libaltos64.so
+LIBALTOS_LINUX=libaltos_i686.so libaltos_amd64.so libaltos_aarch64.so libaltos_armel.so libaltos_armhf.so
else
LIBALTOS_LINUX=libaltos.so
endif
-rm -f "$@"
$(LN_S) ../libaltos/.libs/"$@" .
-libaltos32.so: build-libaltos
+libaltos_i686.so: build-libaltos
-rm -f "$@"
$(LN_S) ../libaltos/.libs/"$@" .
-libaltos64.so: build-libaltos
+libaltos_amd64.so: build-libaltos
+ -rm -f "$@"
+ $(LN_S) ../libaltos/.libs/"$@" .
+
+libaltos_aarch64.so: build-libaltos
+ -rm -f "$@"
+ $(LN_S) ../libaltos/.libs/"$@" .
+
+libaltos_armel.so: build-libaltos
+ -rm -f "$@"
+ $(LN_S) ../libaltos/.libs/"$@" .
+
+libaltos_armhf.so: build-libaltos
-rm -f "$@"
$(LN_S) ../libaltos/.libs/"$@" .
build-libaltos:
+cd ../libaltos && make libaltos.la
+
build-altos-dll:
+cd ../libaltos && make altos.dll
FATJAR=telegps-fat.jar
if MULTI_ARCH
-LIBALTOS_LINUX=libaltos32.so libaltos64.so
+LIBALTOS_LINUX=libaltos_i686.so libaltos_amd64.so libaltos_aarch64.so libaltos_armel.so libaltos_armhf.so
else
LIBALTOS_LINUX=libaltos.so
endif
-rm -f "$@"
$(LN_S) ../libaltos/.libs/"$@" .
-libaltos32.so: build-libaltos
+libaltos_i686.so: build-libaltos
-rm -f "$@"
$(LN_S) ../libaltos/.libs/"$@" .
-libaltos64.so: build-libaltos
+libaltos_amd64.so: build-libaltos
+ -rm -f "$@"
+ $(LN_S) ../libaltos/.libs/"$@" .
+
+libaltos_aarch64.so: build-libaltos
+ -rm -f "$@"
+ $(LN_S) ../libaltos/.libs/"$@" .
+
+libaltos_armel.so: build-libaltos
+ -rm -f "$@"
+ $(LN_S) ../libaltos/.libs/"$@" .
+
+libaltos_armhf.so: build-libaltos
-rm -f "$@"
$(LN_S) ../libaltos/.libs/"$@" .
-rm -f "$@"
$(LN_S) ../libaltos/"$@" .
-altos.dll: ../libaltos/altos.dll
+altos.dll: build-libaltos
-rm -f "$@"
$(LN_S) ../libaltos/"$@" .
-altos64.dll: ../libaltos/altos64.dll
+altos64.dll: build-libaltos
-rm -f "$@"
$(LN_S) ../libaltos/"$@" .
-../libaltos/.libs/libaltos64.so: ../libaltos/.libs/libaltos32.so
-
-../libaltos/.libs/libaltos32.so: build-libaltos
-
-../libaltos/.libs/libaltos.so: build-libaltos
-
-../libaltos/altos.dll: build-altos-dll
-
-../libaltos/altos64.dll: build-altos64-dll
-
build-libaltos:
- +cd ../libaltos && make libaltos.la
-build-altos-dll:
- +cd ../libaltos && make altos.dll
-
-build-altos64-dll:
- +cd ../libaltos && make altos64.dll
+ +cd ../libaltos && make
$(ALTOSLIB_CLASS):
-rm -f "$@"