Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 31 Dec 2013 05:46:31 +0900
From:      KATO Tsuguru <tkato432@yahoo.com>
To:        FreeBSD-gnats-submit@FreeBSD.org
Subject:   ports/185316: audio/mixxx: Fix build with clang
Message-ID:  <20131231054631.fafe8f0cb54301394861adfe@yahoo.com>
Resent-Message-ID: <201312302110.rBULA2mn098609@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         185316
>Category:       ports
>Synopsis:       audio/mixxx: Fix build with clang
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Mon Dec 30 21:10:02 UTC 2013
>Closed-Date:
>Last-Modified:
>Originator:     KATO Tsuguru
>Release:        FreeBSD 8.4-RELEASE-p4 i386
>Organization:
>Environment:
>Description:
- Fix build with clang
- Support scons USES macro

New file:
files/patch-src__defs.h

>How-To-Repeat:
>Fix:

diff -urN /usr/ports/audio/mixxx/Makefile audio/mixxx/Makefile
--- /usr/ports/audio/mixxx/Makefile	2013-11-06 21:52:16.000000000 +0900
+++ audio/mixxx/Makefile	2013-12-31 00:00:00.000000000 +0900
@@ -4,17 +4,17 @@
 PORTNAME=	mixxx
 PORTVERSION=	1.11.0
 DISTVERSIONSUFFIX=	-src
-PORTREVISION=	2
+PORTREVISION=	3
 CATEGORIES=	audio
-MASTER_SITES=	http://downloads.mixxx.org/${PORTNAME}-${PORTVERSION}/
+MASTER_SITES=	http://downloads.mixxx.org/%SBUDIR%/
+MASTER_SITE_SUBDIR=	${PORTNAME}-${PORTVERSION}
 
 MAINTAINER=	ports@FreeBSD.org
 COMMENT=	DJ mixing application
 
 LICENSE=	GPLv2 # (or later)
 
-BUILD_DEPENDS=	portaudio2>=0:${PORTSDIR}/audio/portaudio2 \
-		bzr>=0:${PORTSDIR}/devel/bzr
+BUILD_DEPENDS=	portaudio2>=0:${PORTSDIR}/audio/portaudio2
 LIB_DEPENDS=	libFLAC.so:${PORTSDIR}/audio/flac \
 		libid3tag.so:${PORTSDIR}/audio/libid3tag \
 		libmad.so:${PORTSDIR}/audio/libmad \
@@ -24,58 +24,61 @@
 		libprotobuf.so:${PORTSDIR}/devel/protobuf
 RUN_DEPENDS=	portaudio2>=0:${PORTSDIR}/audio/portaudio2
 
+OPTIONS_DEFINE=	DOCS FAAD LAME SHOUTCAST TCMALLOC WAVPACK
+OPTIONS_DEFAULT=	FAAD SHOUTCAST WAVPACK
+OPTIONS_SUB=	yes
+TCMALLOC_DESC=	Use Google's TCMalloc
+
 WRKSRC=		${WRKDIR}/${PORTNAME}-${PORTVERSION}
 
-NO_STAGE=	yes
+USES=		scons
 USE_QT4=	corelib gui network opengl script sql svg xml \
 		linguist_build moc_build qmake_build rcc_build uic_build
 USE_GL=		glu
-USE_SCONS=	yes
-SCONS_BUILDENV=	${SCONS_ENV}
-SCONS_ARGS=	qtdir="${QT_PREFIX}" optimize=0
-USE_LDCONFIG=	yes
-
-PORTDOCS=	*
-
-DOCSRCDIR1=	${WRKSRC}
-DOC_FILES1=	Mixxx-Manual.pdf README README.macro
-
-DOCSRCDIR2=	${WRKSRC}/doc/HID
-DOCSDIR2=	${DOCSDIR}/doc/HID
-DOC_FILES2=	*.odt *.pdf
+MAKE_ARGS=	qtdir="${QT_PREFIX}" optimize=0
+LATE_INSTALL_ARGS=	--install-sandbox=${STAGEDIR}
 
-OPTIONS_DEFINE=	DOCS FAAD LAME SHOUTCAST TCMALLOC WAVPACK
-OPTIONS_DEFAULT=	FAAD SHOUTCAST TCMALLOC WAVPACK
+.include <bsd.port.options.mk>
 
-OPTIONS_SUB=	yes
+.if ${PORT_OPTIONS:MFAAD}
+LIB_DEPENDS+=	libfaad.so:${PORTSDIR}/audio/faad \
+		libmp4v2.so:${PORTSDIR}/multimedia/mp4v2
+MAKE_ARGS+=	faad=1
+.else
+MAKE_ARGS+=	faad=0
+.endif
 
