mpg123-1.33.1

This commit is contained in:
Ozkan Sezer
2025-07-28 15:55:02 +03:00
parent 8a25bb2e73
commit 03c8b9e94d
11 changed files with 417 additions and 267 deletions

View File

@@ -14,9 +14,11 @@ out ovbious syntax errors that make compilers cry do not land here.
Current maintainers with various sorts of contributions: Current maintainers with various sorts of contributions:
Thomas Orgis <thomas@orgis.org> Thomas Orgis <thomas@orgis.org>
Taihei Momma <tmkk@mac.com>
Past maintainers mainly for MS Windows platform:
Patrick Dehne <patrick@steidle.net> Patrick Dehne <patrick@steidle.net>
Jonathan Yong <10walls@gmail.com> Jonathan Yong <10walls@gmail.com>
Taihei Momma <tmkk@mac.com>
Co-initiator of the revived mpg123 project, but not that involved anymore: Co-initiator of the revived mpg123 project, but not that involved anymore:
Nicholas J Humfrey <njh@ecs.soton.ac.uk> Nicholas J Humfrey <njh@ecs.soton.ac.uk>

74
INSTALL
View File

@@ -7,20 +7,22 @@ You really need:
- a C99 compiler (moderate C99 support) - a C99 compiler (moderate C99 support)
- an (UNIX-like) operating system with standard tools; MinGW32 and - an (UNIX-like) operating system with standard tools; mingw-w64 and
Cygwin are working for Microsoft Windows, too. We also have users happily Cygwin are working for Microsoft Windows, too. We also have users happily
on OS/2. playing on OS/2.
- For the library only, you may get lucky with MSVC++ using CMake and - For the library only, you may get lucky with MSVC++ using CMake and
ports/cmake as source directory. You can also use CMake on other ports/cmake as source directory. You can also use CMake on UNIX-like
platforms for a full build, but its main purpose is for portability platforms for a full build, but its main purpose is for portability
where autotools don't do the trick. where autotools don't do the trick.
- For other exotic platforms, also see ports/ - There used to be some additional ports in ports/, now there is a single
CMake structure there that handles most systems that cannot use autotools
to at least build the decoder library.
- If building from direct source code repository checkout, as opposed to - If building from direct source code repository checkout, as opposed to
a release or snapshot tarball, you need GNU autotools installed a release or snapshot tarball, you need GNU autotools installed
(see Developer Build below). (see Developer Build below) or have cmake present for ports/cmake/.
You want: You want:
@@ -158,38 +160,57 @@ libraries, specify it as a target:
You can then find the library itself under src/lib*123/.libs (libtool You can then find the library itself under src/lib*123/.libs (libtool
likes to hide things there). likes to hide things there).
Alternatively, you can use --disable-components and --enable-foo for
building only component foo (like libmpg123).
4. Exotic platforms 4. Exotic platforms
See the ports/ directory for some help for building at least libmpg123 There used to be (and still are in revsion control history) special
without the UNIX shell / autotools. The main strategy is to write ports for some platforms or language bindings in the ports/ directory.
a config.h to replace what configure would generate and then have a
correct listing of all source files involved in that configuration
(there are optional files for different decoder choices, for example).
Then compile objects, link. Right now, there is only ports/cmake for an alternate CMake-based
build, mainly for libmpg123 itself, but also libsyn123 and possibly
the full set if the platform is UNIX-like.
Instead of manually curated MSVC project files, there is a CMake port If autotools and also ports/cmake do not do the trick, you need to
now in ports/cmake to build mpg123 with the MS compilers. It might be construct a src/config.h and build and gather the object files you want.
helpful for other platforms, too. But the main build system for The autotools input files should help here, too.
POSIX-like systems is the autotools one.
4a. Microsoft Windows
4a. Preparing Win32 binary packages. Under Windows, you can use Cygwin, MSYS2 or probably also the WSL
environment to build mpg123 binaries. If you want binaries that
work nicely stand-alone, and also at least being able to force correct
printout of UTF-8 text using chcp 65001 and mpg123 --utf8, the MSYS2
UCRT64 shell and accompanying toolchain seem to work (see MSYS2
documentation on how to set up, it is not that hard).
Caution: You should make sure to use some gcc >= 4.2.0, even if it's To generate a set of binary builds matching the erstwhile official mpg123
still the experimental package for MinGW32. binaries, run
This helps preventing incompatibilities between generated DLL files and
other compilers (it's about stack alignment).
Get MinGW/MSYS installed, run the MSYS shell. sh ./windows-builds.sh x86
Enter the mpg123 source directory.
Execute sh ./windows-builds.sh . or
sh ./windows-builds.sh x86_64
(optionally followed by a number to indicate the count of parallel make
tasks).
After some time, you should have some relevant files under releases/ After some time, you should have some relevant files under releases/
(or releases\, for Windows people;-). (or releases\, for Windows people;-).
You don't just get one build -- there are several variants, corresponding You don't just get one build -- there are several variants, corresponding
to what usually is to be found under http://mpg123.org/download/win32 . to what usually was to be found under https://mpg123.org/download/win32/ and
https://mpg123.org/download/win64/ .
Notet hat, depending on you msys/mingw variant, you might have to copy
libwinpthread-1.dll to the respective release directory. This is a quirk
of the toolchain which insists on linking in a threading runtime. You
might be able to statically link it in with some extra magic.
You can also run this script on a Linux host with mingw-w64 cross toolchain
installed, with arguments x86-cross and x86_64-cross.
5. Note on large file support 5. Note on large file support
@@ -206,6 +227,11 @@ your app.
In both large-file and normal mode, the library should just work for In both large-file and normal mode, the library should just work for
your app. your app.
In the meantime a portable API with fixed 64 bit integers (and some irony
on top) also was added. You can limit yourself to that api by defining
MPG123_PORTABLE_API in client code.
6. Security 6. Security
If you consider installing the mpg123 binary or any program using If you consider installing the mpg123 binary or any program using

14
NEWS
View File

@@ -1,3 +1,17 @@
1.33.1
------
- INSTALL updated with hints for Windows, mainly.
- Finally formatted README. Maybe do it in Markdown sometime, as that's
the fashion.
- build:
-- The ports/cmake only installs manpages for BUILD_PROGRAMS now.
-- The configure gives better hint if pkg-config was missing during generation
(bug 378).
- mpg123:
-- Replace usage of signal() in terminal code with our sigaction() wrapper
to fix repeated handling for --sigusr1 and --sigusr2, which got subtly
broken on Linux + glibc by a feature test macro change in mpg123 1.31.
1.33.0 1.33.0
------ ------
- mpg123 - mpg123

241
README
View File

@@ -1,41 +1,56 @@
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* mpg123 - MPEG 1.0/2.0/2.5 audio player * * mpg123 - MPEG 1.0/2.0/2.5 audio player *
* README for version 1.x.y, dated at 14.06.2009 * * README for version 1.x.y, dated at 29.06.2025 *
* * * *
* ...still the fastest MPEG audio player for UNIX ;) * * ...still the fastest MPEG audio player for UNIX ;) *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
(This file has very long lines - die-hard terminal nostalgists can be satisfied by `fmt -s -w 75 < README | less`. I think it's better to let the reader's preference rule than to preformat the stuff to some arbitrary width.)
0. Stuff 0. Stuff
For building/installation info see INSTALL. For building/installation info see INSTALL.
The mpg123 project was started by Michel Hipp and is now being maintained by Thomas Orgis and Nicholas J. Humfrey, who initiated the Sourceforge project. The mpg123 project was started by Michel Hipp and is now being maintained
The source code contains contributions from quite a few people - see AUTHORS for more info. by Thomas Orgis. The source code contains contributions from quite a few
It is Open Source software licensed mostly under the LGPL with some parts restricted to GPL. See COPYING for details. people - see AUTHORS for more info.
As for every mp3 player, some of mpg123's functionality may be covered by patents in a country where these are valid. See PATENTS for details.
It is Open Source software licensed mostly under the LGPL v2.1, COPYING
for details. Patents on MPEG audio used to be an issue, but around 2017
the last patents should have expired. I'm no lawyer, that is just my
opinion, of course. Get your own to make sure (opinion or lawyer, whatever
you prefer).
Project's official website URL is Project's official website URL is
http://mpg123.org https://mpg123.org
(or http://mpg123.orgis.org as fallback address if there is a problem with the DNS forwarding)
(or https://mpg123.orgis.org as fallback address if there is a problem
with the DNS forwarding)
for the traditional home page and for the traditional home page and
http://sourceforge.net/projects/mpg123 https://sourceforge.net/projects/mpg123
for sourceforge.net based services like download mirrors, mailing lists and bug/feature trackers. for sourceforge.net based services like download mirrors, mailing lists
Please use the sourceforge download mirrors when possible to minimize load on the mpg123.org server. and bug/feature trackers.
1. Introduction 1. Introduction
This is a console based decoder/player for mono/stereo mpeg audio files, probably more familiar as MP3 or MP2 files. This is a console based decoder/player for mono/stereo mpeg audio files,
It's focus is speed. We still need some low-end benchmarks for the current version, but playback should be possible even on i486 CPUs. There is hand-optimized assembly code for i586, MMX, 3DNow, SEE and 3DNowExt instructions, while generic code runs on a variety of different platforms and CPUs. probably more familiar as MP3 or MP2 files.
It can play MPEG1.0/2.0/2.5 layer I, II, II (1, 2, 3;-) files (VBR files are fine, too) and produce output on a number of different ways: raw data to stdout and different sound systems depending on your platform (see INSTALL). It's focus is speed. We still need some low-end benchmarks for the
Most tested are Linux on x86 and Alpha/AXP and MacOSX on ppc as the environments the current developers work in. current version, but playback should be possible even on i486 CPUs. There
We are always thankful for user reports on success (and failure) on any platform! is hand-optimized assembly code for i586, MMX, 3DNow, SEE and 3DNowExt
instructions, while generic code runs on a variety of different platforms
and CPUs.
It can play MPEG1.0/2.0/2.5 layer I, II, II (1, 2, 3;-) files (VBR files
are fine, too) and produce output on a number of different ways: raw
data to stdout and different sound systems depending on your platform
(see INSTALL).
Most tested are Linux on x86 and Alpha/AXP and MacOSX on ppc as the
environments the current developers work in.
We are always thankful for user reports on success (and failure) on
any platform!
2. Contact 2. Contact
@@ -44,7 +59,7 @@ short:
mpg123-devel@lists.sourceforge.net mpg123-devel@lists.sourceforge.net
mpg123-users@lists.sourceforge.net mpg123-users@lists.sourceforge.net
or or
maintainer@mpg123.org maintainer@mpg123.org
long: see doc/CONTACT long: see doc/CONTACT
@@ -56,7 +71,8 @@ Please consult the manpage mpg123(1). Some starter info follows.
3.1 Simple Console Usage 3.1 Simple Console Usage
Mpg123 is a console program - normally it just plays a list of files you specify on command line and that's it. See the included manpage or Mpg123 is a console program - normally it just plays a list of files
you specify on command line and that's it. See the included manpage or
mpg123 --help mpg123 --help
@@ -64,15 +80,22 @@ or, for the full story,
mpg123 --longhelp mpg123 --longhelp
on command line syntax/options. I encourage you to check out the --gapless and --rva-album/--rva-mix options:-) on command line syntax/options. I encourage you to check out the --gapless
and --rva-album/--rva-mix options:-)
In the simple "mpg123 file1.mp3 file2.mp3" mode, the only thing you can do to interact is to press Ctrl+C to skip to next track or end the whole playback if pressing it twice. In the simple "mpg123 file1.mp3 file2.mp3" mode, the only thing you can
do to interact is to press Ctrl+C to skip to next track or end the whole
playback if pressing it twice.
Note that this Ctrl+C behaviour is special to this mode; when any of the following is activated, Ctrl+C will just kill the program like you would expect normally (this changed from earlier versions). Note that this Ctrl+C behaviour is special to this mode; when any of
the following is activated, Ctrl+C will just kill the program like you
would expect normally (this changed from earlier versions).
3.2 Advanced Console Usage 3.2 Advanced Console Usage
You can specify the option -C to enable a terminal control interface enabling to influence playback on current title/playlist by pressing some key: You can specify the option -C to enable a terminal control interface
enabling to influence playback on current title/playlist by pressing
some key:
-= terminal control keys =- -= terminal control keys =-
[s] or [ ] interrupt/restart playback (i.e. '(un)pause') [s] or [ ] interrupt/restart playback (i.e. '(un)pause')
[f] next track [f] next track
@@ -98,7 +121,8 @@ You can specify the option -C to enable a terminal control interface enabling to
[c] or [C] pitch up (small step, big step) [c] or [C] pitch up (small step, big step)
[x] or [X] pitch down (small step, big step) [x] or [X] pitch down (small step, big step)
[w] reset pitch to zero [w] reset pitch to zero
[k] print out current position in playlist and track, for the benefit of some external tool to store bookmarks [k] print out current position in playlist and track, for the benefit
of some external tool to store bookmarks
[h] this help [h] this help
[q] quit [q] quit
@@ -106,41 +130,76 @@ You can change these bindings to key to your liking by modifying term.h .
Note: This interface needs not to be available on _every_ platform/build. Note: This interface needs not to be available on _every_ platform/build.
Another note: The volume up and down is performed by changing the scale factor (like the -f parameter) ... so the audio is scaled digitally in the given range of the output format (usually 16bits). That means the lowering the volume will decrease the dynamic range and possibly lessen the quality while increasing volume can in fact increase the dynamic range and thus make it better, if you deal with a silent source and no clipping is necessary. Another note: The volume up and down is performed by changing the scale
It is a good idea to use RVA values stored in the file for adjusting low volume files, though - mpg123 handles that in addition to your volume setting. factor (like the -f parameter) ... so the audio is scaled digitally in
the given range of the output format (usually 16bits). That means the
lowering the volume will decrease the dynamic range and possibly lessen
the quality while increasing volume can in fact increase the dynamic
range and thus make it better, if you deal with a silent source and no
clipping is necessary.
It is a good idea to use RVA values stored in the file for adjusting
low volume files, though - mpg123 handles that in addition to your
volume setting.
3.3 Control Interface for Frontends 3.3 Control Interface for Frontends
There used to be several interfaces for frontends left over from that past, but only one of them remains for the present and future: There used to be several interfaces for frontends left over from that
past, but only one of them remains for the present and future:
The Generic Control Interface The Generic Control Interface
It contains of communication of textual messages via standard input to mpg123 and responses to standard output unless the -s switch for output of audio data on stdout is used - then the responses come via stderr. It contains of communication of textual messages via standard input to
mpg123 and responses to standard output unless the -s switch for output
of audio data on stdout is used - then the responses come via stderr.
See doc/README.remote for usage. See doc/README.remote for usage.
4. Speed 4. Speed
mpg123 is fast. Any faster software player is probably based on some hacked mpg123;-) mpg123 is fast. Any faster software player is probably based on some
MPlayer included mpg123 source code in it's mp3lib and we have to be thankful for the MPlayer folks adding SSE, 3DNowExt and AltiVec optimizations over the years, which we were able to backport. hacked mpg123;-)
MPlayer included mpg123 source code in it's mp3lib and we have to
be thankful for the MPlayer folks adding SSE, 3DNowExt and AltiVec
optimizations over the years, which we were able to backport.
mpg123 includes the AltiVec optimization since version 0.61 and the SSE and 3DNowExt optimizations since 0.66 . mpg123 includes the AltiVec optimization since version 0.61 and the SSE
Also, version 0.66 adds the merged x86 optimization build, which includes every applicable optimization for x86 cpus except the one for i486, wich is a bit special. and 3DNowExt optimizations since 0.66 .
Also, version 0.66 adds the merged x86 optimization build, which includes
every applicable optimization for x86 cpus except the one for i486,
wich is a bit special.
Now mpg123 catched up with MPlayer's mp3lib concerning decoding speed on my Pentium M (which supports SSE): Now mpg123 catched up with MPlayer's mp3lib concerning decoding speed
Decoding a certain album (Queensryche's Rage for Order) to /dev/null took 22.4s user time with mpg123-0.66 compared to 24.7s with MPlayer-1.0rc1 . on my Pentium M (which supports SSE):
Decoding a certain album (Queensryche's Rage for Order) to /dev/null took
22.4s user time with mpg123-0.66 compared to 24.7s with MPlayer-1.0rc1 .
Also, beginning with mpg123 1.8.0, there are fresh x86-64 SSE
optimizations (provided by Taihei Monma) which make mpg123 the fastest
MPEG audio decoder in my knowledge also on current 64bit x86 systems.
Manual optimizations continued with AVX probably being the last vector
instruction set that makes sense to implement the decoder for.
In 2025, a Core i7-10710U CPU needs 5.97 s for Queensryche's Rage for
Order with the AVX decoder, 6.01 s with x86-64 (SSE) and 9.05 s with
generic C code from the Ubuntu 22.04 build of mpg123 1.29.3.
Also, beginning with mpg123 1.8.0, there are fresh x86-64 SSE optimizations (provided by Taihei Monma) which make mpg123 the fastest MPEG audio decoder in my knowledge also on current 64bit x86 systems.
5. Accuracy 5. Accuracy
The mpg123 engine is able to decode in full compliance to ISO/IEC 11172-3, for all three layers, using floating point or integer math (the latter since 1.8.1). The mpg123 engine is able to decode in full compliance to ISO/IEC 11172-3,
Accuracy of 16bit output depends on specific optimization in use and compile-time choice about the rounding mode (which is performance relevant). for all three layers, using floating point or integer math (the latter
since 1.8.1).
Accuracy of 16bit output depends on specific optimization in use and
compile-time choice about the rounding mode (which is performance
relevant).
The ISO test suite is incorporated in the mpg123 subversion repository under svn://orgis.org/mpg123/test, nightly tests of a build (with high-quality 16bit rounding) are published on the mpg123 website. The ISO test suite is incorporated in the mpg123 subversion repository
under svn://orgis.org/mpg123/test, nightly tests of a build (with
high-quality 16bit rounding) are published on the mpg123 website.
Dithered 16bit output is available as an option (the --cpu choices ending with _dither). See Dithered 16bit output is available as an option (the --cpu choices ending
with _dither). See
http://dither123.dyndns.org http://dither123.dyndns.org
@@ -148,57 +207,103 @@ on the whereabouts.
6. History 6. History
A looooong time ago (mid-90s), Michael Hipp wrote some initial mpg123 and made it _the_ Unix console mp3 player in the following years. A looooong time ago (mid-90s), Michael Hipp wrote some initial mpg123
The exact date of birth is fuzzy in human memory, but according to the master himself (Michael) mpg123 started in 1994 as an MP2 player which a year later, 1995, gained MP3 ability. and made it _the_ Unix console mp3 player in the following years.
The core decoder files have mostly 1995 as their birth year listed, so one can say that mpg123 as the layer1,2,3 player was born in 1995. The exact date of birth is fuzzy in human memory, but according to the
In any case, that is a looooong time ago for a media player - especially for one that is still alive! master himself (Michael) mpg123 started in 1994 as an MP2 player which
a year later, 1995, gained MP3 ability.
The core decoder files have mostly 1995 as their birth year listed,
so one can say that mpg123 as the layer1,2,3 player was born in 1995.
In any case, that is a looooong time ago for a media player - especially
for one that is still alive!
This is the historic description: This is the historic description:
This isn't a new player. It's a fully rewritten version originally based This isn't a new player. It's a fully rewritten version originally
based
on the mpegaudio (FHG-version) package. The DCT algorithm in the on the mpegaudio (FHG-version) package. The DCT algorithm in the
synthesis filter is a rewritten version of the DCT first seen in the maplay synthesis filter is a rewritten version of the DCT first seen
package, which was written by Tobias Bading (bading@cs.tu-berlin.de). The in the maplay
rewrite was necessary, because the GPL may not allow this copyright mix. package, which was written by Tobias Bading
The mpegaudio package was written by various people from the MPEG/audio (bading@cs.tu-berlin.de). The
software simulation group. The maplay is under GPL .. You can find the rewrite was necessary, because the GPL may not allow this
original source code and the mpegaudio package on: ftp.tnt.uni-hannover.de. copyright mix.
The mpegaudio package was written by various people from the
MPEG/audio
software simulation group. The maplay is under GPL .. You can
find the
original source code and the mpegaudio package on:
ftp.tnt.uni-hannover.de.
Especially layer3.c common.c and mpg123.h is based on the dist10 package. Especially layer3.c common.c and mpg123.h is based on the
dist10 package.
The code is fully rewritten but I'm using sometimes the The code is fully rewritten but I'm using sometimes the
same variable names or similar function names as in the same variable names or similar function names as in the
original package. original package.
In the current layer3.c I'm using a DCT36 first seen in Jeff Tsay's In the current layer3.c I'm using a DCT36 first seen in Jeff
Tsay's
(ctsay@pasteur.eecs.berkeley.edu) maplay 1.2+ package. His code is (ctsay@pasteur.eecs.berkeley.edu) maplay 1.2+ package. His code is
under GPL .. I also tried the enhancement from Mikko Tommila. His under GPL .. I also tried the enhancement from Mikko Tommila. His
code is also in layer3.c (but it's disabled at the moment, because code is also in layer3.c (but it's disabled at the moment, because
it was slightly slower than the unrolled 9 point DCT (at least on it was slightly slower than the unrolled 9 point DCT (at least on
_my_ system)). Theoretically it should be faster. You may try it on _my_ system)). Theoretically it should be faster. You may try
it on
your system. your system.
Well, that's how it started... Well, that's how it started...
Official development ceased due to the typical lack-of-time syndrome around 2002 and the free-floating patches began to seize the day. Official development ceased due to the typical lack-of-time syndrome
around 2002 and the free-floating patches began to seize the day.
But before that, Michael wrote or rewrote the essential code; others contributed their bits. But before that, Michael wrote or rewrote the essential code; others
contributed their bits.
The main message is: The main message is:
Code is copyrighted by Michael Hipp, who made it free software under the terms of the LGPL 2.1. Code is copyrighted by Michael Hipp, who made it free software under
the terms of the LGPL 2.1.
Please see doc/ROAD_TO_LGPL, COPYING and AUTHORS for details on that. Note that the only notable legacy non-LGPL file was the old alsa output that didn't work with alsa 0.9/1.0 anymore. Please see doc/ROAD_TO_LGPL, COPYING and AUTHORS for details on that. Note
Also, there has been a libao output in the betas 0.60 for a short period. Libao being generally problematic for us because of its GPL license, this output is not distributed anymore in the release packages. There is now a new, LGPLed alsa output that made both the old alsa and libao obsolete for our purposes. that the only notable legacy non-LGPL file was the old alsa output that
So, the distributed mpg123 releases actually only contain LGPL code, but you get the other files from our subversion repository if you checkout the trunk / version tags. didn't work with alsa 0.9/1.0 anymore.
Also, there has been a libao output in the betas 0.60 for a short
period. Libao being generally problematic for us because of its
GPL license, this output is not distributed anymore in the release
packages. There is now a new, LGPLed alsa output that made both the old
alsa and libao obsolete for our purposes.
So, the distributed mpg123 releases actually only contain LGPL code, but
you get the other files from our subversion repository if you checkout
the trunk / version tags.
There has been quite some confusion about the licensing and "freeness" of mpg123 in the past. There has been quite some confusion about the licensing and "freeness"
The initial "free for private use, ask me when you want to do something commercial" license caused some people to avoid mpg123 and even to write a replacement mimicking the interface but using a different decoding engine - what was not actively developed for too long but entered the "free" software sections. of mpg123 in the past.
The initial "free for private use, ask me when you want to do something
commercial" license caused some people to avoid mpg123 and even to write
a replacement mimicking the interface but using a different decoding
engine - what was not actively developed for too long but entered the
"free" software sections.
The Debian (non-free section) and Gentoo distributions cared about the last stable and the last development release of mpg123 over the years with mainly applying security fixes. Thanks go to the distribution maintainers for not letting it alone to bitrot over the years. The Debian (non-free section) and Gentoo distributions cared about the
last stable and the last development release of mpg123 over the years
with mainly applying security fixes. Thanks go to the distribution
maintainers for not letting it alone to bitrot over the years.
Thomas Orgis started to hack on mpg123 in 2004 while working on his personal audio experience with mixplayd and later DerMixD, utilizing the generic control interface. In Feb 2005, he crammed control interface improvements together with Debian's r19 fixes and released the personal fork/patch named mpg123-thor. Thomas Orgis started to hack on mpg123 in 2004 while working on his
Little later that year, Nicholas J. Humphrey independently created the sourceforge project and released an autotooled 0.59r under official GPL flag with Debian and MacOSX fixes. personal audio experience with mixplayd and later DerMixD, utilizing
In the beginning of 2006, Thomas finally decided that he could work "officially" on mpg123 and contacted Michael Hipp for taking over maintainership. the generic control interface. In Feb 2005, he crammed control interface
Michael was all-positive about letting mpg123 really live again (and perhaps see version 1.0 some time;-) and also pointed at the sourceforge project that didn't see much activity since the initial release. improvements together with Debian's r19 fixes and released the personal
A lot of emails and some weeks later there was the two-developer team of Nicholas and Thomas working on merging their mpg123 variants as well as adding some features and fixes to let it shine again. fork/patch named mpg123-thor.
Little later that year, Nicholas J. Humphrey independently created the
sourceforge project and released an autotooled 0.59r under official GPL
flag with Debian and MacOSX fixes.
In the beginning of 2006, Thomas finally decided that he could work
"officially" on mpg123 and contacted Michael Hipp for taking over
maintainership.
Michael was all-positive about letting mpg123 really live again (and
perhaps see version 1.0 some time;-) and also pointed at the sourceforge
project that didn't see much activity since the initial release.
A lot of emails and some weeks later there was the two-developer team
of Nicholas and Thomas working on merging their mpg123 variants as well
as adding some features and fixes to let it shine again.
And there we are now... And there we are now...

