On Wed, Oct 15, 2014 at 09:49:21AM +1100, James Brown wrote:

> Thanks Viktor - that worked!
> 
> I added -lresolv to AUXLIBS:
> 
> make -f Makefile.init makefiles \
>   CCARGS='-arch x86_64 -DUSE_TLS -DUSE_SASL_AUTH
>       -DDEF_SERVER_SASL_TYPE=\"dovecot\"
>       -DDEF_COMMAND_DIR=\"/usr/local/sbin\"
>       -DDEF_CONFIG_DIR=\"/usr/local/etc/postfix\"
>       -DDEF_DAEMON_DIR=\"/usr/local/libexec/postfix\"
>       -DHAS_PCRE -I/usr/local/include
>       -DHAS_MYSQL -I/usr/local/mysql/include' \
>   AUXLIBS='-L/usr/local/lib -lpcre -lssl -lcrypto -L/usr/local/mysql/lib
>       -lmysqlclient -lz -lm -lresolv'

Note two important things about this:

    1. The "-I" include directives are consistent with the "-L" include
       directives, paired in the same order as "-I/some/where/include"
       and "-L/some/where/lib".

    2. There is no chaotic going back and forth with some "-L"
       directives mentioned multiple times in the vain hope that
       some "-l" libraries will use a different search path than
       others.  The "-L" options simply don't work that way.  The
       relative order of "-L" vs. "-l" is immaterial.  You can put
       all the "-L" options before all the "-l" options to keep this
       clear, but it is traditional to introduce a "-L" before the
       first library that needs it.

The above is substantially less chaotic than the original, and
discards useless baggage which has no effect "-DHAS_SSL", "-llber",
...  Keep it simple.

The best way to do that is often to start with no options, and
build up, adding only bare essentials one at a time with care.

Good luck.

-- 
        Viktor.

Reply via email to