The following commit has been merged in the master branch: commit ab3e2f0e4b5a8c546ba450d4e8732d7f9c2cb15d Author: Romain Beauxis <to...@rastageeks.org> Date: Tue May 14 17:23:42 2013 -0500
Switch fdkaac enocder to dynamic load diff --git a/debian/changelog b/debian/changelog index e9e82d9..e1d9703 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,12 @@ +liquidsoap (1.1.1-4) unstable; urgency=low + + * Added patch to enable dynamically loaded + fdkaac encoder. + * Dropped liquidsoap-plugin-fdkaac. + Closes: #708602 + + -- Romain Beauxis <to...@rastageeks.org> Tue, 14 May 2013 17:19:49 -0500 + liquidsoap (1.1.1-3) unstable; urgency=low * Added liquidsoap emacs mode package. diff --git a/debian/control b/debian/control index 76f44c3..5542bdf 100644 --- a/debian/control +++ b/debian/control @@ -5,9 +5,11 @@ Maintainer: Debian OCaml Maintainers <debian-ocaml-ma...@lists.debian.org> Uploaders: Romain Beauxis <to...@rastageeks.org>, Samuel Mimram <smim...@debian.org> Build-Depends: cdbs (>= 0.4.85~), + quilt, debhelper (>= 7.0.1), ocaml-nox, dh-ocaml (>= 1.0.1), + dh-autoreconf, ocaml-findlib, libcry-ocaml-dev (>= 0.2.2), libogg-ocaml-dev (>= 0.4.5), @@ -27,7 +29,6 @@ Build-Depends: libpcre-ocaml-dev, libladspa-ocaml-dev (>= 0.1.4), sox, - libfdkaac-ocaml-dev, libsoundtouch-ocaml-dev (>= 0.1.7), libinotify-ocaml-dev [linux-any], liblastfm-ocaml-dev (>= 0.3.0), @@ -122,7 +123,6 @@ Depends: liquidsoap-plugin-camlimages, liquidsoap-plugin-dssi, liquidsoap-plugin-faad, - liquidsoap-plugin-fdkaac, liquidsoap-plugin-flac, liquidsoap-plugin-frei0r, liquidsoap-plugin-gavl, @@ -249,25 +249,6 @@ Description: audio streaming language -- FAAD plugin . This package provides support for decoding AAC and M4A files in liquidsoap. -Package: liquidsoap-plugin-fdkaac -Architecture: any -Depends: - ${shlibs:Depends}, - ${ocaml:Depends}, - ${misc:Depends}, - liquidsoap (= ${binary:Version}) -Section: contrib/sound -Description: audio streaming language -- FDK AAC plugin - Liquidsoap is a powerful tool for building complex audio streaming systems, - typically targeting internet radios (e.g. icecast streams). - . - It consists of a simple script language, in which you can create, combine and - transform audio sources. Its design makes liquidsoap flexible and easily - extensible. - . - This package provides support for in AAC format in liquidsoap using the - FDK AAC library. - Package: liquidsoap-plugin-flac Architecture: any Depends: diff --git a/debian/liquidsoap-plugin-fdkaac.install b/debian/liquidsoap-plugin-fdkaac.install deleted file mode 100644 index 4d77d1b..0000000 --- a/debian/liquidsoap-plugin-fdkaac.install +++ /dev/null @@ -1 +0,0 @@ -usr/lib/liquidsoap/*/plugins/fdkaac.cm* diff --git a/debian/patches/fdkaad-dynlink.patch b/debian/patches/fdkaad-dynlink.patch new file mode 100644 index 0000000..02c54b1 --- /dev/null +++ b/debian/patches/fdkaad-dynlink.patch @@ -0,0 +1,511 @@ +diff --git a/Makefile.defs.in b/Makefile.defs.in +index 9135d41..f221ad0 100644 +--- a/Makefile.defs.in ++++ b/Makefile.defs.in +@@ -79,6 +79,7 @@ W_AACPLUS=@W_AACPLUS@ + W_AACPLUS_DYN=@W_AACPLUS_DYN@ + W_VOAACENC=@W_VOAACENC@ + W_FDKAAC=@W_FDKAAC@ ++W_FDKAAC_DYN=@W_FDKAAC_DYN@ + W_ALSA=@W_ALSA@ + W_BJACK=@W_BJACK@ + W_AO=@W_AO@ +diff --git a/configure.ac b/configure.ac +index 9a2ba66..09e6cc6 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -484,6 +484,15 @@ AC_CHECK_OCAML_BINDING([voaacenc],[0.1.0]) + # + + AC_CHECK_OCAML_BINDING([fdkaac],[0.1.0]) ++if test -z "${W_FDKAAC}"; then ++ if test -n "${W_DYNLINK}"; then ++ if test -n "${OCAML_HAS_FIRST_CLASS_MODULES}"; then ++ W_FDKAAC_DYN=yes ++ w_FDKAAC="detected at runtime" ++ fi ++ fi ++fi ++AC_SUBST(W_FDKAAC_DYN) + + # + # Theora +diff --git a/src/Makefile b/src/Makefile +index b6851fb..e9af43d 100644 +--- a/src/Makefile ++++ b/src/Makefile +@@ -156,9 +156,11 @@ analyze = analyze/analyze_rms.ml + encoders = \ + encoder/wav_encoder.ml \ + encoder/lame_encoder.ml \ ++ encoder/fdkaac_encoder.ml \ + encoder/aacplus_encoder.ml \ + $(if ($(OS_TYPE):Win32=),encoder/external_encoder.ml) \ + $(if $(W_LAME_DYN),encoder/lame_encoder_dynlink.ml) \ ++ $(if $(W_FDKAAC_DYN),encoder/fdkaac_encoder_dynlink.ml) \ + $(if $(W_AACPLUS_DYN),encoder/aacplus_encoder_dynlink.ml) + + $(call conditional_compilation,encoders,$(W_SHINE),encoder/shine_encoder.ml) +@@ -166,7 +168,7 @@ $(call conditional_compilation,encoders,$(W_LAME),encoder/lame_encoder_builtin.m + $(call conditional_compilation,encoders,$(W_FLAC),encoder/flac_encoder.ml) + $(call conditional_compilation,encoders,$(W_AACPLUS),encoder/aacplus_encoder_builtin.ml) + $(call conditional_compilation,encoders,$(W_VOAACENC),encoder/voaacenc_encoder.ml) +-$(call conditional_compilation,encoders,$(W_FDKAAC),encoder/fdkaac_encoder.ml) ++$(call conditional_compilation,encoders,$(W_FDKAAC),encoder/fdkaac_encoder_builtin.ml) + $(call conditional_compilation,encoders,$(W_TAGLIB),encoder/taglib_id3v2.ml) + + outputs = outputs/output.ml \ +@@ -188,6 +190,7 @@ tools = tools/stdlib.ml tools/doc.ml tools/plug.ml tools/utils.ml \ + $(if $(W_DYNLINK),tools/dyntools.ml) \ + tools/rqueue.ml \ + $(if $(W_LAME_DYN),tools/lame_dynlink.ml) \ ++ $(if $(W_FDKAAC_DYN),tools/fdkaac_dynlink.ml) \ + $(if $(W_AACPLUS_DYN),tools/aacplus_dynlink.ml) \ + tools/wav.ml tools/tutils.ml \ + tools/file_watcher.ml tools/file_watcher_mtime.ml \ +diff --git a/src/encoder/fdkaac_encoder.ml b/src/encoder/fdkaac_encoder.ml +index 11b6363..8580906 100644 +--- a/src/encoder/fdkaac_encoder.ml ++++ b/src/encoder/fdkaac_encoder.ml +@@ -1,106 +1,156 @@ + (***************************************************************************** +- ++ + Liquidsoap, a programmable audio stream generator. + Copyright 2003-2013 Savonet team +- ++ + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. +- ++ + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details, fully stated in the COPYING + file at the root of the liquidsoap distribution. +- ++ + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +- ++ + *****************************************************************************) +- ++ + (** FDK-AAC encoder *) + +-module G = Generator.Generator +- +-let create_encoder params = +- let encoder = +- Fdkaac.Encoder.create params.Encoder.FdkAacEnc.channels +- in +- let params = [ +- `Aot params.Encoder.FdkAacEnc.aot; +- `Bitrate (params.Encoder.FdkAacEnc.bitrate*1000); +- `Samplerate params.Encoder.FdkAacEnc.samplerate; +- `Transmux params.Encoder.FdkAacEnc.transmux ] @ ( +- if params.Encoder.FdkAacEnc.aot = `Mpeg_4 `AAC_ELD then +- [`Sbr_mode params.Encoder.FdkAacEnc.sbr_mode] +- else []) +- in +- List.iter (Fdkaac.Encoder.set encoder) params; +- encoder +- +-let encoder aac = +- let enc = create_encoder aac in +- let channels = aac.Encoder.FdkAacEnc.channels in +- let samplerate = aac.Encoder.FdkAacEnc.samplerate in +- let samplerate_converter = +- Audio_converter.Samplerate.create channels +- in +- let src_freq = float (Frame.audio_of_seconds 1.) in +- let dst_freq = float samplerate in +- let n = 1024 in +- let buf = Buffer.create n in +- let encode frame start len = +- let start = Frame.audio_of_master start in +- let b = AFrame.content_of_type ~channels frame start in +- let len = Frame.audio_of_master len in +- let b,start,len = +- if src_freq <> dst_freq then +- let b = Audio_converter.Samplerate.resample +- samplerate_converter (dst_freq /. src_freq) +- b start len +- in +- b,0,Array.length b.(0) +- else +- b,start,len +- in +- let encoded = Buffer.create n in +- Buffer.add_string buf (Audio.S16LE.make b start len); +- let len = Buffer.length buf in +- let rec f start = +- if start+n > len then +- begin +- Utils.buffer_drop buf start; +- Buffer.contents encoded +- end +- else +- begin +- let data = Buffer.sub buf start n in +- Buffer.add_string encoded +- (Fdkaac.Encoder.encode enc data 0 n); +- f (start+n) ++module type Fdkaac_t = ++ sig ++ module Encoder : ++ sig ++ exception Invalid_handle ++ exception Unsupported_parameter ++ exception Invalid_config ++ exception Error of int ++ exception End_of_file ++ exception Unknown of int ++ val string_of_exception : exn -> string option ++ type t ++ type mpeg2_aac = [ `AAC_LC | `HE_AAC | `HE_AAC_v2 ] ++ type mpeg4_aac = ++ [ `AAC_ELD | `AAC_LC | `AAC_LD | `HE_AAC | `HE_AAC_v2 ] ++ type aot = [ `Mpeg_2 of mpeg2_aac | `Mpeg_4 of mpeg4_aac ] ++ type bitrate_mode = [ `Constant | `Full_bitreservoir ] ++ type transmux = ++ [ `Adif | `Adts | `Latm | `Latm_out_of_band | `Loas | `Raw ] ++ type param_name = ++ [ `Afterburner ++ | `Aot ++ | `Bandwidth ++ | `Bitrate ++ | `Bitrate_mode ++ | `Granule_length ++ | `Samplerate ++ | `Sbr_mode ++ | `Transmux ] ++ type param = ++ [ `Afterburner of bool ++ | `Aot of aot ++ | `Bandwidth of bool ++ | `Bitrate of int ++ | `Bitrate_mode of bitrate_mode ++ | `Granule_length of int ++ | `Samplerate of int ++ | `Sbr_mode of bool ++ | `Transmux of transmux ] ++ val create : int -> t ++ val set : t -> param -> unit ++ val get : t -> param_name -> param ++ val encode : t -> string -> int -> int -> string ++ val flush : t -> string + end ++ end ++ ++module Register(Fdkaac : Fdkaac_t) = ++struct ++ module G = Generator.Generator ++ ++ let create_encoder params = ++ let encoder = ++ Fdkaac.Encoder.create params.Encoder.FdkAacEnc.channels + in +- f 0 +- in +- let stop () = +- let rem = Buffer.contents buf in +- let s = +- Fdkaac.Encoder.encode enc rem 0 (String.length rem) ++ let params = [ ++ `Aot params.Encoder.FdkAacEnc.aot; ++ `Bitrate (params.Encoder.FdkAacEnc.bitrate*1000); ++ `Samplerate params.Encoder.FdkAacEnc.samplerate; ++ `Transmux params.Encoder.FdkAacEnc.transmux ] @ ( ++ if params.Encoder.FdkAacEnc.aot = `Mpeg_4 `AAC_ELD then ++ [`Sbr_mode params.Encoder.FdkAacEnc.sbr_mode] ++ else []) + in +- s ^ (Fdkaac.Encoder.flush enc) +- in +- { +- Encoder. +- insert_metadata = (fun m -> ()) ; +- header = None ; +- encode = encode ; +- stop = stop +- } +- +-let () = +- Encoder.plug#register "AAC" +- (function +- | Encoder.FdkAacEnc m -> Some (fun _ _ -> encoder m) +- | _ -> None) ++ List.iter (Fdkaac.Encoder.set encoder) params; ++ encoder ++ ++ let encoder aac = ++ let enc = create_encoder aac in ++ let channels = aac.Encoder.FdkAacEnc.channels in ++ let samplerate = aac.Encoder.FdkAacEnc.samplerate in ++ let samplerate_converter = ++ Audio_converter.Samplerate.create channels ++ in ++ let src_freq = float (Frame.audio_of_seconds 1.) in ++ let dst_freq = float samplerate in ++ let n = 1024 in ++ let buf = Buffer.create n in ++ let encode frame start len = ++ let start = Frame.audio_of_master start in ++ let b = AFrame.content_of_type ~channels frame start in ++ let len = Frame.audio_of_master len in ++ let b,start,len = ++ if src_freq <> dst_freq then ++ let b = Audio_converter.Samplerate.resample ++ samplerate_converter (dst_freq /. src_freq) ++ b start len ++ in ++ b,0,Array.length b.(0) ++ else ++ b,start,len ++ in ++ let encoded = Buffer.create n in ++ Buffer.add_string buf (Audio.S16LE.make b start len); ++ let len = Buffer.length buf in ++ let rec f start = ++ if start+n > len then ++ begin ++ Utils.buffer_drop buf start; ++ Buffer.contents encoded ++ end ++ else ++ begin ++ let data = Buffer.sub buf start n in ++ Buffer.add_string encoded ++ (Fdkaac.Encoder.encode enc data 0 n); ++ f (start+n) ++ end ++ in ++ f 0 ++ in ++ let stop () = ++ let rem = Buffer.contents buf in ++ let s = ++ Fdkaac.Encoder.encode enc rem 0 (String.length rem) ++ in ++ s ^ (Fdkaac.Encoder.flush enc) ++ in ++ { ++ Encoder. ++ insert_metadata = (fun m -> ()) ; ++ header = None ; ++ encode = encode ; ++ stop = stop ++ } ++ ++ let register_encoder name = ++ Encoder.plug#register name ++ (function ++ | Encoder.FdkAacEnc m -> Some (fun _ _ -> encoder m) ++ | _ -> None) ++end +diff --git a/src/encoder/fdkaac_encoder_builtin.ml b/src/encoder/fdkaac_encoder_builtin.ml +new file mode 100644 +index 0000000..62fa319 +--- /dev/null ++++ b/src/encoder/fdkaac_encoder_builtin.ml +@@ -0,0 +1,28 @@ ++(***************************************************************************** ++ ++ Liquidsoap, a programmable audio stream generator. ++ Copyright 2003-2013 Savonet team ++ ++ This program is free software; you can redistribute it and/or modify ++ it under the terms of the GNU General Public License as published by ++ the Free Software Foundation; either version 2 of the License, or ++ (at your option) any later version. ++ ++ This program is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU General Public License for more details, fully stated in the COPYING ++ file at the root of the liquidsoap distribution. ++ ++ You should have received a copy of the GNU General Public License ++ along with this program; if not, write to the Free Software ++ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ++ ++ *****************************************************************************) ++ ++(** Builtin Fdkaac encoder *) ++ ++module Register = Fdkaac_encoder.Register(Fdkaac) ++ ++let () = ++ Register.register_encoder "AAC/fdkaac/builtin" +diff --git a/src/encoder/fdkaac_encoder_dynlink.ml b/src/encoder/fdkaac_encoder_dynlink.ml +new file mode 100644 +index 0000000..f979afd +--- /dev/null ++++ b/src/encoder/fdkaac_encoder_dynlink.ml +@@ -0,0 +1,50 @@ ++(***************************************************************************** ++ ++ Liquidsoap, a programmable audio stream generator. ++ Copyright 2003-2013 Savonet team ++ ++ This program is free software; you can redistribute it and/or modify ++ it under the terms of the GNU General Public License as published by ++ the Free Software Foundation; either version 2 of the License, or ++ (at your option) any later version. ++ ++ This program is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU General Public License for more details, fully stated in the COPYING ++ file at the root of the liquidsoap distribution. ++ ++ You should have received a copy of the GNU General Public License ++ along with this program; if not, write to the Free Software ++ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ++ ++ *****************************************************************************) ++ ++(** Dynamic Fdkaac encoder *) ++ ++let path = ++ try ++ [Sys.getenv "FDKAAC_DYN_PATH"] ++ with ++ | Not_found -> ++ List.fold_left ++ (fun l x -> (x ^ "/fdkaac") :: l) ++ Configure.findlib_path Configure.findlib_path ++ ++open Fdkaac_dynlink ++ ++let () = ++ let load () = ++ match handler.fdkaac_module with ++ | Some m -> ++ let module Fdkaac = (val m : Fdkaac_dynlink.Fdkaac_t) in ++ let module Register = Fdkaac_encoder.Register(Fdkaac) in ++ Register.register_encoder "AAC/fdkaac/dynlink" ++ | None -> assert false ++ in ++ Hashtbl.add Dyntools.dynlink_list ++ "fdkaac encoder" ++ { Dyntools. ++ path = path; ++ files = ["fdkaac";"fdkaac_loader"]; ++ load = load } +diff --git a/src/tools/fdkaac_dynlink.ml b/src/tools/fdkaac_dynlink.ml +new file mode 100644 +index 0000000..d1b9078 +--- /dev/null ++++ b/src/tools/fdkaac_dynlink.ml +@@ -0,0 +1,50 @@ ++module type Fdkaac_t = ++sig ++ module Encoder : ++ sig ++ exception Invalid_handle ++ exception Unsupported_parameter ++ exception Invalid_config ++ exception Error of int ++ exception End_of_file ++ exception Unknown of int ++ val string_of_exception : exn -> string option ++ type t ++ type mpeg2_aac = [ `AAC_LC | `HE_AAC | `HE_AAC_v2 ] ++ type mpeg4_aac = ++ [ `AAC_ELD | `AAC_LC | `AAC_LD | `HE_AAC | `HE_AAC_v2 ] ++ type aot = [ `Mpeg_2 of mpeg2_aac | `Mpeg_4 of mpeg4_aac ] ++ type bitrate_mode = [ `Constant | `Full_bitreservoir ] ++ type transmux = ++ [ `Adif | `Adts | `Latm | `Latm_out_of_band | `Loas | `Raw ] ++ type param_name = ++ [ `Afterburner ++ | `Aot ++ | `Bandwidth ++ | `Bitrate ++ | `Bitrate_mode ++ | `Granule_length ++ | `Samplerate ++ | `Sbr_mode ++ | `Transmux ] ++ type param = ++ [ `Afterburner of bool ++ | `Aot of aot ++ | `Bandwidth of bool ++ | `Bitrate of int ++ | `Bitrate_mode of bitrate_mode ++ | `Granule_length of int ++ | `Samplerate of int ++ | `Sbr_mode of bool ++ | `Transmux of transmux ] ++ val create : int -> t ++ val set : t -> param -> unit ++ val get : t -> param_name -> param ++ val encode : t -> string -> int -> int -> string ++ val flush : t -> string ++ end ++end ++ ++type handler = { mutable fdkaac_module : (module Fdkaac_t) option } ++ ++let handler = {fdkaac_module = None } +diff --git a/src/tools/fdkaac_dynlink.mli b/src/tools/fdkaac_dynlink.mli +new file mode 100644 +index 0000000..a4aa46d +--- /dev/null ++++ b/src/tools/fdkaac_dynlink.mli +@@ -0,0 +1,48 @@ ++module type Fdkaac_t = ++ sig ++ module Encoder : ++ sig ++ exception Invalid_handle ++ exception Unsupported_parameter ++ exception Invalid_config ++ exception Error of int ++ exception End_of_file ++ exception Unknown of int ++ val string_of_exception : exn -> string option ++ type t ++ type mpeg2_aac = [ `AAC_LC | `HE_AAC | `HE_AAC_v2 ] ++ type mpeg4_aac = ++ [ `AAC_ELD | `AAC_LC | `AAC_LD | `HE_AAC | `HE_AAC_v2 ] ++ type aot = [ `Mpeg_2 of mpeg2_aac | `Mpeg_4 of mpeg4_aac ] ++ type bitrate_mode = [ `Constant | `Full_bitreservoir ] ++ type transmux = ++ [ `Adif | `Adts | `Latm | `Latm_out_of_band | `Loas | `Raw ] ++ type param_name = ++ [ `Afterburner ++ | `Aot ++ | `Bandwidth ++ | `Bitrate ++ | `Bitrate_mode ++ | `Granule_length ++ | `Samplerate ++ | `Sbr_mode ++ | `Transmux ] ++ type param = ++ [ `Afterburner of bool ++ | `Aot of aot ++ | `Bandwidth of bool ++ | `Bitrate of int ++ | `Bitrate_mode of bitrate_mode ++ | `Granule_length of int ++ | `Samplerate of int ++ | `Sbr_mode of bool ++ | `Transmux of transmux ] ++ val create : int -> t ++ val set : t -> param -> unit ++ val get : t -> param_name -> param ++ val encode : t -> string -> int -> int -> string ++ val flush : t -> string ++ end ++ end ++type handler = { mutable fdkaac_module : (module Fdkaac_t) option; } ++val handler : handler diff --git a/debian/patches/series b/debian/patches/series index e69de29..159b2ac 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -0,0 +1 @@ +fdkaad-dynlink.patch diff --git a/debian/rules b/debian/rules index b94c613..0b7f0f4 100755 --- a/debian/rules +++ b/debian/rules @@ -19,7 +19,7 @@ DEB_CONFIGURE_EXTRA_FLAGS := \ --enable-dssi-dynamic-plugin --enable-lo-dynamic-plugin --enable-camlimages-dynamic-plugin \ --enable-gstreamer-dynamic-plugin --enable-gd-dynamic-plugin --with-default-font=$(DEFAULT_FONT) \ --enable-opus-dynamic-plugin --enable-frei0r-dynamic-plugin --enable-shine-dynamic-plugin \ - --enable-fdkaac-dynamic-plugin --disable-custom + --disable-custom DEB_MAKE_BUILD_TARGET := all doc DEB_MAKE_INSTALL_TARGET := doc install DESTDIR=$(CURDIR)/debian/tmp/ OCAMLFIND_DESTDIR=$(CURDIR)/debian/tmp/$(OCAML_STDLIB_DIR) \ prefix=$(CURDIR)/debian/tmp/usr sysconfdir=$(CURDIR)/debian/tmp/etc \ @@ -38,7 +38,7 @@ else -Nliquidsoap-plugin-flac -Nliquidsoap-plugin-gavl -Nliquidsoap-plugin-graphics \ -Nliquidsoap-plugin-ladspa -Nliquidsoap-plugin-lastfm -Nliquidsoap-plugin-mad \ -Nliquidsoap-plugin-ogg -Nliquidsoap-plugin-oss -Nliquidsoap-plugin-portaudio \ - -Nliquidsoap-plugin-pulseaudio -Nliquidsoap-plugin-samplerate -Nliquidsoap-plugin-fdkaac \ + -Nliquidsoap-plugin-pulseaudio -Nliquidsoap-plugin-samplerate \ -Nliquidsoap-plugin-schroedinger -Nliquidsoap-plugin-soundtouch -Nliquidsoap-plugin-speex \ -Nliquidsoap-plugin-taglib -Nliquidsoap-plugin-theora -Nliquidsoap-plugin-voaacenc \ -Nliquidsoap-plugin-vorbis -Nliquidsoap-plugin-xmlplaylist -Nliquidsoap-plugin-lame \ @@ -49,6 +49,7 @@ else endif makebuilddir/liquidsoap:: + [ -f debian/autoreconf.before ] || dh_autoreconf ./bootstrap mkdir -p $(CURDIR)/debian/tmp/$(OCAML_STDLIB_DIR) install/liquidsoap:: @@ -75,7 +76,9 @@ binary-install/liguidsoap:: dh_pysupport /var/lib/liguidsoap clean:: + dh_autoreconf_clean + quilt pop -a || true rm -rf src/liquidsoap src/META radio.liq.example \ src/SVN.ml src/io/liquidsoap_depend autodoc \ doc/manual debian/liquidsoap.init src/dllliquidsoap.so \ - src/libliquidsoap.a debian/*.onodefined + src/libliquidsoap.a debian/*.onodefined **/*debhelper.log -- liquidsoap packaging _______________________________________________ Pkg-ocaml-maint-commits mailing list Pkg-ocaml-maint-commits@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-ocaml-maint-commits