$NetBSD$

Set preferences.
Add minimal NetBSD support.
Don't override CC nor optimisation flags in CFLAGS.
Remove sed magic; we'll use nbsed.

--- src/Makefile.orig	2020-07-29 10:16:53.000000000 +0000
+++ src/Makefile
@@ -28,7 +28,7 @@ UNAME                   := $(patsubst MS
 UNAME                   := $(patsubst MINGW32_NT-%,MSYS2,$(UNAME))
 UNAME                   := $(patsubst MINGW64_NT-%,MSYS2,$(UNAME))
 
-ifeq (,$(filter $(UNAME),Linux FreeBSD Darwin CYGWIN MSYS2))
+ifeq (,$(filter $(UNAME),Linux FreeBSD NetBSD Darwin CYGWIN MSYS2))
 $(error "! Your Operating System ($(UNAME)) is not supported by this Makefile")
 endif
 
@@ -56,7 +56,6 @@ MODULE_INTERFACE_VERSION := 520
 ## Native compiler paths
 ##
 
-CC                      := gcc
 AR                      := ar
 FIND                    := find
 INSTALL                 := install
@@ -65,18 +64,11 @@ SED                     := sed
 SED_IN_PLACE            := -i
 
 ifeq ($(UNAME),Darwin)
-CC                      := clang
 # the sed -i option of macOS requires a parameter for the backup file (we just use "")
 AR                      := /usr/bin/ar
-SED                     := /usr/bin/sed
-SED_IN_PLACE            := -i ""
 PROD_VERS               := $(shell sw_vers -productVersion | cut -d. -f2)
 endif
 
-ifeq ($(UNAME),FreeBSD)
-CC                      := cc
-SED                     := gsed
-endif
 
 ##
 ## Version
@@ -186,7 +178,6 @@ CFLAGS_ZLIB             += -DIOAPI_NO_64
 endif
 
 ifeq ($(DEBUG),0)
-CFLAGS                  += -O2
 ifneq ($(UNAME),Darwin)
 LFLAGS                  += -s
 endif
@@ -264,6 +255,13 @@ LFLAGS_NATIVE           += -liconv
 endif
 endif # FreeBSD
 
+ifeq ($(UNAME),NetBSD)
+CFLAGS_NATIVE           := $(CFLAGS)
+CFLAGS_NATIVE           += -I$(OPENCL_HEADERS_KHRONOS)/
+LFLAGS_NATIVE           := $(LFLAGS)
+LFLAGS_NATIVE           += -lpthread
+endif # NetBSD
+
 ifeq ($(UNAME),Darwin)
 export MACOSX_DEPLOYMENT_TARGET=10.9
 CFLAGS_NATIVE           := $(CFLAGS)
@@ -540,8 +538,13 @@ MODULES_SRC   := $(wildcard src/modules/
 MODULES_LIB   := $(patsubst src/modules/module_%.c, modules/module_%.$(MODULE_SUFFIX), $(MODULES_SRC))
 
 ifeq ($(SHARED),1)
+  ifeq ($(UNAME),Darwin)
+modules/module_%.$(MODULE_SUFFIX): src/modules/module_%.c $(HASHCAT_LIBRARY)
+	$(CC)    $(CFLAGS_NATIVE) $^ -o $@ $(LFLAGS_NATIVE) -install_name $(SHARED_FOLDER)/$@ -shared -fPIC -D MODULE_INTERFACE_VERSION_CURRENT=$(MODULE_INTERFACE_VERSION)
+  else
 modules/module_%.$(MODULE_SUFFIX): src/modules/module_%.c $(HASHCAT_LIBRARY)
 	$(CC)    $(CFLAGS_NATIVE) $^ -o $@ $(LFLAGS_NATIVE) -shared -fPIC -D MODULE_INTERFACE_VERSION_CURRENT=$(MODULE_INTERFACE_VERSION)
+  endif
 else
 modules/module_%.$(MODULE_SUFFIX): src/modules/module_%.c obj/combined.NATIVE.a
 	$(CC)    $(CFLAGS_NATIVE) $^ -o $@ $(LFLAGS_NATIVE) -shared -fPIC -D MODULE_INTERFACE_VERSION_CURRENT=$(MODULE_INTERFACE_VERSION)
