# we need to strip the windows version number to be able to build hashcat on cygwin hosts
UNAME := $(patsubst CYGWIN_NT-%,CYGWIN_NT-,$(UNAME))
-ifeq (,$(filter $(UNAME),Linux Darwin CYGWIN_NT-))
+ifeq (,$(filter $(UNAME),Linux Darwin CYGWIN_NT- FreeBSD))
$(error "! Your Operating System ($(UNAME)) is not supported by $(PROG_NAME) Makefile")
endif
ifeq ($(UNAME),Darwin)
SED := gsed
endif
+ifeq ($(UNAME),FreeBSD)
+CC := cc
+SED := gsed
+endif
##
## Cross compiler paths
## Compiler flags
##
-CFLAGS := -pipe -W -Wall -std=c99 -Iinclude/ -IOpenCL/ -I$(OPENCL_HEADERS_KHRONOS)/
+CFLAGS += -pipe -W -Wall -std=c99 -Iinclude/ -IOpenCL/ -I$(OPENCL_HEADERS_KHRONOS)/
ifndef DEBUG
CFLAGS += -O2
CFLAGS_NATIVE := -D_POSIX -DDARWIN
CFLAGS_NATIVE += $(CFLAGS)
LFLAGS_NATIVE := -lpthread
+LFLAGS_NATIVE += $(LDFLAGS)
endif # darwin
ifeq ($(UNAME),Linux)
CFLAGS_NATIVE += $(CFLAGS)
LFLAGS_NATIVE := -lpthread -ldl
CFLAGS_NATIVE += -DHAVE_HWMON
+LFLAGS_NATIVE += $(LDFLAGS)
endif # linux
+ifeq ($(UNAME),FreeBSD)
+CFLAGS_NATIVE := -D_POSIX
+CFLAGS_NATIVE += $(CFLAGS)
+LFLAGS_NATIVE := -lpthread
+LFLAGS_NATIVE += $(LDFLAGS)
+endif # freebsd
+
##
## Cross compilation target
##