summaryrefslogtreecommitdiffstats
path: root/java/eclipse/Makefile
blob: c0bf91f246ed77f52349c478a645262a1431d5dd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
# Created by: Jimmy Kelley <ljboiler@gmail.com>
# $FreeBSD$

PORTNAME=	eclipse
PORTVERSION=	4.5.2
CATEGORIES=	java devel
MASTER_SITES=	https://googledrive.com/host/0B2kYpXHnC5LpSk01bU1ud0N5bXc/
DISTFILES=	eclipse.platform.releng.aggregator-${PORTVERSION}.xz \
		${PORTNAME}-maven-repo-${PORTVERSION}.xz
DIST_SUBDIR=	eclipse

MAINTAINER=	ljboiler@gmail.com
COMMENT=	Eclipse Mars.2

LICENSE=	EPL

BUILD_DEPENDS=	${LOCALBASE}/share/java/maven33/bin/mvn:devel/maven33
LIB_DEPENDS=	libcairo.so:graphics/cairo \
		libwebkitgtk-1.0.so:www/webkit-gtk2

ONLY_FOR_ARCHS=	i386 amd64
CONFLICTS_INSTALL=	eclipse

USES=		gmake pkgconfig tar:xz
USE_GL=		glu
USE_GNOME=	gconf2 gtk20 gnomevfs2 libgnome libgnomeui
USE_JAVA=	yes
JAVA_OS=	native
JAVA_VERSION=	1.8
JAVA_VENDOR=	openjdk
JAVA_BUILD=	yes
JAVA_RUN=	yes

OPTIONS_DEFINE=		SWT_GTK3_SUPPORT
SWT_GTK3_SUPPORT_DESC=	Enable GTK3 support in SWT (GUI)
OPTIONS_SINGLE=			INSTALLPKG
OPTIONS_SINGLE_INSTALLPKG=	FULL_SDK PLATFORM_SDK PLATFORM
FULL_SDK_DESC=		Full SDK (JDT, PDE, source, API docs)
PLATFORM_SDK_DESC=	Platform with source, API Docs (no Java tools)
PLATFORM_DESC=		Platform only (no Java tools, no source or docs)

OPTIONS_DEFAULT=	FULL_SDK

.include <bsd.port.options.mk>

.if ${OPSYS} == FreeBSD && ${OSVERSION} < 1000000
PATCH_DEPENDS+=	gpatch:devel/patch
PATCH=		gpatch
.endif
PATCH_STRIP=	-p1

.if ${PORT_OPTIONS:MSWT_GTK3_SUPPORT}
USE_GNOME+=	gtk30
LIB_DEPENDS+=	libwebkitgtk-3.0.so:www/webkit-gtk3
MVN_SETTINGS+=	-Dmachine_gtk3=1
SWTGTK3OPT=
.else
SWTGTK3OPT=	SWT_GTK3=0
.endif

WRKSRC=${WRKDIR}/eclipse.platform.releng.aggregator-${PORTVERSION}
GITCLONE=${DISTDIR}/eclipse/eclipse-gitclone/eclipse.platform.releng.aggregator

