diff --git a/src/runtime/android/Android.mk b/src/runtime/android/Android.mk new file mode 100644 index 000000000..3933ce767 --- /dev/null +++ b/src/runtime/android/Android.mk @@ -0,0 +1,14 @@ +LOCAL_PATH := $(call my-dir) + +include $(CLEAR_VARS) + +jni_c_files := ../java/jpgf.c +pgf_c_files := data.c expr.c graphviz.c lexer.c linearizer.c literals.c parser.c parseval.c pgf.c printer.c reader.c reasoner.c +gu_c_files := assert.c choice.c dump.c exn.c fun.c in.c list.c map.c out.c read.c str.c type.c utf8.c write.c \ +bits.c defs.c enum.c file.c hash.c intern.c log.c mem.c prime.c seq.c string.c ucs.c variant.c yaml.c + +LOCAL_MODULE := jpgf +LOCAL_SRC_FILES := $(addprefix ../c/pgf/, $(pgf_c_files)) $(addprefix ../c/gu/, $(gu_c_files)) +LOCAL_C_INCLUDES := ../c + +include $(BUILD_SHARED_LIBRARY) diff --git a/src/runtime/android/Application.mk b/src/runtime/android/Application.mk new file mode 100644 index 000000000..1c6face0e --- /dev/null +++ b/src/runtime/android/Application.mk @@ -0,0 +1,2 @@ + +APP_CFLAGS := -std=gnu99 diff --git a/src/runtime/c/pgf/reader.c b/src/runtime/c/pgf/reader.c index 36eebee43..051459e4c 100644 --- a/src/runtime/c/pgf/reader.c +++ b/src/runtime/c/pgf/reader.c @@ -2,7 +2,11 @@ #include "expr.h" #include "literals.h" #include "reader.h" + +#ifndef ANDROID #include "jit.h" +#endif + #include #include #include @@ -25,7 +29,9 @@ struct PgfReader { GuPool* opool; GuPool* tmp_pool; GuSymTable* symtab; +#ifndef ANDROID PgfJitState* jit_state; +#endif }; typedef struct PgfReadTagExn PgfReadTagExn; @@ -545,7 +551,9 @@ pgf_read_abscat(PgfReader* rdr, PgfAbstr* abstr, PgfCIdMap* abscats) gu_buf_push(functions, PgfAbsFun*, absfun); } +#ifndef ANDROID pgf_jit_predicate(rdr->jit_state, abscats, abscat, functions); +#endif return abscat; } @@ -1210,12 +1218,16 @@ pgf_new_reader(GuIn* in, GuPool* opool, GuPool* tmp_pool, GuExn* err) rdr->symtab = gu_new_symtable(opool, tmp_pool); rdr->err = err; rdr->in = in; +#ifndef ANDROID rdr->jit_state = pgf_jit_init(tmp_pool, rdr->opool); +#endif return rdr; } void pgf_reader_done(PgfReader* rdr, PgfPGF* pgf) { +#ifndef ANDROID pgf_jit_done(rdr->jit_state, &pgf->abstract); +#endif } diff --git a/src/runtime/java/Makefile b/src/runtime/java/Makefile index 65bb4fe1a..e5849087c 100644 --- a/src/runtime/java/Makefile +++ b/src/runtime/java/Makefile @@ -9,6 +9,9 @@ doc: Test.class: Test.java javac Test.java +libjpgf.jar: org/grammaticalframework/pgf/PGF.class + jar -cf libjpgf.jar org/grammaticalframework/pgf/*.class + org/grammaticalframework/pgf/PGF.class: org/grammaticalframework/pgf/PGF.java javac Test.java