[PD] build Pd from source on Raspberry Pi

Miller Puckette msp at ucsd.edu
Thu May 23 05:09:55 CEST 2013


Looks like x_array.c and x_scalar.c were missing from the file list in
Makefile.am (I just added these files) - try to update the source and
recompile now...

cheers
Miller

On Thu, May 23, 2013 at 03:03:47AM +0100, Julian Brooks wrote:
> Hi,
> 
> Been wanting to do this for a while but it always keeps failing so could do
> with some tips.
> 
> I have the source from git
> 
> git clone git://pure-data.git.sourceforge.net/gitroot/pure-data/pure-data
> 
> Then (as it's a minimal RPi image) have installed
> automake (and dependencies: autoconf, autotools-dev, m4, libtool, gettext)
> 
> Also added libasound2-dev and tk8.5-dev (not sure if tk required?)
> 
> When running
> 
> ./autogen.sh
> then
> ./configure
> and finally
> make (I ran make previously so much shorter bit before it fails.
> 
> I get this:
> 
> autoreconf: Entering directory `.'
> autoreconf: configure.ac: not using Gettext
> autoreconf: running: aclocal --force -I m4/generated -I m4
> ^[[B^[[Bautoreconf: configure.ac: tracing
> autoreconf: configure.ac: adding subdirectory portaudio to autoreconf
> autoreconf: Entering directory `portaudio'
> autoreconf: configure.in: not using Gettext
> autoreconf: running: aclocal --force
> autoreconf: configure.in: tracing
> autoreconf: configure.in: subdirectory bindings/cpp not present
> autoreconf: running: libtoolize --copy --force
> libtoolize: putting auxiliary files in `.'.
> libtoolize: copying file `./ltmain.sh'
> libtoolize: Consider adding `AC_CONFIG_MACRO_DIR([m4])' to configure.in and
> libtoolize: rerunning libtoolize, to keep the correct libtool macros
> in-tree.
> libtoolize: Consider adding `-I m4' to ACLOCAL_AMFLAGS in Makefile.am.
> autoreconf: running: /usr/bin/autoconf --force
> autoreconf: configure.in: not using Autoheader
> autoreconf: configure.in: not using Automake
> autoreconf: Leaving directory `portaudio'
> libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, `m4/config'.
> libtoolize: copying file `m4/config/ltmain.sh'
> libtoolize: putting macros in AC_CONFIG_MACRO_DIR, `m4/generated'.
> libtoolize: copying file `m4/generated/libtool.m4'
> libtoolize: copying file `m4/generated/ltoptions.m4'
> libtoolize: copying file `m4/generated/ltsugar.m4'
> libtoolize: copying file `m4/generated/ltversion.m4'
> libtoolize: copying file `m4/generated/lt~obsolete.m4'
> autoreconf: configure.ac: not using Autoheader
> autoreconf: running: automake --add-missing --copy --force-missing
> autoreconf: Leaving directory `.'
> root at BitChime:~/pure-data# ./configure
> checking for a BSD-compatible install... /usr/bin/install -c
> checking whether build environment is sane... yes
> checking for a thread-safe mkdir -p... /bin/mkdir -p
> checking for gawk... no
> checking for mawk... mawk
> checking whether make sets $(MAKE)... yes
> checking build system type... armv6l-unknown-linux-gnueabihf
> checking host system type... armv6l-unknown-linux-gnueabihf
> configure: iPhone SDK only available for arm-apple-darwin hosts, skipping
> tests
> configure: Android SDK only available for arm-linux hosts, skipping tests
> checking for style of include used by make... GNU
> checking for gcc... gcc
> checking whether the C compiler works... yes
> checking for C compiler default output file name... a.out
> checking for suffix of executables...
> checking whether we are cross compiling... no
> checking for suffix of object files... o
> checking whether we are using the GNU C compiler... yes
> checking whether gcc accepts -g... yes
> checking for gcc option to accept ISO C89... none needed
> checking dependency style of gcc... gcc3
> checking how to print strings... printf
> checking for a sed that does not truncate output... /bin/sed
> checking for grep that handles long lines and -e... /bin/grep
> checking for egrep... /bin/grep -E
> checking for fgrep... /bin/grep -F
> checking for ld used by gcc... /usr/bin/ld
> checking if the linker (/usr/bin/ld) is GNU ld... yes
> checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
> checking the name lister (/usr/bin/nm -B) interface... BSD nm
> checking whether ln -s works... yes
> checking the maximum length of command line arguments... 1572864
> checking whether the shell understands some XSI constructs... yes
> checking whether the shell understands "+="... yes
> checking how to convert armv6l-unknown-linux-gnueabihf file names to
> armv6l-unknown-linux-gnueabihf format... func_convert_file_noop
> checking how to convert armv6l-unknown-linux-gnueabihf file names to
> toolchain format... func_convert_file_noop
> checking for /usr/bin/ld option to reload object files... -r
> checking for objdump... objdump
> checking how to recognize dependent libraries... pass_all
> checking for dlltool... dlltool
> checking how to associate runtime and link libraries... printf %s\n
> checking for ar... ar
> checking for archiver @FILE support... @
> checking for strip... strip
> checking for ranlib... ranlib
> checking command to parse /usr/bin/nm -B output from gcc object... ok
> checking for sysroot... no
> checking for mt... mt
> checking if mt is a manifest tool... no
> checking how to run the C preprocessor... gcc -E
> checking for ANSI C header files... yes
> checking for sys/types.h... yes
> checking for sys/stat.h... yes
> checking for stdlib.h... yes
> checking for string.h... yes
> checking for memory.h... yes
> checking for strings.h... yes
> checking for inttypes.h... yes
> checking for stdint.h... yes
> checking for unistd.h... yes
> checking for dlfcn.h... yes
> checking for objdir... .libs
> checking if gcc supports -fno-rtti -fno-exceptions... no
> checking for gcc option to produce PIC... -fPIC -DPIC
> checking if gcc PIC flag -fPIC -DPIC works... yes
> checking if gcc static flag -static works... yes
> checking if gcc supports -c -o file.o... yes
> checking if gcc supports -c -o file.o... (cached) yes
> checking whether the gcc linker (/usr/bin/ld) supports shared libraries...
> yes
> checking whether -lc should be explicitly linked in... no
> checking dynamic linker characteristics... GNU/Linux ld.so
> checking how to hardcode library paths into programs... immediate
> checking for shl_load... no
> checking for shl_load in -ldld... no
> checking for dlopen... no
> checking for dlopen in -ldl... yes
> checking whether a program can dlopen itself... yes
> checking whether a statically linked program can dlopen itself... no
> checking whether stripping libraries is possible... yes
> checking if libtool supports shared libraries... yes
> checking whether to build shared libraries... yes
> checking whether to build static libraries... yes
> checking for gcc... (cached) gcc
> checking whether we are using the GNU C compiler... (cached) yes
> checking whether gcc accepts -g... (cached) yes
> checking for gcc option to accept ISO C89... (cached) none needed
> checking dependency style of gcc... (cached) gcc3
> checking for g++... no
> checking for c++... no
> checking for gpp... no
> checking for aCC... no
> checking for CC... no
> checking for cxx... no
> checking for cc++... no
> checking for cl.exe... no
> checking for FCC... no
> checking for KCC... no
> checking for RCC... no
> checking for xlC_r... no
> checking for xlC... no
> checking whether we are using the GNU C++ compiler... no
> checking whether g++ accepts -g... no
> checking dependency style of g++... none
> checking whether make sets $(MAKE)... (cached) yes
> checking whether ln -s works... yes
> checking for dlopen in -ldl... (cached) yes
> checking for cos in -lm... yes
> checking for pthread_create in -lpthread... yes
> checking for ANSI C header files... (cached) yes
> checking sys/soundcard.h usability... yes
> checking sys/soundcard.h presence... yes
> checking for sys/soundcard.h... yes
> checking CoreAudio/CoreAudio.h usability... no
> checking CoreAudio/CoreAudio.h presence... no
> checking for CoreAudio/CoreAudio.h... no
> checking for snd_pcm_info in -lasound... yes
> checking for size_t... yes
> checking for working alloca.h... yes
> checking for alloca... yes
> checking fcntl.h usability... yes
> checking fcntl.h presence... yes
> checking for fcntl.h... yes
> checking limits.h usability... yes
> checking limits.h presence... yes
> checking for limits.h... yes
> checking malloc.h usability... yes
> checking malloc.h presence... yes
> checking for malloc.h... yes
> checking netdb.h usability... yes
> checking netdb.h presence... yes
> checking for netdb.h... yes
> checking netinet/in.h usability... yes
> checking netinet/in.h presence... yes
> checking for netinet/in.h... yes
> checking stddef.h usability... yes
> checking stddef.h presence... yes
> checking for stddef.h... yes
> checking for stdlib.h... (cached) yes
> checking for string.h... (cached) yes
> checking sys/ioctl.h usability... yes
> checking sys/ioctl.h presence... yes
> checking for sys/ioctl.h... yes
> checking sys/param.h usability... yes
> checking sys/param.h presence... yes
> checking for sys/param.h... yes
> checking sys/socket.h usability... yes
> checking sys/socket.h presence... yes
> checking for sys/socket.h... yes
> checking for sys/soundcard.h... (cached) yes
> checking sys/time.h usability... yes
> checking sys/time.h presence... yes
> checking for sys/time.h... yes
> checking sys/timeb.h usability... yes
> checking sys/timeb.h presence... yes
> checking for sys/timeb.h... yes
> checking for unistd.h... (cached) yes
> checking for int16_t... yes
> checking for int32_t... yes
> checking for off_t... yes
> checking for pid_t... yes
> checking for size_t... (cached) yes
> checking for error_at_line... yes
> checking vfork.h usability... no
> checking vfork.h presence... no
> checking for vfork.h... no
> checking for fork... yes
> checking for vfork... yes
> checking for working fork... yes
> checking for working vfork... (cached) yes
> checking for stdlib.h... (cached) yes
> checking for GNU libc compatible malloc... yes
> checking for stdlib.h... (cached) yes
> checking for GNU libc compatible realloc... yes
> checking return type of signal handlers... void
> checking for dup2... yes
> checking for floor... no
> checking for getcwd... yes
> checking for gethostbyname... yes
> checking for gettimeofday... yes
> checking for memmove... yes
> checking for memset... yes
> checking for pow... no
> checking for regcomp... yes
> checking for select... yes
> checking for socket... yes
> checking for sqrt... no
> checking for strchr... yes
> checking for strerror... yes
> checking for strrchr... yes
> checking for strstr... yes
> checking for strtol... yes
> checking for msgfmt... yes
> configure: creating ./config.status
> config.status: creating Makefile
> config.status: creating asio/Makefile
> config.status: creating man/Makefile
> config.status: creating portmidi/Makefile
> config.status: creating tcl/Makefile
> config.status: creating po/Makefile
> config.status: creating src/Makefile
> config.status: creating extra/Makefile
> config.status: creating extra/bonk~/GNUmakefile
> config.status: creating extra/choice/GNUmakefile
> config.status: creating extra/expr~/GNUmakefile
> config.status: creating extra/fiddle~/GNUmakefile
> config.status: creating extra/loop~/GNUmakefile
> config.status: creating extra/lrshift~/GNUmakefile
> config.status: creating extra/pd~/GNUmakefile
> config.status: creating extra/pique/GNUmakefile
> config.status: creating extra/sigmund~/GNUmakefile
> config.status: creating extra/stdout/GNUmakefile
> config.status: creating pd.pc
> config.status: executing depfiles commands
> config.status: executing libtool commands
> === configuring in portaudio (/root/pure-data/portaudio)
> configure: running /bin/bash ./configure --disable-option-checking
> '--prefix=/usr/local'  --cache-file=/dev/null --srcdir=.
> checking for a thread-safe mkdir -p... /bin/mkdir -p
> checking build system type... armv6l-unknown-linux-gnueabihf
> checking host system type... armv6l-unknown-linux-gnueabihf
> checking target system type... armv6l-unknown-linux-gnueabihf
> checking for gcc... gcc
> checking whether the C compiler works... yes
> checking for C compiler default output file name... a.out
> checking for suffix of executables...
> checking whether we are cross compiling... no
> checking for suffix of object files... o
> checking whether we are using the GNU C compiler... yes
> checking whether gcc accepts -g... yes
> checking for gcc option to accept ISO C89... none needed
> checking how to print strings... printf
> checking for a sed that does not truncate output... /bin/sed
> checking for grep that handles long lines and -e... /bin/grep
> checking for egrep... /bin/grep -E
> checking for fgrep... /bin/grep -F
> checking for ld used by gcc... /usr/bin/ld
> checking if the linker (/usr/bin/ld) is GNU ld... yes
> checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
> checking the name lister (/usr/bin/nm -B) interface... BSD nm
> checking whether ln -s works... yes
> checking the maximum length of command line arguments... 1572864
> checking whether the shell understands some XSI constructs... yes
> checking whether the shell understands "+="... yes
> checking how to convert armv6l-unknown-linux-gnueabihf file names to
> armv6l-unknown-linux-gnueabihf format... func_convert_file_noop
> checking how to convert armv6l-unknown-linux-gnueabihf file names to
> toolchain format... func_convert_file_noop
> checking for /usr/bin/ld option to reload object files... -r
> checking for objdump... objdump
> checking how to recognize dependent libraries... pass_all
> checking for dlltool... dlltool
> checking how to associate runtime and link libraries... printf %s\n
> checking for ar... ar
> checking for archiver @FILE support... @
> checking for strip... strip
> checking for ranlib... ranlib
> checking for gawk... no
> checking for mawk... mawk
> checking command to parse /usr/bin/nm -B output from gcc object... ok
> checking for sysroot... no
> checking for mt... mt
> checking if mt is a manifest tool... no
> checking how to run the C preprocessor... gcc -E
> checking for ANSI C header files... yes
> checking for sys/types.h... yes
> checking for sys/stat.h... yes
> checking for stdlib.h... yes
> checking for string.h... yes
> checking for memory.h... yes
> checking for strings.h... yes
> checking for inttypes.h... yes
> checking for stdint.h... yes
> checking for unistd.h... yes
> checking for dlfcn.h... yes
> checking for objdir... .libs
> checking if gcc supports -fno-rtti -fno-exceptions... no
> checking for gcc option to produce PIC... -fPIC -DPIC
> checking if gcc PIC flag -fPIC -DPIC works... yes
> checking if gcc static flag -static works... yes
> checking if gcc supports -c -o file.o... yes
> checking if gcc supports -c -o file.o... (cached) yes
> checking whether the gcc linker (/usr/bin/ld) supports shared libraries...
> yes
> checking whether -lc should be explicitly linked in... no
> checking dynamic linker characteristics... GNU/Linux ld.so
> checking how to hardcode library paths into programs... immediate
> checking whether stripping libraries is possible... yes
> checking if libtool supports shared libraries... yes
> checking whether to build shared libraries... yes
> checking whether to build static libraries... yes
> checking for a BSD-compatible install... /usr/bin/install -c
> checking whether ln -s works... yes
> checking for ar... /usr/bin/ar
> checking whether byte ordering is bigendian... no
> checking for snd_pcm_open in -lasound... yes
> checking for HPI_SubSysCreate in -lhpi... no
> checking sys/soundcard.h usability... yes
> checking sys/soundcard.h presence... yes
> checking for sys/soundcard.h... yes
> checking linux/soundcard.h usability... yes
> checking linux/soundcard.h presence... yes
> checking for linux/soundcard.h... yes
> checking machine/soundcard.h usability... no
> checking machine/soundcard.h presence... no
> checking for machine/soundcard.h... no
> checking for _oss_ioctl in -lossaudio... no
> checking for pkg-config... /usr/bin/pkg-config
> checking pkg-config is at least version 0.9.0... yes
> checking for JACK... no
> checking size of short... 2
> checking size of int... 4
> checking size of long... 4
> checking for clock_gettime in -lrt... yes
> checking for clock_gettime... yes
> checking for nanosleep... yes
> checking for pthread_create in -lpthread... yes
> configure: creating ./config.status
> config.status: creating Makefile
> config.status: executing libtool commands
> 
> Configuration summary:
> 
>   Target ...................... armv6l-unknown-linux-gnueabihf
>   C++ bindings ................ no
>   Debug output ................ no
> 
>   ALSA ........................ yes
>   ASIHPI ...................... no
> 
>   OSS ......................... yes
>   JACK ........................ no
> 
> root at BitChime:~/pure-data# make
> make -C po all
> make[1]: Entering directory `/root/pure-data/po'
> make[1]: Nothing to be done for `all'.
> make[1]: Leaving directory `/root/pure-data/po'
> make  all-recursive
> make[1]: Entering directory `/root/pure-data'
> Making all in portaudio
> make[2]: Entering directory `/root/pure-data/portaudio'
> if test -n "" ; then for dir in ""; do make -C $dir all; done ; fi
> make[2]: Leaving directory `/root/pure-data/portaudio'
> Making all in src
> make[2]: Entering directory `/root/pure-data/src'
> /bin/bash ../libtool --tag=CC   --mode=link gcc -DPD
> -DINSTALL_PREFIX=\"/usr/local\" -DUSEAPI_ALSA  -DUSEAPI_OSS
> -DUSEAPI_PORTAUDIO  -I../portaudio/include    -O6 -funroll-loops
> -fomit-frame-pointer  -export-dynac -lm  -o pd pd-g_canvas.o pd-g_graph.o
> pd-g_text.o pd-g_rtext.o pd-g_array.o pd-g_template.o pd-g_io.o
> pd-g_scalar.o pd-g_traversal.o pd-g_guiconnect.o pd-g_readwrite.o
> pd-g_editor.o pd-g_all_guis.o pd-g_bang.o -g_hdial.o pd-g_hslider.o
> pd-g_mycanvas.o pd-g_numbox.o pd-g_toggle.o pd-g_vdial.o pd-g_vslider.o
> pd-g_vumeter.o pd-m_pd.o pd-m_class.o pd-m_obj.o pd-m_atom.o pd-m_memory.o
> pd-m_binbuf.o pd-m_conf.o pd-m_glob.o pm_sched.o pd-s_main.o pd-s_inter.o
> pd-s_file.o pd-s_print.o pd-s_loader.o pd-s_path.o pd-s_entry.o
> pd-s_audio.o pd-s_midi.o pd-s_utf8.o pd-d_ugen.o pd-d_ctl.o
> pd-d_arithmetic.o pd-d_osc.o pd-d_filter.o pd-d_dac.od-d_misc.o pd-d_math.o
> pd-d_fft.o pd-d_array.o pd-d_global.o pd-d_delay.o pd-d_resample.o
> pd-x_arithmetic.o pd-x_connective.o pd-x_interface.o pd-x_midi.o
> pd-x_misc.o pd-x_time.o pd-x_acoustics.o pd-x_net.o pd-x_ist.o pd-x_gui.o
> pd-x_list.o pd-d_soundfile.o pd-s_audio_alsa.o pd-s_audio_alsamm.o
> pd-s_midi_alsa.o  pd-d_fft_mayer.o pd-d_fftroutine.o  pd-s_audio_oss.o
> pd-s_midi_oss.o pd-s_audio_pa.o pd-s_audio_paring.o     -sound
> ../portaudio/lib/libportaudio.la   -lpthread -ldl
> libtool: link: gcc -DPD -DINSTALL_PREFIX=\"/usr/local\" -DUSEAPI_ALSA
> -DUSEAPI_OSS -DUSEAPI_PORTAUDIO -I../portaudio/include -O6 -funroll-loops
> -fomit-frame-pointer -o .libs/pd pd-g_canvas.o pd-g_graph.o pd-g_texo
> pd-g_rtext.o pd-g_array.o pd-g_template.o pd-g_io.o pd-g_scalar.o
> pd-g_traversal.o pd-g_guiconnect.o pd-g_readwrite.o pd-g_editor.o
> pd-g_all_guis.o pd-g_bang.o pd-g_hdial.o pd-g_hslider.o pd-g_mycanvas.o
> pd-g_nbox.o pd-g_toggle.o pd-g_vdial.o pd-g_vslider.o pd-g_vumeter.o
> pd-m_pd.o pd-m_class.o pd-m_obj.o pd-m_atom.o pd-m_memory.o pd-m_binbuf.o
> pd-m_conf.o pd-m_glob.o pd-m_sched.o pd-s_main.o pd-s_inter.o pd-s_file.o
> ps_print.o pd-s_loader.o pd-s_path.o pd-s_entry.o pd-s_audio.o pd-s_midi.o
> pd-s_utf8.o pd-d_ugen.o pd-d_ctl.o pd-d_arithmetic.o pd-d_osc.o
> pd-d_filter.o pd-d_dac.o pd-d_misc.o pd-d_math.o pd-d_fft.o pd-d_array.o
> pd_global.o pd-d_delay.o pd-d_resample.o pd-x_arithmetic.o
> pd-x_connective.o pd-x_interface.o pd-x_midi.o pd-x_misc.o pd-x_time.o
> pd-x_acoustics.o pd-x_net.o pd-x_qlist.o pd-x_gui.o pd-x_list.o
> pd-d_soundfile.o pd_audio_alsa.o pd-s_audio_alsamm.o pd-s_midi_alsa.o
> pd-d_fft_mayer.o pd-d_fftroutine.o pd-s_audio_oss.o pd-s_midi_oss.o
> pd-s_audio_pa.o pd-s_audio_paring.o -Wl,--export-dynamic  -lm -lasound
> ../portaudio/lib/.libsibportaudio.so -lpthread -ldl
> pd-g_canvas.o: In function `pd_checkglist':
> g_canvas.c:(.text+0x511c): undefined reference to `array_define_class'
> pd-g_text.o: In function `text_save':
> g_text.c:(.text+0x3074): undefined reference to `canvas_istable'
> pd-m_conf.o: In function `conf_init':
> m_conf.c:(.text+0x60): undefined reference to `x_array_setup'
> collect2: ld returned 1 exit status
> make[2]: *** [pd] Error 1
> make[2]: Leaving directory `/root/pure-data/src'
> make[1]: *** [all-recursive] Error 1
> make[1]: Leaving directory `/root/pure-data'
> make: *** [all] Error 2
> root at BitChime:~/pure-data# ^C
> root at BitChime:~/pure-data# make
> 
> This is about the fifth time I've tried to build Pd from source on the Pi
> and is farther than I've got before - but not quite far enough.
> 
> 
> Any thoughts anyone?
> 
> Regards,
> 
> Julian

> _______________________________________________
> Pd-list at iem.at mailing list
> UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list




More information about the Pd-list mailing list