On Aug 21 18:52:18, m...@mansr.com wrote:
> Jan Stary <h...@stare.cz> writes:
> 
> > On Aug 21 18:08:27, m...@mansr.com wrote:
> >> Jan Stary <h...@stare.cz> writes:
> >> 
> >> > On Aug 21 17:16:12, h...@stare.cz wrote:
> >> >> > checking for magic.h... no
> >> >> > checking for zlib.h... yes
> >> >> > checking for uncompress in -lz... yes
> >> >> > checking for png.h... no
> >> >> > checking for mad.h... no
> >> >> > checking for id3tag.h... no
> >> >> > checking for lame/lame.h... no
> >> >> > checking for lame.h... no
> >> >> > 
> >> >> >       $ pkg_info -L lame | grep .h$    
> >> >> >       /usr/local/include/lame/lame.h
> >> >> > 
> >> >> >       OpenBSD installs third-party packages into /usr/local/,
> >> >> >       but the configure script does not look there; it porbably
> >> >> >       only searches in /usr, because that's where linux distributions
> >> >> >       install their packages. (I'm not saying it should
> >> >> >       -- I will test the same with -I added to the CPPFLAGS,
> >> >> >       as the OpenBSD port of SoX does.)
> >> >> 
> >> >> Running ./configure with CPPFLAGS and LDFLAGS,
> >> >> so that the headers and libraries are found,
> >> >> as per ./configure --help:
> >> >> 
> >> >>   LDFLAGS   linker flags, e.g. -L<lib dir>
> >> >>             if you have libraries in a nonstandard directory <lib dir>
> >> >> 
> >> >>   CPPFLAGS  (Objective) C/C++ preprocessor flags, e.g. -I<include dir>
> >> >>             if you have headers in a nonstandard directory <include dir>
> >> >> 
> >> >> I am looking at png as an example.
> >> >> 
> >> >> With plain ./configure , png.h (which is /usr/local/include/png.h)
> >> >> is not found, as described above.
> >> >> 
> >> >>   checking for png.h... no
> >> >> 
> >> >> With ./configure CPPFLAGS='-I/usr/local/include' the png.h header is 
> >> >> found,
> >> >> but the library is not, unsurprisingly. But:
> >> >> 
> >> >>   $ ./configure CPPFLAGS='-I/usr/local/include'
> >> >>   [...]
> >> >>   checking for png.h... yes
> >> >>   checking for png_set_rows in -l101... no
> >> >> 
> >> >> I have no idea how the -l101 got there.
> >
> >> Fixed.

OK, continuing with the test. Specifying CPPFLAGS and LDFLAGS
makes the external libraries detected as follows:

$ env AUTOCONF_VERSION=2.69 AUTOMAKE_VERSION=1.16 autoreconf -i
$ ./configure --prefix=$HOME \
        CC=cc CPPFLAGS=-I/usr/local/include LDFLAGS=-L/usr/local/lib
[...]
checking for zlib.h... yes
checking for uncompress in -lz... yes
checking for png.h... yes
checking for png_set_rows in -lpng... yes
checking for mad.h... yes
checking for mad_stream_buffer in -lmad... yes
checking for id3tag.h... yes
checking for id3_file_open in -lid3tag... yes
checking for lame/lame.h... yes
checking for lame_init in -lmp3lame... yes
checking for twolame.h... yes
checking for twolame_init in -ltwolame... yes
checking for gsm/gsm.h... no
checking for gsm.h... yes
checking for gsm_create in -lgsm... yes
checking for lpc10.h... no
checking for OGGVORBIS... yes
checking for OPUS... yes
checking for FLAC... yes
checking for opencore-amrwb/dec_if.h... no
checking for vo-amrwbenc/enc_if.h... no
checking for opencore-amrnb/interf_dec.h... no
checking for wavpack/wavpack.h... yes
checking for WavpackGetSampleRate in -lwavpack... yes
checking for sndio.h... yes
checking for sio_open in -lsndio... yes
checking for CoreAudio/CoreAudio.h... no
checking for alsa/asoundlib.h... no
checking for ao/ao.h... yes
checking for ao_play in -lao... yes
checking for pulse/simple.h... no
checking for mmsystem.h... no
checking for sndfile.h... yes
checking for sf_open_virtual in -lsndfile... yes
[...]

Optional libraries:
  id3tag                  yes
  lame                    yes
  libgsm                  yes
  libltdl                 yes
  libsndfile              yes
  mad                     yes
  magic                   no
  opencore-amrnb          no
  opencore-amrwb          no
  png                     yes
  twolame                 yes
  vo-amrwbenc             no

Audio devices:
  alsa                    no
  ao                      yes
  coreaudio               no
  oss                     no
  pulseaudio              no
  sndio                   yes
  sunaudio                no
  waveaudio               no

Optional formats:
  amrnb                   no
  amrwb                   no
  flac                    yes
  gsm                     yes
  lpc10                   yes
  mp3                     yes
  oggvorbis               yes
  opus                    yes
  sndfile                 yes
  wavpack                 yes


However, the build eventually fails with a linking error:


/bin/sh ../libtool  --tag=CC    --mode=link cc  -g -O2 -fstack-protector-strong 
-Wall -Wmissing-prototypes -Wstrict-prototypes   -avoid-version -module 
-L/usr/local/lib -fstack-protector-strong -Wl,--as-needed -o sox sox.o  
libsox.la                      -lm
libtool: link: cc -g -O2 -fstack-protector-strong -Wall -Wmissing-prototypes 
-Wstrict-prototypes -fstack-protector-strong -Wl,--as-needed -o .libs/sox sox.o 
 -L/usr/local/lib -L./.libs -lsox -lpng -lltdl -lao -lgsm -lid3tag -lz -lmad 
-lmp3lame -ltwolame -lopusfile -lopus -lsndio -lvorbisfile -lwavpack -lcrypto 
-lsndfile -lFLAC -lvorbisenc -lvorbis -logg -lm -Wl,-rpath,/home/hans/lib 
-Wl,-rpath,/usr/local/lib
ld: error: undefined symbol: lsx_malloc
[...]

Indeed, none of the input files defines lsx_malloc;
it is defined in libsox.so

        $ nm .libs/libsox.so.3.0 | grep lsx_malloc
        00042a30 T lsx_malloc

but that is not one of the inputs. Adding .libs/libsox.so.3.0
as an input to the above line make it link as expected.

Jan



_______________________________________________
SoX-devel mailing list
SoX-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sox-devel

Reply via email to