From 303ceb416aafa9e06f328e908ea9da880ceadd05 Mon Sep 17 00:00:00 2001 From: n8fr8 Date: Mon, 22 Jul 2013 13:57:10 -0400 Subject: [PATCH] updates for building --- .classpath | 5 +++-- .gitmodules | 7 +++++-- AndroidManifest.xml | 6 +++--- build.xml | 11 ++++++++++- external/ActionBarSherlock | 1 + external/Makefile | 18 ++++++++++-------- libs/jtorctl.jar | Bin 14733 -> 14736 bytes libs/simple.jar | Bin 199011 -> 199014 bytes project.properties | 2 +- update-ant-build.sh | 6 ++++++ 10 files changed, 39 insertions(+), 17 deletions(-) create mode 160000 external/ActionBarSherlock create mode 100755 update-ant-build.sh diff --git a/.classpath b/.classpath index d2c46be7..61e0502a 100644 --- a/.classpath +++ b/.classpath @@ -1,9 +1,10 @@ - - + + + diff --git a/.gitmodules b/.gitmodules index 2e4434fb..cdcc96c1 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,6 +1,6 @@ [submodule "external/openssl-static"] path = external/openssl-static - url = https://github.com/guardianproject/openssl-android.git + url = https://github.com/guardianproject/android-external-openssl-ndk-static.git [submodule "external/tor"] path = external/tor url = https://git.torproject.org/git/tor.git @@ -15,4 +15,7 @@ url = https://git.torproject.org/git/jtorctl [submodule "external/obfsproxy"] path = external/obfsproxy - url = https://git.torproject.org/obfsproxy.git + url = https://git.torproject.org/pluggable-transports/obfsproxy-legacy.git +[submodule "external/ActionBarSherlock"] + path = external/ActionBarSherlock + url = https://github.com/JakeWharton/ActionBarSherlock.git diff --git a/AndroidManifest.xml b/AndroidManifest.xml index da87f002..f3660e71 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -1,15 +1,15 @@ - + + + + + + + diff --git a/external/ActionBarSherlock b/external/ActionBarSherlock new file mode 160000 index 00000000..c0d437ce --- /dev/null +++ b/external/ActionBarSherlock @@ -0,0 +1 @@ +Subproject commit c0d437ce4c47cb344e5d96414ffbf5f1a85c26d0 diff --git a/external/Makefile b/external/Makefile index 45bdafa8..72da8a1b 100644 --- a/external/Makefile +++ b/external/Makefile @@ -20,9 +20,11 @@ NDK_BASE ?= /usr/local/android-ndk NDK_PLATFORM_LEVEL ?= 8 NDK_TOOLCHAIN_VERSION=4.6 NDK_SYSROOT=$(NDK_BASE)/platforms/android-$(NDK_PLATFORM_LEVEL)/arch-arm -NDK_UNAME=`uname -s | tr '[A-Z]' '[a-z]'` -#NDK_TOOLCHAIN=$(NDK_BASE)/toolchains/arm-linux-androideabi-4.4.3/prebuilt/$(NDK_UNAME)-x86 -NDK_TOOLCHAIN=$(NDK_BASE)/toolchains/arm-linux-androideabi-4.6/prebuilt/$(NDK_UNAME)-x86 +NDK_UNAME:=`uname -s | tr '[A-Z]' '[a-z]'` +NDK_PROCESSOR:=`uname -m` + +#NDK_TOOLCHAIN=$(NDK_BASE)/toolchains/arm-linux-androideabi-4.4.3/prebuilt/$(NDK_UNAME)-$(NDK_PROCESSOR) +NDK_TOOLCHAIN=$(NDK_BASE)/toolchains/arm-linux-androideabi-4.6/prebuilt/$(NDK_UNAME)-$(NDK_PROCESSOR) # to use the real HOST tag, you need the latest libtool files: # http://stackoverflow.com/questions/4594736/configure-does-not-recognize-androideabi @@ -58,25 +60,25 @@ all: assets #------------------------------------------------------------------------------# # openssl-static -openssl-static/obj/local/armeabi/libcrypto.a: +lib/libcrypto.a: cd openssl-static && \ ndk-build -openssl-static/obj/local/armeabi/libssl.a: +lib/libssl.a: cp config.sub openssl-static cp config.guess openssl-static cd openssl-static && \ ndk-build -openssl-static-build-stamp: openssl-static/obj/local/armeabi/libcrypto.a openssl-static/obj/local/armeabi/libssl.a +openssl-static-build-stamp: lib/libcrypto.a lib/libssl.a touch openssl-static-build-stamp openssl-static: openssl-static-build-stamp test -d lib || mkdir lib test -d include || mkdir include test -d include/openssl || mkdir include/openssl - cp openssl-static/obj/local/armeabi/libcrypto.a lib - cp openssl-static/obj/local/armeabi/libssl.a lib + cp openssl-static/obj/local/armeabi/libcrypto.a lib/libcrypto.a + cp openssl-static/obj/local/armeabi/libssl.a lib/libssl.a cp openssl-static/include/openssl/* include/openssl openssl-static-clean: diff --git a/libs/jtorctl.jar b/libs/jtorctl.jar index 6aa755a868943045397844cb9a23613c07fcb923..b6393b907a469c8fa3fe8e235be99b1fbbca7355 100755 GIT binary patch delta 730 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

-`W=)40t`!gj2A^{pZECN_1>xQAIAiYhaU2 z*qr!5NvU$*XygCZ|7zL~$|l3eZf+6yTiqXt^<~c134denjh~cQJSD3f4x!bU4Qln} yztIdSJU`vXYWya(ibrMs=j3t$6e7R!13SK7~F8MzGxSpE;@{@#KB delta 12293 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 vcJp8ZaZ;crR_b@&I