309
configure vendored
View File

@@ -1,6 +1,6 @@
#! /bin/sh #! /bin/sh
# Guess values for system-dependent variables and create Makefiles. # Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.71 for mpg123 1.33.0. # Generated by GNU Autoconf 2.71 for mpg123 1.33.1.
# #
# Report bugs to <maintainer@mpg123.org>. # Report bugs to <maintainer@mpg123.org>.
# #
@@ -621,8 +621,8 @@ MAKEFLAGS=
# Identity of this package. # Identity of this package.
PACKAGE_NAME='mpg123' PACKAGE_NAME='mpg123'
PACKAGE_TARNAME='mpg123' PACKAGE_TARNAME='mpg123'
PACKAGE_VERSION='1.33.0' PACKAGE_VERSION='1.33.1'
PACKAGE_STRING='mpg123 1.33.0' PACKAGE_STRING='mpg123 1.33.1'
PACKAGE_BUGREPORT='maintainer@mpg123.org' PACKAGE_BUGREPORT='maintainer@mpg123.org'
PACKAGE_URL='' PACKAGE_URL=''
@@ -858,9 +858,6 @@ PULSE_LIBS
PULSE_CFLAGS PULSE_CFLAGS
JACK_LIBS JACK_LIBS
JACK_CFLAGS JACK_CFLAGS
PKG_CONFIG_LIBDIR
PKG_CONFIG_PATH
PKG_CONFIG
HAVE_ARM_FALSE HAVE_ARM_FALSE
HAVE_ARM_TRUE HAVE_ARM_TRUE
HAVE_GETCPUFLAGS_ARM_FALSE HAVE_GETCPUFLAGS_ARM_FALSE
@@ -1012,6 +1009,9 @@ CPPFLAGS
LDFLAGS LDFLAGS
CFLAGS CFLAGS
CC CC
PKG_CONFIG_LIBDIR
PKG_CONFIG_PATH
PKG_CONFIG
AM_BACKSLASH AM_BACKSLASH
AM_DEFAULT_VERBOSITY AM_DEFAULT_VERBOSITY
AM_DEFAULT_V AM_DEFAULT_V
@@ -1157,6 +1157,9 @@ with_network
ac_precious_vars='build_alias ac_precious_vars='build_alias
host_alias host_alias
target_alias target_alias
PKG_CONFIG
PKG_CONFIG_PATH
PKG_CONFIG_LIBDIR
CC CC
CFLAGS CFLAGS
LDFLAGS LDFLAGS
@@ -1166,9 +1169,6 @@ CCAS
CCASFLAGS CCASFLAGS
CPP CPP
LT_SYS_LIBRARY_PATH LT_SYS_LIBRARY_PATH
PKG_CONFIG
PKG_CONFIG_PATH
PKG_CONFIG_LIBDIR
JACK_CFLAGS JACK_CFLAGS
JACK_LIBS JACK_LIBS
PULSE_CFLAGS PULSE_CFLAGS
@@ -1727,7 +1727,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing. # Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh. # This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF cat <<_ACEOF
\`configure' configures mpg123 1.33.0 to adapt to many kinds of systems. \`configure' configures mpg123 1.33.1 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]... Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1798,7 +1798,7 @@ fi
if test -n "$ac_init_help"; then if test -n "$ac_init_help"; then
case $ac_init_help in case $ac_init_help in
short | recursive ) echo "Configuration of mpg123 1.33.0:";; short | recursive ) echo "Configuration of mpg123 1.33.1:";;
esac esac
cat <<\_ACEOF cat <<\_ACEOF
@@ -1980,6 +1980,11 @@ Optional Packages:
default, but can be used for HTTP, too. default, but can be used for HTTP, too.
Some influential environment variables: Some influential environment variables:
PKG_CONFIG path to pkg-config utility
PKG_CONFIG_PATH
directories to add to pkg-config's search path
PKG_CONFIG_LIBDIR
path overriding pkg-config's built-in search path
CC C compiler command CC C compiler command
CFLAGS C compiler flags CFLAGS C compiler flags
LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
@@ -1992,11 +1997,6 @@ Some influential environment variables:
CPP C preprocessor CPP C preprocessor
LT_SYS_LIBRARY_PATH LT_SYS_LIBRARY_PATH
User-defined run-time library search path. User-defined run-time library search path.
PKG_CONFIG path to pkg-config utility
PKG_CONFIG_PATH
directories to add to pkg-config's search path
PKG_CONFIG_LIBDIR
path overriding pkg-config's built-in search path
JACK_CFLAGS C compiler flags for JACK, overriding pkg-config JACK_CFLAGS C compiler flags for JACK, overriding pkg-config
JACK_LIBS linker flags for JACK, overriding pkg-config JACK_LIBS linker flags for JACK, overriding pkg-config
PULSE_CFLAGS PULSE_CFLAGS
@@ -2077,7 +2077,7 @@ fi
test -n "$ac_init_help" && exit $ac_status test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then if $ac_init_version; then
cat <<\_ACEOF cat <<\_ACEOF
mpg123 configure 1.33.0 mpg123 configure 1.33.1
generated by GNU Autoconf 2.71 generated by GNU Autoconf 2.71
Copyright (C) 2021 Free Software Foundation, Inc. Copyright (C) 2021 Free Software Foundation, Inc.
@@ -2622,7 +2622,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake. running configure, to aid debugging if configure makes a mistake.
It was created by mpg123 $as_me 1.33.0, which was It was created by mpg123 $as_me 1.33.1, which was
generated by GNU Autoconf 2.71. Invocation command line was generated by GNU Autoconf 2.71. Invocation command line was
$ $0$ac_configure_args_raw $ $0$ac_configure_args_raw
@@ -3992,7 +3992,7 @@ fi
# Define the identity of the package. # Define the identity of the package.
PACKAGE='mpg123' PACKAGE='mpg123'
VERSION='1.33.0' VERSION='1.33.1'
printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h
@@ -4098,6 +4098,140 @@ fi
ac_config_headers="$ac_config_headers src/config.h" ac_config_headers="$ac_config_headers src/config.h"
if test 2 -lt "$(grep "PKG_"CHECK_MODULES "$0"|wc -l)"; then
as_fn_error $? "Pkg-config was absent when generating this configure script.
Re-run autoreconf with pkg-config installed top get a working one." "$LINENO" 5
fi
if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_path_PKG_CONFIG+y}
then :
printf %s "(cached) " >&6
else $as_nop
case $PKG_CONFIG in
[\\/]* | ?:[\\/]*)
ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
;;
*)
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_path_PKG_CONFIG="$as_dir$ac_word$ac_exec_ext"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
;;
esac
fi
PKG_CONFIG=$ac_cv_path_PKG_CONFIG
if test -n "$PKG_CONFIG"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
printf "%s\n" "$PKG_CONFIG" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
fi
if test -z "$ac_cv_path_PKG_CONFIG"; then
ac_pt_PKG_CONFIG=$PKG_CONFIG
# Extract the first word of "pkg-config", so it can be a program name with args.
set dummy pkg-config; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_path_ac_pt_PKG_CONFIG+y}
then :
printf %s "(cached) " >&6
else $as_nop
case $ac_pt_PKG_CONFIG in
[\\/]* | ?:[\\/]*)
ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
;;
*)
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_path_ac_pt_PKG_CONFIG="$as_dir$ac_word$ac_exec_ext"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
;;
esac
fi
ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
if test -n "$ac_pt_PKG_CONFIG"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
printf "%s\n" "$ac_pt_PKG_CONFIG" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
if test "x$ac_pt_PKG_CONFIG" = x; then
PKG_CONFIG=""
else
case $cross_compiling:$ac_tool_warned in
yes:)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
PKG_CONFIG=$ac_pt_PKG_CONFIG
fi
else
PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
fi
fi
if test -n "$PKG_CONFIG"; then
_pkg_min_version=0.9.0
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5
printf %s "checking pkg-config is at least version $_pkg_min_version... " >&6; }
if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
PKG_CONFIG=""
fi
fi
# You get strange symptoms like jack module build failing because the AC_C_CONST failed to detect the working const support. # You get strange symptoms like jack module build failing because the AC_C_CONST failed to detect the working const support.
# In that case, the test failed because -Werror, not because no const there... # In that case, the test failed because -Werror, not because no const there...
@@ -17723,8 +17857,6 @@ printf "%s\n" "$ac_cv_header_wincon_h" >&6; }
if test "x$ac_cv_header_wincon_h" = "xyes" if test "x$ac_cv_header_wincon_h" = "xyes"
then : then :
else $as_nop
printf "%s\n" "#define HAVE_WINCON_H 1" >>confdefs.h printf "%s\n" "#define HAVE_WINCON_H 1" >>confdefs.h
fi fi
@@ -18797,137 +18929,6 @@ if test "x$build_libout123" = xyes && ! echo "$check_modules" | grep -qw dummy;
check_modules="$check_modules dummy" check_modules="$check_modules dummy"
fi fi
if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_path_PKG_CONFIG+y}
then :
printf %s "(cached) " >&6
else $as_nop
case $PKG_CONFIG in
[\\/]* | ?:[\\/]*)
ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
;;
*)
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_path_PKG_CONFIG="$as_dir$ac_word$ac_exec_ext"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
;;
esac
fi
PKG_CONFIG=$ac_cv_path_PKG_CONFIG
if test -n "$PKG_CONFIG"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
printf "%s\n" "$PKG_CONFIG" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
fi
if test -z "$ac_cv_path_PKG_CONFIG"; then
ac_pt_PKG_CONFIG=$PKG_CONFIG
# Extract the first word of "pkg-config", so it can be a program name with args.
set dummy pkg-config; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_path_ac_pt_PKG_CONFIG+y}
then :
printf %s "(cached) " >&6
else $as_nop
case $ac_pt_PKG_CONFIG in
[\\/]* | ?:[\\/]*)
ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
;;
*)
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_path_ac_pt_PKG_CONFIG="$as_dir$ac_word$ac_exec_ext"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
;;
esac
fi
ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
if test -n "$ac_pt_PKG_CONFIG"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
printf "%s\n" "$ac_pt_PKG_CONFIG" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
if test "x$ac_pt_PKG_CONFIG" = x; then
PKG_CONFIG=""
else
case $cross_compiling:$ac_tool_warned in
yes:)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
PKG_CONFIG=$ac_pt_PKG_CONFIG
fi
else
PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
fi
fi
if test -n "$PKG_CONFIG"; then
_pkg_min_version=0.9.0
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5
printf %s "checking pkg-config is at least version $_pkg_min_version... " >&6; }
if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
PKG_CONFIG=""
fi
fi
# Now go through the modules to check and do the chores. # Now go through the modules to check and do the chores.
for m in $check_modules for m in $check_modules
do do
@@ -22467,7 +22468,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their # report actual input values of CONFIG_FILES etc. instead of their
# values after options handling. # values after options handling.
ac_log=" ac_log="
This file was extended by mpg123 $as_me 1.33.0, which was This file was extended by mpg123 $as_me 1.33.1, which was
generated by GNU Autoconf 2.71. Invocation command line was generated by GNU Autoconf 2.71. Invocation command line was
CONFIG_FILES = $CONFIG_FILES CONFIG_FILES = $CONFIG_FILES
@@ -22535,7 +22536,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config='$ac_cs_config_escaped' ac_cs_config='$ac_cs_config_escaped'
ac_cs_version="\\ ac_cs_version="\\
mpg123 config.status 1.33.0 mpg123 config.status 1.33.1
configured by $0, generated by GNU Autoconf 2.71, configured by $0, generated by GNU Autoconf 2.71,
with options \\"\$ac_cs_config\\" with options \\"\$ac_cs_config\\"

View File

@@ -80,6 +80,13 @@ dnl Testing with 1.14.
AM_INIT_AUTOMAKE([subdir-objects]) AM_INIT_AUTOMAKE([subdir-objects])
AC_CONFIG_HEADERS([src/config.h]) AC_CONFIG_HEADERS([src/config.h])
dnl You tell me how quoting this normally would work to avoid expansion!
if test 2 -lt "$(grep "PKG_"CHECK_MODULES "$0"|wc -l)"; then
AC_MSG_ERROR([Pkg-config was absent when generating this configure script.
Re-run autoreconf with pkg-config installed top get a working one.])
fi
dnl For some reason, this has to be after the check above.
PKG_PROG_PKG_CONFIG([])
# You get strange symptoms like jack module build failing because the AC_C_CONST failed to detect the working const support. # You get strange symptoms like jack module build failing because the AC_C_CONST failed to detect the working const support.
# In that case, the test failed because -Werror, not because no const there... # In that case, the test failed because -Werror, not because no const there...
@@ -1471,7 +1478,7 @@ AC_COMPILE_IFELSE([AC_LANG_SOURCE([
void *v = &ReadConsoleInput; void *v = &ReadConsoleInput;
])],[ac_cv_header_wincon_h=yes],[ac_cv_header_wincon_h=no]) ])],[ac_cv_header_wincon_h=yes],[ac_cv_header_wincon_h=no])
AC_MSG_RESULT([$ac_cv_header_wincon_h]) AC_MSG_RESULT([$ac_cv_header_wincon_h])
AS_IF([test "x$ac_cv_header_wincon_h" = "xyes"],[],[AC_DEFINE([HAVE_WINCON_H],[1],[Define to 1 if you have the <wincon.h> header file.])]) AS_IF([test "x$ac_cv_header_wincon_h" = "xyes"],[AC_DEFINE([HAVE_WINCON_H],[1],[Define to 1 if you have the <wincon.h> header file.])],[])
term_type=none term_type=none
if test "x$ac_cv_sys_posix_termios" = "xyes"; then if test "x$ac_cv_sys_posix_termios" = "xyes"; then
@@ -1926,8 +1933,6 @@ if test "x$build_libout123" = xyes && ! echo "$check_modules" | grep -qw dummy;
check_modules="$check_modules dummy" check_modules="$check_modules dummy"
fi fi
PKG_PROG_PKG_CONFIG([])
# Now go through the modules to check and do the chores. # Now go through the modules to check and do the chores.
for m in $check_modules for m in $check_modules
do do

View File

@@ -3,7 +3,7 @@
# - devel packages for alsa, sdl, etc... to build the respective output modules. # - devel packages for alsa, sdl, etc... to build the respective output modules.
Summary: The fast console mpeg audio decoder/player. Summary: The fast console mpeg audio decoder/player.
Name: mpg123 Name: mpg123
Version: 1.33.0 Version: 1.33.1
Release: 1 Release: 1
URL: http://www.mpg123.org/ URL: http://www.mpg123.org/
License: GPL License: GPL

View File

@@ -53,18 +53,8 @@ install(
"${CMAKE_CURRENT_BINARY_DIR}/libsyn123.pc" "${CMAKE_CURRENT_BINARY_DIR}/libsyn123.pc"
DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig") DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig")
if(BUILD_LIBOUT123) if(BUILD_LIBOUT123)
install(
FILES
"${CMAKE_CURRENT_SOURCE_DIR}/../../man1/mpg123.1"
"${CMAKE_CURRENT_SOURCE_DIR}/../../man1/out123.1"
DESTINATION "${CMAKE_INSTALL_MANDIR}")
install( install(
FILES FILES
"${CMAKE_CURRENT_BINARY_DIR}/libout123.pc" "${CMAKE_CURRENT_BINARY_DIR}/libout123.pc"
DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig") DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig")
install(
FILES
"${CMAKE_CURRENT_SOURCE_DIR}/../../man1/out123.1"
DESTINATION "${CMAKE_INSTALL_MANDIR}")
endif() endif()

View File

@@ -456,7 +456,14 @@ if(UNIX AND NOT PORTABLE_API)
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}/" ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}/"
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}/" LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}/"
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}/") RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}/")
endif()
install(
FILES
"${CMAKE_CURRENT_SOURCE_DIR}/../../../man1/mpg123.1"
"${CMAKE_CURRENT_SOURCE_DIR}/../../../man1/out123.1"
DESTINATION "${CMAKE_INSTALL_MANDIR}")
endif()
endif() endif()
configure_file(config.cmake.h.in config.h) configure_file(config.cmake.h.in config.h)

View File

@@ -112,10 +112,10 @@ static int term_setup_detail(struct termios *pattern)
{ {
mdebug("setup on fd %d", term_fd); mdebug("setup on fd %d", term_fd);
/* One might want to use sigaction instead. */ INT123_catchsignal(SIGCONT, term_sigcont);
signal(SIGCONT, term_sigcont); INT123_catchsignal(SIGUSR1, term_sigusr);
signal(SIGUSR1, term_sigusr); INT123_catchsignal(SIGUSR2, term_sigusr);
signal(SIGUSR2, term_sigusr);
struct termios tio = *pattern; struct termios tio = *pattern;
tio.c_lflag &= ~(ICANON|ECHO); tio.c_lflag &= ~(ICANON|ECHO);
tio.c_cc[VMIN] = 1; tio.c_cc[VMIN] = 1;

View File

@@ -16,7 +16,7 @@
// only single spaces as separator to ease parsing by build scripts // only single spaces as separator to ease parsing by build scripts
#define MPG123_MAJOR 1 #define MPG123_MAJOR 1
#define MPG123_MINOR 33 #define MPG123_MINOR 33
#define MPG123_PATCH 0 #define MPG123_PATCH 1
// Don't get too wild with that to avoid confusing m4. No brackets. // Don't get too wild with that to avoid confusing m4. No brackets.
// Also, it should fit well into a sane file name for the tarball. // Also, it should fit well into a sane file name for the tarball.
#define MPG123_SUFFIX "" #define MPG123_SUFFIX ""