2 # Common Makefile pieces for building Java / Android apps.
6 # BOOTSTRAPDIR needs to be set to this directory before starting this
9 # Probably would be best to just stop fooling around with the possibilities to
10 # set various stuff with the -env command line parameters (and environment
11 # variables?) and in a plethora of rc files, and hardcode construction of
12 # *all* required pathnames based on the app installation location for Android
13 # (and iOS), etc. We don't really win anything by having so many layers of
14 # configurability on platforms like Android and iOS where apps based on LO
15 # code are very much self-contained pre-packaged thingies.
17 SODEST=jniLibs/$(ANDROID_APP_ABI)
18 OBJLOCAL=obj/local/$(ANDROID_APP_ABI)
25 echo sdk.dir=$(ANDROID_SDK_HOME) >local.properties
28 # Build / link the single .so for this app
31 ALL_STATIC_LIBS := $(shell $(SRCDIR)/bin/lo-all-static-libs)
40 $(addprefix -l,$(strip \
43 -Wl,--no-whole-archive
46 $(OBJLOCAL)/liblo-native-code.so : native-code.cxx $(ALL_STATIC_LIBS)
49 $(CXX) -Wl,--build-id=sha1 -Wl,--gc-sections -Wl,--version-script=../Bootstrap/version.map -Wl,--no-keep-files-mapped -Wl,--no-undefined -DANDROID -DDISABLE_DYNLOADING -shared -o $(OBJLOCAL)/liblo-native-code.so -I$(BUILDDIR)/config_host -I$(SRCDIR)/include native-code.cxx -L$(INSTDIR)/$(LIBO_LIB_FOLDER) $(WHOLELIBS) $(LIBS) -lgnustl_static -lGLESv2 -landroid -ljnigraphics -llog -lz
51 $(SODEST)/liblo-native-code.so : $(OBJLOCAL)/liblo-native-code.so
53 $(STRIP) -o $(SODEST)/liblo-native-code.so $(OBJLOCAL)/liblo-native-code.so
54 #to keep some symbols, eg.: $(STRIP) -o $(SODEST)/liblo-native-code.so $(OBJLOCAL)/liblo-native-code.so -w -K 'Java*'
56 link-so: $(SODEST)/liblo-native-code.so
58 # If you reinstall an app several times *on the emulator*, even if you
59 # uninstall it between, disk space seems to leak that won't get recycled until
60 # you stop and start... No idea if this holds for a device, too. (And you
61 # can't "stop" a device anyway.)
64 $(ANDROID_SDK_HOME)/platform-tools/adb shell stop && $(ANDROID_SDK_HOME)/platform-tools/adb shell start && sleep 10
66 # build-host specific stuff (build paths and the like) to keep build.gradle static
67 liboSettings.gradle: $(BUILDDIR)/config_build.mk $(BUILDDIR)/config_host.mk
70 echo "// created by Makefile.shared - your changes will be overridden" \
72 && echo " liboSrcRoot = '$(SRC_ROOT)'" \
73 && echo " liboWorkdir = '$(WORKDIR)'" \
74 && echo " liboInstdir = '$(INSTDIR)'" \
75 && echo " liboEtcFolder = '$(LIBO_ETC_FOLDER)'" \
76 && echo " liboUreMiscFolder = '$(LIBO_URE_MISC_FOLDER)'" \
77 && echo " liboSharedResFolder = '$(LIBO_SHARE_RESOURCE_FOLDER)'" \
78 && echo " liboUREJavaFolder = '$(LIBO_URE_SHARE_JAVA_FOLDER)'" \
79 && echo " liboShareJavaFolder = '$(LIBO_SHARE_JAVA_FOLDER)'" \
80 && echo " liboExampleDocument = '$(if $(exampleDocument),$(exampleDocument),$(SRC_ROOT)/android/default-document/example.odt)'" \
81 && echo " liboVersionMajor = '$(LIBO_VERSION_MAJOR)'" \
82 && echo " liboVersionMinor = '$(LIBO_VERSION_MINOR)'" \
83 && echo " liboGitFullCommit = '$(shell cd $(SRCDIR) && git log -1 --format=%H)'" \
84 && echo " liboNdkGdbserver = '$(ANDROID_NDK_GDBSERVER)'" \
85 && echo " liboAndroidAppAbi = '$(ANDROID_APP_ABI)'" \
87 && echo "android.defaultConfig {" \
88 && echo " applicationId '$(ANDROID_PACKAGE_NAME)'" \
89 && echo " versionCode project.hasProperty('cmdVersionCode') ? cmdVersionCode.toInteger() : $(if $(versionCode),$(versionCode),1)" \
90 && echo " versionName '$(LIBO_VERSION_MAJOR).$(LIBO_VERSION_MINOR).$(LIBO_VERSION_MICRO).$(LIBO_VERSION_PATCH)$(LIBO_VERSION_SUFFIX)$(LIBO_VERSION_SUFFIX_SUFFIX)/$(shell cd $(SRCDIR) && git log -1 --format=%h)/$(OOO_VENDOR)'" \