installing shell-fm on mac os x

Coding
Mac OS X
Author

Vinh Nguyen

Published

August 22, 2009

i blogged recently that i couldn't compile shell-fm on mac os x. hopped #shell-fm on the freenode, and talked to the author himself. the error i got was:

cc -o shell-fm -D__darwin__ -Os -Wall -W -I./include/ -DLIBAO -I/opt/local/include -I/opt/local/include main.c -L/opt/local/lib -lmad -lm -Wl,-framework -Wl,AudioUnit -L/opt/local/lib -lao -lpthread libshellfm.a
ld: in libshellfm.a, archive has no table of contents
collect2: ld returned 1 exit status
make[1]: *** [shell-fm] Error 1
make: *** [shell-fm] Error 2

he suggested i go to the source and do:

cc -o shell-fm -D__darwin__ -Os -Wall -W -I./include/ -DLIBAO -I/opt/local/include -I/opt/local/include -L/opt/local/lib -lmad -lm -Wl,-framework -Wl,AudioUnit -L/opt/local/lib -lao -lpthread *.c

that is, remove the main.c in the middle and libshellfm.a to *.c

that did the work and i got a working binary in the source folder. ran make in the manual folder, and installed them:

sudo cp ./source/shell-fm /usr/bin
sudo cp ./manual/shell-fm.1 /usr/share/man/man1/

shell-fm is working now.

ALSO: according to this site, i modified play.c before compiling in v .6 as follows:

{c} // johnaman 05/30/2009 modified per http://shell-fm.wikidot.com/hack:extern-tee-backup // // replace this line (2nd find for “haskey” in play.c ) // if(freetrack && strlen(freetrack) > 0 && haskey(& rc, “download”)) { if( /freetrack && strlen(freetrack) > 0 && / haskey(& rc, “download”)) { ```