# $FreeBSD: head/security/softether/Makefile 463190 2018-02-28 08:48:40Z hrs $

PORTNAME=	softether
PORTVERSION=	4.25.9656
CATEGORIES=	security
MASTER_SITES=	http://www.softether-download.com/files/softether/v4.25-9656-rtm-2018.01.15-tree/Source_Code/
DISTNAME=	${PORTNAME}-src-v4.25-9656-rtm

MAINTAINER=	hrs@FreeBSD.org
COMMENT=	Softether VPN solution

LICENSE=	GPLv2

CONFLICTS_INSTALL=	softether-devel

CPPFLAGS+=	-I${LOCALBASE}/include
LDFLAGS+=	-L${LOCALBASE}/lib

PORTDOCS=	AUTHORS.TXT ChangeLog LICENSE README THIRD_PARTY.TXT WARNING.TXT
DOS2UNIX_FILES=	AUTHORS.TXT ChangeLog LICENSE README THIRD_PARTY.TXT \
		WARNING.TXT \
		src/Cedar/Cedar.h \
		src/Cedar/Cedar.h \
		src/Cedar/Client.h \
		src/Cedar/Nat.h \
		src/Cedar/Server.c \
		src/Cedar/Server.h \
		src/Cedar/Virtual.h \
		src/Mayaqua/Cfg.c \
		src/Mayaqua/Cfg.h \
		src/Mayaqua/Kernel.c \
		src/Mayaqua/Mayaqua.c \
		src/Mayaqua/Network.c \
		src/Mayaqua/Network.h \
		src/Mayaqua/Table.h \
		src/Mayaqua/Unix.c

OPTIONS_DEFINE=	DOCS UNLOCK

# Use of some functions in Japan and China is restricted.
# This option Unlocks regional lockout following functions:
#  - RADIUS / NT Domain user authentication function
#  - RSA certificate user authentication function
#  - Deep-inspect packet logging function
#  - Source IP address control list function
#  - syslog transfer function
UNLOCK_DESC= Unlock regional lockout (JP and CN)
UNLOCK_EXTRA_PATCHES=	${FILESDIR}/extra-patch-unrestrict-enterprise-functions

ONLY_FOR_ARCHS=	i386 amd64

USES=		dos2unix gmake iconv:wchar_t localbase:ldflags ncurses \
		readline ssl
USE_RC_SUBR=	softether_bridge softether_client softether_server
SUB_FILES=	vpncmd
MAKE_JOBS_UNSAFE=	yes

LOGDIR?=	/var/log/softether
PLIST_SUB+=	LOGDIR="${LOGDIR}"
SUB_LIST=	LOGDIR="${LOGDIR}"

# a pity the source directory has such a naming scheme, but well
WRKSRC=		${WRKDIR}/v4.25-9656

ALL_TARGET=	build

.include <bsd.port.options.mk>

# skip configure at all and copy the corresponding Makefile in place
post-extract:
.if ${ARCH} != "amd64"
	@${CP} ${WRKSRC}/src/makefiles/freebsd_32bit.mak ${WRKSRC}/Makefile
.else
	@${CP} ${WRKSRC}/src/makefiles/freebsd_64bit.mak ${WRKSRC}/Makefile
.endif

# pull in user specific CFLAGS and LDFLAGS
	@${REINPLACE_CMD} -e "s|OPTIONS_COMPILE_RELEASE=|OPTIONS_COMPILE_RELEASE=${CFLAGS} |g" ${WRKSRC}/Makefile
	@${REINPLACE_CMD} -e "s|OPTIONS_LINK_RELEASE=|OPTIONS_LINK_RELEASE=${LDFLAGS} |g" ${WRKSRC}/Makefile

# manually install to ${PREFIX}/libexec/softether, then the final install will copy scripts
# into ${PREFIX}/sbin
do-install:
	${MKDIR} ${STAGEDIR}/${PREFIX}/libexec/softether
	${INSTALL_SCRIPT} ${WRKSRC}/bin/vpnbridge/vpnbridge ${STAGEDIR}/${PREFIX}/libexec/${PORTNAME}/vpnbridge
	${INSTALL_SCRIPT} ${WRKSRC}/bin/vpnclient/vpnclient ${STAGEDIR}/${PREFIX}/libexec/${PORTNAME}/vpnclient
	${INSTALL_SCRIPT} ${WRKSRC}/bin/vpncmd/vpncmd ${STAGEDIR}/${PREFIX}/libexec/${PORTNAME}/vpncmd
	${INSTALL_SCRIPT} ${WRKSRC}/bin/vpnserver/vpnserver ${STAGEDIR}/${PREFIX}/libexec/${PORTNAME}/vpnserver
	${INSTALL_DATA} ${WRKSRC}/bin/vpnserver/hamcore.se2 ${STAGEDIR}/${PREFIX}/libexec/${PORTNAME}/hamcore.se2
	${INSTALL_SCRIPT} ${WRKDIR}/vpncmd ${STAGEDIR}/${PREFIX}/sbin/vpncmd

post-install:
.for i in vpnbridge vpnclient vpncmd vpnserver
	@${STRIP_CMD} ${STAGEDIR}${PREFIX}/libexec/${PORTNAME}/${i}
.endfor
	@${MKDIR} ${STAGEDIR}${DOCSDIR}
	@${MKDIR} ${STAGEDIR}${LOGDIR}
.for doc in ${PORTDOCS}
	${INSTALL_DATA} ${WRKSRC}/${doc} ${STAGEDIR}${DOCSDIR}
.endfor

.include <bsd.port.mk>
