[sr-dev] plan for finding dependencies?

Daniel-Constantin Mierla miconda at gmail.com
Tue Mar 24 08:52:07 CET 2020


Hello,

I do not remember who worked on the NetBSD building part in the past, it
was no one that did it recently. You can propose changes to fit NetBSD
best practices and they can be merged.

Cheers,
Daniel

On 24.03.20 01:54, Greg Troxel wrote:
> [I've been working through making kamailio build on NetBSD -- thanks for
> merging my recent PR with two small fixes.]
>
> In src/Makefile.defs, there is a setting of LOCALBASE, which is
> basically a case statement by OS.  A few examples:
>
> Linux		/usr/local	presuambly the tradition /usr/local per autucoonf
> FreeBSD		/usr/local	hijacked by ports system - not traditional /usr/local
> NetBSD	        /usr/pkg	pkgsrc puts things here (local is still local)
>
> There is a need for two separate prefixes when building something like
> this:
>
>   where the software being built should be installed: basically like
>   --prefix=/foo in autoconf
>
>   where things that the software depends on should be found, sort of
>   what autoconf would use for --with-bar=/baz, so that /baz/include is
>   added to CPPFLAGS and "-L/baz/lib -R/baz/lib" to LDFLAGS.
>
> I needed to add the C_INCLUDES as
>
>   ifeq ($(OS), netbsd)
>           C_INCLUDES+= -I$(LOCALBASE)/include
>
> since otherwise a libxml2 header is not found (and with the above it
> builds fine):
>
>   gcc -fPIC -DPIC -g -funroll-loops -Wcast-align -m64 -minline-all-stringops -falign-loops -ftree-vectorize -fno-strict-overflow -mtune=generic -Wall    -DNAME='"kamailio"' -DVERSION='"5.4.0-dev3"' -DARCH='"x86_64"' -DOS='netbsd_' -DOS_QUOTED='"netbsd"' -DCOMPILER='"gcc 5.5.0"' -D__CPU_x86_64 -D__OS_netbsd -DVERSIONVAL=5004000 -DCFG_DIR='"/usr/pkg/etc/kamailio/"' -DSHARE_DIR='"/usr/pkg/share/kamailio/"' -DRUN_DIR='"/var/run/kamailio/"' -DPKG_MALLOC -DSHM_MMAP -DDNS_IP_HACK -DUSE_MCAST -DUSE_TCP -DDISABLE_NAGLE -DHAVE_RESOLV_RES -DUSE_DNS_CACHE -DUSE_DNS_FAILOVER -DUSE_DST_BLACKLIST -DUSE_NAPTR -DWITH_XAVP -DMEM_JOIN_FREE -DF_MALLOC -DQ_MALLOC -DTLSF_MALLOC -DDBG_SR_MEMORY -DUSE_TLS -DTLS_HOOKS -DUSE_CORE_STATS -DSTATISTICS -DMALLOC_STATS -DUSE_SCTP -DFAST_LOCK -DADAPTIVE_WAIT -DADAPTIVE_WAIT_LOOPS=1024 -DCC_GCC_LIKE_ASM -DHAVE_SOCKADDR_SA_LEN -DHAVE_GETHOSTBYNAME2 -DHAVE_MSGHDR_MSG_CONTROL -DHAVE_CONNECT_ECONNRESET_BUG -DHAVE_TIMEGM -DHAVE_SELECT  -I/usr/pkg/include/libxml2 -I/usr/include -DMOD_NAME='"ims_registrar_pcscf"' -c notify.c -o notify.o -MMD -MP
>   notify.c:38:36: fatal error: libxml2/libxml/globals.h: No such file or directory
>
> Of course, on Linux this issue is usually avoided because everything is
> installed with --prefix=/usr which is in te default search path.
>
> So my questions are:
>
>   Is LOCALBASE supposed to be where kamailio is built into?
>   (If so, then /usr/pkg seems like a wrong default on NetBSD, following
>   the autoconf /usr/local norm, even though pkgsrc builds would pass in
>   /usr/pkg.)
>
>   Or is it where dependencies are?
>   (If so, why isn't LOCALBASE/include put in cflags?)
>
>   If dependencies are supposed to be someplace else, what's the
>   mechanism to look for them?  C_INCLUDES is set to empty, so I can't
>   pass that in.  Shouldn't the plan be explained in INSTALL (and sorry
>   if I missed it)?
>
>
>
> Even a very brief clue would be appreciated, so I can align my changes
> with the overall intent.
>
> Thanks,
> Greg
>
> _______________________________________________
> Kamailio (SER) - Development Mailing List
> sr-dev at lists.kamailio.org
> https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-dev

-- 
Daniel-Constantin Mierla -- www.asipto.com
www.twitter.com/miconda -- www.linkedin.com/in/miconda





More information about the sr-dev mailing list