MFH: r370966

devel/matreshka: Fix build on i386 platforms

The author of matreshka informed me that GPRBuild 2014 has a bug in
it that suppresses flags like -msse2 and -march.  It's been fixed in the
Pro version, but not the GPL version.  He worked around the bug instead,
and this commit brings in the essential part of that workaround.  The
GPRBuild bug prevented Matreshka from building on i386 on all releases
and all platforms.

While here, remove @dirrm from pkg-plist, strip the installed libraries,
convert to USES=pgsql and tighten the makefile up a bit.

Approved by:	portmgr
This commit is contained in:
John Marino 2014-10-16 07:02:31 +00:00
parent b595125863
commit 9b5bb4bc86
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/branches/2014Q4/; revision=370972
3 changed files with 47 additions and 17 deletions

View File

@ -3,7 +3,7 @@
PORTNAME= matreshka
PORTVERSION= 0.6.0
PORTREVISION= 4
PORTREVISION= 5
CATEGORIES= devel
MASTER_SITES= http://forge.ada-ru.org/matreshka/downloads/
@ -30,6 +30,11 @@ MYSQL_CONFIGURE_ENABLE= mysql
ORACLE_CONFIGURE_ENABLE= oracle
AMF_CONFIGURE_ENABLE= amf
MYSQL_USE= MYSQL=yes
PGSQL_USES= pgsql
SQLITE3_USE= SQLITE=yes
FIREBIRD_USE= FIREBIRD=yes
MAKE_JOBS_UNSAFE= yes
MAKE_ENV+= SMP_MFLAGS=-j${MAKE_JOBS_NUMBER}
@ -38,29 +43,15 @@ MAKE_ENV+= SMP_MFLAGS=-j${MAKE_JOBS_NUMBER}
.if ${PORT_OPTIONS:MFIREBIRD}
CONFIGURE_ARGS+= --with-firebird-libdir=${LOCALBASE}/lib
USE_FIREBIRD= yes
.endif
.if ${PORT_OPTIONS:MMYSQL}
USE_MYSQL= yes
.endif
.if ${PORT_OPTIONS:MPGSQL}
USE_PGSQL= yes
.endif
.if ${PORT_OPTIONS:MSQLITE3}
USE_SQLITE= yes
.endif
pre-configure:
cd ${WRKSRC} && ${SETENV} ${CONFIGURE_ENV} ${MAKE_CMD} config
post-install:
${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/*.so \
${STAGEDIR}${PREFIX}/bin/wsdl2ada
@cd ${STAGEDIR}${PREFIX}; ${FIND} * \( -type f -or -type l \) | \
${SORT} >> ${TMPPLIST}
@cd ${STAGEDIR}${PREFIX}; ${FIND} * -type d | ${AWK} '/\//' | ${SORT} -r | \
${SED} -e '/lib\/gnat$$/d' -e 's/^/@dirrm /g' >> ${TMPPLIST}
@echo "@unexec rmdir %D/lib/gnat 2>/dev/null || true" >> ${TMPPLIST}
.include <bsd.port.mk>

View File

@ -0,0 +1,29 @@
--- Makefile.build.orig 2013-09-18 07:12:40.852703000 +0000
+++ Makefile.build
@@ -1,5 +1,6 @@
include Makefile.config
+GNATMAKE = gnatmake
GPRBUILD_FLAGS = -p $(SMP_MFLAGS)
ALL_TARGETS = league xml fastcgi soap wsse wsdl2ada sql
@@ -31,6 +32,19 @@ endif
all: $(ALL_TARGETS)
league:
+ifneq (, $(findstring x86,$(ARCHITECTURE)))
+ $(GNATMAKE) -p -c -u -Pgnat/matreshka_league.gpr matreshka-internals-strings-handlers-x86_utilities.adb
+ifeq ($(ARCHITECTURE), x86)
+ $(GNATMAKE) -p -c -u -Pgnat/matreshka_league.gpr matreshka-simd-intel-sse.adb
+ $(GNATMAKE) -p -c -u -Pgnat/matreshka_league.gpr matreshka-simd-intel-sse2.ads
+ $(GNATMAKE) -p -c -u -Pgnat/matreshka_league.gpr matreshka-internals-strings-handlers-generic_x86_sse2.adb
+ $(GNATMAKE) -p -c -u -Pgnat/matreshka_league.gpr matreshka-internals-strings-handlers-x86-sse2.ads
+ $(GNATMAKE) -p -c -u -Pgnat/matreshka_league.gpr matreshka-internals-strings-handlers-x86-sse2_popcnt.ads
+endif
+ifeq ($(ARCHITECTURE), x86_64)
+ $(GNATMAKE) -p -c -u -Pgnat/matreshka_league.gpr matreshka-internals-strings-handlers-x86_64_popcnt.ads
+endif
+endif
$(GPRBUILD) $(GPRBUILD_FLAGS) -Pgnat/matreshka_league.gpr
xml: league

View File

@ -0,0 +1,10 @@
--- Makefile.config.in.orig 2013-12-22 22:34:01.201864000 +0000
+++ Makefile.config.in
@@ -1,6 +1,7 @@
VERSION = @VERSION@
RTL_VERSION = @RTL_VERSION_SUFFIX@
+ARCHITECTURE = @ARCHITECTURE@
OPERATING_SYSTEM = @OPERATING_SYSTEM@
PREFIX = @PREFIX@