1PORTNAME=		oolite
2PORTVERSION=		1.88
3PORTREVISION=		3
4CATEGORIES=		games gnustep
5MASTER_SITES=		https://github.com/OoliteProject/oolite/releases/download/1.88/
6DISTNAME=		${PORTNAME}-source-${PORTVERSION}
7DIST_SUBDIR=		oolite
8
9MAINTAINER=		ports@MidnightBSD.org
10COMMENT=		Trade and combat space simulator, clone of Elite
11WWW=		http://www.oolite.org
12
13LICENSE=		CC-BY-NC-SA-3.0 gpl2 zlib
14LICENSE_COMB=		multi
15LICENSE_FILE_CC-BY-NC-SA-3.0=	${WRKSRC}/Doc/LICENSE.TXT
16
17BUILD_DEPENDS=		zip:archivers/zip \
18			${LOCALBASE}/bin/unzip:archivers/unzip
19LIB_DEPENDS=		libespeak-ng.so:audio/espeak-ng \
20			libnspr4.so:devel/nspr \
21			libvorbisfile.so:audio/libvorbis \
22			libpng.so:graphics/png \
23			libminizip.so:archivers/minizip
24
25USES=			gl gnustep openal:al perl5 python:3.5+,build sdl \
26			tar:bzip2 xorg
27USE_CXXSTD=		gnu++98
28USE_GL=			gl glu
29USE_SDL=		sdl
30USE_XORG=		x11
31USE_GNUSTEP=		base build
32
33ADDITIONAL_CPPFLAGS+=	-Wno-error=incompatible-function-pointer-types
34
35MAKE_ENV=		ac_cv_path_PYTHON=${PYTHON_CMD}
36# Redefine DO_MAKE_BUILD, because current gnustep in USES overrides MAKEFILE
37# without possibility to change it, as it was done in the previous implementation
38DO_MAKE_BUILD=		${SETENV} ${MAKE_ENV} ${MAKE_CMD} ${MAKE_FLAGS} Makefile ${_MAKE_JOBS} ${MAKE_ARGS:C,^${DESTDIRNAME}=.*,,g}
39ALL_TARGET=		release-deployment
40USE_PERL5=		build
41
42GNUSTEP_LOCAL_APPS=	${GNUSTEP_LOCAL_ROOT}/Applications
43
44SUB_FILES=	oolite
45SUB_LIST=	GNUSTEP_SYSTEM_TOOLS="${GNUSTEP_SYSTEM_TOOLS}"
46
47WRKSRC=	${WRKDIR}/${DISTNAME}
48RELEASEDIR=	${WRKSRC}/oolite.app
49DATADIR=	${GNUSTEP_LOCAL_APPS}/oolite.app
50PORTDATA=	Resources
51PORTDOCS=	*.pdf CHANGELOG.TXT contributors.txt
52
53PLIST_FILES+=	bin/oolite ${DATADIR}/oolite \
54		share/applications/oolite.desktop \
55		share/pixmaps/oolite-icon.png
56
57OPTIONS_DEFINE=	DOCS
58
59BROKEN_aarch64=		fails to configure: error: These compiler flags are invalid: -O
60BROKEN_armv6=		fails to compile: your compiler does not follow the C++ specification for temporary object destruction order
61BROKEN_armv7=		fails to compile: your compiler does not follow the C++ specification for temporary object destruction order
62BROKEN_i386=		fails to compile: ../methodjit/MethodJIT.cpp:318:5: error: expected '(' after 'asm'
63
64post-patch: .SILENT
65	${REINPLACE_CMD} -e 's/GNUSTEP_USER_ROOT/GNUSTEP_LOCAL_ROOT/ ; \
66		s/sdl-config/$${SDL_CONFIG}/ ; \
67		s|-lstdc++|`$${SDL_CONFIG} --libs` &| ; \
68		s|:src/Core/MiniZip|| ; \
69		s|-Isrc/Core/MiniZip|-I$${LOCALBASE}/include/minizip| ; \
70		s|-lz|-lminizip| ; \
71		/ioapi.c/d ; /unzip.c/d ; \
72		s|/usr/X11R6|$${LOCALBASE}|' \
73		${WRKSRC}/GNUmakefile
74# Change value of the SAVEDIR define
75	${REINPLACE_CMD} -e 's|oolite-saves|\.oolite-saves|' \
76		${WRKSRC}/src/Core/NSFileManagerOOExtensions.h
77	${CP} ${PORTSDIR}/Templates/config.guess ${WRKSRC}/deps/mozilla/js/src/build/autoconf
78	${CP} ${PORTSDIR}/Templates/config.sub ${WRKSRC}/deps/mozilla/js/src/build/autoconf
79
80do-install:
81	(cd ${RELEASEDIR} && ${COPYTREE_SHARE} "${PORTDATA}" ${DATADIR})
82	${INSTALL_SCRIPT} ${WRKDIR}/oolite ${PREFIX}/bin
83	${INSTALL_PROGRAM} ${RELEASEDIR}/oolite ${DATADIR}
84	${INSTALL_DATA} ${WRKSRC}/installers/FreeDesktop/oolite.desktop \
85		${PREFIX}/share/applications
86	${INSTALL_DATA} ${WRKSRC}/installers/FreeDesktop/oolite-icon.png \
87		${PREFIX}/share/pixmaps
88	(cd ${WRKSRC}/Doc && ${COPYTREE_SHARE} "${PORTDOCS}" ${DOCSDIR})
89
90.include <bsd.port.mk>
91