Added SDL2 as android backend option.
authorDaniel G <giri@nwrk.biz>
Tue, 12 Feb 2019 18:10:20 +0000 (19:10 +0100)
committerDaniel G <giri@nwrk.biz>
Tue, 12 Feb 2019 18:10:20 +0000 (19:10 +0100)
21 files changed:
_template/Makefile
_template/packages/allegro5.1.13/.gitignore
_template/packages/allegro5.1.13/MainActivity.java [new file with mode: 0644]
_template/packages/allegro5.1.13/Makefile
_template/packages/allegro5.2.4/.gitignore
_template/packages/allegro5.2.4/MainActivity.java [new file with mode: 0644]
_template/packages/allegro5.2.4/Makefile
_template/packages/nanox/.gitignore
_template/packages/nanox/Makefile
_template/packages/nanox/config_android_arm [deleted file]
_template/packages/nanox/config_android_arm_allegro [new file with mode: 0644]
_template/packages/nanox/config_android_arm_sdl [new file with mode: 0644]
_template/packages/nanox/microwindows-master.zip
_template/packages/sdl2.0.8/.gitignore [new file with mode: 0644]
_template/packages/sdl2.0.8/MainActivity.java [new file with mode: 0644]
_template/packages/sdl2.0.8/Makefile [new file with mode: 0644]
_template/packages/sdl2.0.8/SDL2-2.0.8.tar.gz [new file with mode: 0644]
_template/src/Makefile
_template/src/android/AndroidManifest.xml
_template/src/android/java/.gitignore
_template/src/android/java/MainActivity.java [deleted file]

index 7540033..71ddfa8 100644 (file)
@@ -20,6 +20,10 @@ allegro:
        cd $(WORKDIR)/packages/allegro5.2.4; \
        make
 
+sdl:
+       cd $(WORKDIR)/packages/sdl2.0.8; \
+       make
+
 nanox:
        cd $(WORKDIR)/packages/nanox; \
        make
@@ -75,6 +79,10 @@ clean_allegro:
        cd $(WORKDIR)/packages/allegro5.2.4; \
        make clean
 
+clean_sdl:
+       cd $(WORKDIR)/packages/sdl2.0.8; \
+       make clean
+
 clean_nanox:
        cd $(WORKDIR)/packages/nanox; \
        make clean
@@ -163,4 +171,4 @@ android_package:
        mkdir -p $(WORKDIR)/install_package/
        cp $(WORKDIR)/src/bin/Android/_template.apk $(WORKDIR)/install_package/install__template_android.apk
 
