Hello community,
apparently my question was too hasty.
Since I did not receive an hint, I sticked to just include the
library from the parent file.
Nonetheless, for the sake of completeness, here are two snippets I
used to convert the $(GSC) call:
```
# single loadable file..
#$(GSC) -c -o bin/ts-java-binding.c
lib/lang/java/ts-java-binding.scm
#$(GSC) -link -flat -o bin/ts-java-binding.o1.c
bin/ts-java-binding.c
#$(GSC) -cc-options "-D___DYNAMIC" -obj bin/ts-java-binding.c
bin/ts-java-binding.o1.c
#gcc -shared bin/ts-java-binding.o bin/ts-java-binding.o1.o -o
bin/ts-java-binding.o1 -ltree-sitter -ltree-sitter-java
# working loadable lib:
#$(GSC) -c -o bin/common.c lib/lang/common.scm
#$(GSC) -c -o bin/ts-java-binding.c
lib/lang/java/ts-java-binding.scm
#$(GSC) -link -flat -o bin/ts-java-binding.o1.c bin/common.c
bin/ts-java-binding.c
#$(GSC) -cc-options "-D___DYNAMIC" -obj bin/common.c
bin/ts-java-binding.c bin/ts-java-binding.o1.c
#gcc -shared bin/common.o bin/ts-java-binding.o
bin/ts-java-binding.o1.o -o bin/ts-java-binding.o1 -ltree-sitter
-ltree-sitter-java
```
The latter did not link the missing pieces into the loadable file.
Since avoiding an explicit call to a C-compiler _could_ improve
portability, I sticked two my workaround.
Obviously I have no idea how to compile/link and build anything.
So touch this with care.
Sincerly
Thomas Hage <thomas.hage(a)live.de> writes:
> Hello community,
>
> I want to declare procedures in a file `a`, which can be reused
> by
> loadable libraries.
> If I understood correctly, I need to -flat -link the new file
> `a` and
> link this together, but I don't grasp the steps.
>
> This produces my loadable library, which is working fine.
> `gsc -ld-options "-ltree-sitter -ltree-sitter-java" -o
> bin/ts-java-binding.o1 lib/lang/java/ts-java-binding.scm`
>
> But I want to access methods from file `a`, which lies in the
> parent
> directory.
> How should I assemble the new loadable library?
>
> Thanks in advance..
>
> Thomas