Added abandoned KDE3 version of Amarok
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/applications/amarok@1072335 283d02a7-25f6-0310-bc7c-ecb5cbfe19dav3.5.13-sru
commit
3ce9174229
@ -0,0 +1,15 @@
|
||||
Alexandre Oliveira <aleprj@gmail.com>
|
||||
Christian Muehlhaeuser <chris@chris.de>
|
||||
Frederik Holljen <fh@ez.no>
|
||||
Gábor Lehel <illissius@gmail.com>
|
||||
Ian Monroe <ian@monroe.nu>
|
||||
Jeff Mitchell <kde-dev@emailgoeshere.com>
|
||||
Mark Kretschmann <kretschmann@kde.org>
|
||||
Martin Aumueller <aumuell@reserv.at>
|
||||
Max Howell <max.howell@methylblue.com>
|
||||
Mike Diehl <madpenguin8@yahoo.com>
|
||||
Paul Cifarelli <paul@cifarelli.net>
|
||||
Pierpaolo Di Panfilo <pippo_dp@libero.it>
|
||||
Roman Becker <roman@formmorf.de>
|
||||
Seb Ruiz <ruiz@kde.org>
|
||||
Stanislav Karchebny <berk@inbox.ru>
|
@ -0,0 +1,51 @@
|
||||
project(extragear-multimedia)
|
||||
|
||||
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_SOURCE_DIR}/cmake/modules )
|
||||
|
||||
# search packages used by KDE
|
||||
find_package(KDE4 REQUIRED)
|
||||
include (KDE4Defaults)
|
||||
include (MacroLibrary)
|
||||
include(MacroOptionalAddSubdirectory)
|
||||
find_package(RUBY)
|
||||
find_package(KdeMultimedia)
|
||||
find_package(OpenGL)
|
||||
find_package(Xine)
|
||||
# are these two really required ?
|
||||
if (APPLE)
|
||||
find_package(Carbon REQUIRED)
|
||||
endif (APPLE)
|
||||
set(TAGLIB_MIN_VERSION "1.5")
|
||||
find_package(Taglib)
|
||||
|
||||
#amarok needs to be before add_definitions, since it builds
|
||||
#some qt-only software
|
||||
if(TAGLIB_FOUND AND RUBY_EXECUTABLE AND RUBY_INCLUDE_PATH)
|
||||
macro_optional_add_subdirectory(amarok)
|
||||
endif(TAGLIB_FOUND AND RUBY_EXECUTABLE AND RUBY_INCLUDE_PATH)
|
||||
|
||||
|
||||
add_definitions (${QT_DEFINITIONS} ${KDE4_DEFINITIONS})
|
||||
|
||||
include_directories (${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR} ${KDE4_INCLUDES})
|
||||
|
||||
include (ConfigureChecks.cmake)
|
||||
|
||||
if(TAGLIB_FOUND)
|
||||
include_directories (${TAGLIB_INCLUDES})
|
||||
endif(TAGLIB_FOUND)
|
||||
|
||||
if(KDEMULTIMEDIA_FOUND)
|
||||
macro_optional_add_subdirectory(k3b)
|
||||
macro_optional_add_subdirectory(kaudiocreator)
|
||||
endif(KDEMULTIMEDIA_FOUND)
|
||||
macro_optional_add_subdirectory(kaffeine)
|
||||
macro_optional_add_subdirectory(kmid)
|
||||
macro_optional_add_subdirectory(kplayer)
|
||||
macro_optional_add_subdirectory(kmplayer)
|
||||
macro_optional_add_subdirectory(doc)
|
||||
|
||||
if(QT_QTOPENGL_FOUND AND OPENGL_FOUND AND XINE_FOUND)
|
||||
macro_optional_add_subdirectory(kaffeinegl)
|
||||
endif(QT_QTOPENGL_FOUND AND OPENGL_FOUND AND XINE_FOUND)
|
||||
|
@ -0,0 +1,34 @@
|
||||
include(CheckIncludeFile)
|
||||
include(CheckIncludeFiles)
|
||||
include(CheckSymbolExists)
|
||||
include(CheckFunctionExists)
|
||||
include(CheckLibraryExists)
|
||||
include(CheckPrototypeExists)
|
||||
include(CheckTypeSize)
|
||||
include(MacroBoolTo01)
|
||||
|
||||
# The FindKDE4.cmake module sets _KDE4_PLATFORM_DEFINITIONS with
|
||||
# definitions like _GNU_SOURCE that are needed on each platform.
|
||||
set(CMAKE_REQUIRED_DEFINITIONS ${_KDE4_PLATFORM_DEFINITIONS})
|
||||
|
||||
#check for libz using the cmake supplied FindZLIB.cmake
|
||||
macro_bool_to_01(ZLIB_FOUND HAVE_LIBZ)
|
||||
macro_bool_to_01(JPEG_FOUND HAVE_LIBJPEG)
|
||||
macro_bool_to_01(PNG_FOUND HAVE_LIBPNG)
|
||||
macro_bool_to_01(CARBON_FOUND HAVE_CARBON)
|
||||
macro_bool_to_01(NJB_FOUND HAVE_LIBNJB)
|
||||
macro_bool_to_01(IFP_FOUND HAVE_IFP)
|
||||
macro_bool_to_01(LIBVISUAL_FOUND HAVE_LIBVISUAL)
|
||||
macro_bool_to_01(MTP_FOUND HAVE_MTP)
|
||||
|
||||
#now check for dlfcn.h using the cmake supplied CHECK_include_FILE() macro
|
||||
# If definitions like -D_GNU_SOURCE are needed for these checks they
|
||||
# should be added to _KDE4_PLATFORM_DEFINITIONS when it is originally
|
||||
# defined outside this file. Here we include these definitions in
|
||||
# CMAKE_REQUIRED_DEFINITIONS so they will be included in the build of
|
||||
# checks below.
|
||||
set(CMAKE_REQUIRED_DEFINITIONS ${_KDE4_PLATFORM_DEFINITIONS})
|
||||
if (WIN32)
|
||||
set(CMAKE_REQUIRED_LIBRARIES ${KDEWIN32_LIBRARIES} )
|
||||
set(CMAKE_REQUIRED_INCLUDES ${KDEWIN32_INCLUDES} )
|
||||
endif (WIN32)
|
@ -0,0 +1,185 @@
|
||||
Installing Amarok
|
||||
=================
|
||||
|
||||
In order to compile and install Amarok on your system, type the following in the
|
||||
base directory of the Amarok distribution:
|
||||
|
||||
|
||||
% ./configure --prefix=`kde-config --prefix`
|
||||
% make
|
||||
% make install
|
||||
|
||||
|
||||
Note: --enable-final is not supported.
|
||||
|
||||
|
||||
The GNU installation instructions follow.
|
||||
|
||||
|
||||
Basic Installation
|
||||
==================
|
||||
|
||||
These are generic installation instructions.
|
||||
|
||||
The `configure' shell script attempts to guess correct values for
|
||||
various system-dependent variables used during compilation. It uses
|
||||
those values to create a `Makefile' in each directory of the package.
|
||||
It may also create one or more `.h' files containing system-dependent
|
||||
definitions. Finally, it creates a shell script `config.status' that
|
||||
you can run in the future to recreate the current configuration, a file
|
||||
`config.cache' that saves the results of its tests to speed up
|
||||
reconfiguring, and a file `config.log' containing compiler output
|
||||
(useful mainly for debugging `configure').
|
||||
|
||||
If you need to do unusual things to compile the package, please try
|
||||
to figure out how `configure' could check whether to do them, and mail
|
||||
diffs or instructions to the address given in the `README' so they can
|
||||
be considered for the next release. If at some point `config.cache'
|
||||
contains results you don't want to keep, you may remove or edit it.
|
||||
|
||||
The file `configure.in' is used to create `configure' by a program
|
||||
called `autoconf'. You only need `configure.in' if you want to change
|
||||
it or regenerate `configure' using a newer version of `autoconf'.
|
||||
|
||||
The simplest way to compile this package is:
|
||||
|
||||
1. `cd' to the directory containing the package's source code and type
|
||||
`./configure' to configure the package for your system. If you're
|
||||
using `csh' on an old version of System V, you might need to type
|
||||
`sh ./configure' instead to prevent `csh' from trying to execute
|
||||
`configure' itself.
|
||||
|
||||
Running `configure' takes a while. While running, it prints some
|
||||
messages telling which features it is checking for.
|
||||
|
||||
2. Type `make' to compile the package.
|
||||
|
||||
3. Type `make install' to install the programs and any data files and
|
||||
documentation.
|
||||
|
||||
4. You can remove the program binaries and object files from the
|
||||
source code directory by typing `make clean'.
|
||||
|
||||
Compilers and Options
|
||||
=====================
|
||||
|
||||
Some systems require unusual options for compilation or linking that
|
||||
the `configure' script does not know about. You can give `configure'
|
||||
initial values for variables by setting them in the environment. Using
|
||||
a Bourne-compatible shell, you can do that on the command line like
|
||||
this:
|
||||
CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
|
||||
|
||||
Or on systems that have the `env' program, you can do it like this:
|
||||
env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure
|
||||
|
||||
Compiling For Multiple Architectures
|
||||
====================================
|
||||
|
||||
You can compile the package for more than one kind of computer at the
|
||||
same time, by placing the object files for each architecture in their
|
||||
own directory. To do this, you must use a version of `make' that
|
||||
supports the `VPATH' variable, such as GNU `make'. `cd' to the
|
||||
directory where you want the object files and executables to go and run
|
||||
the `configure' script. `configure' automatically checks for the
|
||||
source code in the directory that `configure' is in and in `..'.
|
||||
|
||||
If you have to use a `make' that does not supports the `VPATH'
|
||||
variable, you have to compile the package for one architecture at a time
|
||||
in the source code directory. After you have installed the package for
|
||||
one architecture, use `make distclean' before reconfiguring for another
|
||||
architecture.
|
||||
|
||||
Installation Names
|
||||
==================
|
||||
|
||||
By default, `make install' will install the package's files in
|
||||
`/usr/local/bin', `/usr/local/man', etc. You can specify an
|
||||
installation prefix other than `/usr/local' by giving `configure' the
|
||||
option `--prefix=PATH'.
|
||||
|
||||
You can specify separate installation prefixes for
|
||||
architecture-specific files and architecture-independent files. If you
|
||||
give `configure' the option `--exec-prefix=PATH', the package will use
|
||||
PATH as the prefix for installing programs and libraries.
|
||||
Documentation and other data files will still use the regular prefix.
|
||||
|
||||
If the package supports it, you can cause programs to be installed
|
||||
with an extra prefix or suffix on their names by giving `configure' the
|
||||
option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
|
||||
|
||||
Optional Features
|
||||
=================
|
||||
|
||||
Some packages pay attention to `--enable-FEATURE' options to
|
||||
`configure', where FEATURE indicates an optional part of the package.
|
||||
They may also pay attention to `--with-PACKAGE' options, where PACKAGE
|
||||
is something like `gnu-as' or `x' (for the X Window System). The
|
||||
`README' should mention any `--enable-' and `--with-' options that the
|
||||
package recognizes.
|
||||
|
||||
For packages that use the X Window System, `configure' can usually
|
||||
find the X include and library files automatically, but if it doesn't,
|
||||
you can use the `configure' options `--x-includes=DIR' and
|
||||
`--x-libraries=DIR' to specify their locations.
|
||||
|
||||
Specifying the System Type
|
||||
==========================
|
||||
|
||||
There may be some features `configure' can not figure out
|
||||
automatically, but needs to determine by the type of host the package
|
||||
will run on. Usually `configure' can figure that out, but if it prints
|
||||
a message saying it can not guess the host type, give it the
|
||||
`--host=TYPE' option. TYPE can either be a short name for the system
|
||||
type, such as `sun4', or a canonical name with three fields:
|
||||
CPU-COMPANY-SYSTEM
|
||||
|
||||
See the file `config.sub' for the possible values of each field. If
|
||||
`config.sub' isn't included in this package, then this package doesn't
|
||||
need to know the host type.
|
||||
|
||||
If you are building compiler tools for cross-compiling, you can also
|
||||
use the `--target=TYPE' option to select the type of system they will
|
||||
produce code for and the `--build=TYPE' option to select the type of
|
||||
system on which you are compiling the package.
|
||||
|
||||
Sharing Defaults
|
||||
================
|
||||
|
||||
If you want to set default values for `configure' scripts to share,
|
||||
you can create a site shell script called `config.site' that gives
|
||||
default values for variables like `CC', `cache_file', and `prefix'.
|
||||
`configure' looks for `PREFIX/share/config.site' if it exists, then
|
||||
`PREFIX/etc/config.site' if it exists. Or, you can set the
|
||||
`CONFIG_SITE' environment variable to the location of the site script.
|
||||
A warning: not all `configure' scripts look for a site script.
|
||||
|
||||
Operation Controls
|
||||
==================
|
||||
|
||||
`configure' recognizes the following options to control how it
|
||||
operates.
|
||||
|
||||
`--cache-file=FILE'
|
||||
Use and save the results of the tests in FILE instead of
|
||||
`./config.cache'. Set FILE to `/dev/null' to disable caching, for
|
||||
debugging `configure'.
|
||||
|
||||
`--help'
|
||||
Print a summary of the options to `configure', and exit.
|
||||
|
||||
`--quiet'
|
||||
`--silent'
|
||||
`-q'
|
||||
Do not print messages saying which checks are being made.
|
||||
|
||||
`--srcdir=DIR'
|
||||
Look for the package's source code in directory DIR. Usually
|
||||
`configure' can determine that directory automatically.
|
||||
|
||||
`--version'
|
||||
Print the version of Autoconf used to generate the `configure'
|
||||
script, and exit.
|
||||
|
||||
`configure' also accepts some other, not widely useful, options.
|
||||
|
@ -0,0 +1,5 @@
|
||||
AUTOMAKE_OPTIONS = foreign 1.5
|
||||
|
||||
include admin/deps.am
|
||||
include admin/Doxyfile.am
|
||||
SUBDIRS=$(TOPSUBDIRS)
|
@ -0,0 +1,4 @@
|
||||
AUTOMAKE_OPTIONS = foreign 1.5
|
||||
|
||||
include admin/deps.am
|
||||
include admin/Doxyfile.am
|
@ -0,0 +1,14 @@
|
||||
all:
|
||||
@echo "This Makefile is only for the CVS repository"
|
||||
@echo "This will be deleted before making the distribution"
|
||||
@echo ""
|
||||
@if test ! -d admin; then \
|
||||
echo "Please recheckout this module!" ;\
|
||||
echo "for cvs: use checkout once and after that update again" ;\
|
||||
echo "for cvsup: checkout kde-common from cvsup and" ;\
|
||||
echo " link kde-common/admin to ./admin" ;\
|
||||
exit 1 ;\
|
||||
fi
|
||||
$(MAKE) -f admin/Makefile.common cvs
|
||||
|
||||
.SILENT:
|
@ -0,0 +1,223 @@
|
||||
|
||||
Amarok - the audio player for KDE
|
||||
===================================
|
||||
|
||||
There are many media players around these days, true. What's missing from most
|
||||
players is a user interface that doesn't get in the way of the user. How many
|
||||
buttons do you have to press for simply adding some new tracks to the playlist?
|
||||
Amarok tries to be a little different, providing a simple drag and drop
|
||||
interface that really makes playlist handling easy.
|
||||
|
||||
|
||||
FEATURES
|
||||
==========
|
||||
|
||||
* Quick and simple drag and drop playlist creation
|
||||
* Music library (built-in SQLite, MySQL, or PostgreSQL)
|
||||
* Multiple backends supported (xine, Helix, and NMM)
|
||||
* Plays all audio formats known to man
|
||||
* 10 band equalizer
|
||||
* Automatic cover art download using Amazon services
|
||||
* The unique and powerful stylable context browser
|
||||
* Automatic play-statistics generation (iRate style)
|
||||
* Full lyrics download
|
||||
* Learn about your music with integrated Wikipedia
|
||||
* Full last.fm support
|
||||
* Visualisations with libvisual
|
||||
* Crossfading and gapless playback
|
||||
* Fully configurable OSD for track changes
|
||||
* K3B (CD-burning) integration
|
||||
* Podcast support
|
||||
* Access to iPod, iRiver IFP, USB Mass Storage and many other devices
|
||||
* Powerful scripting interface
|
||||
* Complete DCOP Access
|
||||
* KDE integration
|
||||
* Preview and buy albums from the Magnatune.com music store
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
|
||||
DEPENDENCIES
|
||||
==============
|
||||
|
||||
Required
|
||||
* KDE-Libs 3.3 (or newer)
|
||||
http://www.kde.org
|
||||
|
||||
* TagLib 1.4 (or newer)
|
||||
(metadata tagging library)
|
||||
http://freshmeat.net/projects/taglib
|
||||
|
||||
* Ruby 1.8
|
||||
(programming language, used for scoring, lyrics, last.fm streams)
|
||||
http://www.ruby-lang.org
|
||||
|
||||
* One of the multimedia frameworks listed below:
|
||||
|
||||
Recommended
|
||||
* xine-lib 1.0.2 (or newer)
|
||||
Note: xine-lib 1.1.1 is required for gapless playback.
|
||||
(multimedia framework)
|
||||
http://xinehq.de/
|
||||
|
||||
Optional
|
||||
* RealPlayer 10 or HelixPlayer 1.0
|
||||
(multimedia framework)
|
||||
http://www.real.com
|
||||
(Note: only HelixPlayer is exactly RealPlayer without MP3 support)
|
||||
|
||||
* KDE-Base 3.3 (or newer)
|
||||
(needed for Konqueror Sidebar)
|
||||
http://www.kde.org
|
||||
|
||||
* MySQL 4 or 5
|
||||
(faster database support)
|
||||
http://www.mysql.com
|
||||
|
||||
* PostgreSQL 7.4
|
||||
(faster database support)
|
||||
http://www.postgresql.org
|
||||
|
||||
* OpenGL accelerated X-Server
|
||||
(visualization rendering)
|
||||
|
||||
* Libvisual 0.4.0 + SDL 1.2
|
||||
(visualization framework)
|
||||
http://localhost.nl/~synap/libvisual/
|
||||
http://www.libsdl.org
|
||||
|
||||
* ProjectM 0.96 (or newer)
|
||||
(visualization plugins for Libvisual or XMMS)
|
||||
http://xmms-projectm.sourceforge.net/
|
||||
|
||||
* libtunepimp 0.3 (or newer)
|
||||
(automatic tagging support)
|
||||
http://www.musicbrainz.org/
|
||||
|
||||
* K3B 0.11 (or newer)
|
||||
(CD burning support)
|
||||
http://www.k3b.org
|
||||
|
||||
* libgpod 0.4.2 (or newer)
|
||||
(iPod support)
|
||||
Note: libgpod 0.6.0 is required for the newest Apple iPods.
|
||||
http://www.gtkpod.org/libgpod.html
|
||||
|
||||
* libifp 1.0.0.2
|
||||
(iRiver iFP support)
|
||||
http://ifp-driver.sourceforge.net/libifp/
|
||||
|
||||
* libmp4v2 (mpeg4ip 1.5 is recommended, faad2 is less reliable)
|
||||
(MP4/AAC tag reading & writing)
|
||||
http://www.sf.net/projects/mpeg4ip
|
||||
http://www.audiocoding.com
|
||||
|
||||
* libnjb 2.2.4 (older versions may work)
|
||||
(NJB mediadevice (Creative Nomad/Zen family, Dell DJ devices)
|
||||
http://www.sf.net/projects/libnjb
|
||||
|
||||
* libmtp 0.1.1 (or newer)
|
||||
(MTP media device support AKA PlaysForSure)
|
||||
http://libmtp.sourceforge.net/
|
||||
|
||||
* libkarma 0.0.5 && OMFS 0.6.1
|
||||
(Rio Karma support via USB)
|
||||
http://freakysoft.de/html/libkarma/ && http://linux-karma.sf.net/
|
||||
|
||||
Please note, if compiling from source you must also install the devel versions
|
||||
of these packages.
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
|
||||
IMPORTANT INSTALL INSTRUCTIONS
|
||||
================================
|
||||
|
||||
In order to compile and install Amarok on your system, type the following in the
|
||||
base directory of the Amarok distribution:
|
||||
|
||||
|
||||
% ./configure --prefix=`kde-config --prefix`
|
||||
% make
|
||||
% make install
|
||||
|
||||
|
||||
Note: --enable-final is not guaranteed to work
|
||||
|
||||
|
||||
Packages for popular distributions are available at http://amarok.kde.org
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
|
||||
INSTALLATION-FAQ
|
||||
==================
|
||||
|
||||
Q: Can I improve Amarok's startup time?
|
||||
A: Prelinking Amarok has spectacular results; however if you have binary openGL
|
||||
drivers (eg Nvidia drivers), you will need to compile Amarok --without-opengl
|
||||
in order to get the amarokapp binary to prelink (the amarok binary is not
|
||||
important here).
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
|
||||
OTHER-FAQS
|
||||
============
|
||||
|
||||
For answers to problems like "Amarok won't play any MP3s!" and "My MP3s skip
|
||||
and stutter!" please visit:
|
||||
|
||||
http://amarok.kde.org/
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
|
||||
INFORMATION FOR PACKAGERS
|
||||
===========================
|
||||
|
||||
For Amarok packages we suggest you build:
|
||||
|
||||
% ./configure --disable-debug
|
||||
|
||||
It is possible to build Amarok to use MySQL as the database backend. Using
|
||||
MySQL makes the Amarok collection faster.
|
||||
|
||||
We suggest compiling Os, there is no particular part of Amarok that would
|
||||
benefit from optimisation, so the smallest binary is probably the best route.
|
||||
|
||||
In order to limit the dependencies the Amarok package demands we suggest
|
||||
splitting Amarok into the following packages:
|
||||
|
||||
1. Amarok + one backend
|
||||
2. xine-engine
|
||||
3. Helix-engine
|
||||
4. amarok_libvisual
|
||||
5. ipod media device
|
||||
6. ifp media device
|
||||
7. njb media device
|
||||
8. mtp media device
|
||||
9. rio karma media device
|
||||
|
||||
Amarok is modular and will be fully functional as long as one of 2 or 3 is
|
||||
also installed. Hence we suggest Amarok + one backend. Feel free to include the
|
||||
helix, MAS and NMM engines if you can satisfy their dependencies.
|
||||
|
||||
Amarok ships with two binaries: amarok and amarokapp. The amarok binary is a
|
||||
wrapper designed to speed up command line argument passing. amarokapp is the
|
||||
real Amarok.
|
||||
|
||||
If you make packages for Amarok please let us know and we'll link to you on the
|
||||
homepage (as long as you don't object).
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
|
||||
CONTRIBUTING
|
||||
==============
|
||||
|
||||
If you wish to contribute to Amarok, you should build it from SVN and subscribe
|
||||
to the amarok-devel mailing list. The IRC channel is also a place where
|
||||
it's nice to be, since you can talk to other developers much easier, and
|
||||
get instant notification of commits to the SVN. For instant email notification
|
||||
of commits, visit http://commitfilter.kde.org/.
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
|
||||
WWW : http://amarok.kde.org
|
||||
MAIL: amarok@kde.org
|
||||
IRC : irc.freenode.net - #amarok, #amarok.de, #amarok.es
|
@ -0,0 +1,297 @@
|
||||
TODO-list for Amarok
|
||||
======================
|
||||
<nick> == reported by
|
||||
-->nick == assigned to
|
||||
|
||||
|
||||
SHORT-TERM (URGENT):
|
||||
<sebr> When using "Copy files to collection" in the filebrowser, tags wont get recognised from
|
||||
urls which are organised from media:/ locations.
|
||||
|
||||
<jeff> When playing a stream from e.g. Ampache, even if an Artist is detected, Wikipedia
|
||||
will pull up "Artist - Song" instead of just Artist.
|
||||
|
||||
<sebr> PlaylistBrowser::slotDoubleClicked() and PlaylistBrowser::addSelectedToPlaylist()
|
||||
should be merged for better code reusage. They are practically the same.
|
||||
|
||||
<markey> I just deleted a tag by accident: Clicked on a file in the playlist, pressed
|
||||
delete to remove the track from the playlist. I had not noticed that it
|
||||
went into edit mode, though. So I clicked somewhere else, and BAM, the new
|
||||
empty tag was written. My tag was gone :S IMHO we should require confirmation
|
||||
before writing, e.g. only write the tag after pressing enter.
|
||||
|
||||
<markey> When you start a lastfm stream, the old metadata from the last stream is
|
||||
shown before the new stream starts. Doesn't look nice.
|
||||
|
||||
<shanachie> update podcast-tuples when the feed get's corrected after a mistake by the podcaster/publisher. eg. pubdate, url, title.
|
||||
|
||||
<sebr> We need to check for pkg-config when configuring, otherwise we can't check for things
|
||||
like libgpod. Currently its a silent error, and its very difficult to debug without
|
||||
trawling through configure.in.in
|
||||
|
||||
<sebr> Don't reload media device plugins when saving config settings. Its annoying, slow
|
||||
and all around unnecessary. It also crashes if the device is connected/loaded.
|
||||
<aumuell> Cannot reproduce anything of this with ipods - i think i fixed that already.
|
||||
|
||||
<markey> After doing "Delete downloaded podcast", the icon still indicates downloaded.
|
||||
|
||||
<sebr> LastFm:
|
||||
- determine how hard it would be to tag songs
|
||||
<eean> - display history in the playlist somehow <markey> I'm against this.
|
||||
-subitems?
|
||||
-just disabled?
|
||||
- 'stop after current track' should work
|
||||
<markey> - when you've never listenend to lastfm before, all stream links on the
|
||||
website are disabled ("Download the player"). we need to do a handshake on
|
||||
startup once, and then set a config item, e.g. handshaked=true.
|
||||
|
||||
<markey> xine-engine: when "xine could not init any audio driver" happens, always retry
|
||||
with Autodetect. This seems to be an issue with leftover amarokrc's from 1.3.
|
||||
|
||||
<sebr> Adding an m3u with non existant items has filesize = 16,777,216.0 TB!
|
||||
|
||||
<sebr> Refactor code for PlaylistBrowser::removeSelectedItems(). I can see pathological cases
|
||||
where it won't work.
|
||||
|
||||
<illiss.> Is using the score for the number, but the rating for the vis. in the context browser
|
||||
confusing? (I think it is, but that might be becuase my theme doesn't use stars but a
|
||||
partially-filled bar). If so it should be reverted for beta 1, I have a better solution
|
||||
already planned but that won't be in time.
|
||||
|
||||
<illiss.> The various UI and behaviour refactorings for Dynamic Mode should be finished up and
|
||||
polished. Among them, add a button to turn it off in the bar-above-the-playlist, fix
|
||||
drag-and-dropping of dynamic playlists, and when loading a dynamic playlist, clear the
|
||||
existing playlist first, instead of making it dynamic (which has all sorts of nasty side
|
||||
effects).
|
||||
|
||||
<sebr> Podcast Fixme's:
|
||||
* Have i listened to podcast streamed?
|
||||
|
||||
<illiss.> Loading normal (M3U) playlists from the playlist browser doesn't block the UI per se,
|
||||
but it does nothing for really long time, until suddenly the whole playlist shows up,
|
||||
which is strange and confusing.
|
||||
|
||||
<markey> Tooltips don't work for 3rd level items in the Playlist Browser. They do how
|
||||
however work (for me) for 2nd level items. Very bad, cause you can't read the
|
||||
text!
|
||||
|
||||
<sebr> When starting a drag in the collection browser, we can block the gui if the user makes a
|
||||
selection which is sql intensive (eg, select all). Instead of calculating the items
|
||||
in each of those nodes, we should add the sql to the drag and allow the playlist loader
|
||||
to do the work for us (which is threaded).
|
||||
<muesli> See SqlLoader class in playlistloader. We do the very same stuff for
|
||||
Smart-Playlists already.
|
||||
|
||||
<sebr> The unknown album should ALWAYS be shown last. Year has a higher weighting than album
|
||||
name. We should special case the Unknown album.
|
||||
|
||||
<markey> When all 5 browser tabs are activated, the current tab button is drawn a few
|
||||
pixels below the normal position. This has the side effect that the separator line
|
||||
at the bottom of the bottom becomes invisible.
|
||||
You can see the problem easily when you hide the current browser by clicking twice
|
||||
the button twice. This problem AFAIK also affects 1.3-branch.
|
||||
|
||||
<markey> Add DCOP functions for showing dialogs, similar to kdialog.
|
||||
|
||||
<sebr> More consistent playlistbrowser drag and drop actions; No dropping of default streams, set
|
||||
e->accept( false ) if dropping one type onto another.
|
||||
|
||||
<sebr> Use KIO queues for podcast download queues. Should simplify the lot. Problems atm included
|
||||
selecting multiple downloads individually, and automatic downloads occuring for more that one
|
||||
podcast item.
|
||||
|
||||
<markey> In EngineController::play(), add a sanity check when querying the track length
|
||||
from the engine. Apparently AAC can deliver ridiculous values with GST and Helix,
|
||||
like 1192479:38:49. If length is too extreme, default to the TagLib provided
|
||||
value.
|
||||
|
||||
<eean> Currently custom dynamic playlist selection is simply based on the titles. So its less then
|
||||
ideal. Via some method, each playlist should be assigned iteratively a number paired with its
|
||||
type.. Dynamic playlists and static playlists should probably have seperate numbering so
|
||||
that the "next" number can be determined by looking at one XML file.
|
||||
Remembering which PartyEntry was used on close should be remembered with the same method.
|
||||
|
||||
<eean> Smart playlists bypass checks on whether the media is playable or not.
|
||||
Or perhaps such media shouldn't be in the collection at all? This is the sort of
|
||||
thing we're going to have to worry about now that we have m4a and wma tag support.
|
||||
|
||||
<markey> Consider moving the GHNS provider list to a different server than amarok.kde.org,
|
||||
possibly download.kde.org or similar. (When our site is down, the GHNS feature fails
|
||||
to work entirely)
|
||||
|
||||
<markey> Amarok fails to download any stream playlist from http://dir.xiph.org. Part of the problem is
|
||||
PlaylistLoader::isPlaylistFile(const KURL&), which only looks at the filename's extension. This
|
||||
fails for URLs like http://dir.xiph.org/listen.php?pid=669641&file=listen.m3u, because the filename
|
||||
is "listen.php". So it must look at the whole url instead.
|
||||
|
||||
<mxcl> On first-ever-run, if Amarok crashes building the sqlite collection, it is impossible to _ever_
|
||||
build a collection unless the user's amarokrc file is deleted! This MUST be fixed before 1.2!
|
||||
::muesli:: We could just _always_ try to create the sql tables on startup. This would fail on
|
||||
::muesli:: systems which already got the tables, but would fix the situation where tables are
|
||||
::muesli:: missing, as in this situation. Just pump the debug of these calls to /dev/null.
|
||||
|
||||
<mxcl> Just before we load any engine plugin, write to a file, and it we don't succeed the next time
|
||||
Amarok starts show a big warning saying "Gah!" and load a different one.
|
||||
|
||||
<mxcl> If you inline set the title tag to "", prettyTitle gets inserted as the title tag.
|
||||
|
||||
<markey> When the KDE color scheme is changed while Amarok is running, all toolbar buttons (those with text)
|
||||
lose their texts.
|
||||
|
||||
<shakes> The scrobbler code should report some sort of error message rather than just saying that the
|
||||
submit failed. That way when last.fm goes down we wouldn't get so many people asking why they
|
||||
can't submit. It'd also be nice to be able to tell people they've got their password wrong.
|
||||
|
||||
<jefferai> When hovering the mouse over the Repeat/Random icons in the bottom taskbar, the popups that appear
|
||||
not only have inconsistent icons with the ones shown in the taskbar, but they're pixellated and ugly
|
||||
as sin. Should probably be redone as SVGs.
|
||||
|
||||
<jefferai> Xine proxy value is not saved across sessions. Problem exists in Xine-UI as well, at least for me.
|
||||
Maybe an upstream bug and nothing we can fix.
|
||||
|
||||
MID-TERM:
|
||||
<eean> Implement a "Find My Music" button in the first-run wizard. Just a basic
|
||||
thing that will look at file extensions and try to figure out where the users
|
||||
music is located. Ignore /opt/, /usr etc. to avoid adding sound effects. Prompt
|
||||
user with the directories at the end of the scan, allowing them to exclude some.
|
||||
|
||||
<eean> The FileBrowser doesn't check for recursive symlinks. This is a KDirOperator (or the
|
||||
classes it depends on) problem.
|
||||
|
||||
<eean> Basically need to re-add some of the functionality I removed in re-doing dynamic
|
||||
--><eean> custom playlist creation.
|
||||
1) the default dynamic playlists need to be more insistent, the same way the
|
||||
the default smart playlists are.
|
||||
<eean> Implement leinir's mockup:
|
||||
www.leinir.dk/temp/gallery/?image=pictures/amarok-playlist-bar-dynamic-mode.png
|
||||
<leinir> The idea with the look of the top is, as you can probably see from the colours
|
||||
otherwise present, that it's the active window titlebar/colour/font, with the name of the
|
||||
playlist being un-bolded (if the window title is bold)...
|
||||
<leinir> eean: Some people will identify the active window by titlebar colour alone :)
|
||||
|
||||
<mp8> Album covers as icons from filebrowser.
|
||||
|
||||
<eean> When the player window shades, it should lose its title bar and be replaced with something more
|
||||
compactish. This would probably have to be created manually.
|
||||
|
||||
<sebr> Make the player window scroll the text in the opposite direction if using right-2-left text
|
||||
(eg hebrew or arabic)
|
||||
|
||||
<sebr> Use Metabar's box retraction animation to the context browser. More iCandy. Any Javascript experts around?
|
||||
|
||||
<mxcl> Should be able to open collection browser by right clicking on stuff in contextB, so show the
|
||||
artist or album that is right clicked.
|
||||
|
||||
<markey> AudioCD support for gst engine (cdparanoia ! *sink). -->markey
|
||||
|
||||
<markey> We should cut down on unnecessary/redundant debug output/warnings (noise).
|
||||
|
||||
<mxcl> Perhaps a nice idea: when you drag playlistItems to a branch in the collection browser
|
||||
it prompts to change the track's tags, so drag a track to the "moolaaa" album and that
|
||||
track get's it's album tag changed to "moolaaa" and is inserted into the branch, so the user
|
||||
know's what has happened.
|
||||
|
||||
<mxcl> User asked for a CTRL-J itty-bitty dialog that allows you to jump to a specific part
|
||||
of a track. I'll see if I can do it with tiny amount of code -->mxcl
|
||||
|
||||
<muesli> Don't rely on KDE timeouts to see whether a file is accessible or not,
|
||||
since this really sucks for disconnected network shares. XMMS handles
|
||||
this way better and it really is a problem in userland. maybe a thread
|
||||
helps, which simply tries to fopen() the file. if this task hasn't been
|
||||
finished in (let's say) 3 seconds, jump to the next song. XMMS even
|
||||
remembers such files and their folders, so that it's not going to open
|
||||
another file from that folder for the next few minutes. what about hdd
|
||||
sleep-timeouts? opinions?
|
||||
|
||||
<mxcl> Determine some behavior for the clear/shuffle/etc. buttons when a search is in action
|
||||
clear -> only clear the stuff that was searched for?
|
||||
shuffle -> stop the search and do normal shuffle?
|
||||
ADDitionally what to do when user rearranges a set of items that are the search result?
|
||||
<larson> No big deal to me as long as the behaviour is consistent. I.e. if shuffle shuffles
|
||||
the search, then clear should clear the search only, and visa versa.
|
||||
|
||||
<larson> Make playlist toolbar buttons toggle like the playerwidget buttons.
|
||||
|
||||
Toolbar button in FileBrowser for switching recursive directory reading.
|
||||
|
||||
<mxcl> Can't resize newly displayed columns if they are hidden at beginning of session -->mxcl
|
||||
|
||||
<muesli> Add an option "clean up playlist on startup".
|
||||
<mxcl> Do you mean remove duplicates or dead entries etc. ? Cool.
|
||||
|
||||
<mxcl> Option: don't crossfade for sequential tracks on same album. Comments? -->mxcl
|
||||
Of course, there would still be the up to 150ms gap, but we can fix that some other time..
|
||||
<markey> Please clarify: is this the same as BR #75388 ?
|
||||
<mxcl> No, this is just to make crossfading not ruin album transitions
|
||||
|
||||
Add dirs to combo history when user adds a track from that dir to the playlist.
|
||||
|
||||
"Show playlist" to the right click menu, redundant but necessary.
|
||||
|
||||
More KTips, better KTips, somehow use the "Did you know" tip dialog (eg kmail, gideon, etc.) -->mxcl
|
||||
|
||||
Option to automatically adjust column widths.
|
||||
|
||||
Option to implicitly sort playlist by { track, album } (on drop only) -->mxcl
|
||||
|
||||
<berkus> Playmode indication button in main widget (repeat track/pl/shuffle), clickable.
|
||||
|
||||
|
||||
LONG-TERM:
|
||||
|
||||
<sebr> Support multiple collections. This could be really powerful, and could be handled
|
||||
with the collection browser. We could support non-local collections, audio cd/dvds,
|
||||
NFS/Samba etc. This would also allow us to retrieve tracks from other networked pcs.
|
||||
Auto-polling of added collections for a 'hot-sync' style detection of collections.
|
||||
|
||||
<markey> Use more accurate interpolation for analyzers (cubic or spline)
|
||||
|
||||
Tabbed playlists.
|
||||
Pro: it's convenient to have several playlists
|
||||
Contra: the playlist is getting cluttered enough as it is!
|
||||
<illissius> I already added a comment wrt this to the b.k.o bug, but here's the idea:
|
||||
switch between playlists with the playlist browser -- that's what it's there for.
|
||||
This avoids the clutter. The way it'd work is the currently playing playlist would
|
||||
have the same fancy fading thing the current track has. The context menu for playlists
|
||||
would have two seperate items, one for showing and one for playing. When just showing,
|
||||
the previous playlist would continue playing while you view/edit the other one.
|
||||
(If you doubleclick a song in the new playlist, it would naturally start playing that
|
||||
one instead). What to do when the user doubleclicks a playlist -- show, play, or both
|
||||
-- is TBD.
|
||||
|
||||
Make windows magnetic / sticking together (difficult).
|
||||
|
||||
<mxcl> Implement beat detection (thread?), interface should glow/move to
|
||||
the beat, visualisations have access to beat/bpm info.
|
||||
|
||||
Audio system info widget, showing all available codecs and similar info.
|
||||
|
||||
Resizable playerwidget, like in Winamp3.
|
||||
|
||||
IDEAS:
|
||||
|
||||
Bookmarks inside of tracks (good for very long tracks), and nifty bookmark browser
|
||||
|
||||
Using filelight (as a kpart maybe) for a graphical representation of the playlist. so
|
||||
you could see at first glance how the altogether playing time is divided into different
|
||||
albums, tunes and so on.
|
||||
|
||||
|
||||
DO-NOT-IMPLEMENT (stuff that was rejected):
|
||||
|
||||
<markey> Allow removing of playlist items by dragging back into browser.
|
||||
<larson> I think this is really weird. When I drag something I expect that someting to be
|
||||
ADDed or opened in the target. Not removed from the sender.
|
||||
(RFC: is this still appropriate or would it be misleading?)
|
||||
<muesli> imho, it's misleading and not hid-compatible. i would rather
|
||||
expect that file to be copied to the browser's current directory.
|
||||
|
||||
"Hide playlist when main widget is not active" option (?? comments please: )
|
||||
<berkus> Noo, we have it hiding into tray, thats enough (imagine how much flashing will be
|
||||
if i drag mouse around with "focus follows mouse" on - this is the one i use all the time)
|
||||
<mxcl> Hence it's an option, you'd not use it with focus follows mouse. But it was just an idea
|
||||
anyway.. dunno if I like the sound of it anymore either.
|
||||
|
||||
|
||||
BACKTRACES/DEBUG/VALGRIND:
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,881 @@
|
||||
# generated automatically by aclocal 1.10.1 -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
|
||||
# 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
# PARTICULAR PURPOSE.
|
||||
|
||||
m4_ifndef([AC_AUTOCONF_VERSION],
|
||||
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
|
||||
m4_if(AC_AUTOCONF_VERSION, [2.61],,
|
||||
[m4_warning([this file was generated for autoconf 2.61.
|
||||
You have another version of autoconf. It may work, but is not guaranteed to.
|
||||
If you have problems, you may need to regenerate the build system entirely.
|
||||
To do so, use the procedure documented by the package, typically `autoreconf'.])])
|
||||
|
||||
# Copyright (C) 2002, 2003, 2005, 2006, 2007 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# AM_AUTOMAKE_VERSION(VERSION)
|
||||
# ----------------------------
|
||||
# Automake X.Y traces this macro to ensure aclocal.m4 has been
|
||||
# generated from the m4 files accompanying Automake X.Y.
|
||||
# (This private macro should not be called outside this file.)
|
||||
AC_DEFUN([AM_AUTOMAKE_VERSION],
|
||||
[am__api_version='1.10'
|
||||
dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
|
||||
dnl require some minimum version. Point them to the right macro.
|
||||
m4_if([$1], [1.10.1], [],
|
||||
[AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
|
||||
])
|
||||
|
||||
# _AM_AUTOCONF_VERSION(VERSION)
|
||||
# -----------------------------
|
||||
# aclocal traces this macro to find the Autoconf version.
|
||||
# This is a private macro too. Using m4_define simplifies
|
||||
# the logic in aclocal, which can simply ignore this definition.
|
||||
m4_define([_AM_AUTOCONF_VERSION], [])
|
||||
|
||||
# AM_SET_CURRENT_AUTOMAKE_VERSION
|
||||
# -------------------------------
|
||||
# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
|
||||
# This function is AC_REQUIREd by AC_INIT_AUTOMAKE.
|
||||
AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
|
||||
[AM_AUTOMAKE_VERSION([1.10.1])dnl
|
||||
m4_ifndef([AC_AUTOCONF_VERSION],
|
||||
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
|
||||
_AM_AUTOCONF_VERSION(AC_AUTOCONF_VERSION)])
|
||||
|
||||
# AM_AUX_DIR_EXPAND -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
|
||||
# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to
|
||||
# `$srcdir', `$srcdir/..', or `$srcdir/../..'.
|
||||
#
|
||||
# Of course, Automake must honor this variable whenever it calls a
|
||||
# tool from the auxiliary directory. The problem is that $srcdir (and
|
||||
# therefore $ac_aux_dir as well) can be either absolute or relative,
|
||||
# depending on how configure is run. This is pretty annoying, since
|
||||
# it makes $ac_aux_dir quite unusable in subdirectories: in the top
|
||||
# source directory, any form will work fine, but in subdirectories a
|
||||
# relative path needs to be adjusted first.
|
||||
#
|
||||
# $ac_aux_dir/missing
|
||||
# fails when called from a subdirectory if $ac_aux_dir is relative
|
||||
# $top_srcdir/$ac_aux_dir/missing
|
||||
# fails if $ac_aux_dir is absolute,
|
||||
# fails when called from a subdirectory in a VPATH build with
|
||||
# a relative $ac_aux_dir
|
||||
#
|
||||
# The reason of the latter failure is that $top_srcdir and $ac_aux_dir
|
||||
# are both prefixed by $srcdir. In an in-source build this is usually
|
||||
# harmless because $srcdir is `.', but things will broke when you
|
||||
# start a VPATH build or use an absolute $srcdir.
|
||||
#
|
||||
# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
|
||||
# iff we strip the leading $srcdir from $ac_aux_dir. That would be:
|
||||
# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
|
||||
# and then we would define $MISSING as
|
||||
# MISSING="\${SHELL} $am_aux_dir/missing"
|
||||
# This will work as long as MISSING is not called from configure, because
|
||||
# unfortunately $(top_srcdir) has no meaning in configure.
|
||||
# However there are other variables, like CC, which are often used in
|
||||
# configure, and could therefore not use this "fixed" $ac_aux_dir.
|
||||
#
|
||||
# Another solution, used here, is to always expand $ac_aux_dir to an
|
||||
# absolute PATH. The drawback is that using absolute paths prevent a
|
||||
# configured tree to be moved without reconfiguration.
|
||||
|
||||
AC_DEFUN([AM_AUX_DIR_EXPAND],
|
||||
[dnl Rely on autoconf to set up CDPATH properly.
|
||||
AC_PREREQ([2.50])dnl
|
||||
# expand $ac_aux_dir to an absolute path
|
||||
am_aux_dir=`cd $ac_aux_dir && pwd`
|
||||
])
|
||||
|
||||
# AM_CONDITIONAL -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006
|
||||
# Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 8
|
||||
|
||||
# AM_CONDITIONAL(NAME, SHELL-CONDITION)
|
||||
# -------------------------------------
|
||||
# Define a conditional.
|
||||
AC_DEFUN([AM_CONDITIONAL],
|
||||
[AC_PREREQ(2.52)dnl
|
||||
ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])],
|
||||
[$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
|
||||
AC_SUBST([$1_TRUE])dnl
|
||||
AC_SUBST([$1_FALSE])dnl
|
||||
_AM_SUBST_NOTMAKE([$1_TRUE])dnl
|
||||
_AM_SUBST_NOTMAKE([$1_FALSE])dnl
|
||||
if $2; then
|
||||
$1_TRUE=
|
||||
$1_FALSE='#'
|
||||
else
|
||||
$1_TRUE='#'
|
||||
$1_FALSE=
|
||||
fi
|
||||
AC_CONFIG_COMMANDS_PRE(
|
||||
[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
|
||||
AC_MSG_ERROR([[conditional "$1" was never defined.
|
||||
Usually this means the macro was only invoked conditionally.]])
|
||||
fi])])
|
||||
|
||||
# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
|
||||
# Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 9
|
||||
|
||||
# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
|
||||
# written in clear, in which case automake, when reading aclocal.m4,
|
||||
# will think it sees a *use*, and therefore will trigger all it's
|
||||
# C support machinery. Also note that it means that autoscan, seeing
|
||||
# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
|
||||
|
||||
|
||||
# _AM_DEPENDENCIES(NAME)
|
||||
# ----------------------
|
||||
# See how the compiler implements dependency checking.
|
||||
# NAME is "CC", "CXX", "GCJ", or "OBJC".
|
||||
# We try a few techniques and use that to set a single cache variable.
|
||||
#
|
||||
# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
|
||||
# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular
|
||||
# dependency, and given that the user is not expected to run this macro,
|
||||
# just rely on AC_PROG_CC.
|
||||
AC_DEFUN([_AM_DEPENDENCIES],
|
||||
[AC_REQUIRE([AM_SET_DEPDIR])dnl
|
||||
AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
|
||||
AC_REQUIRE([AM_MAKE_INCLUDE])dnl
|
||||
AC_REQUIRE([AM_DEP_TRACK])dnl
|
||||
|
||||
ifelse([$1], CC, [depcc="$CC" am_compiler_list=],
|
||||
[$1], CXX, [depcc="$CXX" am_compiler_list=],
|
||||
[$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
|
||||
[$1], UPC, [depcc="$UPC" am_compiler_list=],
|
||||
[$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'],
|
||||
[depcc="$$1" am_compiler_list=])
|
||||
|
||||
AC_CACHE_CHECK([dependency style of $depcc],
|
||||
[am_cv_$1_dependencies_compiler_type],
|
||||
[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
|
||||
# We make a subdir and do the tests there. Otherwise we can end up
|
||||
# making bogus files that we don't know about and never remove. For
|
||||
# instance it was reported that on HP-UX the gcc test will end up
|
||||
# making a dummy file named `D' -- because `-MD' means `put the output
|
||||
# in D'.
|
||||
mkdir conftest.dir
|
||||
# Copy depcomp to subdir because otherwise we won't find it if we're
|
||||
# using a relative directory.
|
||||
cp "$am_depcomp" conftest.dir
|
||||
cd conftest.dir
|
||||
# We will build objects and dependencies in a subdirectory because
|
||||
# it helps to detect inapplicable dependency modes. For instance
|
||||
# both Tru64's cc and ICC support -MD to output dependencies as a
|
||||
# side effect of compilation, but ICC will put the dependencies in
|
||||
# the current directory while Tru64 will put them in the object
|
||||
# directory.
|
||||
mkdir sub
|
||||
|
||||
am_cv_$1_dependencies_compiler_type=none
|
||||
if test "$am_compiler_list" = ""; then
|
||||
am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
|
||||
fi
|
||||
for depmode in $am_compiler_list; do
|
||||
# Setup a source with many dependencies, because some compilers
|
||||
# like to wrap large dependency lists on column 80 (with \), and
|
||||
# we should not choose a depcomp mode which is confused by this.
|
||||
#
|
||||
# We need to recreate these files for each test, as the compiler may
|
||||
# overwrite some of them when testing with obscure command lines.
|
||||
# This happens at least with the AIX C compiler.
|
||||
: > sub/conftest.c
|
||||
for i in 1 2 3 4 5 6; do
|
||||
echo '#include "conftst'$i'.h"' >> sub/conftest.c
|
||||
# Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
|
||||
# Solaris 8's {/usr,}/bin/sh.
|
||||
touch sub/conftst$i.h
|
||||
done
|
||||
echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
|
||||
|
||||
case $depmode in
|
||||
nosideeffect)
|
||||
# after this tag, mechanisms are not by side-effect, so they'll
|
||||
# only be used when explicitly requested
|
||||
if test "x$enable_dependency_tracking" = xyes; then
|
||||
continue
|
||||
else
|
||||
break
|
||||
fi
|
||||
;;
|
||||
none) break ;;
|
||||
esac
|
||||
# We check with `-c' and `-o' for the sake of the "dashmstdout"
|
||||
# mode. It turns out that the SunPro C++ compiler does not properly
|
||||
# handle `-M -o', and we need to detect this.
|
||||
if depmode=$depmode \
|
||||
source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \
|
||||
depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
|
||||
$SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \
|
||||
>/dev/null 2>conftest.err &&
|
||||
grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
|
||||
grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
|
||||
grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
|
||||
${MAKE-make} -s -f confmf > /dev/null 2>&1; then
|
||||
# icc doesn't choke on unknown options, it will just issue warnings
|
||||
# or remarks (even with -Werror). So we grep stderr for any message
|
||||
# that says an option was ignored or not supported.
|
||||
# When given -MP, icc 7.0 and 7.1 complain thusly:
|
||||
# icc: Command line warning: ignoring option '-M'; no argument required
|
||||
# The diagnosis changed in icc 8.0:
|
||||
# icc: Command line remark: option '-MP' not supported
|
||||
if (grep 'ignoring option' conftest.err ||
|
||||
grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
|
||||
am_cv_$1_dependencies_compiler_type=$depmode
|
||||
break
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
cd ..
|
||||
rm -rf conftest.dir
|
||||
else
|
||||
am_cv_$1_dependencies_compiler_type=none
|
||||
fi
|
||||
])
|
||||
AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type])
|
||||
AM_CONDITIONAL([am__fastdep$1], [
|
||||
test "x$enable_dependency_tracking" != xno \
|
||||
&& test "$am_cv_$1_dependencies_compiler_type" = gcc3])
|
||||
])
|
||||
|
||||
|
||||
# AM_SET_DEPDIR
|
||||
# -------------
|
||||
# Choose a directory name for dependency files.
|
||||
# This macro is AC_REQUIREd in _AM_DEPENDENCIES
|
||||
AC_DEFUN([AM_SET_DEPDIR],
|
||||
[AC_REQUIRE([AM_SET_LEADING_DOT])dnl
|
||||
AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
|
||||
])
|
||||
|
||||
|
||||
# AM_DEP_TRACK
|
||||
# ------------
|
||||
AC_DEFUN([AM_DEP_TRACK],
|
||||
[AC_ARG_ENABLE(dependency-tracking,
|
||||
[ --disable-dependency-tracking speeds up one-time build
|
||||
--enable-dependency-tracking do not reject slow dependency extractors])
|
||||
if test "x$enable_dependency_tracking" != xno; then
|
||||
am_depcomp="$ac_aux_dir/depcomp"
|
||||
AMDEPBACKSLASH='\'
|
||||
fi
|
||||
AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
|
||||
AC_SUBST([AMDEPBACKSLASH])dnl
|
||||
_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl
|
||||
])
|
||||
|
||||
# Generate code to set up dependency tracking. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
|
||||
# Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
#serial 3
|
||||
|
||||
# _AM_OUTPUT_DEPENDENCY_COMMANDS
|
||||
# ------------------------------
|
||||
AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
|
||||
[for mf in $CONFIG_FILES; do
|
||||
# Strip MF so we end up with the name of the file.
|
||||
mf=`echo "$mf" | sed -e 's/:.*$//'`
|
||||
# Check whether this is an Automake generated Makefile or not.
|
||||
# We used to match only the files named `Makefile.in', but
|
||||
# some people rename them; so instead we look at the file content.
|
||||
# Grep'ing the first line is not enough: some people post-process
|
||||
# each Makefile.in and add a new line on top of each file to say so.
|
||||
# Grep'ing the whole file is not good either: AIX grep has a line
|
||||
# limit of 2048, but all sed's we know have understand at least 4000.
|
||||
if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
|
||||
dirpart=`AS_DIRNAME("$mf")`
|
||||
else
|
||||
continue
|
||||
fi
|
||||
# Extract the definition of DEPDIR, am__include, and am__quote
|
||||
# from the Makefile without running `make'.
|
||||
DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
|
||||
test -z "$DEPDIR" && continue
|
||||
am__include=`sed -n 's/^am__include = //p' < "$mf"`
|
||||
test -z "am__include" && continue
|
||||
am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
|
||||
# When using ansi2knr, U may be empty or an underscore; expand it
|
||||
U=`sed -n 's/^U = //p' < "$mf"`
|
||||
# Find all dependency output files, they are included files with
|
||||
# $(DEPDIR) in their names. We invoke sed twice because it is the
|
||||
# simplest approach to changing $(DEPDIR) to its actual value in the
|
||||
# expansion.
|
||||
for file in `sed -n "
|
||||
s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
|
||||
sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
|
||||
# Make sure the directory exists.
|
||||
test -f "$dirpart/$file" && continue
|
||||
fdir=`AS_DIRNAME(["$file"])`
|
||||
AS_MKDIR_P([$dirpart/$fdir])
|
||||
# echo "creating $dirpart/$file"
|
||||
echo '# dummy' > "$dirpart/$file"
|
||||
done
|
||||
done
|
||||
])# _AM_OUTPUT_DEPENDENCY_COMMANDS
|
||||
|
||||
|
||||
# AM_OUTPUT_DEPENDENCY_COMMANDS
|
||||
# -----------------------------
|
||||
# This macro should only be invoked once -- use via AC_REQUIRE.
|
||||
#
|
||||
# This code is only required when automatic dependency tracking
|
||||
# is enabled. FIXME. This creates each `.P' file that we will
|
||||
# need in order to bootstrap the dependency handling code.
|
||||
AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
|
||||
[AC_CONFIG_COMMANDS([depfiles],
|
||||
[test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
|
||||
[AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
|
||||
])
|
||||
|
||||
# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005
|
||||
# Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 8
|
||||
|
||||
# AM_CONFIG_HEADER is obsolete. It has been replaced by AC_CONFIG_HEADERS.
|
||||
AU_DEFUN([AM_CONFIG_HEADER], [AC_CONFIG_HEADERS($@)])
|
||||
|
||||
# Do all the work for Automake. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
|
||||
# 2005, 2006, 2008 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# serial 13
|
||||
|
||||
# This macro actually does too much. Some checks are only needed if
|
||||
# your package does certain things. But this isn't really a big deal.
|
||||
|
||||
# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
|
||||
# AM_INIT_AUTOMAKE([OPTIONS])
|
||||
# -----------------------------------------------
|
||||
# The call with PACKAGE and VERSION arguments is the old style
|
||||
# call (pre autoconf-2.50), which is being phased out. PACKAGE
|
||||
# and VERSION should now be passed to AC_INIT and removed from
|
||||
# the call to AM_INIT_AUTOMAKE.
|
||||
# We support both call styles for the transition. After
|
||||
# the next Automake release, Autoconf can make the AC_INIT
|
||||
# arguments mandatory, and then we can depend on a new Autoconf
|
||||
# release and drop the old call support.
|
||||
AC_DEFUN([AM_INIT_AUTOMAKE],
|
||||
[AC_PREREQ([2.60])dnl
|
||||
dnl Autoconf wants to disallow AM_ names. We explicitly allow
|
||||
dnl the ones we care about.
|
||||
m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
|
||||
AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
|
||||
AC_REQUIRE([AC_PROG_INSTALL])dnl
|
||||
if test "`cd $srcdir && pwd`" != "`pwd`"; then
|
||||
# Use -I$(srcdir) only when $(srcdir) != ., so that make's output
|
||||
# is not polluted with repeated "-I."
|
||||
AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl
|
||||
# test to see if srcdir already configured
|
||||
if test -f $srcdir/config.status; then
|
||||
AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
|
||||
fi
|
||||
fi
|
||||
|
||||
# test whether we have cygpath
|
||||
if test -z "$CYGPATH_W"; then
|
||||
if (cygpath --version) >/dev/null 2>/dev/null; then
|
||||
CYGPATH_W='cygpath -w'
|
||||
else
|
||||
CYGPATH_W=echo
|
||||
fi
|
||||
fi
|
||||
AC_SUBST([CYGPATH_W])
|
||||
|
||||
# Define the identity of the package.
|
||||
dnl Distinguish between old-style and new-style calls.
|
||||
m4_ifval([$2],
|
||||
[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
|
||||
AC_SUBST([PACKAGE], [$1])dnl
|
||||
AC_SUBST([VERSION], [$2])],
|
||||
[_AM_SET_OPTIONS([$1])dnl
|
||||
dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT.
|
||||
m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,,
|
||||
[m4_fatal([AC_INIT should be called with package and version arguments])])dnl
|
||||