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 > firstname.lastname@example.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 _______________________________________________ Kamailio (SER) - Development Mailing List email@example.com https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-dev