COMMENT =		file archiver with a high compression ratio

V =			26.03
N =			7z${V:S/.//}
DISTNAME =		${N}-src
PKGNAME =		7zip-${V}

CATEGORIES =		archivers

HOMEPAGE =		https://7-zip.org

FLAVORS =		rar
FLAVOR ?=

# LGPLv2.1+ (with unRAR license restriction if using rar flavor)
PERMIT_PACKAGE =	Yes

# uses pledge()
WANTLIB =		${COMPILER_LIBCXX} c m

SITES =			https://github.com/ip7z/7zip/releases/download/${V}/

DISTFILES =		${DISTNAME}.tar.xz ${N}-linux-arm.tar.xz

FIX_CRLF_FILES =	CPP/7zip/7zip_gcc.mak \
			CPP/7zip/Bundles/SFXCon/SfxCon.cpp \
			CPP/7zip/UI/Common/ArchiveCommandLine.cpp \
			CPP/7zip/UI/Console/Main.cpp \
			CPP/7zip/UI/Console/UserInputUtils.cpp

COMPILER =		base-clang ports-gcc

.if !${FLAVOR:Mrar}
MAKE_ENV =		DISABLE_RAR=1
.endif

USE_GMAKE =		Yes
CONFIGURE_STYLE =	none

MAKE_FILE_base-clang = 	../../cmpl_clang.mak
MAKE_FILE_ports-gcc =	../../cmpl_gcc.mak
MAKE_FILE =		${MAKE_FILE_${CHOSEN_COMPILER}}

WRKDIST =		${WRKDIR}
WRKSRC_Alone2 =		${WRKDIST}/CPP/7zip/Bundles/Alone2
WRKSRC_Alone =		${WRKDIST}/CPP/7zip/Bundles/Alone
WRKSRC_Alone7z =	${WRKDIST}/CPP/7zip/Bundles/Alone7z
WRKSRC_Format7zF =	${WRKDIST}/CPP/7zip/Bundles/Format7zF
WRKSRC_SFXCon =		${WRKDIST}/CPP/7zip/Bundles/SFXCon
WRKSRC =		${WRKDIST}/CPP/7zip/UI/Console

BUILD = \
	env -i ${MAKE_ENV} ${MAKE_PROGRAM} ${MAKE_FLAGS} \
		-f ${MAKE_FILE} ${ALL_TARGET}

do-build:
	${BUILD} -C ${WRKSRC_Alone2}
	${BUILD} -C ${WRKSRC_Alone}
	${BUILD} -C ${WRKSRC_Alone7z}
	${BUILD} -C ${WRKSRC_Format7zF}
	${BUILD} -C ${WRKSRC_SFXCon}
	${BUILD} -C ${WRKSRC}

do-install:
	${INSTALL_PROGRAM} ${WRKSRC_Alone2}/b/*/7zz ${PREFIX}/bin
	${INSTALL_PROGRAM} ${WRKSRC_Alone}/b/*/7za ${PREFIX}/bin
	${INSTALL_PROGRAM} ${WRKSRC_Alone7z}/b/*/7zr ${PREFIX}/bin
	${INSTALL_PROGRAM} ${WRKSRC}/b/*/7z ${PREFIX}/bin

	${INSTALL_DATA_DIR} ${PREFIX}/lib/7zip
	${INSTALL_DATA} ${WRKSRC_Format7zF}/b/*/7z.so ${PREFIX}/lib/7zip

	${INSTALL_PROGRAM} ${WRKSRC_SFXCon}/b/*/7zCon ${PREFIX}/lib/7zip/7zCon.sfx

	${INSTALL_DATA_DIR} ${PREFIX}/share/doc/7zip
	${INSTALL_DATA} ${WRKDIST}/DOC/*.txt ${PREFIX}/share/doc/7zip
	${INSTALL_DATA} ${FILESDIR}/7z.1 ${PREFIX}/man/man1
	cp -r ${WRKDIST}/MANUAL ${PREFIX}/share/doc/7zip/

.include <bsd.port.mk>