-clean: clean_lib clean__template clean_fltk  clean_tinyxml clean_allegro clean_nanox clean_freetype clean_libsndfile clean_libao clean_boost clean_gtest clean_tinyalsa clean_gl4es
+clean: clean_lib clean__template clean_fltk  clean_tinyxml clean_allegro clean_sdl clean_nanox clean_freetype clean_libsndfile clean_libao clean_boost clean_gtest clean_tinyalsa clean_gl4es
index d993f45..8ae68b6 100644 (file)
@@ -2,6 +2,7 @@
 /*
 
 # But not these files...
+!MainActivity.java
 !.gitignore
 !allegro-5.1.13.1.tar.gz
 !Makefile
diff --git a/_template/packages/allegro5.1.13/MainActivity.java b/_template/packages/allegro5.1.13/MainActivity.java
new file mode 100644 (file)
index 0000000..dc6f175
--- /dev/null
@@ -0,0 +1,16 @@
+// Java JNI wrapper to load allegro
+// and execute program
+package com.giri._template;
+import org.liballeg.android.AllegroActivity;
+public class MainActivity extends AllegroActivity {
+
+    // load monolithic allegro so
+    static {
+       System.loadLibrary("allegro");
+    }
+
+   // execute _template
+   public MainActivity() {
+      super("lib_template.so");
+   }
+}
index c7ddee4..ab10cbc 100644 (file)
@@ -31,6 +31,7 @@ android_arm:
        mkdir -p $(WORKDIR)/../../lib/android_arm/liballeg
        cp -rf $(WORKDIR)/allegro-5.1.13.1/include/* $(WORKDIR)/../../lib_include/android_arm
        cp -rf $(WORKDIR)/allegro-5.1.13.1/android/allegro_activity/src/* $(WORKDIR)/../../lib/android_arm/liballeg
+       cp -rf $(WORKDIR)/MainActivity.java $(WORKDIR)/../../lib/android_arm/liballeg
        cp -rf $(WORKDIR)/allegro-5.1.13.1/buildandroid/include/* $(WORKDIR)/../../lib_include/android_arm
        cp -rf $(WORKDIR)/allegro-5.1.13.1/addons/acodec/allegro5/* $(WORKDIR)/../../lib_include/android_arm/allegro5
        cp -rf $(WORKDIR)/allegro-5.1.13.1/addons/audio/allegro5/* $(WORKDIR)/../../lib_include/android_arm/allegro5
index 0e9df75..1265b17 100644 (file)
@@ -3,6 +3,7 @@
 
 # But not these files...
 !.gitignore
+!MainActivity.java
 !allegro-5.2.4.0.tar.gz
 !Makefile
 !setenv.sh
diff --git a/_template/packages/allegro5.2.4/MainActivity.java b/_template/packages/allegro5.2.4/MainActivity.java
new file mode 100644 (file)
index 0000000..dc6f175
--- /dev/null
@@ -0,0 +1,16 @@
+// Java JNI wrapper to load allegro
+// and execute program
+package com.giri._template;
+import org.liballeg.android.AllegroActivity;
+public class MainActivity extends AllegroActivity {
+
+    // load monolithic allegro so
+    static {
+       System.loadLibrary("allegro");
+    }
+
+   // execute _template
+   public MainActivity() {
+      super("lib_template.so");
+   }
+}
index ac7247c..7082039 100644 (file)
@@ -34,6 +34,7 @@ android_arm:
        mkdir -p $(WORKDIR)/../../lib_include/android_arm
        mkdir -p $(WORKDIR)/../../lib/android_arm
        cp -rf $(WORKDIR)/allegro-5.2.4.0/android/gradle_project/allegro/src/main/java/org/* $(WORKDIR)/../../lib/android_arm
+       cp -rf $(WORKDIR)/MainActivity.java $(WORKDIR)/../../lib/android_arm/liballeg
        cp -rf $(WORKDIR)/allegro-5.2.4.0/buildandroid/include/* $(WORKDIR)/../../lib_include/android_arm
        cp -rf $(WORKDIR)/allegro-5.2.4.0/include/* $(WORKDIR)/../../lib_include/android_arm
        cp -rf $(WORKDIR)/allegro-5.2.4.0/addons/acodec/allegro5/* $(WORKDIR)/../../lib_include/android_arm/allegro5
index ffc5a76..8f93fd0 100644 (file)
@@ -6,5 +6,5 @@
 !microwindows-master.zip
 !Makefile
 !config_linux
-!config_android_arm
-!config_android_arm64
\ No newline at end of file
+!config_android_arm_sdl
+!config_android_arm_allegro
\ No newline at end of file
index 0f3425a..d8fae9d 100644 (file)
@@ -8,7 +8,7 @@ WORKDIR = $(shell pwd)
 ANDROID_TARGET_VER=23
 
 
-all: unpack android_arm
+all: unpack android_arm_allegro
 
 unpack:
        unzip -o microwindows-master.zip
@@ -25,8 +25,19 @@ linux:
        cp -rf $(WORKDIR)/microwindows-master/src/include/*.h $(WORKDIR)/../../lib_include/linux32
        cp -rf $(WORKDIR)/microwindows-master/src/nx11/X11-local/* $(WORKDIR)/../../lib_include/linux32
 
-android_arm:
-       cp $(WORKDIR)/config_android_arm $(WORKDIR)/microwindows-master/src/config
+android_arm_allegro:
+       cp $(WORKDIR)/config_android_arm_allegro $(WORKDIR)/microwindows-master/src/config
+       export PATH=/usr/lib/android-ndk/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/:${PATH}; \
+       cd $(WORKDIR)/microwindows-master/src/; \
+       make -j6
+       mkdir -p $(WORKDIR)/../../lib/android_arm
+       mkdir -p $(WORKDIR)/../../lib_include/android_arm
+       cp -rf $(WORKDIR)/microwindows-master/src/lib/*.a $(WORKDIR)/../../lib/android_arm
+       cp -rf $(WORKDIR)/microwindows-master/src/include/*.h $(WORKDIR)/../../lib_include/android_arm
+       cp -rf $(WORKDIR)/microwindows-master/src/nx11/X11-local/* $(WORKDIR)/../../lib_include/android_arm
+
+android_arm_sdl:
+       cp $(WORKDIR)/config_android_arm_sdl $(WORKDIR)/microwindows-master/src/config
        export PATH=/usr/lib/android-ndk/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/:${PATH}; \
        cd $(WORKDIR)/microwindows-master/src/; \
        make -j6
diff --git a/_template/packages/nanox/config_android_arm b/_template/packages/nanox/config_android_arm
deleted file mode 100644 (file)
index fefbc32..0000000
+++ /dev/null
@@ -1,281 +0,0 @@
-####################################################################
-# config - Microwindows and Nano-X configuration file
-#
-# Set target architecture using ARCH= from options in Arch.rules
-# Set drawing method: X11 or FRAMEBUFFER/MOUSE/KEYBOARD options
-# Set SCREEN/MOUSE/KEYBOARD drivers (typically X11 or FB)
-# Set various libraries to build or include and their locations
-#
-# See the src/Configs directory for pre-built config files.
-# Edit this or copy one from src/Configs, and type "make clean; make"
-####################################################################
-
-####################################################################
-#
-# Target platform and compilation options
-#
-####################################################################
-ARCH                     = ANDROID
-SHAREDLIBS               = N
-SHAREDLINK               = N
-#EXTRAFLAGS               = -Wno-unused-result -Wno-implicit-int
-DEBUG                    = N
-OPTIMIZE                 = Y
-#OPTIMIZE                 = -O1
-VERBOSE                  = Y
-THREADSAFE               = N
-PARALLEL                 = N
-
-####################################################################
-# Screen Driver
-# Set SCREEN=X11 for X11, SCREEN=FB for framebuffer drawing
-# Screen size/depth for X11, FBE and non-dynamic framebuffer systems
-####################################################################
-SCREEN                   = ALLEGRO
-ALLEGRO5_INCLUDE        =../../../../../lib_include/android_arm
-ALLEGRO5_LIB            =../../../../../lib/android_arm
-ALLEGRO5_SRC            =../../../../packages/allegro5.2.4/allegro-5.2.4.0
-MOUSE                    =
-KEYBOARD                 =
-SCREEN_WIDTH             = 1080
-SCREEN_HEIGHT            = 1776
-X11HDRLOCATION           = $(MW_DIR_SRC)/nx11/X11-local
-#EXTENGINELIBS            = -lallegro
-
-####################################################################
-# Android specific settings (these also allow compiling android)
-# for different architectures + platform versions
-####################################################################
-ANDROID_NDK_HOME       = /usr/lib/android-ndk
-ANDROID_PLATFORM_VER   = android-23
-ANDROID_ARCH           = arm
-ANDROID_ARCH_VER       = armeabi-v7a
-ANDROID_TOOLCHAIN_NAME = arm-linux-androideabi-4.9
-ANDROIDTOOLSPREFIX      = arm-linux-androideabi-
-
-####################################################################
-#
-# Libraries to build: microwin, nano-X, nxlib, engine
-#
-####################################################################
-MICROWIN                 = N
-NANOX                    = Y
-NX11                     = Y
-ENGINE                   = Y
-TINYWIDGETS              = N
-
-####################################################################
-#
-# Applications and demos to build
-#
-####################################################################
-FBEMULATOR               = N
-MICROWINDEMO             = N
-NANOXDEMO                = N
-HAVE_VNCSERVER_SUPPORT   = N
-VNCSERVER_PTHREADED      = N
-LIBVNC                   = -lvncserver
-INCVNC                   =
-
-####################################################################
-# Mandatory settings to create android .apk files
-####################################################################
-ANDROID_SDK_ROOT=/usr/lib/android-sdk
-ANDROID_BUILD_TOOLS_VERSION=24.0.0
-ANDROID_KEYSTORE_PATH=~/.android/debug.keystore
-ANDROID_KEYSTORE_NAME=androiddebugkey
-ANDROID_KEYSTORE_PW=android
-JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64
-
-####################################################################
-# LINK_APP_INTO_SERVER links the nano-X server into the application,
-# by building a libnano-X.{a,so} that runs standalone.
-# Required if UNIX sockets aren't available, for debugging,
-# and also used to support running X11 apps through NXLIB on X11.
-# NANOWM links the window manager into the server.
-####################################################################
-LINK_APP_INTO_SERVER     = Y
-NANOWM                   = Y
-
-####################################################################
-# Shared memory support for Nano-X client/server protocol speedup
-####################################################################
-HAVE_SHAREDMEM_SUPPORT   = N
-
-####################################################################
-# File I/O support
-# Supporting either below drags in libc stdio, which may not be wanted
-####################################################################
-HAVE_FILEIO              = Y
-
-####################################################################
-# BMP, GIF reading support
-####################################################################
-HAVE_BMP_SUPPORT         = Y
-HAVE_GIF_SUPPORT         = Y
-HAVE_PNM_SUPPORT         = Y
-HAVE_XPM_SUPPORT         = Y
-
-####################################################################
-# JPEG support through libjpeg, see README.txt in contrib/jpeg
-####################################################################
-HAVE_JPEG_SUPPORT        = N
-INCJPEG                  =
-LIBJPEG                  = -ljpeg
-
-####################################################################
-# PNG support via libpng and libz
-####################################################################
-HAVE_PNG_SUPPORT         = N
-INCPNG                   =
-LIBPNG                   = -lpng
-INCZ                     = .
-LIBZ                     = -lz
-
-####################################################################
-# TIFF support through libtiff
-####################################################################
-HAVE_TIFF_SUPPORT        = N
-INCTIFF                  =
-LIBTIFF                  = -ltiff
-
-####################################################################
-# PCF font support - .pcf/.pcf.gz loadable fonts
-####################################################################
-HAVE_PCF_SUPPORT         = Y
-HAVE_PCFGZ_SUPPORT       = Y
-PCF_FONT_DIR             = "fonts/pcf"
-
-####################################################################
-# Truetype fonts - .ttf and .otf loadable fonts thru Freetype 2.x
-####################################################################
-HAVE_FREETYPE_2_SUPPORT  = Y
-HAVE_HARFBUZZ_SUPPORT    = N
-INCFT2LIB                = /usr/include
-LIBFT2LIB                = -lfreetype
-#LIBFT2LIB                += -lharfbuzz
-FREETYPE_FONT_DIR        = "/system/fonts"
-
-####################################################################
-# T1 adobe type1 fonts - .pfb/.afm loadable thru t1lib
-# t1lib.config must be setup and in T1LIB_FONT_DIR
-####################################################################
-HAVE_T1LIB_SUPPORT       = N
-T1LIB_FONT_DIR           = "fonts/type1"
-INCT1LIB                 =
-LIBT1LIB                 = -lt1
-
-####################################################################
-# FNT font support - .fnt/.fnt.gz loadable fonts (native bdf-converted)
-####################################################################
-HAVE_FNT_SUPPORT         = Y
-HAVE_FNTGZ_SUPPORT       = Y
-FNT_FONT_DIR             = "fonts/fnt"
-
-####################################################################
-# Specialized font support
-#
-# Chinese Han Zi Ku HZK loadable font support
-# DBCS Chinese BIG5 compiled in font support (big5font.c)
-# DBCS Chinese GB2312 compiled in font support (gb2312font.c)
-# Chinese HBF font support (genfont.hbf.c, hbf.c)
-# DBCS Japanese JISX0213 compiled in font support (jisx0213-12x12.c)
-# Japanese EUC-JP support using loadable MGL font
-# DBCS Korean HANGUL font support (jo16x16.c)
-# Fribidi and shape/joining support for right to left rendering
-####################################################################
-HAVE_HZK_SUPPORT         = N
-HZK_FONT_DIR             = "fonts/chinese"
-HAVE_BIG5_SUPPORT        = N
-HAVE_GB2312_SUPPORT      = N
-HAVE_HBF_SUPPORT         = N
-HAVE_JISX0213_SUPPORT    = N
-HAVE_EUCJP_SUPPORT       = N
-EUCJP_FONT_DIR           = "fonts/japanese"
-HAVE_KSC5601_SUPPORT     = N
-HAVE_FRIBIDI_SUPPORT     = N
-HAVE_SHAPEJOINING_SUPPORT = N
-INCFRIBIDI               =
-LIBFRIBIDI               = -lfribidi
-
-####################################################################
-# Misc Options
-####################################################################
-
-# Window move algorithms for Microwindows
-# Change for tradeoff between cpu speed and looks
-# ERASEMOVE (nanowm) repaints only backgrounds while window dragging
-# Otherwise an XOR redraw is used for window moves only after button up
-# UPDATEREGIONS (win32 api only)paints in update clipping region only
-ERASEMOVE                = Y
-UPDATEREGIONS            = Y
-
-# Generate screen driver interface only with no fonts or clipping
-NOFONTS                  = N
-NOCLIPPING               = N
-
-# set USE_EXPOSURE for X11 on XFree86 4.x or if backing store not working
-# set VTSWITCH to include virtual terminal switch code
-# set FBREVERSE to reverse bit orders in 1,2,4 bpp
-# set GRAYPALETTE to link with Gray Palette (valid only for 4bpp modes)
-# set HAVETEXTMODE=Y for systems that can switch between text & graphics.
-USE_EXPOSURE             = Y
-VTSWITCH                 = N
-FBREVERSE                = N
-GRAYPALETTE              = N
-HAVETEXTMODE             = N
-
-####################################################################
-# Screen pixel format
-# If using Linux framebuffer, set to MWPF_TRUECOLORARGB, and use fbset.
-# When running X11 or FBE, this sets the pixel emulation at runtime.
-#
-# On Linux or when running the standard framebuffer subdrivers,
-# the runtime framebuffer BPP (bits per pixel) is used to select 
-# the runtime screen subdriver.  However, the format of the pixel
-# itself must be selected at compile time, which sets macros used
-# for MWCOLORVAL color conversions and conversion blit byte order.
-# This also sets sizeof(MWPIXELVAL) for optimizing buffers sizes
-# in GrArea/GrReadArea.
-#
-# define MWPF_PALETTE       /* pixel is packed 8 bits 1, 4 or 8 pal index*/
-# define MWPF_TRUECOLORARGB /* pixel is packed 32 bits byte order |B|G|R|A|*/
-# define MWPF_TRUECOLORABGR /* pixel is packed 32 bits byte order |R|G|B|A|*/
-# define MWPF_TRUECOLORRGB  /* pixel is packed 24 bits byte order |B|G|R|*/
-# define MWPF_TRUECOLOR565  /* pixel is packed 16 bits little endian RGB565*/
-# define MWPF_TRUECOLOR555  /* pixel is packed 16 bits little endian RGB555*/
-# define MWPF_TRUECOLOR332  /* pixel is packed 8 bits RGB 332*/
-# define MWPF_TRUECOLOR233  /* pixel is packed 8 bits BGR 332*/
-# SCREEN_DEPTH is bits per pixel, only used with MWPF_PALETTE palette mode
-####################################################################
-SCREEN_PIXTYPE           = MWPF_TRUECOLORARGB
-#SCREEN_PIXTYPE           = MWPF_TRUECOLORABGR 
-#SCREEN_PIXTYPE           = MWPF_TRUECOLOR565
-SCREEN_DEPTH             = 8
-
-####################################################################
-# Screen drivers
-# SCREEN=X11           X11
-# SCREEN=FB                    linux framebuffer
-# SCREEN=FBE           framebuffer emulator
-# SCREEN=SDL           SDL v2
-# SCREEN=ALLEGRO4
-# SCREEN=ALLEGRO5
-####################################################################
-
-####################################################################
-# Mouse drivers
-# MOUSE=NOMOUSE                no mouse driver
-# MOUSE=GPMMOUSE       gpm mouse
-# MOUSE=SERMOUSE       serial Microsoft, PC, Logitech, PS/2 mice (/dev/psaux)
-# MOUSE=DEVMICEMOUSE Use Linux /dev/input/mice driver
-# MOUSE=TSLIBMOUSE     Use tslib (/dev/input/event0)
-####################################################################
-
-####################################################################
-# Keyboard drivers
-# KEYBOARD=NOKBD               no keyboard driver
-# KEYBOARD=TTYKBD              tty keyboard
-# KEYBOARD=SCANKBD             scanmode keyboard
-# KEYBOARD=2NDKBD              two keyboards support
-####################################################################
diff --git a/_template/packages/nanox/config_android_arm_allegro b/_template/packages/nanox/config_android_arm_allegro
new file mode 100644 (file)
index 0000000..3a799c9
--- /dev/null
@@ -0,0 +1,282 @@
+####################################################################
+# config - Microwindows and Nano-X configuration file
+#
+# Set target architecture using ARCH= from options in Arch.rules
+# Set drawing method: X11 or FRAMEBUFFER/MOUSE/KEYBOARD options
+# Set SCREEN/MOUSE/KEYBOARD drivers (typically X11 or FB)
+# Set various libraries to build or include and their locations
+#
+# See the src/Configs directory for pre-built config files.
+# Edit this or copy one from src/Configs, and type "make clean; make"
+####################################################################
+
+####################################################################
+#
+# Target platform and compilation options
+#
+####################################################################
+ARCH                     = ANDROID
+SHAREDLIBS               = N
+SHAREDLINK               = N
+#EXTRAFLAGS               = -Wno-unused-result -Wno-implicit-int
+DEBUG                    = N
+OPTIMIZE                 = Y
+#OPTIMIZE                 = -O1
+VERBOSE                  = Y
+THREADSAFE               = N
+PARALLEL                 = N
+
+####################################################################
+# Screen Driver
+# Set SCREEN=X11 for X11, SCREEN=FB for framebuffer drawing
+# Screen size/depth for X11, FBE and non-dynamic framebuffer systems
+####################################################################
+SCREEN                   = ALLEGRO
+ALLEGRO5_INCLUDE        =../../../../../lib_include/android_arm
+ALLEGRO5_LIB            =../../../../../lib/android_arm
+ALLEGRO5_SRC            =../../../../packages/allegro5.2.4/allegro-5.2.4.0
+ALLEGRO_ZOOM            = 2.0
+MOUSE                    =
+KEYBOARD                 =
+SCREEN_WIDTH             = 1080
+SCREEN_HEIGHT            = 1776
+X11HDRLOCATION           = $(MW_DIR_SRC)/nx11/X11-local
+#EXTENGINELIBS            = -lallegro
+
+####################################################################
+# Android specific settings (these also allow compiling android)
+# for different architectures + platform versions
+####################################################################
+ANDROID_NDK_HOME       = /usr/lib/android-ndk
+ANDROID_PLATFORM_VER   = android-23
+ANDROID_ARCH           = arm
+ANDROID_ARCH_VER       = armeabi-v7a
+ANDROID_TOOLCHAIN_NAME = arm-linux-androideabi-4.9
+ANDROIDTOOLSPREFIX      = arm-linux-androideabi-
+
+####################################################################
+#
+# Libraries to build: microwin, nano-X, nxlib, engine
+#
+####################################################################
+MICROWIN                 = N
+NANOX                    = Y
+NX11                     = Y
+ENGINE                   = Y
+TINYWIDGETS              = N
+
+####################################################################
+#
+# Applications and demos to build
+#
+####################################################################
+FBEMULATOR               = N
+MICROWINDEMO             = N
+NANOXDEMO                = N
+HAVE_VNCSERVER_SUPPORT   = N
+VNCSERVER_PTHREADED      = N
+LIBVNC                   = -lvncserver
+INCVNC                   =
+
+####################################################################
+# Mandatory settings to create android .apk files
+####################################################################
+ANDROID_SDK_ROOT=/usr/lib/android-sdk
+ANDROID_BUILD_TOOLS_VERSION=24.0.0
+ANDROID_KEYSTORE_PATH=~/.android/debug.keystore
+ANDROID_KEYSTORE_NAME=androiddebugkey
+ANDROID_KEYSTORE_PW=android
+JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64
+
+####################################################################
+# LINK_APP_INTO_SERVER links the nano-X server into the application,
+# by building a libnano-X.{a,so} that runs standalone.
+# Required if UNIX sockets aren't available, for debugging,
+# and also used to support running X11 apps through NXLIB on X11.
+# NANOWM links the window manager into the server.
+####################################################################
+LINK_APP_INTO_SERVER     = Y
+NANOWM                   = Y
+
+####################################################################
+# Shared memory support for Nano-X client/server protocol speedup
+####################################################################
+HAVE_SHAREDMEM_SUPPORT   = N
+
+####################################################################
+# File I/O support
+# Supporting either below drags in libc stdio, which may not be wanted
+####################################################################
+HAVE_FILEIO              = Y
+
+####################################################################
+# BMP, GIF reading support
+####################################################################
+HAVE_BMP_SUPPORT         = Y
+HAVE_GIF_SUPPORT         = Y
+HAVE_PNM_SUPPORT         = Y
+HAVE_XPM_SUPPORT         = Y
+
+####################################################################
+# JPEG support through libjpeg, see README.txt in contrib/jpeg
+####################################################################
+HAVE_JPEG_SUPPORT        = N
+INCJPEG                  =
+LIBJPEG                  = -ljpeg
+
+####################################################################
+# PNG support via libpng and libz
+####################################################################
+HAVE_PNG_SUPPORT         = N
+INCPNG                   =
+LIBPNG                   = -lpng
+INCZ                     = .
+LIBZ                     = -lz
+
+####################################################################
+# TIFF support through libtiff
+####################################################################
+HAVE_TIFF_SUPPORT        = N
+INCTIFF                  =
+LIBTIFF                  = -ltiff
+
+####################################################################
+# PCF font support - .pcf/.pcf.gz loadable fonts
+####################################################################
+HAVE_PCF_SUPPORT         = Y
+HAVE_PCFGZ_SUPPORT       = Y
+PCF_FONT_DIR             = "fonts/pcf"
+
+####################################################################
+# Truetype fonts - .ttf and .otf loadable fonts thru Freetype 2.x
+####################################################################
+HAVE_FREETYPE_2_SUPPORT  = Y
+HAVE_HARFBUZZ_SUPPORT    = N
+INCFT2LIB                = /usr/include
+LIBFT2LIB                = -lfreetype
+#LIBFT2LIB                += -lharfbuzz
+FREETYPE_FONT_DIR        = "/system/fonts"
+
+####################################################################
+# T1 adobe type1 fonts - .pfb/.afm loadable thru t1lib
+# t1lib.config must be setup and in T1LIB_FONT_DIR
+####################################################################
+HAVE_T1LIB_SUPPORT       = N
+T1LIB_FONT_DIR           = "fonts/type1"
+INCT1LIB                 =
+LIBT1LIB                 = -lt1
+
+####################################################################
+# FNT font support - .fnt/.fnt.gz loadable fonts (native bdf-converted)
+####################################################################
+HAVE_FNT_SUPPORT         = Y
+HAVE_FNTGZ_SUPPORT       = Y
+FNT_FONT_DIR             = "fonts/fnt"
+
+####################################################################
+# Specialized font support
+#
+# Chinese Han Zi Ku HZK loadable font support
+# DBCS Chinese BIG5 compiled in font support (big5font.c)
+# DBCS Chinese GB2312 compiled in font support (gb2312font.c)
+# Chinese HBF font support (genfont.hbf.c, hbf.c)
+# DBCS Japanese JISX0213 compiled in font support (jisx0213-12x12.c)
+# Japanese EUC-JP support using loadable MGL font
+# DBCS Korean HANGUL font support (jo16x16.c)
+# Fribidi and shape/joining support for right to left rendering
+####################################################################
+HAVE_HZK_SUPPORT         = N
+HZK_FONT_DIR             = "fonts/chinese"
+HAVE_BIG5_SUPPORT        = N
+HAVE_GB2312_SUPPORT      = N
+HAVE_HBF_SUPPORT         = N
+HAVE_JISX0213_SUPPORT    = N
+HAVE_EUCJP_SUPPORT       = N
+EUCJP_FONT_DIR           = "fonts/japanese"
+HAVE_KSC5601_SUPPORT     = N
+HAVE_FRIBIDI_SUPPORT     = N
+HAVE_SHAPEJOINING_SUPPORT = N
+INCFRIBIDI               =
+LIBFRIBIDI               = -lfribidi
+
+####################################################################
+# Misc Options
+####################################################################
+
+# Window move algorithms for Microwindows
+# Change for tradeoff between cpu speed and looks
+# ERASEMOVE (nanowm) repaints only backgrounds while window dragging
+# Otherwise an XOR redraw is used for window moves only after button up
+# UPDATEREGIONS (win32 api only)paints in update clipping region only
+ERASEMOVE                = Y
+UPDATEREGIONS            = Y
+
+# Generate screen driver interface only with no fonts or clipping
+NOFONTS                  = N
+NOCLIPPING               = N
+
+# set USE_EXPOSURE for X11 on XFree86 4.x or if backing store not working
+# set VTSWITCH to include virtual terminal switch code
+# set FBREVERSE to reverse bit orders in 1,2,4 bpp
+# set GRAYPALETTE to link with Gray Palette (valid only for 4bpp modes)
+# set HAVETEXTMODE=Y for systems that can switch between text & graphics.
+USE_EXPOSURE             = Y
+VTSWITCH                 = N
+FBREVERSE                = N
+GRAYPALETTE              = N
+HAVETEXTMODE             = N
+
+####################################################################
+# Screen pixel format
+# If using Linux framebuffer, set to MWPF_TRUECOLORARGB, and use fbset.
+# When running X11 or FBE, this sets the pixel emulation at runtime.
+#
+# On Linux or when running the standard framebuffer subdrivers,
+# the runtime framebuffer BPP (bits per pixel) is used to select 
+# the runtime screen subdriver.  However, the format of the pixel
+# itself must be selected at compile time, which sets macros used
+# for MWCOLORVAL color conversions and conversion blit byte order.
+# This also sets sizeof(MWPIXELVAL) for optimizing buffers sizes
+# in GrArea/GrReadArea.
+#
+# define MWPF_PALETTE       /* pixel is packed 8 bits 1, 4 or 8 pal index*/
+# define MWPF_TRUECOLORARGB /* pixel is packed 32 bits byte order |B|G|R|A|*/
+# define MWPF_TRUECOLORABGR /* pixel is packed 32 bits byte order |R|G|B|A|*/
+# define MWPF_TRUECOLORRGB  /* pixel is packed 24 bits byte order |B|G|R|*/
+# define MWPF_TRUECOLOR565  /* pixel is packed 16 bits little endian RGB565*/
+# define MWPF_TRUECOLOR555  /* pixel is packed 16 bits little endian RGB555*/
+# define MWPF_TRUECOLOR332  /* pixel is packed 8 bits RGB 332*/
+# define MWPF_TRUECOLOR233  /* pixel is packed 8 bits BGR 332*/
+# SCREEN_DEPTH is bits per pixel, only used with MWPF_PALETTE palette mode
+####################################################################
+SCREEN_PIXTYPE           = MWPF_TRUECOLORARGB
+#SCREEN_PIXTYPE           = MWPF_TRUECOLORABGR 
+#SCREEN_PIXTYPE           = MWPF_TRUECOLOR565
+SCREEN_DEPTH             = 8
+
+####################################################################
+# Screen drivers
+# SCREEN=X11           X11
+# SCREEN=FB                    linux framebuffer
+# SCREEN=FBE           framebuffer emulator
+# SCREEN=SDL           SDL v2
+# SCREEN=ALLEGRO4
+# SCREEN=ALLEGRO5
+####################################################################
+
+####################################################################
+# Mouse drivers
+# MOUSE=NOMOUSE                no mouse driver
+# MOUSE=GPMMOUSE       gpm mouse
+# MOUSE=SERMOUSE       serial Microsoft, PC, Logitech, PS/2 mice (/dev/psaux)
+# MOUSE=DEVMICEMOUSE Use Linux /dev/input/mice driver
+# MOUSE=TSLIBMOUSE     Use tslib (/dev/input/event0)
+####################################################################
+
+####################################################################
+# Keyboard drivers
+# KEYBOARD=NOKBD               no keyboard driver
+# KEYBOARD=TTYKBD              tty keyboard
+# KEYBOARD=SCANKBD             scanmode keyboard
+# KEYBOARD=2NDKBD              two keyboards support
+####################################################################
diff --git a/_template/packages/nanox/config_android_arm_sdl b/_template/packages/nanox/config_android_arm_sdl
new file mode 100644 (file)
index 0000000..011324b
--- /dev/null
@@ -0,0 +1,281 @@
+####################################################################
+# config - Microwindows and Nano-X configuration file
+#
+# Set target architecture using ARCH= from options in Arch.rules
+# Set drawing method: X11 or FRAMEBUFFER/MOUSE/KEYBOARD options
+# Set SCREEN/MOUSE/KEYBOARD drivers (typically X11 or FB)
+# Set various libraries to build or include and their locations
+#
+# See the src/Configs directory for pre-built config files.
+# Edit this or copy one from src/Configs, and type "make clean; make"
+####################################################################
+
+####################################################################
+#
+# Target platform and compilation options
+#
+####################################################################
+ARCH                     = ANDROID
+SHAREDLIBS               = N
+SHAREDLINK               = N
+#EXTRAFLAGS               = -Wno-unused-result -Wno-implicit-int
+DEBUG                    = N
+OPTIMIZE                 = Y
+#OPTIMIZE                 = -O1
+VERBOSE                  = Y
+THREADSAFE               = N
+PARALLEL                 = N
+
+####################################################################
+# Screen Driver
+# Set SCREEN=X11 for X11, SCREEN=FB for framebuffer drawing
+# Screen size/depth for X11, FBE and non-dynamic framebuffer systems
+####################################################################
+SCREEN                   = SDL
+SDL2_INCLUDE    =../../../../../lib_include/android_arm
+SDL2_LIB                =../../../../../lib/android_arm
+SDL2_SRC                =../../../../packages/sdl2.0.9/SDL2-2.0.9
+MOUSE                    =
+KEYBOARD                 =
+SCREEN_WIDTH             = 1080
+SCREEN_HEIGHT            = 1776
+X11HDRLOCATION           = $(MW_DIR_SRC)/nx11/X11-local
+#EXTENGINELIBS            += -lSDL2
+
+####################################################################
+# Android specific settings (these also allow compiling android)
+# for different architectures + platform versions
+####################################################################
+ANDROID_NDK_HOME       = /usr/lib/android-ndk
+ANDROID_PLATFORM_VER   = android-23
+ANDROID_ARCH           = arm
+ANDROID_ARCH_VER       = armeabi-v7a
+ANDROID_TOOLCHAIN_NAME = arm-linux-androideabi-4.9
+ANDROIDTOOLSPREFIX      = arm-linux-androideabi-
+
+####################################################################
+#
+# Libraries to build: microwin, nano-X, nxlib, engine
+#
+####################################################################
+MICROWIN                 = N
+NANOX                    = Y
+NX11                     = Y
+ENGINE                   = Y
+TINYWIDGETS              = N
+
+####################################################################
+#
+# Applications and demos to build
+#
+####################################################################
+FBEMULATOR               = N
+MICROWINDEMO             = N
+NANOXDEMO                = N
+HAVE_VNCSERVER_SUPPORT   = N
+VNCSERVER_PTHREADED      = N
+LIBVNC                   = -lvncserver
+INCVNC                   =
+
+####################################################################
+# Mandatory settings to create android .apk files
+####################################################################
+ANDROID_SDK_ROOT=/usr/lib/android-sdk
+ANDROID_BUILD_TOOLS_VERSION=24.0.0
+ANDROID_KEYSTORE_PATH=~/.android/debug.keystore
+ANDROID_KEYSTORE_NAME=androiddebugkey
+ANDROID_KEYSTORE_PW=android
+JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64
+
+####################################################################
+# LINK_APP_INTO_SERVER links the nano-X server into the application,
+# by building a libnano-X.{a,so} that runs standalone.
+# Required if UNIX sockets aren't available, for debugging,
+# and also used to support running X11 apps through NXLIB on X11.
+# NANOWM links the window manager into the server.
+####################################################################
+LINK_APP_INTO_SERVER     = Y
+NANOWM                   = Y
+
+####################################################################
+# Shared memory support for Nano-X client/server protocol speedup
+####################################################################
+HAVE_SHAREDMEM_SUPPORT   = N
+
+####################################################################
+# File I/O support
+# Supporting either below drags in libc stdio, which may not be wanted
+####################################################################
+HAVE_FILEIO              = Y
+
+####################################################################
+# BMP, GIF reading support
+####################################################################
+HAVE_BMP_SUPPORT         = Y
+HAVE_GIF_SUPPORT         = Y
+HAVE_PNM_SUPPORT         = Y
+HAVE_XPM_SUPPORT         = Y
+
+####################################################################
+# JPEG support through libjpeg, see README.txt in contrib/jpeg
+####################################################################
+HAVE_JPEG_SUPPORT        = N
+INCJPEG                  =
+LIBJPEG                  = -ljpeg
+
+####################################################################
+# PNG support via libpng and libz
+####################################################################
+HAVE_PNG_SUPPORT         = N
+INCPNG                   =
+LIBPNG                   = -lpng
+INCZ                     = .
+LIBZ                     = -lz
+
+####################################################################
+# TIFF support through libtiff
+####################################################################
+HAVE_TIFF_SUPPORT        = N
+INCTIFF                  =
+LIBTIFF                  = -ltiff
+
+####################################################################
+# PCF font support - .pcf/.pcf.gz loadable fonts
+####################################################################
+HAVE_PCF_SUPPORT         = Y
+HAVE_PCFGZ_SUPPORT       = Y
+PCF_FONT_DIR             = "fonts/pcf"
+
+####################################################################
+# Truetype fonts - .ttf and .otf loadable fonts thru Freetype 2.x
+####################################################################
+HAVE_FREETYPE_2_SUPPORT  = Y
+HAVE_HARFBUZZ_SUPPORT    = N
+INCFT2LIB                = /usr/include
+LIBFT2LIB                = -lfreetype
+#LIBFT2LIB                += -lharfbuzz
+FREETYPE_FONT_DIR        = "/system/fonts"
+
+####################################################################
+# T1 adobe type1 fonts - .pfb/.afm loadable thru t1lib
+# t1lib.config must be setup and in T1LIB_FONT_DIR
+####################################################################
+HAVE_T1LIB_SUPPORT       = N
+T1LIB_FONT_DIR           = "fonts/type1"
+INCT1LIB                 =
+LIBT1LIB                 = -lt1
+
+####################################################################
+# FNT font support - .fnt/.fnt.gz loadable fonts (native bdf-converted)
+####################################################################
+HAVE_FNT_SUPPORT         = Y
+HAVE_FNTGZ_SUPPORT       = Y
+FNT_FONT_DIR             = "fonts/fnt"
+
+####################################################################
+# Specialized font support
+#
+# Chinese Han Zi Ku HZK loadable font support
+# DBCS Chinese BIG5 compiled in font support (big5font.c)
+# DBCS Chinese GB2312 compiled in font support (gb2312font.c)
+# Chinese HBF font support (genfont.hbf.c, hbf.c)
+# DBCS Japanese JISX0213 compiled in font support (jisx0213-12x12.c)
+# Japanese EUC-JP support using loadable MGL font
+# DBCS Korean HANGUL font support (jo16x16.c)
+# Fribidi and shape/joining support for right to left rendering
+####################################################################
+HAVE_HZK_SUPPORT         = N
+HZK_FONT_DIR             = "fonts/chinese"
+HAVE_BIG5_SUPPORT        = N
+HAVE_GB2312_SUPPORT      = N
+HAVE_HBF_SUPPORT         = N
+HAVE_JISX0213_SUPPORT    = N
+HAVE_EUCJP_SUPPORT       = N
+EUCJP_FONT_DIR           = "fonts/japanese"
+HAVE_KSC5601_SUPPORT     = N
+HAVE_FRIBIDI_SUPPORT     = N
+HAVE_SHAPEJOINING_SUPPORT = N
+INCFRIBIDI               =
+LIBFRIBIDI               = -lfribidi
+
+####################################################################
+# Misc Options
+####################################################################
+
+# Window move algorithms for Microwindows
+# Change for tradeoff between cpu speed and looks
+# ERASEMOVE (nanowm) repaints only backgrounds while window dragging
+# Otherwise an XOR redraw is used for window moves only after button up
+# UPDATEREGIONS (win32 api only)paints in update clipping region only
+ERASEMOVE                = Y
+UPDATEREGIONS            = Y
+
+# Generate screen driver interface only with no fonts or clipping
+NOFONTS                  = N
+NOCLIPPING               = N
+
+# set USE_EXPOSURE for X11 on XFree86 4.x or if backing store not working
+# set VTSWITCH to include virtual terminal switch code
+# set FBREVERSE to reverse bit orders in 1,2,4 bpp
+# set GRAYPALETTE to link with Gray Palette (valid only for 4bpp modes)
+# set HAVETEXTMODE=Y for systems that can switch between text & graphics.
+USE_EXPOSURE             = Y
+VTSWITCH                 = N
+FBREVERSE                = N
+GRAYPALETTE              = N
+HAVETEXTMODE             = N
+
+####################################################################
+# Screen pixel format
+# If using Linux framebuffer, set to MWPF_TRUECOLORARGB, and use fbset.
+# When running X11 or FBE, this sets the pixel emulation at runtime.
+#
+# On Linux or when running the standard framebuffer subdrivers,
+# the runtime framebuffer BPP (bits per pixel) is used to select 
+# the runtime screen subdriver.  However, the format of the pixel
+# itself must be selected at compile time, which sets macros used
+# for MWCOLORVAL color conversions and conversion blit byte order.
+# This also sets sizeof(MWPIXELVAL) for optimizing buffers sizes
+# in GrArea/GrReadArea.
+#
+# define MWPF_PALETTE       /* pixel is packed 8 bits 1, 4 or 8 pal index*/
+# define MWPF_TRUECOLORARGB /* pixel is packed 32 bits byte order |B|G|R|A|*/
+# define MWPF_TRUECOLORABGR /* pixel is packed 32 bits byte order |R|G|B|A|*/
+# define MWPF_TRUECOLORRGB  /* pixel is packed 24 bits byte order |B|G|R|*/
+# define MWPF_TRUECOLOR565  /* pixel is packed 16 bits little endian RGB565*/
+# define MWPF_TRUECOLOR555  /* pixel is packed 16 bits little endian RGB555*/
+# define MWPF_TRUECOLOR332  /* pixel is packed 8 bits RGB 332*/
+# define MWPF_TRUECOLOR233  /* pixel is packed 8 bits BGR 332*/
+# SCREEN_DEPTH is bits per pixel, only used with MWPF_PALETTE palette mode
+####################################################################
+SCREEN_PIXTYPE           = MWPF_TRUECOLORARGB
+#SCREEN_PIXTYPE           = MWPF_TRUECOLORABGR 
+#SCREEN_PIXTYPE           = MWPF_TRUECOLOR565
+SCREEN_DEPTH             = 8
+
+####################################################################
+# Screen drivers
+# SCREEN=X11           X11
+# SCREEN=FB                    linux framebuffer
+# SCREEN=FBE           framebuffer emulator
+# SCREEN=SDL           SDL v2
+# SCREEN=ALLEGRO4
+# SCREEN=ALLEGRO5
+####################################################################
+
+####################################################################
+# Mouse drivers
+# MOUSE=NOMOUSE                no mouse driver
+# MOUSE=GPMMOUSE       gpm mouse
+# MOUSE=SERMOUSE       serial Microsoft, PC, Logitech, PS/2 mice (/dev/psaux)
+# MOUSE=DEVMICEMOUSE Use Linux /dev/input/mice driver
+# MOUSE=TSLIBMOUSE     Use tslib (/dev/input/event0)
+####################################################################
+
+####################################################################
+# Keyboard drivers
+# KEYBOARD=NOKBD               no keyboard driver
+# KEYBOARD=TTYKBD              tty keyboard
+# KEYBOARD=SCANKBD             scanmode keyboard
+# KEYBOARD=2NDKBD              two keyboards support
+####################################################################
index 935dfbc..86c7a7a 100644 (file)
Binary files a/_template/packages/nanox/microwindows-master.zip and b/_template/packages/nanox/microwindows-master.zip differ
diff --git a/_template/packages/sdl2.0.8/.gitignore b/_template/packages/sdl2.0.8/.gitignore
new file mode 100644 (file)
index 0000000..e360535
--- /dev/null
@@ -0,0 +1,8 @@
+# Ignore everything
+/*
+
+# But not these files...
+!.gitignore
+!SDL2-2.0.8.tar.gz
+!MainActivity.java
+!Makefile
diff --git a/_template/packages/sdl2.0.8/MainActivity.java b/_template/packages/sdl2.0.8/MainActivity.java
new file mode 100644 (file)
index 0000000..0716532
--- /dev/null
@@ -0,0 +1,10 @@
+// Java JNI wrapper to load sdl
+// and execute program
+package com.giri._template;
+import org.libsdl.app.SDLActivity;
+public class MainActivity extends SDLActivity {
+   // execute _template
+   public MainActivity() {
+      super();
+   }
+}
diff --git a/_template/packages/sdl2.0.8/Makefile b/_template/packages/sdl2.0.8/Makefile
new file mode 100644 (file)
index 0000000..2b3c02f
--- /dev/null
@@ -0,0 +1,71 @@
+############################################################################
+# Workfile: Makefile
+# Author: Daniel Giritzer, S1810567004 (daniel@giritzer.eu)
+# Date: 03.12.2018
+# Description: Universal Makefile for Unix based Operating Systems
+############################################################################
+WORKDIR = $(shell pwd)
+
+# Add android ndk toolchain
+export PATH := /usr/lib/android-ndk/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/:$(PATH)
+
+all: unpack windows linux32 linux_arm android_arm
+
+.PHONY: unpack
+unpack:
+       tar xvzf SDL2-2.0.8.tar.gz
+
+.PHONY: windows
+windows:
+       cd $(WORKDIR)/SDL2-2.0.8; \
+       ./configure CFLAGS="-m32 -mwindows" CXXFLAGS="-m32 -mwindows" LDFLAGS="-m32 -static -static-libgcc -static-libstdc++ -lpthread"  --enable-static --host=i686-w64-mingw32 --enable-cygwin; \
+       make clean; \
+       make -j6
+       mkdir -p $(WORKDIR)/../../lib_include/mingw32/SDL2
+       mkdir -p $(WORKDIR)/../../lib/mingw32
+       cp -rf $(WORKDIR)/SDL2-2.0.8/include/*.h $(WORKDIR)/../../lib_include/mingw32/SDL2
+       cp -rf $(WORKDIR)/SDL2-2.0.8/build/.libs/*.a $(WORKDIR)/../../lib/mingw32
+
+.PHONY: linux32
+linux32:
+       cd $(WORKDIR)/SDL2-2.0.8; \
+       ./configure CFLAGS="-m32" CXXFLAGS="-m32" LDFLAGS="-m32 -static-libgcc -static-libstdc++" --enable-static; \
+       make clean; \
+       make -j6
+       mkdir -p $(WORKDIR)/../../lib_include/linux32/SDL2
+       mkdir -p $(WORKDIR)/../../lib/linux32
+       mkdir -p $(WORKDIR)/../../tools
+       cp -rf $(WORKDIR)/SDL2-2.0.8/include/*.h $(WORKDIR)/../../lib_include/linux32/SDL2
+       cp -rf $(WORKDIR)/SDL2-2.0.8/build/.libs/*.a $(WORKDIR)/../../lib/linux32
+
+.PHONY: linux_arm
+linux_arm:
+       cd $(WORKDIR)/SDL2-2.0.8; \
+       ./configure CFLAGS="" CXXFLAGS="" LDFLAGS="-static-libgcc -static-libstdc++" --host=arm-linux-gnueabihf  --enable-static; \
+       make clean; \
+       make -j6
+       mkdir -p $(WORKDIR)/../../lib_include/linux_arm/SDL2
+       mkdir -p $(WORKDIR)/../../lib/linux_arm
+       cp -rf $(WORKDIR)/SDL2-2.0.8/include/*.h $(WORKDIR)/../../lib_include/linux_arm/SDL2
+       cp -rf $(WORKDIR)/SDL2-2.0.8/build/.libs/*.a $(WORKDIR)/../../lib/linux_arm
+
+
+
+.PHONY: android_arm
+android_arm:
+       cd $(WORKDIR)/SDL2-2.0.8; \
+       sed -i -e 's/-Werror=declaration-after-statement//g' ./configure; \
+       ./configure CFLAGS="--sysroot=/usr/lib/android-ndk/platforms/android-23/arch-arm -std=gnu99" CXXFLAGS="--sysroot=/usr/lib/android-ndk/platforms/android-23/arch-arm" LDFLAGS="-static-libgcc -static-libstdc++ --sysroot=/usr/lib/android-ndk/platforms/android-23/arch-arm" --enable-static --host=arm-linux-androideabi; \
+       make clean; \
+       make -j6
+       mkdir -p $(WORKDIR)/../../lib_include/android_arm/SDL2
+       mkdir -p $(WORKDIR)/../../lib/android_arm
+       cp -rf $(WORKDIR)/SDL2-2.0.8/include/*.h $(WORKDIR)/../../lib_include/android_arm/SDL2
+       cp -rf $(WORKDIR)/SDL2-2.0.8/build/.libs/*.a $(WORKDIR)/../../lib/android_arm
+       cp -rf $(WORKDIR)/SDL2-2.0.8/build/.libs/libSDL2-2.0.so.0.8.0 $(WORKDIR)/../../lib/android_arm/libSDL2.so
+       cp -rf $(WORKDIR)/SDL2-2.0.8/android-project/app/src/main/java/org/* $(WORKDIR)/../../lib/android_arm
+       cp -rf $(WORKDIR)/MainActivity.java $(WORKDIR)/../../lib/android_arm/libsdl
+
+.PHONY: clean
+clean:
+       rm -rf $(WORKDIR)/SDL2-2.0.8
diff --git a/_template/packages/sdl2.0.8/SDL2-2.0.8.tar.gz b/_template/packages/sdl2.0.8/SDL2-2.0.8.tar.gz
new file mode 100644 (file)
index 0000000..befc155
Binary files /dev/null and b/_template/packages/sdl2.0.8/SDL2-2.0.8.tar.gz differ
index ae9b9b5..42e205f 100644 (file)
@@ -79,6 +79,8 @@ ANDROID_KEYSTORE_PW=android
 ANDROID_ARCH=arm
 ANDROID_ARCH_VER=armeabi-v7a
 ANDROID_COMPILER_PREFIX=arm-linux-androideabi
+ANDROID_BACKEND=liballegro.so
+ANDROID_BACKEND_JAVA=liballeg
 
 # dependent on values above
 ANDROID_PLATORM=android-$(ANDROID_PLATORM_VERSION)
@@ -431,9 +433,8 @@ before_android_apk:
        test -d $(GENDIR_ANDROID) || mkdir -p $(GENDIR_ANDROID)
        test -d $(CLASSDIR_ANDROID) || mkdir -p $(CLASSDIR_ANDROID)
        test -d $(ANDROID_SRC)/res/mipmap-hdpi || mkdir -p $(ANDROID_SRC)/res/mipmap-hdpi
-       test -d $(ANDROID_SRC)/java/liballeg || mkdir -p $(ANDROID_SRC)/java/liballeg
-       cp -r $(WORKDIR)/../lib/android_arm/liballeg/* $(ANDROID_SRC)/java/liballeg
-       cp $(WORKDIR)/../lib/android_arm/liballegro.so $(ANDROID_SRC)/lib/$(ANDROID_ARCH_VER)/
+       cp -r $(WORKDIR)/../lib/android_arm/$(ANDROID_BACKEND_JAVA) $(ANDROID_SRC)/java
+       cp -f $(WORKDIR)/../lib/android_arm/$(ANDROID_BACKEND) $(ANDROID_SRC)/lib/$(ANDROID_ARCH_VER)/
        cp $(WORKDIR)/appinfo/Icon.png $(ANDROID_SRC)/res/mipmap-hdpi/ic_launcher.png
        $(AAPT) package -f -m -J $(GENDIR_ANDROID) -M $(ANDROID_SRC)/AndroidManifest.xml -S $(ANDROID_SRC)/res -I $(ANDROID_CP)
 
@@ -449,7 +450,7 @@ out_apk:
        $(AAPT) package -f -M $(ANDROID_SRC)/AndroidManifest.xml -S $(ANDROID_SRC)/res -I $(ANDROID_CP) -F $(GENDIR_ANDROID)/$(PROJNAME).apk.unaligned
        cd $(GENDIR_ANDROID) && $(AAPT) add $(GENDIR_ANDROID)/$(PROJNAME).apk.unaligned classes.dex
        cd $(ANDROID_SRC) && $(AAPT) add -v $(GENDIR_ANDROID)/$(PROJNAME).apk.unaligned lib/$(ANDROID_ARCH_VER)/lib$(PROJNAME).so
-       cd $(ANDROID_SRC) && $(AAPT) add -v $(GENDIR_ANDROID)/$(PROJNAME).apk.unaligned lib/$(ANDROID_ARCH_VER)/liballegro.so
+       cd $(ANDROID_SRC) && $(AAPT) add -v $(GENDIR_ANDROID)/$(PROJNAME).apk.unaligned lib/$(ANDROID_ARCH_VER)/$(ANDROID_BACKEND)
 
 # pack found ressources into apk
 $(RESLIST_ANDROID): 
@@ -461,6 +462,7 @@ clean_android_apk:
        rm -rf $(GENDIR_ANDROID)
        rm -rf $(CLASSDIR_ANDROID)
        rm -rf $(ANDROID_SRC)/java/liballeg
+       rm -rf $(ANDROID_SRC)/java/libsdl
        rm -rf $(ANDROID_SRC)/res/mipmap-hdpi
 
 # target to install apk
index bad5b13..1c79915 100644 (file)
@@ -4,7 +4,9 @@
       android:versionCode="1"
       android:versionName="1.1">
   <uses-sdk android:minSdkVersion="22"/>
-  <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
+  <uses-feature android:glEsVersion="0x00020000" />
+  <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
+  <uses-permission android:name="android.permission.INTERNET"/>
   <application
       android:label="_template"
       android:icon="@mipmap/ic_launcher"
         android:name=".MainActivity"
         android:launchMode="singleTask"
         android:screenOrientation="unspecified"
-        android:configChanges="screenLayout|uiMode|orientation|screenSize">
+        android:configChanges="keyboard|keyboardHidden|screenLayout|uiMode|orientation|screenSize">
       <intent-filter>
         <action android:name="android.intent.action.MAIN"/>
         <category android:name="android.intent.category.LAUNCHER"/>
       </intent-filter>
     </activity>
-    <activity android:name="org.liballeg.android.AllegroActivity"/>
   </application>
 </manifest>
\ No newline at end of file
index 15203c5..cf7b916 100644 (file)
@@ -2,5 +2,4 @@
 /*
 
 # But not these files...
-!.gitignore
-!MainActivity.java
\ No newline at end of file
+!.gitignore
\ No newline at end of file
diff --git a/_template/src/android/java/MainActivity.java b/_template/src/android/java/MainActivity.java
deleted file mode 100644 (file)
index dc6f175..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-// Java JNI wrapper to load allegro
-// and execute program
-package com.giri._template;
-import org.liballeg.android.AllegroActivity;
-public class MainActivity extends AllegroActivity {
-
-    // load monolithic allegro so
-    static {
-       System.loadLibrary("allegro");
-    }
-
-   // execute _template
-   public MainActivity() {
-      super("lib_template.so");
-   }
-}