Skip to content
Commits on Source (11)
Makefile
config.cache
config.status
config.log
configure
*.jar
dist
build
ChangeLog
*.log
autom4te.cache
tritonus-*.tar.gz
project.dtd
aclocal.m4
.classpath
.project
.settings
eclipse_build.xml
#!/bin/bash
#
# Bourne Shell Script
#
# Description:
# Convert Tritonus 1.81 java source code
# so that it work with Java Development Kit 1.1.7 and
# the Collections API for JDK 1.1
#
# Author:
# Peter Pilgrim
# Wed Jan 05 21:15:56 GMT 2000
#
# ********************************************************************************
PrintUsage()
# ********************************************************************************
{
cat << EOF
USAGE: $myname
[ --classpath (-cp) <CLASSPATH> ]
[ --dryrun (-dr) ] [ --force ]
[ --verbose (-v) | --noverbose (+v) ]
[ --help (-h) | --usage (-u) ]
OPTIONS:
'--dryrun' dry run and test the configuration, do not configure the
'-dr' the run-time stub file.
'--verbose' generates verbose output also.
'-v'
'--help' produces this brief text and exits gracefully.
'-h' '-u'
DESCRIPTION:
This program '$myname' converts Tritonus 1.81
Java source code so that it compiles with Java Development Kit 1.1.7
and the Collections API for JDK 1.1 The Collections API for JDK1.1 can
be found on the Javasoft web pages under the InfoBus product line.
Peter Pilgrim Wed Jan 05 21:18:41 GMT 2000
EOF
echo '$RCSfile: ConvertJDK117,v $ $Revision: 1.1.1.1 $ $Author: pfisterer $ $Date: 2000/04/13 19:13:57 $'
exit 0
}
# ********************************************************************************
BackupFile ()
# ********************************************************************************
{
# Backup a file by renaming it.
ThisFile=$1
if [ -f ${ThisFile} ]; then
if [ -f ${ThisFile}.bak ]; then
(set $VerboseOpt; ${PrefixCmd} /bin/rm -f ${ThisFile}.bak )
fi
(set $VerboseOpt; ${PrefixCmd} mv ${ThisFile} ${ThisFile}.bak )
fi
}
# ********************************************************************************
SysWarn()
# ********************************************************************************
{
# Log an message string to the standard out and do NOT exit
echo "$myname: *WARNING* : $1" 1>&2
}
# ********************************************************************************
SysError()
# ********************************************************************************
{
# Log an message string to the standard error and exit
echo "$myname: *ERROR* : $1" 1>&2
exit 1
}
# ********************************************************************************
SignalCatcher()
# ********************************************************************************
{
# A generic signal handler for the shell script.
echo
echo "$myname: Got Signal $1"
exit 3
}
# ********************************************************************************
CleanUp ()
# ********************************************************************************
{
echo "$myname:Finished (total:$total, errors:$errors, cmpltd:$cmpltd, ignored:$ignored, counter:$counter )"
/bin/rm -f DUMMY_FILE $TempFile1 $TempFile2
}
# ********************************************************************************
# MAIN MAIN MAIN MAIN MAIN MAIN MAIN MAIN MAIN MAIN MAIN MAIN MAIN MAIN MAIN
# ********************************************************************************
myname=`basename $0`
debug=
verbose=
silent=
VerboseOpt="+x"
PrefixCmd=""
DryRunFlag=0
cmpltd=0
errors=0
total=0
ignored=0
counter=0
#
# Interpret the command line arguments (the GNU way!)
#
while [ $# -gt 0 ]
do
#
# Interpret cli argument
#
case $1 in
# **** The standard CLI options begin here ****
-silent | -quiet | \
--silence | --silenc | --silenc | --silen | --sile | --sil | \
--quiet | --quie | --qui | --qu | --q | -q )
silent=yes
verbose=
VerboseOpt="+x"
;;
-verbose | --verbose | --verbos | --verbo | --verb | \
--ver | --ve | --v | -v )
verbose=yes
VerboseOpt="-x"
;;
--debug | --debu | --deb | -debug | -debu | -deb )
debug=yes
;;
--dryrun | --dryru | --dryr | --dry | --dr | -dr | \
-dryrun | -dryru | -dryr | -dry | -dr | -dr )
PrefixCmd="echo =>"
DryRunFlag=1
;;
--help | --hel | --he | --h | -help | -hel | -he | -h | \
--usage | --usag | --usa | --us | --u | \
-usage | -usag | -usa | -us | -u )
PrintUsage
exit 0
;;
--* | -*)
SysError "unknown cli option: '$1'. Try '--help' for more info"
break;;
*) break;;
esac
shift
done
#
# Trap any signals
#
trap 'CleanUp "Cleaning"' 0
trap 'SignalCatcher "(SIGHUP)"' 1
trap 'SignalCatcher "(SIGINT)"' 2
trap 'SignalCatcher "(SIGQUIT)"' 3
trap 'SignalCatcher "(SIGTERM)"' 15
echo "$myname: converting to JDK 1.1.7 and compatible Collections API"
JavaSourceFiles=`find . -name "*.java" -print`
# Create a `sed(1)' file to replace
SedFile=collections.sed
/bin/rm -f $SedFile
# List of Collections API
ReplaceClassList="
Collection
Comparable
Comparator
Iterator
List
ListIterator
Map
Set
SortedMap
SortedSet
AbstractCollection
AbstractList
AbstractMap
AbstractSequentialList
AbstractSet
ArrayList
Arrays
Collections
HashMap
HashSet
Hashtable
LinkedList
Random
SubList
TreeMap
TreeSet
Vector
ConcurrentModificationException
NoSuchElementException
UnsupportedOperationException"
# Create the sed script file
for Class in $ReplaceClassList
do
## ============================================================
## WARNING EMBEDDED TABS HERE!!!
## ============================================================
echo "s/ java.util.$Class/ com.sun.java.util.collections.$Class/g" >> $SedFile
echo "s/ java.util.$Class/ com.sun.java.util.collections.$Class/g" >> $SedFile
## ============================================================
## added to convert ConcurrentModificationException,
## NoSuchElementException and UnsupportedOperationException
## MP20000326
## ============================================================
echo "s/ java.lang.$Class/ com.sun.java.util.collections.$Class/g" >> $SedFile
echo "s/ java.lang.$Class/ com.sun.java.util.collections.$Class/g" >> $SedFile
done
# find all java source file and run sed script through them
for SrcFile in $JavaSourceFiles
do
let total=total+1
temp=`grep "java.util." $SrcFile`
if [ "x$temp" != "x" ]; then
echo -n " [$counter] $SrcFile "
NewFile=${SrcFile}.new
BackFile=${SrcFile}.bak
[ -f $NewFile ] && /bin/rm -f $NewFile
sed -f $SedFile $SrcFile > $NewFile
status=$?
let counter=counter+1
if [ $DryRunFlag -ne 0 ]; then
echo "*DRYRUN*"
continue
fi
if [ $status -eq 0 ]; then
# backup the original original
[ -f $BackFile ] && /bin/rm -f $BackFile
mv $SrcFile $BackFile; status=$?
if [ $status -ne 0 ]; then
let errors=errors+1
echo "*FAILED*"
SysError "command failed mv $SrcFile $BackFile (status:$status)"
fi
# the output sed file becomes the new Java source file
mv $NewFile $SrcFile; status=$?
if [ $status -ne 0 ]; then
let errors=errors+1
echo "*FAILED*"
SysError "command failed mv $NewFile $SrcFile (status:$status)"
fi
let cmpltd=cmpltd+1
echo "*DONE*"
else
let errors=errors+1
echo "*FAILED*"
fi
## echo "**** DEATH 69 ****"; exit 69
else
let ignored=ignored+1
fi
done
if [ $DryRunFlag -ne 0 ]; then
echo "*DRYRUN*"
continue
fi
if [ $errors -eq 0 ]; then
cat <<XEOF
There were apparently no errors detected. It looks like the conversion
process worked. You should be able to compile again with JDK 1.1.7
BTW: You do have a backup of the ORIGINAL distribution. Dont you?
XEOF
fi
# fini
Installing instructions for Tritonus, version 0.3.1
First: do you really need to build Tritonus yourself?
For several common cases, this is not necessary. These cases are:
- you want to do mp3 decoding (all platforms)
- you want to do mp3 encoding (Linux i386, Windows)
- you want to do GSM 06.10 decoding or encoding (all platforms)
- you want to do ogg/vorbis decoding (all platforms)
- you want to do CD digital audio extraction (Linux i386)
For these cases, precompiled components are available. Go to:
http://www.tritonus.org/plugins.html
If you want to have kaffe with Java Sound, use the cvs of kaffe
(Tritonus has been integrated there). Go to:
http://www.kaffe.org/
Which components do i need?
[TODO: Which coponents to compile/install]
What you need
=============
- jdk 1.5.x. Testing was done with the
Sun jdk 1.5.0-b64. Other versions may work.
If you want to compile Linux specific components, it is recommended to do
it on a Linux system, so you need a j2sdk for Linux. Cross-compiling has not
been tested.
If you only want to build pure-java (not Linux specific) components, you
can use a j2sdk on any platform.
Tritonus does not work with jdk1.1.X.
There are no experiences with gcj. Reports are welcome.
- Optional: jikes (recommended, testing was done with version 1.16)
- Either: the Enlightened Sound Daemon (esd or EsounD). On Debian
systems, install the packages esound-common, esound, libesd0 and
libesd0-dev. On Suse systems, install the package esound. If esd is
not part of your Linux distribution, look at www.gnome.org. Make sure
you have not only the daemon and the shared library, but also the header
files for libesd.
NOTE: this is kept more or less as a compatibility option. Esd is
considered a badly designed program. Using ALSA is highly
recommended.
- Or: ALSA 0.9.0rc2 or later or the corresponding cvs state. Get it
from http://www.alsa-project.org/. It is recommended to use ALSA if
you want to get high-performance, low-latency operation, or reliable
full-duplex. It is a necessity if you want professional-grade MIDI support.
Testing was done with ALSA 0.9.0rc2. 0.9.0rc3 has been reported to work.
STILL ANOTHER NOTE: currently, Tritonus' ALSA handling does not do
software mixing. This means that for normal JS operation (multiple
SourceDataLines/Clips) your soundcard has to support hardware
mixing. Common chipsets that do this are emu10k1 (SB Life!) and
Trident NX (e.g. Hoontech 4DWaveNX). Otherwise, you will get only
one line at a time. In other words: if your soundcard does not do hw
mixing, you need to choose the esd options to have multiple lines.
For MIDI:
- Either: ALSA (see above)
- Or: MidiShare. Get it from http://www.grame.fr/MidiShare/.
For cdda:
- cdparanoia III version 9.8. Version 9.7 is not sufficient.
For the build process:
- make (Testing done with GNU make 3.79)
- ant (Testing done with Apache Ant 1.6; 1.5 should work, too.
Get it from http://jakarta.apache.org/ant/ if not present in your distribution)
- gcc
- libtool (currently not needed)
- m4
- cpp
- javah (for building the native libraries)
Building mp3 related components
-------------------------------
The ant based build requires that javalayer.jar is already compiled
and that it is available in the classpath during the build. Only then
the mp3 SPI plug-in gets compiled and packaged.
Installing steps
================
---------------------
Currently, the build process is a mess.
I'm currently building with these commands:
../tritonus> autoconf
../tritonus> ./configure
../tritonus> ant -f build-dtd.xml
../tritonus> ant
../tritonus> make -C src/lib/alsa
../tritonus> make -C src/lib/vorbis
../tritonus> make -C src/lib/...
If you want ant to use jikes, issue:
../tritonus> ant -Dbuild.compiler=jikes
[IDEA: options to configure: build-prefix, install-prefix]
Installation never worked really well. I did (by hand):
> cd /usr/local/java/j2sdk1.4.0/jre/lib/ext
> ln -s /home/matthias/java/tritonus/dist/tritonus_xxx.jar
...
> cd i386
> ln -s /home/matthias/java/tritonus/src/lib/alsa/libtritonusalsa.so
...
(Of course adapt the paths to your system.)
---------------------
OLD
1. Unpack the distribution. It should unpack into a directory
tritonus-<version>. cd into the top-level directory.
2. Issue 'configure' ('./configure' if you build as root) in the
top-level directory. If you are building from the cvs, you have to
create configure from configure.in by calling 'autoconf'. Note that
autoconf 2.52 hat a bug that prevents Tritonus' configure from working
correctely. Tested (and working) versions are 2.53 and 2.13.
THE OLD WAY
3. Issue 'make' or 'make compileinitial' (the second one is
faster). There are spurious compilation errors with some jdk1.1
versions. Just restart with 'make' (even if you originally said 'make
compileinitial') and they will go away. This may be necessary several
times.
THE NEW WAY
3. Issue 'ant'.
-- following needs to be updated --
4. Issue 'make install'. This will copy the files tritonus.jar,
javalayer.jar, libesdtritonus.so.1.0 and libtritonusalsa.so.1.0 into
the directory tree of the jdk, thereby installing it as an
extension. Note that this works only if you have a jdk/jre1.2 or
higher and java is accessible in the path. If you have jdk/jre1.1.x,
you have to set the CLASSPATH and LD_LIBRARY_PATH to include the above
files. The important files are:
- tritonus-x.y.z/tritonus.jar - this contains the java classes and
should be in your CLASSPATH
- tritonus-x.y.z/javalayer.jar - this contains the java classes for
the mp3 decoder (seperated because of legal reasons). They should be
in your CLASSPATH, too.
- tritonus-x.y.z/src/lib/alsa/libtritonusalsa.so.1.0 (if you use the
MIDI stuff)
- tritonus-x.y.z/src/lib/esd/libtritonusesd.so.1.0
this contains the native
code and should be in your LD_LIBRARY_PATH
USING TRITONUS WITH SUN/IBM/BLACKDOWN JDK 1.3/1.4
If you are using Tritonus with a jdk/jre that already has an
implementation of the Java Sound API (this is true for 1.3/1.4), you
have two choices:
1. Use only the components of Tritonus that are not available/not
working correctely in the native Java Sound implementation.
2. Completely replace the Java Sound implementation by Tritonus.
Since 1.3 and 1.4 behave sligtly different with respect to this issue,
there are even more pitfalls.
If you just want to use one of Tritonus' FormatconversionProviders,
MixerProviders or MidiDeviceProviders (these are the most common
cases), put the respective tritonus_xxx.jar into either the user class
path or the extension class path. Using the user class path can be
convenient for quick tests. However, for permanent installation it is
not recommanded. The reason is that executing a VM with 'java -jar
...' overrides the user class path with the location of the .jar given
on the command line. So Tritonus .jars put into the user class path
become unavailable. Manipulating the boot class path is generally
highly discouraged (see below for a useful, but still critical use of
the boot class path). The remaining (and recommanded) way is to use
the extension class path.
Additionally, put native libs of .jar that need one into a generally
system-accessible location (for instance /usr/lib/, /usr/local/lib,
...). To install native libs in a custom location, you typically need
to change the value of the environment variable LD_LIBRARY_PATH.
This done, the components should be available to Java
Sound. MixerProviders contribute to the list of Mixers
(AudioSystem.getMixerInfo()). MidiDeviceProviders contribute to the
list of MidiDevices
(MidiSystem.getMidiDeviceInfo()). FormatConversionProviders are
considered implicitely (by AudioSystem.getTargetEncodings(),
AudioSystem.getTargetFormats(), AudioSystem.isConversionSupported(),
AudioSystem.getAudioInputStream()).
With jdk 1.3.X, the pitfall is that making the providers available does
NOT automatically change the default devices (as returned/used by
AudioSystem.getLine(), MidiSystem.getSynthesizer(),
MidiSystem.getReceiver(), MidiSystem.getTransmitter(),
MidiSystem.getSequencer(), MidiSystem.getSynthesizer()). The jdk
searches the class paths for available providers in this order: boot
class path, extension class path, user class path. Since the
'built-in' providers appear in rt.jar, which appears in the boot class
path, its devices act as defaults. Devices provided by
additionally installed providers are available on explicit request
(AudioSystem.getMixer(), MidiSystem.getMidiDevice()).
With jdk 1.4, the defaults change without asking you, and exactely
this can be a pitfal, too. This is due to the fact that the the search
order for provider is reversed. Here, it is: user class path,
extension class path, boot class path. So devices provided by
additional providers can act as default devices.
So with jdk1.4, your job is easy, while with jdk1.3 you have to
explicitely name alternative Mixers and MidiDevices. Note that it is
not a good idea to hard-code Tritonus' Mixer or MidiDevice names. The
recommanded practice (anyway) is to give the user a list of available
Mixers and MidiDevices and let her/him select an appropriate
one. These choices may be stored as preferences. If the user doesn't
explicitely select devices, default devices should be used (as
provided by the Java Sound implementation, not hard-coded ones).
You may want to opt to completely replace the jdk's Java Sound
implementation by Tritonus. There are not many cases where this does
make sense. It can be necessary to shadow severe bugs, but there are
few of them. For now, it's mainly an option for testing Tritonus. It
is not recommanded for normal users. Here is how it works:
Since the native versions of the javax.sound.* classes are in the boot
class path, it is necessary to alter the boot class path. Start the VM
with the following options:
java -Xbootclasspath/p:/path/to/tritonus_core.jar:/path/to/tritonus_share.jar
This prepends some of the Tritonus .jars to the boot class path,
resulting in Tritonus' versions of javax.sound.* shadowing the native
ones. Note that this still does not remove the native service
providers. To remove them, you have to edit or remove configuration
files packaged in rt.jar. The easiest way is to just remove them. So,
remove the following files from rt.jar:
META-INF/services/javax.sound.midi.spi.MidiDeviceProvider
META-INF/services/javax.sound.midi.spi.MidiFileReader
META-INF/services/javax.sound.midi.spi.MidiFileWriter
META-INF/services/javax.sound.midi.spi.SoundbankReader
META-INF/services/javax.sound.sampled.spi.AudioFileReader
META-INF/services/javax.sound.sampled.spi.AudioFileWriter
META-INF/services/javax.sound.sampled.spi.FormatConversionProvider
META-INF/services/javax.sound.sampled.spi.MixerProvider
Be sure to keep a copy of the original rt.jar, so that you can easily
restore the original state.
And again: Be warned that this is a guru-level option. Don't dare to
ask for help on a mailing list if something fails. You have to know
what you are doing.
TODO
[table: which provider in which .jar]
MISCELLANEOUS
If you found bugs, have suggestions, want to contribute or whatever,
you can contact the authors of this library:
mailto:tritonus-devel@lists.sourceforge.net
Further information on Tritonus:
http://www.tritonus.org/
You may also have a look at the Tritonus developer page:
http://tritonus.sourceforge.net/developer.html
Have fun!!
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Material not yet integrated (may be out of date)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
README.midi
-----------
ALSA
----
The MIDI stuff of tritonus makes heavy use of the ALSA sequencer.
ALSA is the Advanced Linux Sound Architecture
(http://www.alsa-project.org), a new soundcard driver system intended
to replace the OSS/Free driver in future kernels.
HOW TO MAKE IT WORK
-------------------
Use a recent 2.2 kernel. The developer of this stuff uses 2.2.10 and
2.2.14 kernels; every kernel newer than 2.2.3 should work. In the
kernel configuration, enable sound support, but do not include any
concrete driver. Enabling kernel symbol versioning helps if you
recompile kernels frequently.
Download and install the ALSA drivers/lib/utils version 0.5.x.
You cannot use earlier versions of ALSA due to incompatible
changes. Be sure to configure '--with-sequencer=yes' in the driver
part. Install the modules and load the new versions. Load the
sequencer modules. For help on installing ALSA, see the alsa-user
mailing list (visit the ALSA web site).
Installation check
------------------
> cat /proc/asound/seq/clients
The result should be similar to this:
Client info
cur clients : 2
peak clients : 2
max clients : 192
Client 0 : "System" [Kernel]
Port 0 : "Timer" (system:Rwe:Rwe)
Port 1 : "Announce" (system:R-e:R-e)
Client 64 : "0: MIDI Synth" [Kernel]
Port 0 : "MIDI 0-0" (device:RWe:RWe)
If the file doesn't exist at all, load the sequencer module:
modprobe snd-seq
If the file exists, but the "MIDI Synth" doesn't show up, load the
MIDI client module:
modprobe snd-seq-midi
If the internal synthesizer of your card is supported (not all
cards), you can load the synth support, too:
modprobe snd-seq-synth
There may be additional lines if you have more than one soundcard,
your soundcard has more than one MIDI port or the internal synth of
the soundcard is supported.
Second install check
--------------------
Install pmidi (http://www.parabola.demon.co.uk/alsa/pmidi.html).
You need version 1.4.0 or later.
Call 'pmidi -l'. The output should be similar to this:
Port Client name Port name
64:0 0: MIDI Synth MIDI 0-0
Connect a synthesizer to the MIDI out of your computer. Call 'pmidi
-p 64:0 <midifile>'. '64:0' should be the number shown in the first
column of the output from 'pmidi -l'. The MIDI file should be played
on your synth.
(Hopefully) finished!
---------------------
Now you should be able to use Tritonus with the ALSA sequencer.
\ No newline at end of file
This diff is collapsed.
# compilation and packing for the tritonus library
#
SHELL = /bin/sh
prefix=@prefix@
JAVADIR=$(prefix)
JAVAEXTPATH=$(JAVADIR)/@REL_JAVAEXTPATH@
JAVAC=@COMPILER@
DEF_CLASSPATH=@DEF_CLASSPATH@
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
LN_S = @LN_S@
RM_F = @RM_F@
MKDIR_P = @MKDIR_P@
DESTDIR = @BUILD_DIR@
DISTDIR = @DIST_DIR@
JL_SRC = @JL_DIR@
%.class: %.java
$(JAVAC) -classpath $(DEF_CLASSPATH):$(JL_SRC):src:$$CLASSPATH -d $(DESTDIR) $<
@#export CLASSPATH=$(DEF_CLASSPATH):$(JL_SRC):src:$$CLASSPATH; $(JAVAC) -d $(DESTDIR) $<
SRCDIR_PUB = src/javax/sound
SRCDIR_PRIV = src/org/tritonus
SRCDIR_JL = $(JL_SRC)/javazoom/jl/decoder
SRCDIR_JESD = src/com/jcraft/jesd
OBJDIR_PUB = $(DESTDIR)/javax/sound
OBJDIR_PRIV = $(DESTDIR)/org/tritonus
OBJDIR_JL = $(DESTDIR)/javazoom/jl/decoder
OBJDIR_JESD = $(DESTDIR)/com/jcraft/jesd
PACKAGING_ABSOLUTE_DIR=@SRC_ABSOLUTE_PATH@/src/packaging
PACKSRCDIR_CORE = javax/sound org/tritonus/core
PACKSRCDIR_SHARE = org/tritonus/share
PACKSRCDIR_REMAINING = \
org/tritonus/lowlevel/alsa \
org/tritonus/lowlevel/esd \
org/tritonus/lowlevel/saint \
org/tritonus/midi \
org/tritonus/sampled/convert/*.class \
org/tritonus/sampled/file/*.class \
org/tritonus/sampled/mixer
PACKSRCDIR_MP3 = \
org/tritonus/sampled/convert/lame \
org/tritonus/sampled/convert/javalayer \
org/tritonus/sampled/file/mpeg \
org/tritonus/lowlevel/lame
PACKSRCDIR_GSM = \
org/tritonus/lowlevel/gsm \
org/tritonus/sampled/file/gsm \
org/tritonus/sampled/convert/gsm
PACKSRCDIR_JL = javazoom
LIBDEST_CORE=tritonus_core.jar
LIBDEST_SHARE=tritonus_share.jar
LIBDEST_REMAINING=tritonus_remaining.jar
LIBDEST_MP3=tritonus_mp3.jar
LIBDEST_GSM=tritonus_gsm.jar
PLUGINS=$(LIBDEST_MP3) $(LIBDEST_GSM) $(LIBDEST_SHARE) tritonus_aos.jar
LIBS=$(LIBDEST_CORE) $(LIBDEST_SHARE) $(LIBDEST_REMAINING) $(LIBDEST_MP3) $(LIBDEST_GSM)
LIBDEST_ABSOLUTE_PREFIX=@SRC_ABSOLUTE_PATH@/$(DISTDIR)
META_INF_DIR=$(DESTDIR)/META-INF/services
vpath %.jar $(DISTDIR)
vpath %.java $(SRCDIR_PUB)/midi
vpath %.java $(SRCDIR_PUB)/midi/spi
vpath %.java $(SRCDIR_PUB)/sampled
vpath %.java $(SRCDIR_PUB)/sampled/spi
vpath %.java $(SRCDIR_PRIV)
vpath %.java $(SRCDIR_PRIV)/core
vpath %.java $(SRCDIR_PRIV)/lowlevel/alsa
vpath %.java $(SRCDIR_PRIV)/lowlevel/cdda
vpath %.java $(SRCDIR_PRIV)/lowlevel/cdda/cdparanoia
vpath %.java $(SRCDIR_PRIV)/lowlevel/cdda/cooked_ioctl
vpath %.java $(SRCDIR_PRIV)/lowlevel/esd
vpath %.java $(SRCDIR_PRIV)/lowlevel/gsm
vpath %.java $(SRCDIR_PRIV)/lowlevel/saint
vpath %.java $(SRCDIR_PRIV)/lowlevel/lame
vpath %.java $(SRCDIR_PRIV)/share
vpath %.java $(SRCDIR_PRIV)/share/sampled
vpath %.java $(SRCDIR_PRIV)/share/sampled/convert
vpath %.java $(SRCDIR_PRIV)/share/sampled/file
vpath %.java $(SRCDIR_PRIV)/share/sampled/mixer
vpath %.java $(SRCDIR_PRIV)/share/midi
vpath %.java $(SRCDIR_PRIV)/sampled/cdda
vpath %.java $(SRCDIR_PRIV)/sampled/convert
vpath %.java $(SRCDIR_PRIV)/sampled/convert/gsm
vpath %.java $(SRCDIR_PRIV)/sampled/convert/javalayer
vpath %.java $(SRCDIR_PRIV)/sampled/convert/lame
vpath %.java $(SRCDIR_PRIV)/sampled/file
vpath %.java $(SRCDIR_PRIV)/sampled/file/gsm
vpath %.java $(SRCDIR_PRIV)/sampled/file/mpeg
vpath %.java $(SRCDIR_PRIV)/sampled/mixer
vpath %.java $(SRCDIR_PRIV)/sampled/mixer/alsa
vpath %.java $(SRCDIR_PRIV)/sampled/mixer/esd
vpath %.java $(SRCDIR_PRIV)/sampled/mixer/jesd
vpath %.java $(SRCDIR_PRIV)/midi/device
vpath %.java $(SRCDIR_PRIV)/midi/device/alsa
vpath %.java $(SRCDIR_PRIV)/midi/device/midishare
vpath %.java $(SRCDIR_PRIV)/midi/device/saint
vpath %.java $(SRCDIR_PRIV)/midi/file
vpath %.java $(SRCDIR_JL)
vpath %.java $(SRCDIR_JESD)
vpath %.class $(OBJDIR_PUB)/midi
vpath %.class $(OBJDIR_PUB)/midi/spi
vpath %.class $(OBJDIR_PUB)/sampled
vpath %.class $(OBJDIR_PUB)/sampled/spi
vpath %.class $(OBJDIR_PRIV)
vpath %.class $(OBJDIR_PRIV)/core
vpath %.class $(OBJDIR_PRIV)/lowlevel/alsa
vpath %.class $(OBJDIR_PRIV)/lowlevel/cdda
vpath %.class $(OBJDIR_PRIV)/lowlevel/cdda/cdparanoia
vpath %.class $(OBJDIR_PRIV)/lowlevel/cdda/cooked_ioctl
vpath %.class $(OBJDIR_PRIV)/lowlevel/esd
vpath %.class $(OBJDIR_PRIV)/lowlevel/gsm
vpath %.class $(OBJDIR_PRIV)/lowlevel/saint
vpath %.class $(OBJDIR_PRIV)/lowlevel/lame
vpath %.class $(OBJDIR_PRIV)/share
vpath %.class $(OBJDIR_PRIV)/share/sampled
vpath %.class $(OBJDIR_PRIV)/share/sampled/convert
vpath %.class $(OBJDIR_PRIV)/share/sampled/file
vpath %.class $(OBJDIR_PRIV)/share/sampled/mixer
vpath %.class $(OBJDIR_PRIV)/share/midi
vpath %.class $(OBJDIR_PRIV)/sampled/cdda
vpath %.class $(OBJDIR_PRIV)/sampled/convert
vpath %.class $(OBJDIR_PRIV)/sampled/convert/gsm
vpath %.class $(OBJDIR_PRIV)/sampled/convert/javalayer
vpath %.class $(OBJDIR_PRIV)/sampled/convert/lame
vpath %.class $(OBJDIR_PRIV)/sampled/file
vpath %.class $(OBJDIR_PRIV)/sampled/file/gsm
vpath %.class $(OBJDIR_PRIV)/sampled/file/mpeg
vpath %.class $(OBJDIR_PRIV)/sampled/mixer
vpath %.class $(OBJDIR_PRIV)/sampled/mixer/alsa
vpath %.class $(OBJDIR_PRIV)/sampled/mixer/esd
vpath %.class $(OBJDIR_PRIV)/sampled/mixer/jesd
vpath %.class $(OBJDIR_PRIV)/midi/device
vpath %.class $(OBJDIR_PRIV)/midi/device/alsa
vpath %.class $(OBJDIR_PRIV)/midi/device/midishare
vpath %.class $(OBJDIR_PRIV)/midi/device/saint
vpath %.class $(OBJDIR_PRIV)/midi/file
vpath %.class $(OBJDIR_JL)
vpath %.class $(OBJDIR_JESD)
SRCTMP:=$(wildcard \
$(SRCDIR_PUB)/midi/*.java \
$(SRCDIR_PUB)/midi/spi/*.java \
$(SRCDIR_PUB)/sampled/*.java \
$(SRCDIR_PUB)/sampled/spi/*.java \
$(SRCDIR_PRIV)/*.java \
$(SRCDIR_PRIV)/core/*.java \
$(SRCDIR_PRIV)/share/*.java \
$(SRCDIR_PRIV)/share/midi/*.java \
$(SRCDIR_PRIV)/share/sampled/*.java \
$(SRCDIR_PRIV)/share/sampled/convert/*.java \
$(SRCDIR_PRIV)/share/sampled/file/*.java \
$(SRCDIR_PRIV)/share/sampled/mixer/*.java \
$(SRCDIR_PRIV)/lowlevel/alsa/*.java \
$(SRCDIR_PRIV)/lowlevel/cdda/*.java \
$(SRCDIR_PRIV)/lowlevel/cdda/cdparanoia/*.java \
$(SRCDIR_PRIV)/lowlevel/cdda/cooked_ioctl/*.java \
$(SRCDIR_PRIV)/lowlevel/esd/*.java \
$(SRCDIR_PRIV)/lowlevel/gsm/*.java \
$(SRCDIR_PRIV)/lowlevel/saint/*.java \
$(SRCDIR_PRIV)/lowlevel/lame/*.java \
$(SRCDIR_PRIV)/sampled/cdda/*.java \
$(SRCDIR_PRIV)/sampled/convert/*.java \
$(SRCDIR_PRIV)/sampled/convert/gsm/*.java \
$(SRCDIR_PRIV)/sampled/convert/javalayer/*.java \
$(SRCDIR_PRIV)/sampled/convert/lame/*.java \
$(SRCDIR_PRIV)/sampled/file/*.java \
$(SRCDIR_PRIV)/sampled/file/gsm/*.java \
$(SRCDIR_PRIV)/sampled/file/mpeg/*.java \
$(SRCDIR_PRIV)/sampled/mixer/alsa/*.java \
$(SRCDIR_PRIV)/sampled/mixer/jesd/*.java \
$(SRCDIR_PRIV)/sampled/mixer/esd/*.java \
$(SRCDIR_PRIV)/midi/device/alsa/*.java \
$(SRCDIR_PRIV)/midi/file/*.java \
$(SRCDIR_JL)/*.java \
$(SRCDIR_JESD)/*.java \
)
# $(SRCDIR_PRIV)/midi/device/saint/*.java \
# $(SRCDIR_PRIV)/midi/device/midishare/*.java \ needs e.g. class grame.midishare.MidiException
SRC:=$(notdir $(SRCTMP))
OBJ:=$(SRC:.java=.class)
srcdir=.
DISTFILES=ConvertJDK117 INSTALL LGPL Makefile.in NEWS README README_mp3 configure.in configure doc src test util #new
SUBDIRS=@SUBDIRS@
CONVERTTARGETS = @CONVERTTARGETS@
#----------------- rules -------------------
.PHONY: all
# $$fb do not compile the java classes
#all: builddir $(CONVERTTARGETS) $(LIBS) @JAR_INDEX@
# @for d in $(SUBDIRS); do $(MAKE) -C $$d; done
# @rm -rf $(DESTDIR)/META-INF
all: builddir
@for d in $(SUBDIRS); do $(MAKE) -C $$d; done
.PHONY: convert
convert:
@if [ ! -f .converted ]; then ./ConvertJDK117; echo "" > .converted; fi
.PHONY: builddir
builddir:
@$(MKDIR_P) $(DESTDIR)
#.PHONY: $(DISTDIR)
#$(DISTDIR):
# @$(MKDIR_P) $(DISTDIR)
#.PHONY: $(META_INF_DIR)
#$(META_INF_DIR):
# @rm -rf $(DESTDIR)/META-INF
# @$(MKDIR_P) $(DESTDIR)/META-INF
# @$(MKDIR_P) $(DESTDIR)/META-INF/services
#.PHONY: $(LIBDEST_CORE)
$(LIBDEST_CORE): $(OBJ)
@echo Creating $(LIBDEST_CORE)
@$(MKDIR_P) $(DISTDIR)
@cd $(DESTDIR) ; jar cmf $(PACKAGING_ABSOLUTE_DIR)/tritonus_core/manifest.mf \
$(LIBDEST_ABSOLUTE_PREFIX)/$(LIBDEST_CORE) $(PACKSRCDIR_CORE)
#.PHONY: $(LIBDEST_SHARE)
$(LIBDEST_SHARE): $(OBJ)
@echo Creating $(LIBDEST_SHARE)
@$(MKDIR_P) $(DISTDIR)
@cd $(DESTDIR) ; jar cf $(LIBDEST_ABSOLUTE_PREFIX)/$(LIBDEST_SHARE) $(PACKSRCDIR_SHARE)
#.PHONY: $(LIBDEST_REMAINING)
$(LIBDEST_REMAINING): $(OBJ)
@echo Creating $(LIBDEST_REMAINING)
@$(MKDIR_P) $(DISTDIR)
@rm -rf $(DESTDIR)/META-INF
@$(MKDIR_P) $(DESTDIR)/META-INF
@$(MKDIR_P) $(DESTDIR)/META-INF/services
@#$(RM_F) $(DESTDIR)/META-INF/services/javax*
@cp src/packaging/tritonus_core/META-INF/services/javax* $(META_INF_DIR)/
@cd $(DESTDIR) ; jar cf $(LIBDEST_ABSOLUTE_PREFIX)/$(LIBDEST_REMAINING) \
$(PACKSRCDIR_REMAINING) META-INF/services/
#.PHONY: $(LIBDEST_MP3)
$(LIBDEST_MP3): $(OBJ)
@echo Creating $(LIBDEST_MP3)
@$(MKDIR_P) $(DISTDIR)
@rm -rf $(DESTDIR)/META-INF
@$(MKDIR_P) $(DESTDIR)/META-INF
@$(MKDIR_P) $(DESTDIR)/META-INF/services
@#$(RM_F) $(DESTDIR)/META-INF/services/javax*
@cp src/packaging/tritonus_mp3/META-INF/services/javax* $(META_INF_DIR)/
@cd $(DESTDIR) ; jar cmf $(PACKAGING_ABSOLUTE_DIR)/tritonus_mp3/manifest.mf \
$(LIBDEST_ABSOLUTE_PREFIX)/$(LIBDEST_MP3) $(PACKSRCDIR_MP3) META-INF/services/
#.PHONY: $(LIBDEST_GSM)
$(LIBDEST_GSM): $(OBJ)
@echo Creating $(LIBDEST_GSM)
@$(MKDIR_P) $(DISTDIR)
@rm -rf $(DESTDIR)/META-INF
@$(MKDIR_P) $(DESTDIR)/META-INF
@$(MKDIR_P) $(DESTDIR)/META-INF/services
@#$(RM_F) $(DESTDIR)/META-INF/services/javax*
@cp src/packaging/tritonus_gsm/META-INF/services/javax* $(META_INF_DIR)/
@cd $(DESTDIR) ; jar cmf $(PACKAGING_ABSOLUTE_DIR)/tritonus_gsm/manifest.mf \
$(LIBDEST_ABSOLUTE_PREFIX)/$(LIBDEST_GSM) $(PACKSRCDIR_GSM) META-INF/services/
.PHONY: jar_index
jar_index: $(LIBS)
@echo Creating indexes for $(LIBDEST_CORE), $(LIBDEST_MP3), and $(LIBDEST_GSM)
@cd $(DISTDIR) ; jar -i $(LIBDEST_CORE)
@cd $(DISTDIR) ; jar -i $(LIBDEST_MP3)
@cd $(DISTDIR) ; jar -i $(LIBDEST_GSM)
.PHONY: jikesinc
jikesinc: builddir $(SRC)
@(if test "$(JAVAC)" != "jikes" ; then \
echo "This is only available with jikes as compiler." ; exit 1 ; fi)
@echo "This will not build the jars. You need to include the directory \"$(DESTDIR)\" in the CLASSPATH."
@export CLASSPATH=$(DEF_CLASSPATH):$$CLASSPATH; $(JAVAC) ++ -d $(DESTDIR) $(SRCTMP)
.PHONY: doc
doc: all
$(MAKE) -C doc
.PHONY: test
test: all
$(MAKE) -C all
.PHONY: install
install: all
@for l in $(LIBS) ; do \
echo "Installing $$l in $(JAVAEXTPATH)" ; \
$(INSTALL_DATA) $(DISTDIR)/$$l $(JAVAEXTPATH) ; done
@for d in $(SUBDIRS); do $(MAKE) -C $$d install; done
.PHONY: install-link
install-link: all
@for l in $(LIBS) ; do \
echo "Installing link for $$l in $(JAVAEXTPATH)" ; \
$(RM_F) $(JAVAEXTPATH)/$$l ; \
(cd $(JAVAEXTPATH) && $(LN_S) $(LIBDEST_ABSOLUTE_PREFIX)/$$l $$l) ; done
@for d in $(SUBDIRS); do $(MAKE) -C $$d install-link; done
# TODO: install-link-usc
#links /usr/share/common/tritonus_*.jar to build version; links .../jre/lib/ext/... to /u/s/j
.PHONY: uninstall
uninstall:
@for l in $(LIBS) ; do \
echo "Removing $$l from $(JAVAEXTPATH)" ; \
$(RM_F) $(JAVAEXTPATH)/$$l ; done
@for d in $(SUBDIRS); do $(MAKE) -C $$d uninstall; done
.PHONY: uninstall-link
uninstall-link: uninstall
.PHONY: clean
clean:
cd $(DISTDIR) ; $(RM_F) $(LIBS)
rm -rf $(DESTDIR)/org $(DESTDIR)/javax $(DESTDIR)/javazoom $(DESTDIR)/com $(DESTDIR)/META-INF
find . -name '*~' -exec rm '{}' ';'
find . -name '*.class' -exec rm '{}' ';'
find . -name '*.bak' -exec rm '{}' ';'
find . -name '.directory' -exec rm '{}' ';'
@for d in $(SUBDIRS); do $(MAKE) -C $$d clean; done
.PHONY: veryclean
veryclean: clean
rm -rf TAGS
.PHONY:tags
tags: TAGS
TAGS: $(SRCTMP)
etags $(SRCTMP)
userdist:
echo tritonus-`cat VERSION` >.fname
-rm -rf `cat .fname`
mkdir `cat .fname`
dst=`cat .fname`; for f in $(DISTFILES); do \
ln $(srcdir)/$$f $$dst/$$f || { echo copying $$f; \
cp -pr $(srcdir)/$$f $$dst/$$f; } \
done
tar czhf `cat .fname`.tar.gz `cat .fname`
-rm -rf `cat .fname` .fname
devdist:
echo tritonus-`date +%Y-%m-%d` >.fname
-rm -rf `cat .fname`
mkdir `cat .fname`
dst=`cat .fname`; for f in $(DISTFILES); do \
ln $(srcdir)/$$f $$dst/$$f || { echo copying $$f; \
cp -pr $(srcdir)/$$f $$dst/$$f; } \
done
tar czhf `cat .fname`.tar.gz `cat .fname`
-rm -rf `cat .fname` .fname
bindist: bindist-esd bindist-alsa
#TODO: dependancies, readme
bindist-esd:
tar czf tritonus-esd-linux-x86-`date +%Y-%m-%d`.tar.gz \
-C doc/bindists/esd readme.txt \
-C ../../../dist tritonus_share.jar tritonus_esd.jar \
-C ../src/lib/esd libtritonusesd.so libtritonusesd.so.1 libtritonusesd.so.1.0
#TODO: dependancies, readme
bindist-alsa:
tar czf tritonus-alsa-linux-x86-`date +%Y-%m-%d`.tar.gz \
-C doc/bindists/alsa readme.txt \
-C ../../../dist tritonus_share.jar tritonus_alsa.jar \
-C ../src/lib/alsa libtritonusalsa.so libtritonusalsa.so.1 libtritonusalsa.so.1.0
bindist-upload: bindist
scp tritonus-esd-linux-x86-`date +%Y-%m-%d`.tar.gz tritonus-alsa-linux-x86-`date +%Y-%m-%d`.tar.gz www.tritonus.org:vtritonus/htdocs
devdist-upload: devdist
echo tritonus-`date +%Y-%m-%d.tar.gz` >.fname
scp `cat .fname` tritonus.sourceforge.net:/home/groups/ftp/pub/tritonus/
-rm -f .fname
plugins-upload: $(PLUGINS)
cd $(DISTDIR) ; scp $(PLUGINS) www.tritonus.org:vtritonus/htdocs
# doesn't work on www.tritonus.org
plugins-rsync: $(PLUGINS)
cd $(DISTDIR) ; rsync $(PLUGINS) www.tritonus.org:vtritonus/htdocs
#------- EXPERIMENTAL ----------------
nativelibs:
$(MAKE) -C src/lib/alsa
$(MAKE) -C src/lib/greatlysimplifiedvorbis
NEWS for Tritonus
version 0.2.0:
- bug fixes in audio file writers
- improved A-law and u-law converters
- bug fixes in installation procedure
version 0.1.92:
- file writers for .aiff and .wav
- improved file readers
- a-law and u-law converters
- installation with jdk1.1.x now possible again
version 0.1.91:
- MIDI OUT is working (exception: sysex events)
- major improvements in handling of 8-bit sound data
version 0.1.90:
many, many new things. Only key points here:
- Java Sound API 1.0 interface
- mp3 decoder fully integrated
- recording works, even full-duplex
- MIDI stuff: Sequencer (playback), Synthesizer (some advanced features missing), external MIDI IN, external MIDI OUT (only together with Sequencer)
- NAS support removed
version 0.1.82:
- automatic configuration with configure
- builds on jdk1.1.x (many thanks to Peter Pilgrim)
- new base class TMixerProvider
- NasMixer now has Mixer.Info object
- interface of PanControl changed to 0.90 API
- AudioInputStream can now handle streams with indefinite length
- basis support for mp3 decoding by integration of javalayer
- MidiDevice.Info.getVersion() added, constructor adapted
- GroupLine added
- Port.Info added
version 0.1.81:
- audio file writing for .au files
- Clips for esd
- several bugs fixed
version 0.1.80:
- JavaSound 0.90 API
- support for esd
- AudioInputStreamProviders for au, aiff and wave files
version 0.1.003:
- pause() and resume() are implemented
- channels send start, stop and eom events
- workaround for buggy fileparsers (now all work)
version 0.1.002:
- works with AuParser of Sun (other parser do not work/are not tested)
- circular buffer in output channel has been eliminated
- honors passed AudioFormat in Mixer.getOutputChannel()
- Mixer.get*Formats() work
Please report bugs to the author of this library:
Matthias Pfisterer <Matthias.Pfisterer@gmx.de>
Have fun!
This is Tritonus, version 0.3.1
Tritonus is an implementation of the Java Sound API 1.0. What you see
here is an implementaion for GNU/Linux i386 and GNU/Linux PowerPC.
It is intended to support different plattforms in the future. Several
components are written purely in Java. They can be used to extend any
known Java Sound implementation. For pre-compiled versions of these
components, see: http://www.tritonus.org/plugins.html
Tritonus is distributed under the terms of the GNU Library General
Public License. See the file LGPL for details.
For installing instructions, see the file INSTALL.
For new features and bug fixes, see file NEWS
Please report bugs in Tritonus:
http://sourceforge.net/bugs/?group_id=1390 or send mail to the
developer mailing list: mailto:tritonus-devel@lists.sourceforge.net
You may also have a look at the Tritonus page:
http://www.tritonus.org/
Have fun!
README.mp3
----------
MP3 DECODING
------------
This version of Tritonus includes mp3 decoding support. This is due to
using javalayer 0.0.8, a pure-java mp3 decoder developed by
the javalayer project. The big credit for this goes to Eric B. who
wrote the decoder.
The javalayer code is no longer duplicated in Tritonus. To compile
from scratch, you need to check out javalayer from its own cvs (see
http://sourceforge.net/projects/javalayer/). Make sure javalayer is
in a directory 'javalayer' that is in the same directory as
'tritonus'. In this case, if you issue ant int Tritonus, it will build
javalayer, too. Alternatively, if you want a different location,
change the path to javalayer in build.xml.
For a runnable program, see DecodingAudioPlayer.java or
AudioPlayer.java from the Java Sound Examples.
The decoder can also be used as plug-in for any Java Sound
implementation (like the Sun jdk1.3). Precompiled jar files are at
http://www.tritonus.org/plugins.html
JavaLayer project:
http://www.javazoom.net/javalayer/javalayer.html
MP3 ENCODING
------------
MP3 file creation is supported with native access to
the LAME library. A pure Java MP3 encoder does not exist
in our knowledge and would probably be too slow - nowadays.
LAME is acknowledged to provide high quality mp3 encoding.
Additionally, it is completely open source (LGPL) and does
not use 3rd party source code.
As LAME is accessed via JNI, the current implementation
in Tritonus can only be used under Linux. In future,
a port to Windows and other systems is possible.
Capabilities in Tritonus:
The encoder creates MPEG1 layer III, MPEG2 layer III
or MPEG2.5 layer III files and chooses automatically
the right encoding. Bit rates may vary from 8 to 320KBit/s,
VBR (variable bit rate) is supported, too. Different
quality levels may be choosen which affect
- encoding speed for CBR (constant bit rate)
- mp3 file size for VBR.
Downloading LAME:
LAME has to be installed on your system.
You need at least LAME V3.88beta or later. You can get LAME from
http://sourceforge.net/projects/lame/
To get the latest CVS version of lame, issue these 2 commands:
cvs -d:pserver:anonymous@cvs.lame.sourceforge.net:/cvsroot/lame login
(Password empty)
cvs -z3 -d:pserver:anonymous@cvs.lame.sourceforge.net:/cvsroot/lame co lame
Installation of LAME:
In the main directory of lame, issue "./configure --enable-shared"
and "make".
As root, invoke "make install". This copies the library to /usr/local/lib.
You may need to include /usr/local/lib to /etc/ld.so.conf and then
run "ldconfig"
Integration in Tritonus:
You must re-run "configure" after installation of LAME. Be sure to
remove "config.cache" before. "configure" outputs a line like
"Will build stuff for LAME encoder" when everything is fine.
Call "make" and as root "make install" (or make install-link).
Testing:
A simple command line tool for converting any audio file to mp3 is
included in the directory test: Mp3Encoder.java. Run it without
parameters to see brief usage instructions. Looking at its source
code will show you how it works (and the problems...).
Please send problems or bugs to florian@tritonus.org or submit them
to the bug database on sourceforge.
Thanks:
Many thanks to Mark Taylor, who leads development of LAME.
He was open to my (Florians) proposals and let me work on LAME
to make the integration into Tritonus possible.
<!--
Tritonus build
common definitions
This file is included by build.xml and build-debug.xml.
-->
<!--taskdef name="sablecc" classname="org.sablecc.ant.taskdef.Sablecc"/-->
<target name="init">
<tstamp/>
<property name="src" value="${basedir}/src" />
<property name="build" value="${basedir}/build" />
<property name="dist" value="${basedir}/dist" />
<property name="javadoc.dir" value="${basedir}/doc/apidoc" />
<property name="src.classes" value="${src}/classes" />
<property name="src.misc" value="${src}/misc" />
<property name="debug" value="on"/>
<property name="source" value="1.5"/>
<available
classname="grame.midishare.Midi"
property="midishare-present" />
<available
classname="javazoom.jl.decoder.Decoder"
property="javalayer-present" />
<available
classname="com.jcraft.jorbis.JOrbisException"
property="jorbis-present" />
<property
name="java_ext_path"
value="${java.home}/lib/ext" />
<loadfile property="version"
srcFile="version" />
<property name="plugins" value="tritonus_share-${version}.jar tritonus_remaining-${version}.jar tritonus_gsm-${version}.jar tritonus_javasequencer-${version}.jar tritonus_src-${version}.jar tritonus_aos-${version}.jar tritonus_vorbis-${version}.jar tritonus_jorbis-${version}.jar tritonus_dsp-${version}.jar tritonus_mp3-${version}.jar" />
<!--property name="plugins" value="../../javalayer/dist/javalayer.jar" /-->
<property name="plugins-bin" value="tritonus-vorbis-linux-${version}.zip" />
</target>
<target name="prepare" depends="init">
<mkdir dir="${build}" />
<mkdir dir="${dist}" />
<mkdir dir="${javadoc.dir}"/>
</target>
<!-- compile targets are in build.xml/build-aspectj.xml -->
<target name="dist"
depends="dist-common,dist-javalayer-dependent,dist-jorbis-dependent,dist-midishare-dependent" >
</target>
<target name="dist-common"
depends="compile" >
<!-- CORE: contains public classes and SPI instantiation support -->
<jar jarfile="${dist}/tritonus_core-${version}.jar">
<fileset dir="${build}">
<include name="javax/sound/" />
<include name="org/tritonus/core/" />
<!-- This is a hack needed for the debug build. Files in this
directory aren't needed for the release build. However, it
should do no harm if files laying around are included.
-->
<include name="org/tritonus/debug/" />
</fileset>
</jar>
<!-- SHARE: contains base and auxiliary classes for all other jars -->
<jar jarfile="${dist}/tritonus_share-${version}.jar">
<fileset dir="${build}">
<include name="org/tritonus/share/" />
</fileset>
</jar>
<!-- ALSA: contains Alsa mixer and Alsa sequencer -->
<jar jarfile="${dist}/tritonus_alsa-${version}.jar" >
<fileset dir="${build}" >
<include name="org/tritonus/lowlevel/alsa/" />
<include name="org/tritonus/sampled/mixer/alsa/" />
<include name="org/tritonus/midi/device/alsa/" />
</fileset>
<fileset dir="${src}/packaging/tritonus_alsa" />
</jar>
<!-- ESD: contains Esd mixer -->
<jar jarfile="${dist}/tritonus_esd-${version}.jar" >
<fileset dir="${build}" >
<include name="org/tritonus/lowlevel/esd/" />
<include name="org/tritonus/sampled/mixer/esd/" />
</fileset>
<fileset dir="${src}/packaging/tritonus_esd" />
</jar>
<!-- GSM: -->
<jar jarfile="${dist}/tritonus_gsm-${version}.jar" >
<fileset dir="${build}" >
<include name="org/tritonus/lowlevel/gsm/" />
<include name="org/tritonus/sampled/convert/gsm/" />
<include name="org/tritonus/sampled/file/gsm/" />
</fileset>
<fileset dir="${src}/packaging/tritonus_gsm" />
</jar>
<!-- (native) VORBIS: -->
<jar jarfile="${dist}/tritonus_vorbis-${version}.jar" >
<fileset dir="${build}" >
<include name="org/tritonus/lowlevel/ogg/" />
<include name="org/tritonus/lowlevel/vorbis/" />
<include name="org/tritonus/sampled/convert/vorbis/" />
<include name="org/tritonus/sampled/file/vorbis/" />
<!-- This is a hack needed for the debug build. Files in this
directory aren't needed for the release build. However, it
should do no harm if files laying around are included.
-->
<include name="org/tritonus/debug/" />
</fileset>
<fileset dir="${src}/packaging/tritonus_vorbis" />
</jar>
<!-- (pure java) VORBIS: -->
<jar jarfile="${dist}/tritonus_pvorbis-${version}.jar" >
<fileset dir="${build}" >
<include name="org/tritonus/lowlevel/pogg/" />
<include name="org/tritonus/lowlevel/pvorbis/" />
<include name="org/tritonus/sampled/convert/pvorbis/" />
<include name="org/tritonus/sampled/file/pvorbis/" />
<!-- This is a hack needed for the debug build. Files in this
directory aren't needed for the release build. However, it
should do no harm if files laying around are included.
-->
<include name="org/tritonus/debug/" />
</fileset>
<fileset dir="${src}/packaging/tritonus_pvorbis" />
</jar>
<!-- JAVASEQUENCER: -->
<jar jarfile="${dist}/tritonus_javasequencer-${version}.jar" >
<fileset dir="${build}" >
<include name="org/tritonus/midi/device/java/" />
</fileset>
<fileset dir="${src}/packaging/tritonus_javasequencer" />
</jar>
<!-- FLUIDSYNTH: -->
<jar jarfile="${dist}/tritonus_fluidsynth-${version}.jar" >
<fileset dir="${build}" >
<include name="org/tritonus/midi/device/fluidsynth/" />
<include name="org/tritonus/midi/sb/fluidsynth/" />
</fileset>
<fileset dir="${src}/packaging/tritonus_fluidsynth" />
</jar>
<!-- AOS: AudioOutputStream stuff-->
<jar jarfile="${dist}/tritonus_aos-${version}.jar" >
<fileset dir="${build}" >
<include name="org/tritonus/sampled/file/*AudioOutputStream.class/" />
<include name="org/tritonus/sampled/file/*Tool.class/" />
</fileset>
</jar>
<!-- SRC: sample rate converter -->
<jar jarfile="${dist}/tritonus_src-${version}.jar" >
<fileset dir="${build}" >
<include name="org/tritonus/sampled/convert/SampleRateConversionProvider*.class" />
</fileset>
<fileset dir="${src}/packaging/tritonus_src" />
</jar>
<!-- CDDA: -->
<jar jarfile="${dist}/tritonus_cdda-${version}.jar" >
<fileset dir="${build}" >
<include name="org/tritonus/lowlevel/cdda/" />
<include name="org/tritonus/sampled/cdda/" />
</fileset>
</jar>
<!-- DSP: -->
<jar jarfile="${dist}/tritonus_dsp-${version}.jar">
<fileset dir="${build}">
<include name="org/tritonus/lowlevel/dsp/" />
<include name="org/tritonus/dsp/" />
</fileset>
</jar>
<!-- REMAINING:: -->
<jar jarfile="${dist}/tritonus_remaining-${version}.jar" >
<fileset dir="${build}" >
<include name="org/tritonus/midi/file/" />
<include name="org/tritonus/sampled/file/*.class" />
<include name="org/tritonus/sampled/convert/*.class" />
</fileset>
<fileset dir ="${src}/packaging/tritonus_core" />
</jar>
</target>
<target name="dist-javalayer-dependent"
depends="compile,compile-javalayer-dependent"
if="javalayer-present" >
<!-- MP3: -->
<jar jarfile="${dist}/tritonus_mp3-${version}.jar" >
<fileset dir="${build}" >
<include name="org/tritonus/lowlevel/lame/" />
<include name="org/tritonus/sampled/convert/javalayer/" />
<include name="org/tritonus/sampled/convert/lame/" />
<include name="org/tritonus/sampled/file/mpeg/" />
</fileset>
<fileset dir="${src}/packaging/tritonus_mp3" />
</jar>
</target>
<target name="dist-jorbis-dependent"
depends="compile-jorbis-dependent"
if="jorbis-present" >
<!-- JORBIS: -->
<jar jarfile="${dist}/tritonus_jorbis-${version}.jar" >
<fileset dir="${build}" >
<include name="org/tritonus/sampled/convert/jorbis/" />
<include name="org/tritonus/sampled/file/jorbis/" />
<!-- This is a hack needed for the debug build. Files in this
directory aren't needed for the release build. However, it
should do no harm if files laying around are included.
-->
<include name="org/tritonus/debug/" />
</fileset>
<fileset dir="${src}/packaging/tritonus_jorbis" />
</jar>
</target>
<target name="dist-midishare-dependent"
depends="compile,compile-midishare-dependent"
if="midishare-present" >
<!-- MIDISHARE: -->
<jar jarfile="${dist}/tritonus_midishare-${version}.jar" >
<fileset dir="${build}" >
<include name="org/tritonus/midi/device/midishare/" />
</fileset>
<fileset dir="${src}/packaging/tritonus_midishare" />
</jar>
</target>
<target name="compile-libs"
depends="prepare" >
<exec
dir="."
executable="make"
output="native0.log" >
<arg line="-C src/lib/alsa" />
</exec>
<exec
dir="."
executable="make"
output="native1.log" >
<arg line="-C src/lib/esd" />
</exec>
<exec
dir="."
executable="make"
output="native2.log" >
<arg line="-C src/lib/lame" />
</exec>
<exec
dir="."
executable="make"
output="native3.log" >
<arg line="-C src/lib/saint" />
</exec>
</target>
<!--
The following two targets should depend on uninstall, so that
old files are safely removed. However, there is a problem with
ant deleting symbolic links (VM crash), so it is left out
for the moment.
Also note that these targets only work for jdk >= 1.2.
-->
<target name="install" depends="dist">
<copy
todir="${java_ext_path}" >
<fileset dir="${dist}" >
<include name="*.jar" />
</fileset>
</copy>
</target>
<target name="install-link" depends="dist">
<exec
dir="${java_ext_path}"
executable="ln" >
<arg line="-s ${basedir}/${dist}/tritonus_core-${version}.jar ${java_ext_path}" />
</exec>
<exec
dir="${java_ext_path}"
executable="ln" >
<arg line="-s ${basedir}/${dist}/tritonus_share-${version}.jar ${java_ext_path}" />
</exec>
<exec
dir="${java_ext_path}"
executable="ln" >
<arg line="-s ${basedir}/${dist}/tritonus_remaining-${version}.jar ${java_ext_path}" />
</exec>
<exec
dir="${java_ext_path}"
executable="ln" >
<arg line="-s ${basedir}/${dist}/tritonus_mp3-${version}.jar ${java_ext_path}" />
</exec>
<exec
dir="${java_ext_path}"
executable="ln" >
<arg line="-s ${basedir}/${dist}/tritonus_gsm-${version}.jar ${java_ext_path}" />
</exec>
</target>
<target name="uninstall" depends="init">
<echo message="ext path: ${java_ext_path}" />
<delete file="${java_ext_path}/tritonus*.jar" />
</target>
<target name="clean" depends="init,clean-javadoc">
<delete dir="${build}" />
<delete dir="${dist}" />
</target>
<target name="clean-javadoc" depends="init">
<delete dir="${javadoc.dir}"/>
</target>
<target name="plugins-upload"
depends="dist">
<exec
dir="${dist}"
executable="scp"
output="upload.log" >
<arg line="-p ${plugins} www.tritonus.org:vtritonus/htdocs/" />
</exec>
</target>
<target name="plugins-bin-upload"
depends="dist-vorbis">
<exec
dir="${dist}"
executable="scp"
output="upload.log" >
<arg line="-p ${plugins-bin} www.tritonus.org:vtritonus/htdocs/" />
</exec>
</target>
<!-- for saol -->
<target name="compile-saol" depends="prepare">
<!--sablecc
src="${src.misc}/"
outputdirectory="${src.classes}" /-->
<!-- currently, this has to be executed manually:
sablecc -d src/classes/ src/misc/saol.grammar -->
<javac srcdir="${src.classes}"
depend="yes"
debug="${debug}"
destdir="${build}"
includes="org/tritonus/saol/"
excludes="org/tritonus/whatever" />
</target>
<target name="dist-saol"
depends="compile-saol" >
<jar jarfile="${dist}/saol-${version}.jar">
<fileset dir="${build}">
<include name="org/tritonus/saol/" />
</fileset>
<fileset dir="${src.classes}">
<include name="org/tritonus/saol/sablecc/lexer/lexer.dat" />
<include name="org/tritonus/saol/sablecc/parser/parser.dat" />
</fileset>
</jar>
</target>
<!-- documentation -->
<target name="javadoc-all" depends="javadoc-tritonus,javadoc-javasound"/>
<target name="javadoc-tritonus" depends="prepare">
<javadoc
package="true" sourcepath="${src}" destdir="${javadoc.dir}"
packagenames="org.tritonus.*"
excludepackagenames="org.tritonus.debug,org.tritonus.midi.device.midishare,org.tritonus.sampled.convert.javalayer"
Windowtitle="Tritonus API"
link="http://java.sun.com/j2se/1.5.0/docs/api/"
use="true"
source="1.5"
additionalparam="-breakiterator">
</javadoc>
<!-- additionalparam="-breakiterator" -->
</target>
<target name="javadoc-javasound" depends="prepare">
<javadoc
package="true" sourcepath="${src}" destdir="${javadoc.dir}"
packagenames="javax.sound.*"
Windowtitle="Java Sound API"
source="1.5"
additionalparam="-breakiterator">
</javadoc>
<!-- additionalparam="-breakiterator" -->
</target>
<target name="javadoc-upload"
depends="javadoc-tritonus">
<exec
dir="${basedir}"
executable="rsync">
<arg line="-arvC ${javadoc.dir} tritonus.sourceforge.net:/home/groups/t/tr/tritonus/htdocs/" />
</exec>
</target>
<target name="tags" depends="init"
description="Create TAGS file for emacs">
<fileset dir="${src}" id="src.files">
<include name="**/*.java"/>
</fileset>
<pathconvert pathsep=" " property="src.files.expanded" refid="src.files"/>
<!--echo message = "files: ${src.files.expanded}" /-->
<exec executable="etags">
<arg line="-o ${src}/TAGS ${src.files.expanded}" />
</exec>
</target>
<target name="dist-vorbis" depends="dist-common"
description="Create binary distribution for vorbis codec">
<zip destfile="${dist}/tritonus-vorbis-linux-${version}.zip">
<zipfileset dir="${dist}" includes="tritonus_vorbis-${version}.jar,tritonus_share-${version}.jar" prefix="tritonus-vorbis-${version}"/>
<zipfileset dir="doc/bindists/vorbis" includes="readme.txt" prefix="tritonus-vorbis-${version}"/>
<zipfileset dir="src/lib/vorbis" includes="libtritonusvorbis.so" prefix="tritonus-vorbis-${version}"/>
</zip>
</target>
<?xml version="1.0"?>
<!-- If a tool complains that project.dtd is not available,
run the following command:
ant -f build-dtd.xml
-->
<!DOCTYPE project SYSTEM "project.dtd" [
<!ENTITY common SYSTEM "build-common.xml">
]>
<project name="tritonus" default="dist" basedir=".">
<taskdef name="ajc"
classname="org.aspectj.tools.ant.taskdefs.Ajc" >
</taskdef>
<property name="usejavac" value="false" />
&common;
<target name="compile" depends="prepare">
<ajc srcdir="${src}"
destdir="${build}"
debug="on"
usejavac="${usejavac}" >
<include name="javax/sound/" />
<include name="org/tritonus/core/" />
<include name="org/tritonus/lowlevel/" />
<include name="org/tritonus/share/" />
<exclude name="org/tritonus/share/sampled/AudioSystemShadow.java" />
<include name="org/tritonus/debug/AJDebug.java" />
<include name="org/tritonus/debug/Utils.java" />
<include name="org/tritonus/midi/" />
<exclude name="org/tritonus/midi/device/midishare/" />
<include name="org/tritonus/sampled/" />
<exclude name="org/tritonus/sampled/convert/javalayer/" />
<exclude name="org/tritonus/sampled/convert/vorbis/" />
<exclude name="org/tritonus/sampled/file/vorbis/" />
<classpath>
<pathelement path="${classpath}"/>
<pathelement location="build"/>
</classpath>
</ajc>
<!--
<javac srcdir="${src.classes}"
debug="on"
destdir="${build}"
includes="org/tritonus/lowlevel/dsp/" />
-->
</target>
<target name="compile-javalayer-dependent"
depends="prepare"
if="javalayer-present">
<ajc srcdir="${src}"
destdir="${build}"
debug="on"
usejavac="${usejavac}" >
<include name="org/tritonus/sampled/convert/javalayer/" />
<classpath>
<pathelement path="${classpath}"/>
<pathelement location="build"/>
</classpath>
</ajc>
</target>
<target name="compile-jorbis-dependent"
depends="prepare"
if="jorbis-present">
<ajc srcdir="${src}"
destdir="${build}"
debug="on"
usejavac="${usejavac}" >
<include name="org/tritonus/sampled/convert/vorbis/" />
<include name="org/tritonus/sampled/file/vorbis/" />
<include name="org/tritonus/debug/AJDebugVorbis.java" />
<classpath>
<pathelement path="${classpath}"/>
<pathelement location="build"/>
</classpath>
</ajc>
</target>
<target name="compile-midishare-dependent"
depends="prepare"
if="midishare-present">
<javac srcdir="${src}"
destdir="${build}"
includes="org/tritonus/midi/device/midishare/" />
</target>
</project>
<?xml version="1.0"?>
<!--DOCTYPE project SYSTEM "project.dtd"-->
<!-- use this file to generate project.dtd -->
<project name="dtd" default="dtd" basedir=".">
<target name="dtd"
description="Generate project.dtd in the current directory. This file will contain a DTD for ant build files.">
<antstructure output="project.dtd" />
</target>
</project>
<?xml version="1.0"?>
<!-- If a tool complains that project.dtd is not available,
run the following command:
ant -f build-dtd.xml
-->
<!DOCTYPE project SYSTEM "project.dtd" [
<!ENTITY common SYSTEM "build-common.xml">
]>
<project name="tritonus" default="dist" basedir=".">
&common;
<target name="compile" depends="prepare">
<javac srcdir="${src}"
debug="${debug}"
source="${source}"
destdir="${build}"
sourcepath="${src.classes}">
<compilerarg compiler="kjc" value="-generic"/>
<compilerarg value="-Xlint:unchecked"/>
<include name="org/tritonus/" />
<exclude name="org/tritonus/sampled/cdda/" />
<!-- hack to enable building of mp3 decoder plug-in -->
<!--exclude name="org/tritonus/sampled/convert/javalayer/" /-->
<!--exclude name="org/tritonus/sampled/file/mpeg/" /-->
<exclude name="org/tritonus/midi/device/midishare/" />
<!-- necessary for kaffe -->
<!--exclude name="org/tritonus/midi/device/java/SunMiscPerfClock.java" /-->
</javac>
<javac srcdir="${src.classes}"
debug="${debug}"
source="${source}"
destdir="${build}" >
<compilerarg compiler="kjc" value="-generic"/>
<compilerarg value="-Xlint:unchecked"/>
<include name="javax/sound/" />
<include name="org/tritonus/" />
<exclude name="org/tritonus/sampled/convert/jorbis/" />
<exclude name="org/tritonus/sampled/file/jorbis/" />
<exclude name="org/tritonus/saol/" />
<exclude name="org/tritonus/debug/" />
<!-- necessary for kaffe -->
<!--exclude name="org/tritonus/midi/device/java/SunMiscPerfClock.java" /-->
</javac>
</target>
<target name="compile-javalayer-dependent"
depends="prepare"
if="javalayer-present">
<javac srcdir="${src}"
debug="${debug}"
source="${source}"
destdir="${build}" >
<compilerarg value="-Xlint:unchecked"/>
<include name="org/tritonus/sampled/convert/javalayer/" />
</javac>
</target>
<target name="compile-jorbis-dependent"
depends="prepare"
if="jorbis-present">
<javac srcdir="${src.classes}"
debug="${debug}"
source="${source}"
destdir="${build}" >
<compilerarg value="-Xlint:unchecked"/>
<include name="org/tritonus/sampled/convert/jorbis/" />
<include name="org/tritonus/sampled/file/jorbis/" />
</javac>
</target>
<target name="compile-midishare-dependent"
depends="prepare"
if="midishare-present">
<javac srcdir="${src}"
debug="${debug}"
source="${source}"
destdir="${build}" >
<compilerarg value="-Xlint:unchecked"/>
<include name="org/tritonus/midi/device/midishare/" />
</javac>
</target>
</project>
dnl Process this file with autoconf to produce a configure script.
dnl
dnl This script does not work with autoconf 2.52 (bug in autoconf).
dnl
AC_INIT(src/classes/javax/sound/sampled/AudioSystem.java)
AC_CONFIG_AUX_DIR(util)
JAR_INDEX=
# JDK Version Check automatic checker.
# This is Sun JVM specific when looking the
# release number at least
# Peter Pilgrim Wed Jan 12 00:20:42 GMT 2000
AC_MSG_CHECKING(JDK version)
# Temporary directory
: ${TMPDIR:=/tmp}
# Your Java VM might be JIKES
: ${JAVA:=java}
TEMPFILE=${TMPDIR}/javaver.lst
/bin/rm -f $TEMPFILE
${JAVA} -version 2> $TEMPFILE
JdkVersion=`cat $TEMPFILE | head -n 1 | cut -d" " -f3 | sed 's!"!!g'`
JAVA_VERSION=${JdkVersion}
AC_MSG_RESULT($JAVA_VERSION)
JDK_OK=yes
case $JAVA_VERSION in
1.6* )
;;
1.5* )
;;
1.4* )
JDK_OK=no
;;
1.3* )
#bug in jar -i ...
#JAR_INDEX=jar_index
JDK_OK=no
;;
1.2* )
JDK_OK=no
;;
1.1* )
JDK_OK=no
;;
1.0* )
JDK_OK=no
;;
*)
echo "No JDK Version detected. "
echo "Please make sure a J2SDK is in your CLASSPATH."
echo "For more information read the file INSTALL"
JDK_OK=no
;;
esac
# fini
# We only support 1.5 or higher now
if test $JDK_OK != "yes" ; then
AC_MSG_ERROR(Need JDK 1.5 or higher!)
exit 1
fi
# need to convert targets for 1.1? (legacy)
AC_SUBST(JAVAH)
AC_SUBST(CONVERTTARGETS)
JAVAH='javah -force -classpath $(OBJDIR)'
CONVERTTARGETS=
dnl case "$JAVA_VERSION" in
dnl 1.1*) JAVAH='javah -classpath $(OBJDIR):$(CLASSPATH)'; CONVERTTARGETS=convert;;
dnl *) JAVAH='javah -force -classpath $(OBJDIR)'; CONVERTTARGETS= ;;
dnl esac
AC_SUBST(OSNAME)
AC_SUBST(ARCHNAME)
AC_CANONICAL_HOST
dnl AC_MSG_RESULT(cpu: ${host_cpu})
dnl AC_MSG_RESULT(vendor: ${host_vendor})
dnl AC_MSG_RESULT(os: ${host_os})
case "$host_cpu" in
i386 | i486 | i586 | i686) ARCHNAME=i386;;
esac
case "$host_os" in
linux*) case "$JAVA_VERSION" in
1.1.7*) OSNAME=genunix;;
*) OSNAME=linux;;
esac;;
cygwin) OSNAME=win32;;
esac
AC_PREFIX_PROGRAM(javac)
dnl check for jikes. Note: cannot use variable "JAVAC" as it is already used
dnl in the check for prefix above
AC_CHECK_PROG(COMPILER, jikes, jikes, javac)
# set installation directory of plug-ins (extension directory)
REL_JAVAEXTPATH=jre/lib/ext
AC_SUBST(REL_JAVAEXTPATH)
# set installation directory for native libraries
REL_JAVAEXTLIBPATH=jre/lib/$ARCHNAME
AC_SUBST(REL_JAVAEXTLIBPATH)
dnl Checks for programs.
AC_PROG_CC
AC_PROG_INSTALL
AC_PROG_LN_S
AC_DISABLE_STATIC
AC_PROG_LIBTOOL
AC_SUBST(SUBDIRS)
dnl Checks for libraries.
SUBDIRS=
AC_CHECK_LIB(asound, snd_seq_open,[SUBDIRS="$SUBDIRS src/lib/alsa"; AC_MSG_RESULT(Information: will build stuff for ALSA sequencer)],[AC_MSG_RESULT(Information: will not build stuff for ALSA sequencer)],)
AC_CHECK_LIB(esd,esd_open_sound,[SUBDIRS="$SUBDIRS src/lib/esd"; AC_MSG_RESULT(Information: will build stuff for Enlightened Sound Daemon)],[AC_MSG_RESULT(Information: will not build stuff for Enlightened Sound Daemon)])
AC_CHECK_LIB(mp3lame,lame_init_params,[SUBDIRS="$SUBDIRS src/lib/lame"; AC_MSG_RESULT(Information: will build stuff for LAME mp3 encoder)],[AC_MSG_RESULT(Information: will not build stuff for LAME mp3 encoder)])
AC_CHECK_HEADER(linux/cdrom.h,[SUBDIRS="$SUBDIRS src/lib/cooked_ioctl"; AC_MSG_RESULT(Information: will build stuff for 'cooked ioctl' cdda)],[AC_MSG_RESULT(Information: will not build stuff for 'cooked ioctl' cdda)])
AC_CHECK_HEADER(cdda_interface.h,[SUBDIRS="$SUBDIRS src/lib/cdparanoia"; AC_MSG_RESULT(Information: will build stuff for cdparanoia)],[AC_MSG_RESULT(Information: will not build stuff for cdparanoia)])
AC_CHECK_HEADER(ogg/ogg.h,[SUBDIRS="$SUBDIRS src/lib/vorbis"; AC_MSG_RESULT(Information: will build stuff for vorbis)],[AC_MSG_RESULT(Information: will not build stuff for vorbis)])
AC_CHECK_HEADER(fluidsynth.h,[SUBDIRS="$SUBDIRS src/lib/fluidsynth"; AC_MSG_RESULT(Information: will build stuff for fluidsynth)],[AC_MSG_RESULT(Information: will NOT build stuff for fluidsynth)])
dnl AC_MSG_RESULT(hallo x${SUBDIRS}x)
dnl check for javalayer decoder code
AC_MSG_CHECKING(installed javalayer MP3 decoder)
JL_LIB=
JL_DIR=
JL_TESTFILE=Decoder.java
JL_TESTFILEPATH=jl/decoder
JL_TESTPATH="javalayer ../javalayer javazoom ../javazoom"
for JL_TESTDIR in $JL_TESTPATH; do
dnl use PATH in order
if test ".$JL_DIR" = "." && test -f "$JL_TESTDIR/$JL_TESTFILEPATH/$JL_TESTFILE"; then
JL_DIR=$JL_TESTDIR
fi
done
if test ".$JL_DIR" = "." ; then
AC_MSG_RESULT(no)
dnl AC_MSG_WARN(** You haven't downloaded the javalayer MP3 decoder. **)
dnl AC_MSG_WARN(** MP3 decoding will not be possible. **)
dnl AC_MSG_WARN(** Download the mp3 decoder with the following **)
dnl AC_MSG_WARN(** commands: **)
dnl AC_MSG_WARN(** SERVER=anonymous@cvs.javalayer.sourceforge.net **)
dnl AC_MSG_WARN(** SERVERPATH=/cvsroot/javalayer **)
dnl AC_MSG_WARN(** cvs -d:pserver:\$SERVER:\$SERVERPATH login **)
dnl AC_MSG_WARN(** (press ENTER key for password) **)
dnl AC_MSG_WARN(** cvs -z3 -d:pserver:\$SERVER:\$SERVERPATH co javalayer **)
dnl better to exit here...
dnl AC_MSG_ERROR(Exit.)
else
AC_MSG_RESULT(yes)
JL_LIB=javalayer.jar
dnl HACK: create a symbolic link for java layer code
(cd $JL_DIR ; rm -f javazoom ; ln -sf `pwd` javazoom)
fi
AC_SUBST(JL_LIB)
AC_SUBST(JL_DIR)
dnl Checks for header files.
AC_HEADER_STDC
AC_CHECK_HEADERS(unistd.h)
dnl Checks for typedefs, structures, and compiler characteristics.
dnl AC_C_CONST
dnl $$fb added
SRC_ABSOLUTE_PATH=`pwd`
AC_SUBST(SRC_ABSOLUTE_PATH)
RM_F="rm -f"
AC_SUBST(RM_F)
MKDIR_P="mkdir -p"
AC_SUBST(MKDIR_P)
BUILD_DIR="build"
DIST_DIR="dist"
AC_SUBST(BUILD_DIR)
AC_SUBST(DIST_DIR)
AC_SUBST(JAR_INDEX)
dnl set default for classpath. This may be changed below if Jikes is used
DEF_CLASSPATH=${BUILD_DIR}
AC_SUBST(DEF_CLASSPATH)
dnl $$fb added
dnl -------------- Features ---------
dnl Compiler user option
WARN_MSG=
AC_MSG_CHECKING(use of jikes compiler)
AC_ARG_WITH(jikes,
[ --without-jikes Do not use jikes compiler]
[ [default: use jikes if available]],
CONFIG_JIKES="${withval}", CONFIG_JIKES="default")
if test "${CONFIG_JIKES}" = "default" ; then
if test "${COMPILER}" = "jikes" ; then
CONFIG_JIKES="yes"
else
CONFIG_JIKES="no"
fi
elif test "${CONFIG_JIKES}" = "yes" && test "${COMPILER}" != "jikes" ; then
WARN_MSG="you have selected jikes, but it is not available on your system !"
CONFIG_JIKES="no"
elif test "${CONFIG_JIKES}" = "no" ; then
COMPILER=javac
fi
AC_MSG_RESULT(${CONFIG_JIKES})
if test "x${WARN_MSG}" != "x" ; then
AC_MSG_WARN(${WARN_MSG})
fi
if test "${CONFIG_JIKES}" = "yes" ; then
DEF_CLASSPATH=${DEF_CLASSPATH}:${prefix}/jre/lib/rt.jar
fi
AC_OUTPUT(Makefile
src/lib/common/Makefile
src/lib/alsa/Makefile
src/lib/cdparanoia/Makefile
src/lib/cooked_ioctl/Makefile
src/lib/esd/Makefile
src/lib/lame/Makefile
src/lib/vorbis/Makefile
src/lib/pvorbis/Makefile
src/lib/fluidsynth/Makefile
doc/Makefile
test/Makefile)
libtritonus-java (20070428-14) unstable; urgency=medium
* Team upload.
* Fixed the build failure with Java 10 (Closes: #897543)
* Build with the DH sequencer instead of CDBS
* Standards-Version updated to 4.1.4
* Switch to debhelper level 11
* Use salsa.debian.org Vcs-* URLs
-- Emmanuel Bourg <ebourg@apache.org> Wed, 09 May 2018 15:06:26 +0200
libtritonus-java (20070428-13) unstable; urgency=medium
* Team upload.
......
build/
dist/
jni/
Makefile
config.log
config.status
configure
doc/Makefile
src/lib/alsa/Makefile
src/lib/cdparanoia/Makefile
src/lib/common/Makefile
src/lib/cooked_ioctl/Makefile
src/lib/esd/Makefile
src/lib/fluidsynth/Makefile
src/lib/lame/Makefile
src/lib/pvorbis/Makefile
src/lib/vorbis/Makefile
test/Makefile
src/lib/alsa/*.o
src/lib/alsa/*.so*
src/lib/common/*.o
src/lib/cdparanoia/*.o
src/lib/cdparanoia/*.so*
src/lib/cooked_ioctl/*.o
src/lib/cooked_ioctl/*.so*
src/lib/fluidsynth/*.o
src/lib/fluidsynth/*.so*
src/lib/pvorbis/*.o
src/lib/pvorbis/*.so*
src/lib/vorbis/*.o
src/lib/vorbis/*.so*
......@@ -2,12 +2,14 @@ Source: libtritonus-java
Section: java
Priority: optional
Maintainer: Debian Java Maintainers <pkg-java-maintainers@lists.alioth.debian.org>
Uploaders: Varun Hiremath <varun@debian.org>, Torsten Werner <twerner@debian.org>
Build-Depends: ant,
Uploaders:
Varun Hiremath <varun@debian.org>,
Torsten Werner <twerner@debian.org>
Build-Depends:
ant,
autoconf,
autotools-dev,
cdbs,
debhelper (>= 9),
debhelper (>= 11),
default-jdk,
libasound2-dev | libasound-dev,
libcdparanoia-dev,
......@@ -17,9 +19,9 @@ Build-Depends: ant,
libogg-dev,
libtritonus-java,
libvorbis-dev
Standards-Version: 4.1.2
Vcs-Git: https://anonscm.debian.org/git/pkg-java/libtritonus-java.git
Vcs-Browser: https://anonscm.debian.org/cgit/pkg-java/libtritonus-java.git
Standards-Version: 4.1.4
Vcs-Git: https://salsa.debian.org/java-team/libtritonus-java.git
Vcs-Browser: https://salsa.debian.org/java-team/libtritonus-java
Homepage: http://tritonus.org
Package: libtritonus-java
......
#!/bin/sh
for FILE in /usr/share/java/tritonus_*-*.jar
do
CLASSPATH="$FILE:$CLASSPATH"
done
exec $JAVA_HOME/bin/javah -classpath $CLASSPATH "$@"
Index: libtritonus-java-20070428/src/lib/fluidsynth/Makefile.in
===================================================================
--- libtritonus-java-20070428.orig/src/lib/fluidsynth/Makefile.in 2007-10-26 07:57:32.000000000 +0530
+++ libtritonus-java-20070428/src/lib/fluidsynth/Makefile.in 2007-10-26 07:57:48.000000000 +0530
--- a/src/lib/fluidsynth/Makefile.in
+++ b/src/lib/fluidsynth/Makefile.in
@@ -9,8 +9,8 @@
JAVAEXTLIBPATH=$(JAVADIR)/$(REL_JAVAEXTLIBPATH)
OSNAME=@OSNAME@
......@@ -25,15 +23,6 @@ Index: libtritonus-java-20070428/src/lib/fluidsynth/Makefile.in
##
## use this for testing with a custom version of libfluidsynth
##
@@ -79,7 +79,7 @@
$(OBJ): $(JNIHEADERS)
-$(JNIHEADERS): $(JNICLASSFILES)
+$(JNIHEADERS):
$(RM_F) $(JNIHEADERS)
$(JAVAH) -d . $(JNICLASSES)
@@ -119,4 +119,4 @@
.PHONY: clean
clean:
......@@ -41,10 +30,8 @@ Index: libtritonus-java-20070428/src/lib/fluidsynth/Makefile.in
- libtool --mode=clean $(RM_F) $(LTOBJ) $(LIBBASENAME).la
\ No newline at end of file
+ libtool --mode=clean $(RM_F) $(LTOBJ) $(LIBBASENAME).la
Index: libtritonus-java-20070428/src/lib/cooked_ioctl/Makefile.in
===================================================================
--- libtritonus-java-20070428.orig/src/lib/cooked_ioctl/Makefile.in 2007-10-26 07:57:32.000000000 +0530
+++ libtritonus-java-20070428/src/lib/cooked_ioctl/Makefile.in 2007-10-26 07:57:48.000000000 +0530
--- a/src/lib/cooked_ioctl/Makefile.in
+++ b/src/lib/cooked_ioctl/Makefile.in
@@ -10,6 +10,7 @@
OSNAME=@OSNAME@
ARCHNAME=@ARCHNAME@
......@@ -67,19 +54,8 @@ Index: libtritonus-java-20070428/src/lib/cooked_ioctl/Makefile.in
JNICLASSFILES=\
CookedIoctl.class
@@ -60,7 +60,7 @@
$(OBJ): $(JNIHEADERS)
-$(JNIHEADERS): $(JNICLASSFILES)
+$(JNIHEADERS):
$(RM_F) $(JNIHEADERS)
$(JAVAH) -d . $(JNICLASSES)
Index: libtritonus-java-20070428/src/lib/cdparanoia/Makefile.in
===================================================================
--- libtritonus-java-20070428.orig/src/lib/cdparanoia/Makefile.in 2007-10-26 07:57:32.000000000 +0530
+++ libtritonus-java-20070428/src/lib/cdparanoia/Makefile.in 2007-10-26 07:58:15.000000000 +0530
--- a/src/lib/cdparanoia/Makefile.in
+++ b/src/lib/cdparanoia/Makefile.in
@@ -10,7 +10,7 @@
OSNAME=@OSNAME@
ARCHNAME=@ARCHNAME@
......@@ -98,19 +74,8 @@ Index: libtritonus-java-20070428/src/lib/cdparanoia/Makefile.in
$(RM_F) $(LIBBASENAME).so.1
$(LN_S) $(LIBBASENAME).so.1.0 $(LIBBASENAME).so.1
$(RM_F) $(LIBBASENAME).so
@@ -62,7 +62,7 @@
$(OBJ): $(JNIHEADERS)
-$(JNIHEADERS): $(JNICLASSFILES)
+$(JNIHEADERS):
$(RM_F) $(JNIHEADERS)
$(JAVAH) -d . $(JNICLASSES)
Index: libtritonus-java-20070428/src/lib/alsa/Makefile.in
===================================================================
--- libtritonus-java-20070428.orig/src/lib/alsa/Makefile.in 2007-10-26 07:57:32.000000000 +0530
+++ libtritonus-java-20070428/src/lib/alsa/Makefile.in 2007-10-26 07:57:48.000000000 +0530
--- a/src/lib/alsa/Makefile.in
+++ b/src/lib/alsa/Makefile.in
@@ -10,7 +10,7 @@
OSNAME=@OSNAME@
ARCHNAME=@ARCHNAME@
......@@ -120,19 +85,8 @@ Index: libtritonus-java-20070428/src/lib/alsa/Makefile.in
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_DATA = @INSTALL_DATA@
@@ -128,7 +128,7 @@
$(OBJ): $(JNIHEADERS)
-$(JNIHEADERS): $(JNICLASSFILES)
+$(JNIHEADERS):
$(RM_F) $(JNIHEADERS)
$(JAVAH) -d . $(JNICLASSES)
Index: libtritonus-java-20070428/src/lib/esd/Makefile.in
===================================================================
--- libtritonus-java-20070428.orig/src/lib/esd/Makefile.in 2007-10-26 07:57:32.000000000 +0530
+++ libtritonus-java-20070428/src/lib/esd/Makefile.in 2007-10-26 07:57:48.000000000 +0530
--- a/src/lib/esd/Makefile.in
+++ b/src/lib/esd/Makefile.in
@@ -10,7 +10,7 @@
OSNAME=@OSNAME@
ARCHNAME=@ARCHNAME@
......@@ -142,45 +96,8 @@ Index: libtritonus-java-20070428/src/lib/esd/Makefile.in
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_DATA = @INSTALL_DATA@
@@ -63,7 +63,7 @@
$(OBJ): $(JNIHEADERS)
-$(JNIHEADERS): $(JNICLASSFILES)
+$(JNIHEADERS):
$(RM_F) $(JNIHEADERS)
$(JAVAH) -d . $(JNICLASSES)
Index: libtritonus-java-20070428/src/lib/lame/Makefile.in
===================================================================
--- libtritonus-java-20070428.orig/src/lib/lame/Makefile.in 2007-10-26 07:57:32.000000000 +0530
+++ libtritonus-java-20070428/src/lib/lame/Makefile.in 2007-10-26 07:57:48.000000000 +0530
@@ -66,7 +66,7 @@
$(JNIOBJ): $(JNIHEADERS)
-$(JNIHEADERS): $(JNICLASSFILES)
+$(JNIHEADERS):
@$(RM_F) $(JNIHEADERS)
$(JAVAH) -d . $(JNICLASSES)
Index: libtritonus-java-20070428/src/lib/pvorbis/Makefile.in
===================================================================
--- libtritonus-java-20070428.orig/src/lib/pvorbis/Makefile.in 2007-10-26 07:57:32.000000000 +0530
+++ libtritonus-java-20070428/src/lib/pvorbis/Makefile.in 2007-10-26 07:57:48.000000000 +0530
@@ -99,7 +99,7 @@
$(OBJ): $(JNIHEADERS)
-$(JNIHEADERS): $(JNICLASSFILES)
+$(JNIHEADERS):
$(RM_F) $(JNIHEADERS)
$(JAVAH) -d . $(JNICLASSES)
Index: libtritonus-java-20070428/src/lib/vorbis/Makefile.in
===================================================================
--- libtritonus-java-20070428.orig/src/lib/vorbis/Makefile.in 2007-10-26 07:57:32.000000000 +0530
+++ libtritonus-java-20070428/src/lib/vorbis/Makefile.in 2007-10-26 08:02:03.000000000 +0530
--- a/src/lib/vorbis/Makefile.in
+++ b/src/lib/vorbis/Makefile.in
@@ -10,7 +10,7 @@
OSNAME=@OSNAME@
ARCHNAME=@ARCHNAME@
......@@ -190,19 +107,8 @@ Index: libtritonus-java-20070428/src/lib/vorbis/Makefile.in
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_DATA = @INSTALL_DATA@
@@ -85,7 +85,7 @@
$(OBJ): $(JNIHEADERS)
-$(JNIHEADERS): $(JNICLASSFILES)
+$(JNIHEADERS):
$(RM_F) $(JNIHEADERS)
$(JAVAH) -d . $(JNICLASSES)
Index: libtritonus-java-20070428/src/lib/common/Makefile.in
===================================================================
--- libtritonus-java-20070428.orig/src/lib/common/Makefile.in 2007-10-26 08:01:33.000000000 +0530
+++ libtritonus-java-20070428/src/lib/common/Makefile.in 2007-10-26 08:01:42.000000000 +0530
--- a/src/lib/common/Makefile.in
+++ b/src/lib/common/Makefile.in
@@ -10,7 +10,7 @@
OSNAME=@OSNAME@
ARCHNAME=@ARCHNAME@
......