These are my steps installing 'ejurgensen/forked-daapd' on my FreeBSD 10.1 amd64 using user root and editor joe. Feedback would be great!
export WORKDIR=/usr/local/src/forked-daapd
mkdir -p $WORKDIR
cd $WORKDIR
# maybe 'pkg install automake' ?
pkg install gmake libantlr3c autoconf libtool gettext gperf glib libconfuse libevent2 mxml libgcrypt taglib libunistring libplist openjdk8-jre libiconv avahi-app avahi sqlite3 yasm pkgconf
This OpenJDK implementation requires fdescfs(5) mounted on /dev/fd and procfs(5) mounted on /proc.
If you have not done it yet, please do the following:
mount -t fdescfs fdesc /dev/fd
mount -t procfs proc /proc
To make it permanent, you need the following lines in /etc/fstab:
fdesc /dev/fd fdescfs rw 0 0
proc /proc procfs rw 0 0
mkdir -p /usr/local/lib/oss/include/sys/
ln -sf /usr/include/sys/soundcard.h /usr/local/lib/oss/include/sys/
cd $WORKDIR
curl -O http://www.debian.co.il/debian/pool/main/liba/libavl/libavl_0.3.5.orig.tar.gz
tar xzvf libavl_0.3.5.orig.tar.gz
cd avl-0.3.5
There might be an error in the 'GNUmakefile' of AVL while installing with make. Here is the fix:
Change all
joe GNUmakefile
gmake CC=clang CFLAGS=-fPIC
gmake install
cd $WORKDIR
mkdir antlr3
cd antlr3
curl -O https://raw.githubusercontent.com/antlr/website-antlr3/gh-pages/download/antlr-3.4-complete.jar
mv antlr-3.4-complete.jar /usr/local/share/java/antlr-3.4-complete.jar
cd $WORKDIR
cd antlr3
echo '#!/bin/sh' > antlr3
echo 'export CLASSPATH' >> antlr3
echo 'CLASSPATH=$CLASSPATH:/usr/local/share/java/antlr-3.4-complete.jar:/usr/share/java /usr/local/openjdk8/bin/java org.antlr.Tool $*' >> antlr3
#echo exec /usr/local/bin/java -cp /usr/local/share/java/antlr-3.3-complete.jar org.antlr.Tool \"\$@\" >> antlr3
chmod u+x antlr3
mv antlr3 /usr/local/bin/antlr3
cd $WORKDIR
#curl -O http://www.antlr3.org/download/C/libantlr3c-3.2.tar.gz
curl -O https://raw.githubusercontent.com/antlr/website-antlr3/gh-pages/download/C/libantlr3c-3.4.tar.gz
tar xzvf libantlr3c-3.4.tar.gz
cd libantlr3c-3.4
./configure --enable-64bit
gmake
gmake install
If you might want aac support. Grab a cup of coffee - this might take a while.
# maybe 'pkg remove automake' ?
cd /usr/ports/multimedia/ffmpeg
make config
make install clean
cd /usr/ports/multimedia/libav
make config
make install clean
cd $WORKDIR
git clone https://github.com/ejurgensen/forked-daapd.git
cd forked-daapd
autoreconf -iv -Wno-portability
CFLAGS="-march=native -O2 -pipe" LDFLAGS=-L/usr/local/lib CPPFLAGS=-I/usr/local/include ./configure --localstatedir=/var --with-oss4=/usr/local/lib/oss/include/sys --enable-itunes --enable-lastfm
gmake
gmake install
cp /usr/local/etc/forked-daapd.conf /usr/local/etc/forked-daapd.conf.sample
joe /usr/local/etc/forked-daapd.conf
useradd daapd
chown daapd:daapd /var/cache/forked-daapd
joe /etc/rc.conf
dbus_enable="YES"
avahi_daemon_enable="YES"
forked_daapd_enable="YES"
joe /usr/local/etc/rc.d/forked-daapd
chmod u+x /usr/local/etc/rc.d/forked-daapd
Hi please see below the necessary changes, this is on the assumption that you followed the section above, please note that there are 1 "Makefile.am" the 1 that is located in the main build folder and the 1 that is located in the "src" folder off the main build folder.
Regards
Mark
Makefile.am
Find and edit the "Makefile.am" with the following changes :-
You will have the below in your current file (Starting at LINE 5) :-
EXTRA_DIST = configure
SUBDIRS = sqlext src
**Change the current entries to the below and add the extra lines :-**s :-
EXTRA_DIST = m4/gnulib-cache.m4 configure
SUBDIRS = lib sqlext src
AM_CPPFLAGS = -I$(top_builddir)/lib -I$(top_srcdir)/lib
AM_LDFLAGS = -Ilib
LDADD = $(top_srcdir)/lib/libgnu.a
configure.ac
Find and edit the "configure.ac" with the following changes :-
You will have the below in your current file (Starting at LINE 3):-
AC_INIT([forked-daapd], [23.4])
AC_CONFIG_SRCDIR([config.h.in])
AC_CONFIG_MACRO_DIR([m4])
AC_CONFIG_HEADERS([config.h])
AM_INIT_AUTOMAKE([foreign -Wno-portability subdir-objects])
Add the changes so that it matches below (1 extra line) :-
AC_INIT([forked-daapd], [23.4])
AC_CONFIG_SRCDIR([config.h.in])
AC_CONFIG_MACRO_DIR([m4])
AC_CONFIG_HEADERS([config.h])
AC_CONFIG_FILES([lib/Makefile])
AM_INIT_AUTOMAKE([foreign -Wno-portability subdir-objects])
You will have the below in your current file (Starting at LINE 11):-
dnl Checks for programs.
AC_PROG_CC
AM_PROG_CC_C_O
LT_INIT([disable-static])
Add the changes so that it matches below (1 extra line) :-
dnl Checks for programs.
AC_PROG_CC
gl_EARLY
AM_PROG_CC_C_O
LT_INIT([disable-static])
You will have the below in your current file (Starting at LINE 37):-
CFLAGS="$CFLAGS -Wall -D_LARGEFILE_SOURCE"
AC_CHECK_HEADERS([sys/wait.h])
AC_CHECK_HEADERS([sys/param.h])
AC_CHECK_HEADERS([sys/select.h])
AC_CHECK_HEADERS([dirent.h])
AC_CHECK_HEADERS([regex.h])
Add the changes so that it matches below (3 extra lines, including the blank line) :-
CFLAGS="$CFLAGS -Wall -D_LARGEFILE_SOURCE"
dnl # For gnulib
gl_INIT
AC_CHECK_HEADERS([sys/wait.h])
AC_CHECK_HEADERS([sys/param.h])
AC_CHECK_HEADERS([sys/select.h])
AC_CHECK_HEADERS([dirent.h])
AC_CHECK_HEADERS([regex.h])
src/Makefile.am
You will have the below in your current file (Starting at LINE 66):-
@ZLIB_LIBS@ @AVAHI_LIBS@ @SQLITE3_LIBS@ @LIBAV_LIBS@
@CONFUSE_LIBS@ @LIBEVENT_LIBS@
@MINIXML_LIBS@ @ANTLR3C_LIBS@ @LIBPLIST_LIBS@
@LIBGCRYPT_LIBS@ @GPG_ERROR_LIBS@ @ALSA_LIBS@ @LIBUNISTRING@ @SPOTIFY_LIBS@
@LIBCURL_LIBS@
Add the changes so that it matches below (1 extra line) :-
*$(top_srcdir)/lib/libgnu.a *
@ZLIB_LIBS@ @AVAHI_LIBS@ @SQLITE3_LIBS@ @LIBAV_LIBS@
@CONFUSE_LIBS@ @LIBEVENT_LIBS@
@MINIXML_LIBS@ @ANTLR3C_LIBS@ @LIBPLIST_LIBS@
@LIBGCRYPT_LIBS@ @GPG_ERROR_LIBS@ @ALSA_LIBS@ @LIBUNISTRING@ @SPOTIFY_LIBS@
@LIBCURL_LIBS@