Depending of the platform (especially OS X and Linux) we have various positive and negative experiences using either static libraries or dynamic one… ((-; For example right now FaustLive (which used libfaust) has to be linked with the dynamic libfaust library. But we produce OS X faustgen~ version (also using libfaust) with the static version.
So the best is just to try... Stéphane > Le 17 juin 2019 à 20:43, Justin Giannone <[email protected]> a écrit : > > I've made some progress and have gotten LLVM static libraries built using > Android NDK. My scripts with instructions can be found here : > https://github.com/Jman420/llvm_for_android > > Unfortunately I haven't been able to get LLVM to compile as a shared library > though. I'm wondering if that is even necessary though since libfaust should > still be able to link against them. > > On Thu, Jun 13, 2019 at 9:33 AM <[email protected]> wrote: > Search for cross-compile LLVM for Android, like for instance: > https://gist.github.com/syoyo/9acc46554723db14d3a5 (although a but old..) > > Stéphane > > > Le 13 juin 2019 à 15:30, Justin Giannone <[email protected]> a écrit : > > > > Hey Stéphane, > > > > Yeah... no responses coming in on the LLVM mailing list. I'll likely try > > to rephrase my question and bump my post over there to see if I can get any > > support. > > > > Thanks for all your feedback! Glad to hear I've been going down the right > > path so far since I've been trying to use the Android NDK chains to compile > > LLVM for Android. > > > > I had a thought last night that it may be that LLVM is trying to compile > > some host executables that it wants to leverage in order to cross-compile > > the target binaries... obviously that wouldn't work using the NDK chains, > > but I think there are Build Options to specify paths to the host > > executables. > > > > On Thu, Jun 13, 2019 at 2:36 AM Stéphane Letz <[email protected]> wrote: > > Hi Justin, > > > > I’ve seen your question about compilation of LLVM on Android on the LLVM > > mailing list, with basically… 0 answer right !? ))-; > > > > The LLVM compilation chain is used in the LLVM backend (see the code here > > https://github.com/grame-cncm/faust/tree/master-dev/compiler/generator/llvm). > > Basically the Faust internal FIR (Faust Imperative Representation) is > > traduced in LLVM IR, then the LLVM JIT component is used to compile LLVM IR > > to the actual machine code for the target processor. So only a « subpart » > > of the complete LLVM compilation chain is actually needed. The front-end > > (which is used to go from source language like C/C++/Swift to LLVM IR) is > > not needed in our case since the LLVM IR is directly generated. > > > > Basically what you need is : > > > > - cross-compile the LLVM compilation chain for Android (the same way other > > C/C++ libraries are compiled with the NDK chain to target Android devices) > > > > - compile libfaust with the LLVM backend (using the « make developer » > > target at the upper level in the Faust directory). This should end u > > linking wth the LLVM libraries that would have been compiled in the first > > step. > > > > - look at the libfaust API defined in the public llvm-dsp.h header (see > > https://github.com/grame-cncm/faust/blob/master-dev/architecture/faust/dsp/llvm-dsp.h) > > > > - test some of the simple examples that use libfaust API (see > > https://github.com/grame-cncm/faust/tree/master-dev/tests/llvm-tests) > > > > Stéphane > > > > > > > Le 12 juin 2019 à 22:10, Justin Giannone <[email protected]> a > > > écrit : > > > > > > Hey Guys, > > > > > > I'm trying to compile libfaust in order to use the JIT Compiler in a Java > > > & C++ Android App. Specifically having a Frontend App written in Java > > > which the User leverages in order to tune a Backend AudioFlinger Module > > > written in C++. The Backend Module is where the audio processing will > > > take place, although some processing may take place in the Frontend to > > > provide feedback to the User as well. > > > > > > I'm trying to understand how I will need to include LLVM for libfaust to > > > function. Here are the questions I've come up with : > > > - Does libfaust expect a full compiled installation of LLVM to be > > > present (meaning shared libs, headers, executables, etc)? Or just a > > > subset of those files? I expect that it just needs necessary libs since > > > the JIT Compiler is all in-memory. > > > - Should I use Android NDK Toolchains to compile LLVM for Android > > > Architectures? Since Android NDK uses LLVM to compile Android Apps I'm > > > not sure that it makes sense to use it to try to compile LLVM to run in > > > Android. > > > > > > Currently the issue that I run into when trying to use the Android NDK to > > > build LLVM is that cmake tries to compile and execute a sample app, but > > > since my Dev Machine is Windows the sample app can't run. > > > _______________________________________________ > > > Faudiostream-devel mailing list > > > [email protected] > > > https://lists.sourceforge.net/lists/listinfo/faudiostream-devel > > > _______________________________________________ Faudiostream-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/faudiostream-devel
