>*** Warning: Linking the shared library lib_vault.la against the loadable module
>*** lib_sql.so is not portable!
After googling (for example https://github.com/credentials/silvia/issues/4), looks like it's a well known warning that is safe on Linux.

Even though my workaround works by moving my module folder up in MonetDB-11.23.3/sql/backends/monet5 (so that lib_sql.la get created first before it's used). 
I still don't understand how one would build it directly in monet5 sub-folder, like I showed above for "vaults" example - i.e., added "../../../../sql/backends/monet5/lib_sql" dependency in monet5\vaults\Makefile.ag.

Thank you,
Anton

On Tue, Sep 26, 2017 at 2:00 PM, Anton Kravchenko <kravchenko.anton86@gmail.com> wrote:
I tried to move "vaults" 
from MonetDB-11.23.3/sql/backends/monet5/vaults 
to MonetDB-11.23.3/sql/vaults,
so that "vaults" wouldn't sit in the same directory where lib_sql.la is built.

Indeed it compiled this time, though there is a warning, which I suspect is a serious one:

*** Warning: Linking the shared library lib_vault.la against the loadable module
*** lib_sql.so is not portable!

Anton



On Tue, Sep 26, 2017 at 11:49 AM, Anton Kravchenko <kravchenko.anton86@gmail.com> wrote:
That's exact error after  "../../../../sql/backends/monet5/lib_sql" dependency was added to Makefile.ag in "vaults":

make[9]: Entering directory `/home/SECDEV.LOCAL/akravchenko/MonetDB-Jun2016/MonetDB-11.23.3/BUILD/sql/backends/monet5/vaults'
make[10]: Entering directory `/home/SECDEV.LOCAL/akravchenko/MonetDB-Jun2016/MonetDB-11.23.3/BUILD/sql/backends/monet5/vaults'
/bin/sh ../../../../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I/home/SECDEV.LOCAL/akravchenko/MonetDB-Jun2016/MonetDB-11.23.3/sql/backends/monet5/vaults -I../../../..  -I/home/SECDEV.LOCAL/akravchenko/MonetDB-Jun2016/MonetDB-11.23.3/sql/backends/monet5/vaults -I../../../include -I/home/SECDEV.LOCAL/akravchenko/MonetDB-Jun2016/MonetDB-11.23.3/sql/backends/monet5/vaults/../../../include -I../../../common -I/home/SECDEV.LOCAL/akravchenko/MonetDB-Jun2016/MonetDB-11.23.3/sql/backends/monet5/vaults/../../../common -I../../../storage -I/home/SECDEV.LOCAL/akravchenko/MonetDB-Jun2016/MonetDB-11.23.3/sql/backends/monet5/vaults/../../../storage -I../../../server -I/home/SECDEV.LOCAL/akravchenko/MonetDB-Jun2016/MonetDB-11.23.3/sql/backends/monet5/vaults/../../../server -I.. -I/home/SECDEV.LOCAL/akravchenko/MonetDB-Jun2016/MonetDB-11.23.3/sql/backends/monet5/vaults/.. -I../../../../monetdb5/modules/atoms -I/home/SECDEV.LOCAL/akravchenko/MonetDB-Jun2016/MonetDB-11.23.3/sql/backends/monet5/vaults/../../../../monetdb5/modules/atoms -I../../../../monetdb5/modules/kernel -I/home/SECDEV.LOCAL/akravchenko/MonetDB-Jun2016/MonetDB-11.23.3/sql/backends/monet5/vaults/../../../../monetdb5/modules/kernel -I../../../../monetdb5/mal -I/home/SECDEV.LOCAL/akravchenko/MonetDB-Jun2016/MonetDB-11.23.3/sql/backends/monet5/vaults/../../../../monetdb5/mal -I../../../../monetdb5/modules/mal -I/home/SECDEV.LOCAL/akravchenko/MonetDB-Jun2016/MonetDB-11.23.3/sql/backends/monet5/vaults/../../../../monetdb5/modules/mal -I../../../../monetdb5/optimizer -I/home/SECDEV.LOCAL/akravchenko/MonetDB-Jun2016/MonetDB-11.23.3/sql/backends/monet5/vaults/../../../../monetdb5/optimizer -I../../../../monetdb5/scheduler -I/home/SECDEV.LOCAL/akravchenko/MonetDB-Jun2016/MonetDB-11.23.3/sql/backends/monet5/vaults/../../../../monetdb5/scheduler -I../../../../common/options -I/home/SECDEV.LOCAL/akravchenko/MonetDB-Jun2016/MonetDB-11.23.3/sql/backends/monet5/vaults/../../../../common/options -I../../../../common/stream -I/home/SECDEV.LOCAL/akravchenko/MonetDB-Jun2016/MonetDB-11.23.3/sql/backends/monet5/vaults/../../../../common/stream -I../../../../common/utils -I/home/SECDEV.LOCAL/akravchenko/MonetDB-Jun2016/MonetDB-11.23.3/sql/backends/monet5/vaults/../../../../common/utils -I../../../../gdk -I/home/SECDEV.LOCAL/akravchenko/MonetDB-Jun2016/MonetDB-11.23.3/sql/backends/monet5/vaults/../../../../gdk   -DLIBVAULT  -g -O2   -c -o lib_vault_la-vault.lo `test -f 'vault.c' || echo '/home/SECDEV.LOCAL/akravchenko/MonetDB-Jun2016/MonetDB-11.23.3/sql/backends/monet5/vaults/'`vault.c
make[10]: *** No rule to make target `../../../../sql/backends/monet5/lib_sql.la', needed by `lib_vault.la'.  Stop.
make[10]: *** Waiting for unfinished jobs....
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I/home/SECDEV.LOCAL/akravchenko/MonetDB-Jun2016/MonetDB-11.23.3/sql/backends/monet5/vaults -I../../../.. -I/home/SECDEV.LOCAL/akravchenko/MonetDB-Jun2016/MonetDB-11.23.3/sql/backends/monet5/vaults -I../../../include -I/home/SECDEV.LOCAL/akravchenko/MonetDB-Jun2016/MonetDB-11.23.3/sql/backends/monet5/vaults/../../../include -I../../../common -I/home/SECDEV.LOCAL/akravchenko/MonetDB-Jun2016/MonetDB-11.23.3/sql/backends/monet5/vaults/../../../common -I../../../storage -I/home/SECDEV.LOCAL/akravchenko/MonetDB-Jun2016/MonetDB-11.23.3/sql/backends/monet5/vaults/../../../storage -I../../../server -I/home/SECDEV.LOCAL/akravchenko/MonetDB-Jun2016/MonetDB-11.23.3/sql/backends/monet5/vaults/../../../server -I.. -I/home/SECDEV.LOCAL/akravchenko/MonetDB-Jun2016/MonetDB-11.23.3/sql/backends/monet5/vaults/.. -I../../../../monetdb5/modules/atoms -I/home/SECDEV.LOCAL/akravchenko/MonetDB-Jun2016/MonetDB-11.23.3/sql/backends/monet5/vaults/../../../../monetdb5/modules/atoms -I../../../../monetdb5/modules/kernel -I/home/SECDEV.LOCAL/akravchenko/MonetDB-Jun2016/MonetDB-11.23.3/sql/backends/monet5/vaults/../../../../monetdb5/modules/kernel -I../../../../monetdb5/mal -I/home/SECDEV.LOCAL/akravchenko/MonetDB-Jun2016/MonetDB-11.23.3/sql/backends/monet5/vaults/../../../../monetdb5/mal -I../../../../monetdb5/modules/mal -I/home/SECDEV.LOCAL/akravchenko/MonetDB-Jun2016/MonetDB-11.23.3/sql/backends/monet5/vaults/../../../../monetdb5/modules/mal -I../../../../monetdb5/optimizer -I/home/SECDEV.LOCAL/akravchenko/MonetDB-Jun2016/MonetDB-11.23.3/sql/backends/monet5/vaults/../../../../monetdb5/optimizer -I../../../../monetdb5/scheduler -I/home/SECDEV.LOCAL/akravchenko/MonetDB-Jun2016/MonetDB-11.23.3/sql/backends/monet5/vaults/../../../../monetdb5/scheduler -I../../../../common/options -I/home/SECDEV.LOCAL/akravchenko/MonetDB-Jun2016/MonetDB-11.23.3/sql/backends/monet5/vaults/../../../../common/options -I../../../../common/stream -I/home/SECDEV.LOCAL/akravchenko/MonetDB-Jun2016/MonetDB-11.23.3/sql/backends/monet5/vaults/../../../../common/stream -I../../../../common/utils -I/home/SECDEV.LOCAL/akravchenko/MonetDB-Jun2016/MonetDB-11.23.3/sql/backends/monet5/vaults/../../../../common/utils -I../../../../gdk -I/home/SECDEV.LOCAL/akravchenko/MonetDB-Jun2016/MonetDB-11.23.3/sql/backends/monet5/vaults/../../../../gdk -DLIBVAULT -g -O2 -c /home/SECDEV.LOCAL/akravchenko/MonetDB-Jun2016/MonetDB-11.23.3/sql/backends/monet5/vaults/vault.c  -fPIC -DPIC -o .libs/lib_vault_la-vault.o
make[10]: Leaving directory `/home/SECDEV.LOCAL/akravchenko/MonetDB-Jun2016/MonetDB-11.23.3/BUILD/sql/backends/monet5/vaults'
make[9]: *** [all-recursive] Error 1
make[9]: Leaving directory `/home/SECDEV.LOCAL/akravchenko/MonetDB-Jun2016/MonetDB-11.23.3/BUILD/sql/backends/monet5/vaults'
make[8]: *** [all] Error 2
make[8]: Leaving directory `/home/SECDEV.LOCAL/akravchenko/MonetDB-Jun2016/MonetDB-11.23.3/BUILD/sql/backends/monet5/vaults'
make[7]: *** [all-recursive] Error 1
make[7]: Leaving directory `/home/SECDEV.LOCAL/akravchenko/MonetDB-Jun2016/MonetDB-11.23.3/BUILD/sql/backends/monet5'
make[6]: *** [all] Error 2
make[6]: Leaving directory `/home/SECDEV.LOCAL/akravchenko/MonetDB-Jun2016/MonetDB-11.23.3/BUILD/sql/backends/monet5'
make[5]: *** [all-recursive] Error 1
make[5]: Leaving directory `/home/SECDEV.LOCAL/akravchenko/MonetDB-Jun2016/MonetDB-11.23.3/BUILD/sql/backends'
make[4]: *** [all] Error 2
make[4]: Leaving directory `/home/SECDEV.LOCAL/akravchenko/MonetDB-Jun2016/MonetDB-11.23.3/BUILD/sql/backends'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/home/SECDEV.LOCAL/akravchenko/MonetDB-Jun2016/MonetDB-11.23.3/BUILD/sql'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/home/SECDEV.LOCAL/akravchenko/MonetDB-Jun2016/MonetDB-11.23.3/BUILD/sql'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/SECDEV.LOCAL/akravchenko/MonetDB-Jun2016/MonetDB-11.23.3/BUILD'
make: *** [all] Error 2

Anton

On Tue, Sep 26, 2017 at 9:15 AM, Anton Kravchenko <kravchenko.anton86@gmail.com> wrote:
Hi there,

I will try to map my issue to something that you are familiar with.
For example "MonetDB-11.23.3/sql/backends/monet5/vaults" module.

1) It has Makefile.ag which has (among other lines):
lib__vault = {
        MODULE
        DIR = libdir/monetdb5
        SOURCES = vault.c
        LIBS = ../../../../monetdb5/tools/libmonetdb5 \
               ../../../../gdk/libbat $(curl_LIBS)
}
And that means that "libmonetdb.la" has to be created before "vaults" is built.

2) Let's say I have added "../../../../sql/backends/monet5/lib_sql" dependency 
lib__vault = {
        MODULE
        DIR = libdir/monetdb5
        SOURCES = vault.c
        LIBS = ../../../../monetdb5/tools/libmonetdb5 \
                     ../../../../sql/backends/monet5/lib_sql \
               ../../../../gdk/libbat $(curl_LIBS)
}

As you can see "vaults" is leaving inside "MonetDB-11.23.3/sql/backends/monet5" directory. 

3) Now my question is: How can one propagate into MonetDB-11.23.3/sql/backends/monet5/Makefile.am that "lib_sql.la" has to be created before "vaults" is built?

p.s. On Windows, there is MonetDB-11.23.3/sql/backends/monet5/Makefile.msc used (instead Makefile.am). And I would just change order in "all-recursive all-msc" to "all-msc all-recursive":
# build-all: $(BUILT_SOURCES) all-recursive all-msc
build-all: $(BUILT_SOURCES) all-msc all-recursive

Thank you,
Anton