Any succesfull build on Darwin/OS-X?

Hi,
I am tring to build Moc 2.4.3 on my Intel MacBook, but the configure script exits after checking for iconv:

checking for iconv.h... yes
checking for iconv_open()... no
configure: error: No iconv library found.

I am almost sure that I have installed all the required dependencies via fink (a package manager for OS-X/Darwin) and I am building with the env:

CFLAGS=-I/sw/include
LDFLAGS=-L/sw/lib
CXXFLAGS=$CFLAGS
CPPFLAGS=$CXXFLAGS

as I have installed many libs using fink which puts everithing in /sw. As for iconv I have libiconv-1.11 and text-iconv-pm586-1.4 installed (I think that the latter is not needed...). gettext version is 0.10. I have rebuilt both twice to avoid the known circular dependencies problem, so they should work...

I don't knwo what to do now. Is there a way to build without iconv support or is there a way to make the automake chain be aware of my iconv lib?

Thanks in advance.

There is a known bug in MOC with this. MOC uses -export-dynamic gcc flag which is not understood by the compiler on OS-X. I don't know a solution. The problem is not related to any library, even if you have all required libraries you won't compile MOC :(

--
Damian Pietras - MOC developer

Thanks for the reply. I have tried building with the gcc-4.2 from the fink project, but it's useless: it's like building with the standard gcc-4.0 which is the dafault in OS-X 10.4... this is strange because this should be the standard gcc compiler and, according to its man pages, should support -export-dynamic. Maybe I need to rebuild everithing with this compiler...

mhh... that's a pitty :(.

Are there any alternative players you can use? I mean mplayer oder qtplay don't provide the same useability. Hmmh... is there no possible option to make an OS X build and to provide the binary?

this is really a pitty & hard to compile for yourself.

see my post above (sorry, placed it in the wrong order).
MOC is a lovely and adorable C console-program for GNU/Linux, BSD and freeBSD. It should be able to run on any free and closed console. (There is even a port for Midnight Commander to W*nDoze). So what about Darwin?
Obviously there is a package on Macports for osx. So there is at least hope for a working (please Darwin - a binary) package installer for (some/newer?) osx. Or a "how-to".

I will stick to my oldfashioned powerbook G4PPC instead and install Debian/Ubuntu6 for PPC - shipping with native MOC-support & apt-get ;.)

this is really a pitty.

Vel.XXX

FYI,

MOC works via Darwinports.
http://moc.darwinports.com/

I have it up and running on my Macbook with Leopard.
Life is good.

daloop.

First of all: Music On Console is a "Must Have" - in my opinion.
Thank you very much! I love this app..

At least the package MacPorts-maintainer for MUC should know how to compile this on osx (10.3x.-10.4x.-10.5x?).
The package description lists two patches.
macports command "port variants moc" lists: moc has the variant: universal (and others).
This means it should maybe compile on a PPC or Intel machine for PPC and Intel.

please have a look here: http://trac.macports.org/browser/trunk/dports/multimedia/moc/Portfile

I had a quick try on my outdatet hard&software (build 2003). But for me it did not work out
(powerbook g4, osx 10.3.9,
gcc --version
gcc (GCC) 3.3 20030304 Apple Computer, Inc. build 1495)
I installed MacPorts 1600 for Panther and simply typed: "sudo port install moc", but it stopped with ffmepeg:
"
---> Fetching ffmpeg
---> Verifying checksum(s) for ffmpeg
---> Extracting ffmpeg
---> Configuring ffmpeg
Error: Target org.macports.configure returned: configure failure: shell command " cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_multimedia_ffmpeg/work/trunk" && ./configure --prefix=/opt/local --disable-vhook --mandir=/opt/local/share/man --enable-shared --enable-pthreads --disable-mmx --cc=gcc-4.0 --enable-gpl --enable-liba52 " returned error 1
Command output: gcc-4.0 is unable to create an executable file.
If gcc-4.0 is a cross-compiler, use the --enable-cross-compile option.
Only do this if you know what cross compiling means.
C compiler test failed.
If you think configure made a mistake, make sure you are using the latest
version from SVN. If the latest version fails, report the problem to the
ffmpeg-user@mplayerhq.hu mailing list or IRC #ffmpeg on irc.freenode.net.
Include the log file "config.err" produced by configure as this will help
solving the problem.

