REFACTOR : Incremental changes to NDK builds

This commit is contained in:
Aaron Culliney 2015-02-18 16:18:38 -08:00
parent 0d7e81c7d4
commit 43fa9c9357
6 changed files with 97 additions and 44 deletions

View File

@ -10,9 +10,9 @@ include $(COMMON_SOURCES_MK)
# -----------------------------------------------------------------------------
# Android build config
LOCAL_MODULE := apple2ix
LOCAL_MODULE := libapple2ix
LOCAL_SRC_FILES := jnihooks.c
LOCAL_CFLAGS := $(APPLE2_BASE_CFLAGS) -DHEADLESS=0 -DVIDEO_OPENGL=1 -DDEBUGGER=0
LOCAL_CFLAGS := $(APPLE2_BASE_CFLAGS) -DHEADLESS=0
LOCAL_LDLIBS := -llog -landroid -lGLESv2 -lz
# Add assembly files first ... mostly for the benefit of the ARM assembler ...

View File

@ -1,9 +1,43 @@
#!/bin/sh
package_id="org.deadc0de.apple2"
apple2_src_path=../../src
glue_srcs="$apple2_src_path/disk.c $apple2_src_path/misc.c $apple2_src_path/display.c $apple2_src_path/vm.c $apple2_src_path/cpu-supp.c"
do_load=0
do_debug=0
usage() {
echo "$0 [--load|--debug]"
exit 0
}
while test "x$1" != "x"; do
case "$1" in
"--debug")
do_load=1
do_debug=1
;;
"--load")
do_load=1
do_debug=0
;;
"-h")
usage
;;
"--help")
usage
;;
esac
shift
done
set -x
apple2_src_path=../../src
glue_srcs="$apple2_src_path/disk.c $apple2_src_path/misc.c $apple2_src_path/display.c $apple2_src_path/vm.c $apple2_src_path/cpu-supp.c"
/bin/rm Android.mk
if test "$(basename $0)" = "clean" ; then
/bin/rm $apple2_src_path/rom.c
@ -11,26 +45,17 @@ if test "$(basename $0)" = "clean" ; then
/bin/rm $apple2_src_path/x86/glue.S
/bin/rm $apple2_src_path/arm/glue.S
ln -s apple2ix.mk Android.mk
ndk-build -f apple2ix.mk clean
/bin/rm Android.mk
# considered dangerous
/bin/rm -rf ../bin
/bin/rm -rf ../libs
/bin/rm -rf ../gen
/bin/rm -rf ../obj
ln -s testcpu.mk Android.mk
ndk-build -f testcpu.mk clean
/bin/rm Android.mk
ln -s testvm.mk Android.mk
ndk-build -f testvm.mk clean
/bin/rm Android.mk
ln -s testdisplay.mk Android.mk
ndk-build -f testdisplay.mk clean
/bin/rm Android.mk
ln -s testdisk.mk Android.mk
ndk-build -f testdisk.m clean
/bin/rm Android.mk
exit 0
fi
if test "$(basename $0)" = "uninstall" ; then
adb uninstall $package_id
exit 0
fi
@ -52,31 +77,28 @@ $apple2_src_path/arm/genglue $glue_srcs > $apple2_src_path/arm/glue.S
if test "$(basename $0)" = "testcpu" ; then
ln -s testcpu.mk Android.mk
ndk-build V=1 NDK_DEBUG=1 && ant -f ../build.xml debug
elif test "$(basename $0)" = "testvm" ; then
ln -s testvm.mk Android.mk
ndk-build V=1 NDK_DEBUG=1 && ant -f ../build.xml debug
elif test "$(basename $0)" = "testdisplay" ; then
ln -s testdisplay.mk Android.mk
ndk-build V=1 NDK_DEBUG=1 && ant -f ../build.xml debug
elif test "$(basename $0)" = "testdisk" ; then
ln -s testdisk.mk Android.mk
ndk-build V=1 NDK_DEBUG=1 && ant -f ../build.xml debug
else
ln -s apple2ix.mk Android.mk
ndk-build V=1 NDK_DEBUG=1 && ant -f ../build.xml debug
fi
if test "$(basename $0)" = "run" ; then
ant -f ../build.xml install && \
adb shell am start -a android.intent.action.MAIN -n org.deadc0de.apple2/.Apple2Activity
ndk-build V=1 NDK_DEBUG=1 && \
ant -f ../build.xml debug
if test "x$do_load" = "x1" ; then
ant -f ../build.xml debug install
fi
if test "$(basename $0)" = "debug" ; then
echo "TODO FIXME ..."
if test "x$do_debug" = "x1" ; then
( cd .. && ndk-gdb.py --force --start )
elif test "x$do_load" = "x1" ; then
adb shell am start -a android.intent.action.MAIN -n $package_id/.Apple2Activity
fi
/bin/rm Android.mk
set +x

View File

