Ardour new B-D

James Cowgill jcowgill at debian.org
Tue Dec 6 22:09:41 UTC 2016


Hi,

On 06/12/16 02:15, Jaromír Mikeš wrote:
> 2016-12-06 0:35 GMT+01:00 James Cowgill <jcowgill at debian.org>:
> 
> Hi,
> 
>>> Ok .. and how to get libqm-dsp.so.0.0.0 ?
>>
>> -o libqm-dsp.so.0.0.0
>>
>> Why do you want to do this?
>>
>> Are you talking about the libtool convention? If you use libtool to
>> build libraries, the library will have (initially) a .0.0.0 suffix. Only
>> the first digit which is part of the SONAME is actually important. The
>> purpose of doing this is to allow multiple versions of each library to
>> be installed, but in Debian it's mostly irrelevant since you can't
>> install two versions of a package.
> 
> Ok ... I am not building it ...
> Can you have a look on my initial packaging of qm-dsp?

d/rules
> LDFLAGS+=-Wl,--as-needed

Use DEB_MAINT_LD_FLAGS_APPEND

> override_dh_auto_configure:
> 	qmake-qt4 -project PREFIX=/usr -config release
> 	$(MAKE)
> 	dh_auto_configure

Why are you using qmake? What does it gain you?

You should not run the build as part of the configure step.

I think dh_auto_configure is a no-op here.

d/patches/01-Makefile.patch

Why do you need to patch a makefile in? Most of this stuff could be done
in debian/rules or by dh_install etc.

> +include build/general/Makefile.inc

IMO you should use make recursion instead of including this makefile.

> +
> +PREFIX ?= /usr
> +SUFFIX := $(shell uname -m | sed -e 's/^unknown/$//' -e 's/^i.86/$//' -e 's/^x86_64/$/64/')

This is broken on non-x86 machines. Why do you need it in the first
place?

As a side note - using uname -m detects the _build_ architecture and
not the _host_ architecture (which is what you want here).

> +LIBDIR ?= lib$(SUFFIX)
> +
> +
> +MAJVERS = 0
> +MINVERS = 0.0
> +VERSION = $(MAJVERS).$(MINVERS)

Unused variable?

> +
> +
> +CFLAGS += -DNDEBUG -O3 -fPIC -ffast-math -ftree-vectorize -DUSE_PTHREADS -Ibuild/linux/amd64

The headers in build/linux/amd64 look bundled so I don't think you
should use them.

> +CXXFLAGS += -fPIC -Wall
> +CXXFLAGS += $(CFLAGS)
> +LDLFAGS +=
> +LDLIBS +=
> +
> +
> +QM-DSP_SO = libqm-dsp.so
> +QM-DSP_MAJ = $(QM-DSP_SO).$(MAJVERS)
> +QM-DSP_MIN = $(QM-DSP_MAJ).$(MINVERS)
> +QM-DSP_DEP =
> +QM-DSP_H = base/*.h
> +
> +
> +$(QM-DSP_MAJ):	$(QM-DSP_MAJ)

Circular dependency. You probably want to depend on libqm-dsp.a.

> +	gcc -shared $(LDFLAGS) -o $(QM-DSP_MAJ) -Wl,-soname,$(QM-DSP_MAJ) -Wl,--whole-archive libqm-dsp.a -Wl,--no-whole-archive

I think adding -Wl,--no-undefined is a good idea here. You then need to
add the other libraries qm-dsp uses so you don't need to add them manually.

> +
> +install:	$(QM-DSP_MAJ)
> +	install -d $(DESTDIR)$(PREFIX)/include/base
> +	install -d $(DESTDIR)$(PREFIX)/$(LIBDIR)
> +	install -m 644 $(QM-DSP_H) $(DESTDIR)$(PREFIX)/include/base

I think "/usr/include/base" is a bit too generic. I notice that fedora
installs them into "/usr/include/qm-dsp".

http://pkgs.fedoraproject.org/cgit/rpms/qm-dsp.git/tree/qm-dsp-install.patch

> +	install -m 755 $(QM-DSP_MAJ) $(DESTDIR)$(PREFIX)/$(LIBDIR)
> +	/sbin/ldconfig -n $(DESTDIR)$(PREFIX)/$(LIBDIR)

This line does nothing because libqm-dsp.so.0 already exists.

> +	ln -sf $(QM-DSP_MIN) $(DESTDIR)$(PREFIX)/$(LIBDIR)/$(QM-DSP_SO)
> +
> +clean:
> +	/bin/rm -f *~ *.o *.a *.d *.so.*

Make doesn't like this because there is already a clean target defined
in Makefile.inc.

Thanks,
James

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: OpenPGP digital signature
URL: <http://lists.alioth.debian.org/pipermail/pkg-multimedia-maintainers/attachments/20161206/7306757e/attachment.sig>


More information about the pkg-multimedia-maintainers mailing list