# Ardour3-3.1 building before porting.



## sossego (Jun 2, 2013)

Has anyone else worked on this since danfe ported 2.x to FreeBSD?

The errors include
Function dlopen cannot be found; yet, build && installworld has provided a libc function.
The directory paths for libraries include
/lib/
/usr/lib/
/usr/local/lib/

http://lists.ardour.org/pipermail/ardour-dev-ardour.org/2013-June/thread.html
http://lists.ardour.org/pipermail/ardour-dev-ardour.org/2013-May/006755.html


----------



## Exilized (Jun 3, 2013)

I found this page a couple of months ago, and have been waiting impatiently since.
Ardour 3.0 Beta 5 for FreeBSD

There also seem to be a bunch of YouTube videos on the subject. I do, however, most often prefer my third party software from ports, so I haven't tried it out.


----------



## sossego (Jun 4, 2013)

The waf script has support for PowerPC- probably on OSX- but that has changed. 
Building is a bit strange.


----------



## sossego (Jun 6, 2013)

```
--- wscript.orig
+++ wscript
@@ -519,8 +525,9 @@ def configure(conf):
     # Fix utterly braindead FLAC include path to not smash assert.h
     conf.env['INCLUDES_FLAC'] = []

-    conf.check_cc(function_name='dlopen', header_name='dlfcn.h', linkflags='-ldl', uselib_store='DL')
+    conf.check_cc(function_name='dlopen', header_name='dlfcn.h', linkflags='', uselib_store='DL')
     conf.check_cc(function_name='curl_global_init', header_name='curl/curl.h', linkflags='-lcurl', uselib_store='CURL')
+    conf.check_cc(function_name='backtrace_symbols', header_name='execinfo.h', linkflags='-lexecinfo', uselib_store='EXECINFO')

     # Tell everyone that this is a waf build
```
The code is a patch file that  I need. It was included as part of  the message body. I am unable to apply it.


----------



## sossego (Jun 6, 2013)

Seeing that this is a patch:

Do I change permissions on it to make it work?


----------



## sossego (Jun 13, 2013)

This is being worked on with the 3.x beta release by @nox/@nox@ as a template. Alexey (danfe) has also been asked for guidance on this. 

On Ardour version 2.x, Boost is version 1.48 while the current version in CURRENT is currently 1.52. 10.X uses Clang as the default compiler. 
	
	



```
USE_GCC= any
```
 may need to be added.  

Hey, I'm doing what I can with help from others. If you are interested - by "you" I mean anyone - let me know and I will switch the email conversation to the ports mailing list. 

The Makefile has been edited as shown above. No diff/patch has been created as of yet; and, this is being tested on i386 for the moment.


----------



## sossego (Jun 19, 2013)

Here is the modified Makefile for the beta release.