MVN_LOCAL_REPO=	-Dmaven.repo.local=${WRKDIR}/eclipse-maven-repo-${PORTVERSION}/repository
MVN_TEST_FLAG=	-Dmaven.test.skip=true -DskipTests=true
MVN_SETTINGS+=	--offline
MVN_OPTS?=	MAVEN_OPTS='-Xmx1024m'
ECLIPSE_WS=	gtk
ECLIPSE_ARCH=	x86${ARCH:C/^i.86//:C/^amd/_/}
E_SHORTARCH=	${ARCH:C/^i.86//:C/^amd//}
ECLIPSE_BUILDID=M20160212-1500
SCRIPTS_ENV+=	ECLIPSE_ARCH=${ECLIPSE_ARCH} \
		E_SHORTARCH=${E_SHORTARCH}
PORTDESTDIR=	${PREFIX}/lib/eclipse

#  Someday it would be nice to see about moving the product selection into the patch phase (and only build the
#  product the user wants), but that may prove to be difficult if not impossible with the way the eclipse tycho
#  builder is a "all-or-nothing" thing right now.
.if ${PORT_OPTIONS:MFULL_SDK}
PRODUCT_TARFILE=	\
	${WRKSRC}/eclipse.platform.releng.tychoeclipsebuilder/sdk/target/products/org.eclipse.sdk.ide-freebsd.${ECLIPSE_WS}.${ECLIPSE_ARCH}.tar.gz
.endif
.if ${PORT_OPTIONS:MPLATFORM_SDK}
PRODUCT_TARFILE=	\
	${WRKSRC}/eclipse.platform.releng.tychoeclipsebuilder/platform.sdk/target/products/org.eclipse.platform.sdk-freebsd.${ECLIPSE_WS}.${ECLIPSE_ARCH}.tar.gz
.endif
.if ${PORT_OPTIONS:MPLATFORM}
PRODUCT_TARFILE=	\
	${WRKSRC}/eclipse.platform.releng.tychoeclipsebuilder/platform/target/products/org.eclipse.platform.ide-freebsd.${ECLIPSE_WS}.${ECLIPSE_ARCH}.tar.gz
.endif

post-patch:
	@(for f in `${GREP} -hE '(\-\-\-|%%ECLIPSE_ARCH%%)' ${FILESDIR}/patch-* | ${GREP} -B1 'ECLIPSE_ARCH' | ${GREP} '^\-\-\-' | ${SED} -e 's/^\-\-\- .\///'` ; \
	do \
	  ${ECHO_MSG} "Updating ECLIPSE_ARCH in file $$f"; \
	  ${REINPLACE_CMD} -e "s|%%ECLIPSE_ARCH%%|${ECLIPSE_ARCH}|g" ${WRKSRC}/$$f; \
	done)

do-build:
	@(cd ${WRKSRC}; ${SETENV} JAVA_HOME=${JAVA_HOME} M2_HOME=${LOCALBASE}/share/java/maven33 ${MVN_OPTS} \
		mvn ${MVN_SETTINGS} ${MVN_TEST_FLAG} ${MVN_LOCAL_REPO} clean verify -Dnative=${ECLIPSE_WS}.freebsd.${ECLIPSE_ARCH} \
		-DbuildId=${ECLIPSE_BUILDID})

do-install:
	@${RM} -rf ${STAGEDIR}${PORTDESTDIR}
	@( cd ${STAGEDIR}${PREFIX}/lib; ${TAR} xfz ${PRODUCT_TARFILE} )
	@${FIND} ${STAGEDIR}${PREFIX}/lib -type f -name \*.orig -delete
	@${SED} \
	  -e "s+%%BROWSER%%+${GECKO:S/19//}+g" \
	  -e "s+%%ECLIPSE_HOME%%+${PORTDESTDIR}+g" \
	  -e "s+%%JAVA_HOME%%+${JAVA_HOME}+g" \
	  -e "s+%%JAVA_OS%%+${JAVA_OS}+g" \
	  -e "s+%%JAVA_VERSION%%+${JAVA_VERSION}+g" \
	  -e "s+%%LOCALBASE%%+${LOCALBASE}+g" \
	  -e "s+%%SWTGTK3OPT%%+${SWTGTK3OPT}+g" \
	  ${FILESDIR}/eclipse.in > ${BUILD_WRKSRC}/eclipse.tmp
.if defined(JAVA_VENDOR)
	@${REINPLACE_CMD} -e "s+%%JAVA_VENDOR_SPECIFICATION%%+JAVA_VENDOR=\"${JAVA_VENDOR}\"+g" \
	  ${BUILD_WRKSRC}/eclipse.tmp
.else
	@${REINPLACE_CMD} -e "s+%%JAVA_VENDOR_SPECIFICATION%%++g" \
	  ${BUILD_WRKSRC}/eclipse.tmp
.endif
	${INSTALL_SCRIPT} ${BUILD_WRKSRC}/eclipse.tmp ${STAGEDIR}${PREFIX}/bin/eclipse
	@(cd ${STAGEDIR}${PREFIX}; ${FIND} -s lib/eclipse -not -type d) >> ${TMPPLIST}
	@(cd ${STAGEDIR}${PREFIX}; ${FIND} -s bin/eclipse -not -type d) >> ${TMPPLIST}
	@(cd ${STAGEDIR}${PREFIX}; ${FIND} -s -d lib/eclipse -type d -empty) | ${SED} -ne "s,^,@dir ,p" >> ${TMPPLIST}
	@${ECHO_CMD} "@exec echo '-Dorg.eclipse.equinox.p2.reconciler.dropins.directory=%D/share/eclipse/dropins' >> %D/lib/eclipse/eclipse.ini" >> ${TMPPLIST}
	@${ECHO_CMD} "@unexec ${SED} -i '' '/^-Dorg.eclipse.equinox.p2.reconciler.dropins.directory=/d' %D/lib/eclipse/eclipse.ini" >> ${TMPPLIST}
	@${MKDIR} ${STAGEDIR}${PREFIX}/share/eclipse/dropins
	@${ECHO_CMD} "@dir share/eclipse/dropins" >> ${TMPPLIST}

distclean:
	${RM} -rf ${DISTDIR}/eclipse

.include <bsd.port.mk>
OpenPOWER on IntegriCloud