Error: The following dependencies failed to build: ffmpeg jack libsndfile libxml2 autoconf help2man p5-locale-gettext perl5.8 m4 libxslt libid3tag libmad libsamplerate fftw-3 mpc
Error: Status 1 encountered during processing."

MacPorts tells this about MOC on my machine:

$ port search moc

moc multimedia/moc 2.4.3 MOC (music on console) is a console audio player for LINUX/UNIX

$ port variants moc
moc has the variants:
universal
autojack: Autostart jack on mocp init and close it on server stop
vorbis: Add support for ogg files
without_ffmpeg: Disable some decoders provided by ffmpeg
$ port deps moc
moc has library dependencies on:
libiconv
ncurses
ffmpeg
libmad
mpc
libid3tag
libsamplerate
jack
curl

FLAC is not mentioned?

If all else fails, I will try it with Q, the OS X port of the QEMU virtual machine & Puppy Linux (MOC works like a charm with Puppy Linux):
http://www.puppylinux.org/home/review
http://www.hackszine.com/blog/archive/2007/10/running_puppy_linux_inside_os.html

regards,

Vel.

I got moc to compile by changing
LDFLAGS="$LDFLAGS -export-dynamic"
to
LDFLAGS="$LDFLAGS ${export_dynamic_flag}
in the configure script. I still haven't figured out how to get it to run though; I get the message "dyld: lazy symbol binding failed: Symbol not found: _options_get_str".

I got rid of the "Symbol not found" error by adding -export-dynamic to the LDFLAGS in the Makefile after running configure.

Now I'm getting the error "No valid sound driver". I assume that means that I have to install JACK; are there any other options on OS X?

After installing JACK I can now run mocp, but when I try to play an ogg vorbis file I get the error "Unsupported file format: float little-endian (native)".

I changed the line
if (sound_params->fmt != SFMT_FLOAT) {
to
if (!(sound_params->fmt & SFMT_FLOAT)) {
in jack.c and moc appears to be playing right now. (I can't be sure since I'm using the jack dummy driver because I haven't gotten the coreaudio one to work yet.) Make sure that you set the jack sample rate to match the sample rate of your music files.

To recap, here's what I did:

-Install JackOSX version 0.75.
-Download the moc sources and change 'sound_params->format != SFMT_FLOAT' to '! ( sound_params->format & SFMT_FLOAT )' in jack.c
-Change the configure script so that it doesn't use the -export-dynamic flag when checking for required packages. There's probably a better way of doing this, but I commented out the 'LDFLAGS= "$LDFLAGS -export-dynamic"' line in configure and then manually added -export-dynamic to the Makefile's LDFLAGS after I ran configure.

I followed these steps and configure generates a makefile, but when I try to compile I get this error:

<br /> /usr/libexec/gcc/i686-apple-darwin8/4.0.1/ld: Undefined symbols:<br /> _jack_activate<br /> _jack_client_close<br /> _jack_client_new<br /> _jack_connect<br /> _jack_get_sample_rate<br /> _jack_on_shutdown<br /> _jack_port_get_buffer<br /> _jack_port_register<br /> _jack_port_unregister<br /> _jack_ringbuffer_create<br /> _jack_ringbuffer_free<br /> _jack_ringbuffer_read<br /> _jack_ringbuffer_read_advance<br /> _jack_ringbuffer_read_space<br /> _jack_ringbuffer_write<br /> _jack_ringbuffer_write_space<br /> _jack_set_error_function<br /> _jack_set_process_callback<br /> _jack_set_sample_rate_callback<br /> collect2: ld returned 1 exit status<br /> make[2]: *** [mocp] Error 1<br /> make[1]: *** [all-recursive] Error 1<br /> make: *** [all] Error 2<br />

Try adding --without-jack to the configure parameters if you don't need JACK.

--
Damian Pietras - MOC developer

Thanks for your reply, but I do need JACK unless there is some other sound driver that works with OS X. There is liboss in macports, but I don't know howto configure moc with it.