1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131
|
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
altoslibdir=$(libdir)/altos
altoslib_LTLIBRARIES=libaltos.la
libaltos_la_LDFLAGS=-version-info 1:0:1 -Wl,-znoexecstack
libaltos_la_SOURCES=\
libaltos_common.c \
libaltos_posix.c \
libaltos_linux.c \
libaltos_wrap.c \
libaltos.h \
libaltos_posix.h \
libaltos_private.h
WINDOWS_SRC=\
libaltos_common.c\
libaltos_windows.c\
libaltos_wrap.c
WINDOWS_H=\
libaltos.h
noinst_PROGRAMS=cjnitest btletest
cjnitest_SOURCES=cjnitest.c
cjnitest_LDADD=libaltos.la
btletest_SOURCES=btletest.c
btletest_LDADD=-lbluetooth
if MULTI_ARCH
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
LIBS=-ldl
HFILES=libaltos.h
SWIG_FILE=libaltos.swig
CLASSDIR=libaltosJNI
$(SWIG_FILE): libaltos.i0 $(HFILES)
sed 's;//%;%;' libaltos.i0 $(HFILES) > $(SWIG_FILE)
all-local: classlibaltos.stamp
test:
which gcc
libaltos_wrap.c: classlibaltos.stamp
classlibaltos.stamp: $(SWIG_FILE)
swig -java -package libaltosJNI $(SWIG_FILE)
mkdir -p libaltosJNI
$(JAVAC) -d . $(AM_JAVACFLAGS) $(JAVACFLAGS) *.java && \
touch classlibaltos.stamp
MINGCC32=i686-w64-mingw32-gcc
MINGCC64=x86_64-w64-mingw32-gcc
MINGFLAGS=-Wall -Wextra -DWINDOWS -DBUILD_DLL -mconsole -I$(JVM_INCLUDE) -I$(JVM_INCLUDE)/linux
MINGLIBS=-lsetupapi -lws2_32
fat: all altos.dll altos64.dll
altos.dll: $(WINDOWS_SRC) $(WINDOWS_H)
SOURCE_DATE_EPOCH=0 $(MINGCC32) -o $@ $(MINGFLAGS) -shared $(WINDOWS_SRC) $(MINGLIBS)
altos64.dll: $(WINDOWS_SRC) $(WINDOWS_H)
SOURCE_DATE_EPOCH=0 $(MINGCC64) -o $@ $(MINGFLAGS) -shared $(WINDOWS_SRC) $(MINGLIBS)
clean-local:
-rm -rf libaltosJNI *.class *.java classlibaltos.stamp $(SWIG_FILE) libaltos_wrap.c altos.dll altos64.dll
|