@ -1,5 +1,5 @@
/*
* Apple // emulator for *nix
* Apple // emulator for *nix
*
* This software package is subject to the GNU General Public License
* version 2 or later (your choice) as published by the Free Software
@ -27,6 +27,37 @@ int main(int argc, char **argv) {
void Java_org_deadc0de_apple2_Apple2Activity_nativeOnCreate(JNIEnv *env, jobject obj) {
LOG("%s", "native onCreate...");
#if !TESTING
// TODO ...
#else
char *local_argv[] = {
"-f",
NULL
};
int local_argc = 0;
for (char **p = &local_argv[0]; *p != NULL; p++) {
++local_argc;
}
#if defined(TEST_CPU)
extern int test_cpu(int, char *[]);
test_cpu(local_argc, local_argv);
#elif defined(TEST_VM)
extern int test_vm(int, char *[]);
test_vm(local_argc, local_argv);
#elif defined(TEST_DISPLAY)
extern int test_display(int, char *[]);
test_display(local_argc, local_argv);
#elif defined(TEST_DISK)
extern int test_disk(int, char *[]);
test_disk(local_argc, local_argv);
#else
# error "OOPS, no tests specified"
#endif
exit(0);
#endif
}
void Java_org_deadc0de_apple2_Apple2Activity_nativeOnResume(JNIEnv *env, jobject obj) {

View File

@ -24,12 +24,12 @@ APPLE2_AUDIO_SRC = \
APPLE2_META_SRC = \
$(APPLE2_SRC_PATH)/meta/debug.c $(APPLE2_SRC_PATH)/meta/debugger.c $(APPLE2_SRC_PATH)/meta/opcodes.c \
$(APPLE2_SRC_PATH)/test/sha.c
$(APPLE2_SRC_PATH)/test/sha1.c
APPLE2_MAIN_SRC = \
$(APPLE2_SRC_PATH)/font.c $(APPLE2_SRC_PATH)/rom.c $(APPLE2_SRC_PATH)/misc.c $(APPLE2_SRC_PATH)/display.c $(APPLE2_SRC_PATH)/vm.c \
$(APPLE2_SRC_PATH)/timing.c $(APPLE2_SRC_PATH)/zlib-helpers.c $(APPLE2_SRC_PATH)/joystick.c $(APPLE2_SRC_PATH)/keys.c \
$(APPLE2_SRC_PATH)/disk.c $(APPLE2_SRC_PATH)/cpu-supp.c
APPLE2_BASE_CFLAGS := -DAPPLE2IX=1 -DPACKAGE_NAME="\"$(PACKAGE_NAME)\"" -DCONFIG_DATADIR="\"/data/data/$(PACKAGE_IDENTIFIER)\"" -std=gnu11 -I$(APPLE2_SRC_PATH)
APPLE2_BASE_CFLAGS := -DAPPLE2IX=1 -DVIDEO_OPENGL=1 -DDEBUGGER=1 -DPACKAGE_NAME="\"$(PACKAGE_NAME)\"" -DCONFIG_DATADIR="\"/data/data/$(PACKAGE_IDENTIFIER)\"" -std=gnu11 -I$(APPLE2_SRC_PATH)

View File

@ -4,15 +4,15 @@ include $(CLEAR_VARS)
PACKAGE_IDENTIFIER := "org.deadc0de.apple2"
PACKAGE_NAME := "apple2ix"
COMMON_SOURCES_MK := sources.mk
COMMON_SOURCES_MK := $(LOCAL_PATH)/sources.mk
include $(COMMON_SOURCES_MK)
# -----------------------------------------------------------------------------
# Android build config
LOCAL_MODULE := apple2ix
LOCAL_SRC_FILES := $(APPLE2_SRC_PATH)/test/testcommon.c $(APPLE2_SRC_PATH)/test/testcpu.c
LOCAL_CFLAGS := $(APPLE2_BASE_CFLAGS) -DHEADLESS=1 -DDEBUGGER=1
LOCAL_MODULE := libapple2ix
LOCAL_SRC_FILES := jnihooks.c $(APPLE2_SRC_PATH)/test/testcommon.c $(APPLE2_SRC_PATH)/test/testcpu.c
LOCAL_CFLAGS := $(APPLE2_BASE_CFLAGS) -DTEST_CPU -DTESTING=1 -DHEADLESS=1
LOCAL_LDLIBS := -llog -landroid -lGLESv2 -lz
# Add assembly files first ... mostly for the benefit of the ARM assembler ...
@ -22,11 +22,11 @@ else
LOCAL_SRC_FILES += $(APPLE2_ARM_SRC)
endif
LOCAL_SRC_FILES += $(APPLE2_MAIN_SRC) $(APPLE2_META_SRC)
LOCAL_SRC_FILES += $(APPLE2_MAIN_SRC) $(APPLE2_META_SRC) $(APPLE2_VIDEO_SRC)
# Build a shared library and let Java/Dalvik drive
#include $(BUILD_SHARED_LIBRARY)
include $(BUILD_SHARED_LIBRARY)
# --OR-- Build an executable so native can drive this show
include $(BUILD_EXECUTABLE)
#include $(BUILD_EXECUTABLE)