PORTNAME=	hashcat
PORTVERSION=	6.2.6
DISTVERSIONPREFIX=	v
PORTEPOCH=	1
CATEGORIES=	security

MAINTAINER=	ports@MidnightBSD.org
COMMENT=	Advanced CPU-based password recovery utility
WWW=		https://hashcat.net/hashcat/

LICENSE=	mit
LICENSE_FILE=	${WRKSRC}/docs/license.txt

USES=		compiler:c11 gmake iconv localbase python:build,run shebangfix

USE_LDCONFIG=	yes
FAKE_OPTS=	trueprefix

USE_GITHUB=	yes
GH_ACCOUNT=	KhronosGroup:opencl Cyan4973:xxhash
GH_PROJECT=	OpenCL-Headers:opencl xxHash:xxhash
GH_SUBDIR=	deps/git/OpenCL-Headers:opencl deps/git/xxHash:xxhash
GH_TAGNAME=	1d3dc4e:opencl c0e86bc:xxhash
PYTHON_NO_DEPENDS=	yes

SHEBANG_FILES=	extra/tab_completion/install tools/*.py

MAKE_ARGS+=	SHARED=1 \
		CC="${CC}" \
		UNAME=FreeBSD \
		USE_SYSTEM_ZLIB=0 \
		LFLAGS_NATIVE="${LDFLAGS} -L${LOCALBASE}/lib -lpthread -lm ${ICONV_LIB}" \
		CFLAGS_NATIVE="${CFLAGS} -I${LOCALBASE}/include -Iinclude -IOpenCL -Ideps/LZMA-SDK/C \
						-Ideps/git/OpenCL-Headers -Ideps/zlib -Ideps/zlib/contrib"
ALL_TARGET=	default
CFLAGS_aarch64+=	-march=armv8-a+crc+crypto

PLIST_SUB=	PORTVERSION=${PORTVERSION}

OPTIONS_DEFINE=		BRAIN DOCS
OPTIONS_DEFAULT=	BRAIN
BRAIN_DESC=		Build Hashcat Brain
BRAIN_MAKE_ARGS_OFF=	ENABLE_BRAIN=0
BRAIN_CFLAGS=		-DWITH_BRAIN -Ideps/git/xxHash

pre-install:
	${STRIP_CMD} ${WRKSRC}/libhashcat.so.${PORTVERSION}
	${STRIP_CMD} ${WRKSRC}/modules/*.so
	${STRIP_CMD} ${WRKSRC}/hashcat

.include <bsd.port.mk>
