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

Reply via email to