On Aug 21 18:52:18, [email protected] wrote:
> Jan Stary <[email protected]> writes:
>
> > On Aug 21 18:08:27, [email protected] wrote:
> >> Jan Stary <[email protected]> writes:
> >>
> >> > On Aug 21 17:16:12, [email protected] 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
[email protected]
https://lists.sourceforge.net/lists/listinfo/sox-devel