# $OpenBSD: Makefile.template,v 1.78 2018/07/09 15:00:06 jca Exp $

COMMENT =		transport simulator with rail, road, ship, and air

# Need -DREVISION="svn revision number" for multiplayer.
# Check https://forum.simutrans.com/index.php/board,3.0.html
# and WRKSRC/simutrans/history.txt for the number.
# -> 120.4.1 is revision 8600, not 8588.
V =			120.4.1
DISTNAME =		simutrans-src-${V:S/./-/g}
CXXFLAGS +=		-DREVISION=8600
PKGNAME =		simutrans-$V
CATEGORIES =		games

HOMEPAGE =		https://www.simutrans.com/

MAINTAINER =		George Koehler <kernigh@gmail.com>

# Artistic, MIT, mplus-fonts
PERMIT_PACKAGE_CDROM =	Yes

WANTLIB =		${COMPILER_LIBCXX} SDL2 SDL2_mixer bz2 c \
			freetype m miniupnpc z

MASTER_SITES =		${MASTER_SITE_SOURCEFORGE:=simutrans/}
EXTRACT_ONLY =
EXTRACT_SUFX =		.zip
DIST_SUBDIR = 		simutrans

COMPILER =		base-clang ports-gcc base-gcc
BUILD_DEPENDS =		archivers/unzip
RUN_DEPENDS =		audio/timidity \
			games/simutrans/pak64
LIB_DEPENDS =		archivers/bzip2 \
			devel/sdl2 \
			devel/sdl2-mixer \
			net/miniupnp/miniupnpc

.include <bsd.port.arch.mk>
.if ${PROPERTIES:Mbe}
CXXFLAGS +=		-DSIM_BIG_ENDIAN
.endif

# MULTI_THREAD=1 is not yet working on OpenBSD.
# OPTIMISE=0 clears an extra -O flag.
# Override default CXX=g++ from gmake.
MAKE_FLAGS =		BACKEND=mixer_sdl2 \
			COLOUR_DEPTH=16 \
			OSTYPE=freebsd \
			OPTIMISE=0 \
			USE_FREETYPE=1 \
			USE_UPNP=1 \
			VERBOSE=1 \
			CXX='${CXX}' \
			FLAGS='${CXXFLAGS}'

USE_GMAKE =		Yes
NO_TEST =		Yes

post-extract:
# Extract to WRKSRC, not WRKDIR.
	unzip -q ${FULLDISTDIR}/${DISTNAME}.zip -d ${WRKSRC}
# Convert line endings before applying patches.
	cd ${WRKSRC} && perl -pi -e 's/\r$$//' \
	    Makefile \
	    display/simgraph16.cc \
	    gui/simwin.cc \
	    network/pakset_info.cc \
	    simmain.cc \
	    simsys.cc
# Strip UTF-8 BOM to prevent errors from base-gcc:
# gui/loadfont_frame.cc:1: error: stray '\357' in program
	cd ${WRKSRC} && perl -pi -e 's/^\xef\xbb\xbf//' \
	    gui/loadfont_frame.cc

do-install:
	${INSTALL_PROGRAM} ${WRKSRC}/build/default/sim \
	    ${PREFIX}/bin/simutrans
	cp -R ${WRKSRC}/simutrans ${PREFIX}/share/
# get_pak.sh has unsafe use of /tmp
	rm ${PREFIX}/share/simutrans/get_pak.sh

.include <bsd.port.mk>
