zLinux‎ > ‎

Build Squeezeplay on 14.1

Squeezeplay 7.8 on Slackware 14.1
Easier then expected. Default install of 14.1, no updates....

Downloaded Squeezeplay from:
svn co http://svn.slimdevices.com/repos/jive/7.8/trunk/squeezeplay

1.
---------------SNIP
EENTRANT -DHAVE_LINUX_VERSION_H -c ./src/video/SDL_RLEaccel.c -o build/SDL_RLEaccel.o
./src/video/SDL_RLEaccel.c: Assembler messages:
./src/video/SDL_RLEaccel.c:831: Error: operand type mismatch for `movq'
./src/video/SDL_RLEaccel.c:831: Error: operand type mismatch for `movq'
./src/video/SDL_RLEaccel.c:831: Error: operand type mismatch for `movq'
./src/video/SDL_RLEaccel.c:831: Error: operand type mismatch for `movq'
./src/video/SDL_RLEaccel.c:930: Error: operand type mismatch for `movq'
./src/video/SDL_RLEaccel.c:930: Error: operand type mismatch for `movq'
./src/video/SDL_RLEaccel.c:930: Error: operand type mismatch for `movq'
./src/video/SDL_RLEaccel.c:930: Error: operand type mismatch for `movq'
make[1]: *** [build/SDL_RLEaccel.lo] Error 1
make[1]: Leaving directory `/home/XXX/squeezeplay/src/SDL-1.2.13'
make: *** [sdl] Error 2
---------------SNIP

Edit the file:
SDL-1.2.13/src/video/mmx.h

About line 351 replace =X with =m
---------------SNIP
#define    mmx_r2m(op, reg, mem) \
    __asm__ __volatile__ (#op " %%" #reg ", %0" \
-                  : "=X" (mem) \
+                  : "=m" (mem) \
                  : /* nothing */ )
---------------SNIP
2.
---------------SNIP
rc/jive_debug.c: In function 'jiveL_perfhook':
src/jive_debug.c:100:22: error: argument to 'sizeof' in 'memset' call is the same expression as the destination; did you mean to dereference it? [-Werror=sizeof-pointer-memaccess]
  memset(hd, 0, sizeof(hd));
                      ^
cc1: all warnings being treated as errors
---------------SNIP
edit File /home/xxx/squeezeplay/src/squeezeplay/src/jive_debug.c
Comment out the bit concerning the error about line 100
---------------SNIP
/*    memset(hd, 0, sizeof(hd));
    hd->hook_threshold = (lua_tointeger(L, 1) * CLOCKS_PER_SEC) / 1000;
    hd->kill_threshold = (luaL_optinteger(L, 2, 0) * CLOCKS_PER_SEC) / 1000;
*/
---------------SNIP


3.
---------------SNIP
,--rpath -Wl,/usr/lib64/../lib64
/usr/lib64/libaudiofile.so: undefined reference to `FLAC__stream_encoder_finish'
/usr/lib64/libaudiofile.so: undefined reference to `FLAC__stream_encoder_process_interleaved'
/usr/lib64/libaudiofile.so: undefined reference to `FLAC__stream_encoder_set_channels'
/usr/lib64/libaudiofile.so: undefined reference to `FLAC__stream_encoder_new'
/usr/lib64/libaudiofile.so: undefined reference to `FLAC__stream_encoder_init_stream'
/usr/lib64/libaudiofile.so: undefined reference to `FLAC__stream_encoder_set_sample_rate'
/usr/lib64/libaudiofile.so: undefined reference to `FLAC__stream_encoder_delete'
/usr/lib64/libaudiofile.so: undefined reference to `FLAC__stream_encoder_set_bits_per_sample'
collect2: error: ld returned 1 exit status
make[2]: *** [jive] Error 1
make[2]: Leaving directory `/home/XXX/squeezeplay/src/squeezeplay'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/home/XXX/squeezeplay/src/squeezeplay'
make: *** [squeezeplay] Error 2
bash-4.2# rm -r /home/XXX/squeezeplay/build/
---------------SNIP
FLAC Errors, FLAC is already installed so I just comment this out of the /home/XXX/squeezeplay/src/Makefile.Linux file
---------------SNIP
# flac
##flac-1.2.1/Makefile:
##    cd flac-1.2.1; ./configure --disable-xmms-plugin --host=${HOST} --target=${TARGET} --prefix=${PREFIX}

##flac: flac-1.2.1/Makefile
##    cd flac-1.2.1; make && make install
---------------SNIP

Now Make worked great and Squeezeplay works.
Comments