```
# New ports collection makefile for:	Ardour
# Date created:				2006-12-04
# Whom:			Edward Tomasz Napierala <trasz@pin.if.uz.zgora.pl>
#
# $FreeBSD: head/audio/ardour/Makefile 283695 2011-10-17 10:08:33Z bf $
#


PORTNAME=	ardour
PORTVERSION=	3.0b5r13072
CATEGORIES=	audio
MASTER_SITES=	http://www.linuxhomestudio.com.br/freebsd/distfiles/

MAINTAINER=	danfe@FreeBSD.org
COMMENT=	A multichannel digital audio workstation

DISTNAME= ${PORTNAME}-3.0-beta5-r13072

BUILDFLAGS_GCC= clang
CC=/usr/bin/clang
CPP=/usr/bin/clang-cpp
CXX=/usr/bin/clang++

USE_PYTHON=	yes
CONFIGURE_ARGS+=	--prefix=/usr/local \
			--also-include=/usr/local/include \
                        --also-libdir=/usr/local/lib \
                        --freebie \
                        --no-lv2 \
                        --denormal-exception \
			--dist-target=${DIST_TARGET}
LDFLAGS+=	-L${LOCALBASE}/lib -lexecinfo
USE_BZIP2=	yes
USE_GNOME=	gtk20 libxslt libgnomecanvas intltool pkgconfig
USE_GETTEXT=	yes
USE_LDCONFIG=	${PREFIX}/lib/ardour3 \
		${PREFIX}/lib/ardour3/panners \
		${PREFIX}/lib/ardour3/surfaces \
		${PREFIX}/lib/ardour3/vamp
MAKE_JOBS_SAFE= yes

CC=clang
CXX=clang
CPP=clang

PLIST_SUB=	DISTVERSION=${DISTVERSION}
CFLAGS+=	-I${LOCALBASE}/include
CXXFLAGS+=	-I${LOCALBASE}/include
# FIXME: C{,XX}FLAGS are currently ignored (because of the change to waf)
#CONFIGURE_ENV+= CC=${CC} CXX=${CXX} CFLAGS="${CFLAGS}" CCFLAGS="${CFLAGS}" \
#		CXXFLAGS="${CXXFLAGS}" \
#		LDFLAGS="${LDFLAGS}" LINKFLAGS="${LDFLAGS}"
CONFIGURE_ENV+= CC=${CC} CXX=${CXX} \
		LDFLAGS="${LDFLAGS}" LINKFLAGS="${LDFLAGS}"
OPTIONS=	DEBUG "Builds with debug symbols" on \
		OPTIMIZED_CFLAGS "Builds with compiler optimizations" off \
		VST "Enable VST plugins support" off

.include <bsd.port.pre.mk>


.if defined(WITH_VST)
CONFIGURE_ARGS+=	--vst
BUILD_DEPENDS+=	winegcc:${PORTSDIR}/emulators/wine \
		unzip:${PORTSDIR}/archivers/unzip \
		gsed:${PORTSDIR}/textproc/gsed
LIB_DEPENDS+=	wine.1:${PORTSDIR}/emulators/wine

PLIST_SUB+=	NO_VST="@comment "
PLIST_SUB+=	VST=""
.else
PLIST_SUB+=	NO_VST=""
PLIST_SUB+=	VST="@comment "
.endif

.if ${ARCH} == "sparc64"
BROKEN=		Does not install
.endif

# It seems this section had no effects to waf building. I've got problems with SSE because of waf's wscript (I patched to fit my needs and it needs a smart cleanup and reconfiguration so i386 SSE features become enabled BY DEFAULT as they are for 64bit plattaforms)
# Upstream uses these flags by default.
.if !defined(WITHOUT_OPTIMIZED_CFLAGS)
CFLAGS+=	-O3 -fomit-frame-pointer -ffast-math -fstrength-reduce -msse -mfpmath=sse -DUSE_XMMINTRIN

.if ${ARCH} == "amd64"
DIST_TARGET=	x86_64
CONFIGURE_ARGS+=	--fpu-optimization
.elif ${MACHINE_CPU:Msse}
DIST_TARGET=	i686
CONFIGURE_ARGS+=	--fpu-optimization
.else
DIST_TARGET=	${ARCH}
CONFIGURE_ARGS+=	--no-fpu-optimization
.endif

.else
CONFIGURE_ARGS+=	--no-fpu-optimization

.if ${ARCH} == "amd64"
DIST_TARGET=	x86_64
.else
DIST_TARGET=	${ARCH}
.endif

.endif

.if !defined(WITH_DEBUG)
CONFIGURE_ARGS+=	--optimize
.endif

CFLAGS:=	${CFLAGS:N-fno-strict-aliasing}

post-patch:
	${CP} ${FILESDIR}/svn_revision.cc ${WRKSRC}/libs/ardour

do-configure:
	(cd ${WRKSRC} && ${CONFIGURE_ENV} ${PYTHON_CMD} ./waf configure ${CONFIGURE_ARGS})

do-build:
	(cd ${WRKSRC} && ${MAKE_ENV} ${PYTHON_CMD} ./waf build -j ${MAKE_JOBS_NUMBER} )

post-build:
	(cd ${WRKSRC} && ${MAKE_ENV} ${PYTHON_CMD} ./waf i18n)

do-install:
	(cd ${WRKSRC} && ${PYTHON_CMD} ./waf install)

.include <bsd.port.post.mk>
```