-TCMALLOC_DESC=	Use Google's TCMalloc
+.if ${PORT_OPTIONS:MLAME}
+RUN_DEPENDS+=	lame:${PORTSDIR}/audio/lame
+.endif
 
-FAAD_LIB_DEPENDS=	libfaad.so:${PORTSDIR}/audio/faad \
-			libmp4v2.so:${PORTSDIR}/multimedia/mp4v2
-FAAD_SCONS_ARGS_ON=	faad=1
-FAAD_SCONS_ARGS_OFF=	faad=0
-
-LAME_RUN_DEPENDS=	lame:${PORTSDIR}/audio/lame
-
-SHOUTCAST_LIB_DEPENDS=	libshout.so:${PORTSDIR}/audio/libshout
-SHOUTCAST_SCONS_ARGS_ON=	shoutcast=1
-SHOUTCAST_SCONS_ARGS_OFF=	shoutcast=0
-
-TCMALLOC_LIB_DEPENDS=	libtcmalloc.so:${PORTSDIR}/devel/google-perftools
-TCMALLOC_SCONS_ARGS_ON=	perftools=1
-TCMALLOC_SCONS_ARGS_OFF=	perftools=0
-
-WAVPACK_LIB_DEPENDS=	libwavpack.so:${PORTSDIR}/audio/wavpack
-WAVPACK_SCONS_ARGS_ON=	wv=1
-WAVPACK_SCONS_ARGS_OFF=	wv=0
+.if ${PORT_OPTIONS:MSHOUTCAST}
+LIB_DEPENDS+=	libshout.so:${PORTSDIR}/audio/libshout
+MAKE_ARGS+=	shoutcast=1
+.else
+MAKE_ARGS+=	shoutcast=0
+.endif
 
-.include <bsd.port.options.mk>
+.if ${PORT_OPTIONS:MTCMALLOC}
+LIB_DEPENDS+=	libtcmalloc.so:${PORTSDIR}/devel/google-perftools
+MAKE_ARGS+=	perftools=1
+.else
+MAKE_ARGS+=	perftools=0
+.endif
+
+.if ${PORT_OPTIONS:MWAVPACK}
+LIB_DEPENDS+=	libwavpack.so:${PORTSDIR}/audio/wavpack
+MAKE_ARGS+=	wv=1
+.else
+MAKE_ARGS+=	wv=0
+.endif
 
 post-patch:
 	@${REINPLACE_CMD} -e "s|%%LOCALBASE%%|${LOCALBASE}|g ; \
 		 s|%%PREFIX%%|${PREFIX}|g" \
 		${WRKSRC}/build/depends.py
+	@${REINPLACE_CMD} -e "s|bzr |true |g" \
+		${WRKSRC}/build/util.py
 	@${REINPLACE_CMD} -e "/('install', docs)/d" \
 		${WRKSRC}/src/SConscript
 	@${REINPLACE_CMD} -e "s|^Exec=.*|Exec=mixxx| ; \
@@ -86,13 +89,17 @@
 .endfor
 
 post-install:
-	@${STRIP_CMD} ${PREFIX}/bin/mixxx
-
-.if ${PORT_OPTIONS:MDOCS}
-	@${MKDIR} ${DOCSDIR}
-	${INSTALL_DATA} ${DOC_FILES1:S|^|${DOCSRCDIR1}/|} ${DOCSDIR}
-	@${MKDIR} ${DOCSDIR2}
-	${INSTALL_DATA} ${DOC_FILES2:S|^|${DOCSRCDIR2}/|} ${DOCSDIR2}
-.endif
+	@${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/mixxx
+	@${MKDIR} ${STAGEDIR}${PREFIX}/lib/mixxx/plugins/soundsource
+	@${MKDIR} ${STAGEDIR}${DOCSDIR}
+.for i in Mixxx-Manual.pdf README README.macro
+	(cd ${WRKSRC} && ${INSTALL_DATA} ${i} \
+		${STAGEDIR}${DOCSDIR})
+.endfor
+	@${MKDIR} ${STAGEDIR}${DOCSDIR}/doc/HID
+.for i in *.odt *.pdf
+	(cd ${WRKSRC}/doc/HID && ${INSTALL_DATA} ${i} \
+		${STAGEDIR}${DOCSDIR}/doc/HID)
+.endfor
 
 .include <bsd.port.mk>
diff -urN /usr/ports/audio/mixxx/files/patch-build__depends.py audio/mixxx/files/patch-build__depends.py
--- /usr/ports/audio/mixxx/files/patch-build__depends.py	2013-11-06 21:52:16.000000000 +0900
+++ audio/mixxx/files/patch-build__depends.py	2013-12-31 00:00:00.000000000 +0900
@@ -52,7 +52,7 @@
  
          if build.platform_is_windows and build.static_dependencies:
              build.env.Append(CPPDEFINES = 'TAGLIB_STATIC')
-@@ -782,10 +783,8 @@
+@@ -782,14 +783,9 @@
          if build.toolchain_is_gnu:
              # Default GNU Options
              # TODO(XXX) always generate debugging info?
@@ -61,9 +61,13 @@
              build.env.Append(CCFLAGS = '-Wextra')
 -            build.env.Append(CCFLAGS = '-g')
  
-             # Check that g++ is present (yeah, SCONS is a bit dumb here)
-             if os.system("which g++ > /dev/null"): #Checks for non-zero return code
-@@ -851,16 +850,19 @@
+-            # Check that g++ is present (yeah, SCONS is a bit dumb here)
+-            if os.system("which g++ > /dev/null"): #Checks for non-zero return code
+-                raise Exception("Did not find g++.")
+         elif build.toolchain_is_msvs:
+             # Validate the specified winlib directory exists
+             mixxx_lib_path = SCons.ARGUMENTS.get('winlib', '..\\..\\..\\mixxx-win32lib-msvc100-release')
+@@ -851,16 +847,19 @@
  
          elif build.platform_is_bsd:
              build.env.Append(CPPDEFINES='__BSD__')
@@ -91,7 +95,7 @@
  
          # Define for things that would like to special case UNIX (Linux or BSD)
          if build.platform_is_bsd or build.platform_is_linux:
-@@ -897,14 +899,14 @@
+@@ -897,14 +896,14 @@
          # Say where to find resources on Unix. TODO(XXX) replace this with a
          # RESOURCE_PATH that covers Win and OSX too:
          if build.platform_is_linux or build.platform_is_bsd:
diff -urN /usr/ports/audio/mixxx/files/patch-src__defs.h audio/mixxx/files/patch-src__defs.h
--- /usr/ports/audio/mixxx/files/patch-src__defs.h	1970-01-01 09:00:00.000000000 +0900
+++ audio/mixxx/files/patch-src__defs.h	2013-12-31 00:00:00.000000000 +0900
@@ -0,0 +1,17 @@
+--- src/defs.h.orig
++++ src/defs.h
+@@ -87,6 +87,8 @@
+ #define math_min(a,b)            (((a) < (b)) ? (a) : (b))
+ #endif
+ 
++#if !defined(__GNUC__)
++
+ // MSVC 2005/2008 needs these
+ #ifndef fmax
+ #define fmax math_max
+@@ -98,3 +100,5 @@
+ 
+ #endif
+ 
++#endif
++
diff -urN /usr/ports/audio/mixxx/pkg-plist audio/mixxx/pkg-plist
--- /usr/ports/audio/mixxx/pkg-plist	2013-11-06 21:52:16.000000000 +0900
+++ audio/mixxx/pkg-plist	2013-12-31 00:00:00.000000000 +0900
@@ -3,6 +3,11 @@
 %%WAVPACK%%lib/mixxx/plugins/soundsource/libsoundsourcewv.so
 lib/mixxx/plugins/vamp/libmixxxminimal.so
 share/applications/mixxx.desktop
+%%PORTDOCS%%%%DOCSDIR%%/Mixxx-Manual.pdf
+%%PORTDOCS%%%%DOCSDIR%%/README
+%%PORTDOCS%%%%DOCSDIR%%/README.macro
+%%PORTDOCS%%%%DOCSDIR%%/doc/HID/HID Packet Parser Documentation.odt
+%%PORTDOCS%%%%DOCSDIR%%/doc/HID/HID Packet Parser Documentation.pdf
 %%DATADIR%%/controllers/Akai MPD24.midi.xml
 %%DATADIR%%/controllers/Akai-LPD8-RK-scripts.js
 %%DATADIR%%/controllers/Akai-LPD8-RK.midi.xml
@@ -9950,7 +9955,10 @@
 @dirrm %%DATADIR%%/keyboard
 @dirrm %%DATADIR%%/controllers
 @dirrm %%DATADIR%%
+%%PORTDOCS%%@dirrm %%DOCSDIR%%/doc/HID
+%%PORTDOCS%%@dirrm %%DOCSDIR%%/doc
+%%PORTDOCS%%@dirrm %%DOCSDIR%%
 @dirrm lib/mixxx/plugins/vamp
-%%FAAD%%@dirrmtry lib/mixxx/plugins/soundsource
+@dirrmtry lib/mixxx/plugins/soundsource
 @dirrm lib/mixxx/plugins
 @dirrm lib/mixxx
>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20131231054631.fafe8f0cb54301394861adfe>