[olsr-dev] Compiling on NetBSD

Andreas Tønnesen (spam-protected)
Sun Dec 12 18:58:18 CET 2004


Thanks Stephan!
That should make olsrd available on 40-50 more architectures I guess :-)
The code is now in CVS.

- Andreas

Stephan Maka wrote:
> Dear OLSR Developers,
> 
> I found it very nice to finally have OLSR on FreeBSD. Due to very small
> differences between FreeBSD and NetBSD, I did a patch for compiling the
> olsrd for NetBSD. It's very nice to have OLSR on my ancient NetBSD
> laptop and NetBSD support would open OLSR to a much wider range of
> architectures. ;-)
> 
> Because I have not such a lot of Wifi-enabled machines, testing by me
> hasn't been too excessive.
> 
> By the way, I would love to see IPv6 support for BSD hosts. We have our
> "standard" (WLAN4Workgroups) for a v6 address scheme to quickly
> establish a MANET whenever we meet.
> 
> Thank you for developing Unik OLSR,
> Stephan Maka.
> 
> 
> 
> ------------------------------------------------------------------------
> 
> diff -urN olsrd-current/Makefile olsrd-current-netbsd/Makefile
> --- olsrd-current/Makefile	Sat Dec 11 13:51:23 2004
> +++ olsrd-current-netbsd/Makefile	Sat Dec 11 15:30:47 2004
> @@ -90,6 +90,15 @@
>  MAKEDEPEND = 	makedepend -f $(DEPFILE) -D__FreeBSD__ $(INCLUDES) $(SRCS)
>  
>  else
> +ifeq ($(OS), nbsd)
> +
> +SRCS +=		$(wildcard src/bsd/*.c) $(wildcard src/unix/*.c)
> +HDRS +=		$(wildcard src/bsd/*.h) $(wildcard src/unix/*.h)
> +CFLAGS ?=	-Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -g
> +LIBS =		-lm
> +MAKEDEPEND = 	makedepend -f $(DEPFILE) -D__NetBSD__ $(INCLUDES) $(SRCS)
> +
> +else
>  ifeq ($(OS), osx)
>  
>  SRCS +=		$(wildcard src/bsd/*.c) $(wildcard src/unix/*.c)
> @@ -167,6 +176,7 @@
>  endif
>  endif
>  endif
> +endif
>  
>  OBJS = $(patsubst %.c,%.o,$(SRCS))
>  override CFLAGS += $(INCLUDES) $(DEFINES)
> @@ -200,6 +210,7 @@
>  	@echo ' linux - GNU/Linux                  '
>  	@echo ' win32 - MS Windows                 '
>  	@echo ' fbsd  - FreeBSD                    '
> +	@echo ' nbsd  - NetBSD                     '
>  	@echo ' osx   - Mac OS X                   '
>  	@echo ' ---------------------------------  '
>  	@echo ' Example - build for windows:       '
> diff -urN olsrd-current/src/bsd/net.c olsrd-current-netbsd/src/bsd/net.c
> --- olsrd-current/src/bsd/net.c	Sat Dec 11 13:51:40 2004
> +++ olsrd-current-netbsd/src/bsd/net.c	Sat Dec 11 15:31:07 2004
> @@ -43,6 +43,10 @@
>  #include "../net_os.h"
>  #include "net.h"
>  
> +#ifdef __NetBSD__
> +#include <sys/param.h>
> +#endif
> +
>  #include <sys/sysctl.h>
>  
>  static int ignore_redir;
> diff -urN olsrd-current/src/cfgparser/Makefile olsrd-current-netbsd/src/cfgparser/Makefile
> --- olsrd-current/src/cfgparser/Makefile	Sat Dec 11 13:51:40 2004
> +++ olsrd-current-netbsd/src/cfgparser/Makefile	Sat Dec 11 15:31:26 2004
> @@ -63,6 +63,10 @@
>  DEPFLAGS +=	-D__FreeBSD__
>  endif
>  
> +ifeq ($(OS), nbsd)
> +DEPFLAGS +=	-D__NetBSD__
> +endif
> +
>  ifeq ($(OS), osx)
>  DEPFLAGS +=	-D__MacOSX__
>  endif
> diff -urN olsrd-current/src/defs.h olsrd-current-netbsd/src/defs.h
> --- olsrd-current/src/defs.h	Sat Dec 11 13:51:33 2004
> +++ olsrd-current-netbsd/src/defs.h	Sat Dec 11 15:31:10 2004
> @@ -144,7 +144,7 @@
>  
>  /* routing socket */
>  
> -#if defined __FreeBSD__ || defined __MacOSX__
> +#if defined __FreeBSD__ || defined __MacOSX__ || defined __NetBSD__
>  int rts;
>  #endif
>  
> diff -urN olsrd-current/src/main.c olsrd-current-netbsd/src/main.c
> --- olsrd-current/src/main.c	Sat Dec 11 13:51:34 2004
> +++ olsrd-current-netbsd/src/main.c	Sat Dec 11 15:31:17 2004
> @@ -480,7 +480,7 @@
>        olsr_exit(__func__, 0);
>      }
>  
> -#if defined __FreeBSD__ || defined __MacOSX__
> +#if defined __FreeBSD__ || defined __MacOSX__ || defined __NetBSD__
>    if ((rts = socket(PF_ROUTE, SOCK_RAW, 0)) < 0)
>      {
>        olsr_syslog(OLSR_LOG_ERR, "routing socket: %m");
> @@ -690,7 +690,7 @@
>    /* ioctl socket */
>    close(ioctl_s);
>  
> -#if defined __FreeBSD__ || defined __MacOSX__
> +#if defined __FreeBSD__ || defined __MacOSX__ || defined __NetBSD__
>    /* routing socket */
>    close(rts);
>  #endif
> diff -urN olsrd-current/src/net.c olsrd-current-netbsd/src/net.c
> --- olsrd-current/src/net.c	Sat Dec 11 13:51:34 2004
> +++ olsrd-current-netbsd/src/net.c	Sat Dec 11 15:31:19 2004
> @@ -477,7 +477,7 @@
>    COPY_IP(&mcastreq.ipv6mr_multiaddr, &ifs->int6_multaddr.sin6_addr);
>    mcastreq.ipv6mr_interface = ifs->if_index;
>  
> -#if !defined __FreeBSD__ && !defined __MacOSX__
> +#if !defined __FreeBSD__ && !defined __MacOSX__ && !defined __NetBSD__
>    olsr_printf(3, "Interface %s joining multicast %s...",	ifs->int_name, olsr_ip_to_string((union olsr_ip_addr *)&ifs->int6_multaddr.sin6_addr));
>    /* Send multicast */
>    if(setsockopt(sock, 
> diff -urN olsrd-current/src/olsr_protocol.h olsrd-current-netbsd/src/olsr_protocol.h
> --- olsrd-current/src/olsr_protocol.h	Sat Dec 11 13:51:35 2004
> +++ olsrd-current-netbsd/src/olsr_protocol.h	Sat Dec 11 15:31:21 2004
> @@ -75,7 +75,7 @@
>  typedef int16_t         olsr_16_t;
>  typedef int32_t         olsr_32_t;
>  
> -#elif defined __FreeBSD__
> +#elif defined __FreeBSD__ || defined __NetBSD__
>  
>  typedef	uint8_t		olsr_u8_t;
>  typedef uint16_t       	olsr_u16_t;
> diff -urN olsrd-current/src/unix/ifnet.c olsrd-current-netbsd/src/unix/ifnet.c
> --- olsrd-current/src/unix/ifnet.c	Sat Dec 11 13:51:42 2004
> +++ olsrd-current-netbsd/src/unix/ifnet.c	Sat Dec 11 15:31:35 2004
> @@ -54,7 +54,7 @@
>  #define SIOCGIWMODE	0x8B07		/* get operation mode */
>  #define SIOCSIWSENS	0x8B08		/* set sensitivity (dBm) */
>  #define SIOCGIWSENS	0x8B09		/* get sensitivity (dBm) */
> -#elif defined __FreeBSD__ || defined __MacOSX__
> +#elif defined __FreeBSD__ || defined __MacOSX__ || defined __NetBSD__
>  #define ifr_netmask ifr_addr
>  #endif
>  
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> olsr-dev mailing list
> (spam-protected)
> https://www.olsr.org/mailman/listinfo/olsr-dev

-- 
Andreas Tønnesen
http://www.olsr.org



More information about the Olsr-dev mailing list