The error of 
	
	



```
boost::system::generic not found
```
 had been noticed with Ardour 2.8.x in the Gentoo community. Since I am a terrible programmer, I am asking for help to properly insert the code into the wscript  and/or Makefile for ardour-3-beta.

The Makefile only deals with compiler flags for i386 and AMD64 builds. I have not started a PowerPC/POWER(64) build as of yet; so, please be patient.

There are also flags for debugging for rt, stl, and with valgrind. Other flags are available through the waf script. The build system is Python based and I suck at Python.


----------



## marcelbonnet (Jun 28, 2013)

*Calm down, Ardour 3.1 is almost ported!*



			
				Exilized said:
			
		

> I found this page a couple of months ago, and have been waiting impatiently since.
> Ardour 3.0 Beta 5 for FreeBSD
> 
> There also seem to be a bunch of YouTube videos on the subject. I do, however, most often prefer my third party software from ports, so I haven't tried it out.



You're talking about my beta port! What an honor. Give me a few more days and Ardour 3.1 will be finished. I'm cleaning up six new ports (new dependencies), then I'll send a PR to add them to the ports tree. After that, I'll clean up and send the Ardour 3 port too.

Cheers,


----------



## Exilized (Jun 29, 2013)

marcelbonnet said:
			
		

> You're talking about my beta port! What an honor. Give me a few more days and Ardour 3.1 will be finished. I'm cleaning up six new ports (new dependencies), then I'll send a PR to add them to the ports tree. After that, I'll clean up and send the Ardour 3 port too.
> 
> Cheers,



Lovely!   Given that _J_ack has become more stable, and MIDI-support, I'm really looking forward to it. 

From an audio point of view, the only software I need for FreeBSD now is something fractal-to-audio. I looked at the sources to Fractmus2000 when they were released, but lacking enough programming skills... :\

Thanks again!


----------



## sossego (Jul 1, 2013)

FractMus2000 is freeware and not open source; that in itself may be a problem. 
http://en.wikipedia.org/wiki/Algorithmic_music#Software has a list of software.


----------



## marcelbonnet (Jul 1, 2013)

Hi, there!

I submitted the PR PORTS/180171, which adds the new dependencies for Ardour 3.1 to work. So, as I said, I hope that in a few days I'll finish the final steps for audio/ardour3. I'll give you a sign when it*'*s done


----------



## sossego (Jul 6, 2013)

It's taking a bit of time for the port to be approved. I perused through your site and saw a bit of software referenced for audio.


----------



## sossego (Jul 30, 2013)

Bump! Bump!

I would like to help out with this.


----------



## marcelbonnet (Aug 1, 2013)

Hi. It is done.

Check this: http://www.monovox.org/freebsd/ardour/ardour-3.3 for instructions, screenshots and to download the ardour3 plus eight new ports I made while these ports are not committed to the tree.

The PRs opened:
- PR 180171, six new ports
- PR 180602, xjadeo, a new port
- PR 180987 [Ardour3 and Harvid ports]

By now, video timeline is not working due to a problem in a component of the xjadeo port (a new port). But, I'll fix it ASAP. I decided to announce the ports instead of waiting until this problem is corrected.


----------



## sossego (Aug 11, 2013)

Ardour3-3.3 has been built on 10.0 i386. It needs some tweaks. Please be aware that this may be due to my equipment and settings. Give me a little bit and I should- events not withstanding- have some packages up for 10.0.


----------

