summaryrefslogtreecommitdiff
path: root/packages/openal
diff options
context:
space:
mode:
authorjonas <jonas@3ad0048d-3df7-0310-abae-a5850022a9f2>2010-07-19 14:15:23 +0000
committerjonas <jonas@3ad0048d-3df7-0310-abae-a5850022a9f2>2010-07-19 14:15:23 +0000
commit65d5b337ff30f6b3b2e3edb0502f0015d00139e9 (patch)
treeb8be02c1188ff3f56343d122c2fe20be37e49c07 /packages/openal
parentc4acb2dbfe73b42b02083b0f77e889b6f2ac8158 (diff)
downloadfpc-65d5b337ff30f6b3b2e3edb0502f0015d00139e9.tar.gz
+ wavopenal example to play a wav file by Dmitry Boyarintsev (mantis #16961)
* only compile madopenal.pas for platforms for which the "mad" package gets compiled git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@15610 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'packages/openal')
-rw-r--r--packages/openal/examples/Makefile270
-rw-r--r--packages/openal/examples/Makefile.fpc8
-rw-r--r--packages/openal/examples/wavopenal.pas330
3 files changed, 457 insertions, 151 deletions
diff --git a/packages/openal/examples/Makefile b/packages/openal/examples/Makefile
index 85ea5f1cfa..ce579b14ef 100644
--- a/packages/openal/examples/Makefile
+++ b/packages/openal/examples/Makefile
@@ -1,8 +1,8 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2009/12/11]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2010/07/18]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-solaris x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded avr-embedded armeb-linux armeb-embedded mipsel-linux
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-solaris x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded avr-embedded armeb-linux armeb-embedded mipsel-linux
BSDs = freebsd netbsd openbsd darwin
UNIXs = linux $(BSDs) solaris qnx haiku
LIMIT83fs = go32v2 os2 emx watcom
@@ -265,184 +265,187 @@ UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
endif
PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
ifeq ($(FULL_TARGET),i386-linux)
-override TARGET_PROGRAMS+=madopenal captureplaybackopenal
+override TARGET_PROGRAMS+=captureplaybackopenal wavopenal madopenal
endif
ifeq ($(FULL_TARGET),i386-go32v2)
-override TARGET_PROGRAMS+=madopenal captureplaybackopenal
+override TARGET_PROGRAMS+=captureplaybackopenal wavopenal
endif
ifeq ($(FULL_TARGET),i386-win32)
-override TARGET_PROGRAMS+=madopenal captureplaybackopenal
+override TARGET_PROGRAMS+=captureplaybackopenal wavopenal madopenal
endif
ifeq ($(FULL_TARGET),i386-os2)
-override TARGET_PROGRAMS+=madopenal captureplaybackopenal
+override TARGET_PROGRAMS+=captureplaybackopenal wavopenal
endif
ifeq ($(FULL_TARGET),i386-freebsd)
-override TARGET_PROGRAMS+=madopenal captureplaybackopenal
+override TARGET_PROGRAMS+=captureplaybackopenal wavopenal
endif
ifeq ($(FULL_TARGET),i386-beos)
-override TARGET_PROGRAMS+=madopenal captureplaybackopenal
+override TARGET_PROGRAMS+=captureplaybackopenal wavopenal
endif
ifeq ($(FULL_TARGET),i386-haiku)
-override TARGET_PROGRAMS+=madopenal captureplaybackopenal
+override TARGET_PROGRAMS+=captureplaybackopenal wavopenal
endif
ifeq ($(FULL_TARGET),i386-netbsd)
-override TARGET_PROGRAMS+=madopenal captureplaybackopenal
+override TARGET_PROGRAMS+=captureplaybackopenal wavopenal
endif
ifeq ($(FULL_TARGET),i386-solaris)
-override TARGET_PROGRAMS+=madopenal captureplaybackopenal
+override TARGET_PROGRAMS+=captureplaybackopenal wavopenal
endif
ifeq ($(FULL_TARGET),i386-qnx)
-override TARGET_PROGRAMS+=madopenal captureplaybackopenal
+override TARGET_PROGRAMS+=captureplaybackopenal wavopenal
endif
ifeq ($(FULL_TARGET),i386-netware)
-override TARGET_PROGRAMS+=madopenal captureplaybackopenal
+override TARGET_PROGRAMS+=captureplaybackopenal wavopenal
endif
ifeq ($(FULL_TARGET),i386-openbsd)
-override TARGET_PROGRAMS+=madopenal captureplaybackopenal
+override TARGET_PROGRAMS+=captureplaybackopenal wavopenal
endif
ifeq ($(FULL_TARGET),i386-wdosx)
-override TARGET_PROGRAMS+=madopenal captureplaybackopenal
+override TARGET_PROGRAMS+=captureplaybackopenal wavopenal
endif
ifeq ($(FULL_TARGET),i386-darwin)
-override TARGET_PROGRAMS+=madopenal captureplaybackopenal
+override TARGET_PROGRAMS+=captureplaybackopenal wavopenal
endif
ifeq ($(FULL_TARGET),i386-emx)
-override TARGET_PROGRAMS+=madopenal captureplaybackopenal
+override TARGET_PROGRAMS+=captureplaybackopenal wavopenal
endif
ifeq ($(FULL_TARGET),i386-watcom)
-override TARGET_PROGRAMS+=madopenal captureplaybackopenal
+override TARGET_PROGRAMS+=captureplaybackopenal wavopenal
endif
ifeq ($(FULL_TARGET),i386-netwlibc)
-override TARGET_PROGRAMS+=madopenal captureplaybackopenal
+override TARGET_PROGRAMS+=captureplaybackopenal wavopenal
endif
ifeq ($(FULL_TARGET),i386-wince)
-override TARGET_PROGRAMS+=madopenal captureplaybackopenal
+override TARGET_PROGRAMS+=captureplaybackopenal wavopenal
endif
ifeq ($(FULL_TARGET),i386-embedded)
-override TARGET_PROGRAMS+=madopenal captureplaybackopenal
+override TARGET_PROGRAMS+=captureplaybackopenal wavopenal
endif
ifeq ($(FULL_TARGET),i386-symbian)
-override TARGET_PROGRAMS+=madopenal captureplaybackopenal
+override TARGET_PROGRAMS+=captureplaybackopenal wavopenal
+endif
+ifeq ($(FULL_TARGET),i386-nativent)
+override TARGET_PROGRAMS+=captureplaybackopenal wavopenal
endif
ifeq ($(FULL_TARGET),m68k-linux)
-override TARGET_PROGRAMS+=madopenal captureplaybackopenal
+override TARGET_PROGRAMS+=captureplaybackopenal wavopenal madopenal
endif
ifeq ($(FULL_TARGET),m68k-freebsd)
-override TARGET_PROGRAMS+=madopenal captureplaybackopenal
+override TARGET_PROGRAMS+=captureplaybackopenal wavopenal
endif
ifeq ($(FULL_TARGET),m68k-netbsd)
-override TARGET_PROGRAMS+=madopenal captureplaybackopenal
+override TARGET_PROGRAMS+=captureplaybackopenal wavopenal
endif
ifeq ($(FULL_TARGET),m68k-amiga)
-override TARGET_PROGRAMS+=madopenal captureplaybackopenal
+override TARGET_PROGRAMS+=captureplaybackopenal wavopenal
endif
ifeq ($(FULL_TARGET),m68k-atari)
-override TARGET_PROGRAMS+=madopenal captureplaybackopenal
+override TARGET_PROGRAMS+=captureplaybackopenal wavopenal
endif
ifeq ($(FULL_TARGET),m68k-openbsd)
-override TARGET_PROGRAMS+=madopenal captureplaybackopenal
+override TARGET_PROGRAMS+=captureplaybackopenal wavopenal
endif
ifeq ($(FULL_TARGET),m68k-palmos)
-override TARGET_PROGRAMS+=madopenal captureplaybackopenal
+override TARGET_PROGRAMS+=captureplaybackopenal wavopenal
endif
ifeq ($(FULL_TARGET),m68k-embedded)
-override TARGET_PROGRAMS+=madopenal captureplaybackopenal
+override TARGET_PROGRAMS+=captureplaybackopenal wavopenal
endif
ifeq ($(FULL_TARGET),powerpc-linux)
-override TARGET_PROGRAMS+=madopenal captureplaybackopenal
+override TARGET_PROGRAMS+=captureplaybackopenal wavopenal madopenal
endif
ifeq ($(FULL_TARGET),powerpc-netbsd)
-override TARGET_PROGRAMS+=madopenal captureplaybackopenal
+override TARGET_PROGRAMS+=captureplaybackopenal wavopenal
endif
ifeq ($(FULL_TARGET),powerpc-amiga)
-override TARGET_PROGRAMS+=madopenal captureplaybackopenal
+override TARGET_PROGRAMS+=captureplaybackopenal wavopenal
endif
ifeq ($(FULL_TARGET),powerpc-macos)
-override TARGET_PROGRAMS+=madopenal captureplaybackopenal
+override TARGET_PROGRAMS+=captureplaybackopenal wavopenal
endif
ifeq ($(FULL_TARGET),powerpc-darwin)
-override TARGET_PROGRAMS+=madopenal captureplaybackopenal
+override TARGET_PROGRAMS+=captureplaybackopenal wavopenal
endif
ifeq ($(FULL_TARGET),powerpc-morphos)
-override TARGET_PROGRAMS+=madopenal captureplaybackopenal
+override TARGET_PROGRAMS+=captureplaybackopenal wavopenal
endif
ifeq ($(FULL_TARGET),powerpc-embedded)
-override TARGET_PROGRAMS+=madopenal captureplaybackopenal
+override TARGET_PROGRAMS+=captureplaybackopenal wavopenal
endif
ifeq ($(FULL_TARGET),sparc-linux)
-override TARGET_PROGRAMS+=madopenal captureplaybackopenal
+override TARGET_PROGRAMS+=captureplaybackopenal wavopenal madopenal
endif
ifeq ($(FULL_TARGET),sparc-netbsd)
-override TARGET_PROGRAMS+=madopenal captureplaybackopenal
+override TARGET_PROGRAMS+=captureplaybackopenal wavopenal
endif
ifeq ($(FULL_TARGET),sparc-solaris)
-override TARGET_PROGRAMS+=madopenal captureplaybackopenal
+override TARGET_PROGRAMS+=captureplaybackopenal wavopenal
endif
ifeq ($(FULL_TARGET),sparc-embedded)
-override TARGET_PROGRAMS+=madopenal captureplaybackopenal
+override TARGET_PROGRAMS+=captureplaybackopenal wavopenal
endif
ifeq ($(FULL_TARGET),x86_64-linux)
-override TARGET_PROGRAMS+=madopenal captureplaybackopenal
+override TARGET_PROGRAMS+=captureplaybackopenal wavopenal madopenal
endif
ifeq ($(FULL_TARGET),x86_64-freebsd)
-override TARGET_PROGRAMS+=madopenal captureplaybackopenal
+override TARGET_PROGRAMS+=captureplaybackopenal wavopenal
endif
ifeq ($(FULL_TARGET),x86_64-solaris)
-override TARGET_PROGRAMS+=madopenal captureplaybackopenal
+override TARGET_PROGRAMS+=captureplaybackopenal wavopenal
endif
ifeq ($(FULL_TARGET),x86_64-darwin)
-override TARGET_PROGRAMS+=madopenal captureplaybackopenal
+override TARGET_PROGRAMS+=captureplaybackopenal wavopenal
endif
ifeq ($(FULL_TARGET),x86_64-win64)
-override TARGET_PROGRAMS+=madopenal captureplaybackopenal
+override TARGET_PROGRAMS+=captureplaybackopenal wavopenal
endif
ifeq ($(FULL_TARGET),x86_64-embedded)
-override TARGET_PROGRAMS+=madopenal captureplaybackopenal
+override TARGET_PROGRAMS+=captureplaybackopenal wavopenal
endif
ifeq ($(FULL_TARGET),arm-linux)
-override TARGET_PROGRAMS+=madopenal captureplaybackopenal
+override TARGET_PROGRAMS+=captureplaybackopenal wavopenal madopenal
endif
ifeq ($(FULL_TARGET),arm-palmos)
-override TARGET_PROGRAMS+=madopenal captureplaybackopenal
+override TARGET_PROGRAMS+=captureplaybackopenal wavopenal
endif
ifeq ($(FULL_TARGET),arm-darwin)
-override TARGET_PROGRAMS+=madopenal captureplaybackopenal
+override TARGET_PROGRAMS+=captureplaybackopenal wavopenal
endif
ifeq ($(FULL_TARGET),arm-wince)
-override TARGET_PROGRAMS+=madopenal captureplaybackopenal
+override TARGET_PROGRAMS+=captureplaybackopenal wavopenal
endif
ifeq ($(FULL_TARGET),arm-gba)
-override TARGET_PROGRAMS+=madopenal captureplaybackopenal
+override TARGET_PROGRAMS+=captureplaybackopenal wavopenal
endif
ifeq ($(FULL_TARGET),arm-nds)
-override TARGET_PROGRAMS+=madopenal captureplaybackopenal
+override TARGET_PROGRAMS+=captureplaybackopenal wavopenal
endif
ifeq ($(FULL_TARGET),arm-embedded)
-override TARGET_PROGRAMS+=madopenal captureplaybackopenal
+override TARGET_PROGRAMS+=captureplaybackopenal wavopenal
endif
ifeq ($(FULL_TARGET),arm-symbian)
-override TARGET_PROGRAMS+=madopenal captureplaybackopenal
+override TARGET_PROGRAMS+=captureplaybackopenal wavopenal
endif
ifeq ($(FULL_TARGET),powerpc64-linux)
-override TARGET_PROGRAMS+=madopenal captureplaybackopenal
+override TARGET_PROGRAMS+=captureplaybackopenal wavopenal madopenal
endif
ifeq ($(FULL_TARGET),powerpc64-darwin)
-override TARGET_PROGRAMS+=madopenal captureplaybackopenal
+override TARGET_PROGRAMS+=captureplaybackopenal wavopenal
endif
ifeq ($(FULL_TARGET),powerpc64-embedded)
-override TARGET_PROGRAMS+=madopenal captureplaybackopenal
+override TARGET_PROGRAMS+=captureplaybackopenal wavopenal
endif
ifeq ($(FULL_TARGET),avr-embedded)
-override TARGET_PROGRAMS+=madopenal captureplaybackopenal
+override TARGET_PROGRAMS+=captureplaybackopenal wavopenal
endif
ifeq ($(FULL_TARGET),armeb-linux)
-override TARGET_PROGRAMS+=madopenal captureplaybackopenal
+override TARGET_PROGRAMS+=captureplaybackopenal wavopenal madopenal
endif
ifeq ($(FULL_TARGET),armeb-embedded)
-override TARGET_PROGRAMS+=madopenal captureplaybackopenal
+override TARGET_PROGRAMS+=captureplaybackopenal wavopenal
endif
ifeq ($(FULL_TARGET),mipsel-linux)
-override TARGET_PROGRAMS+=madopenal captureplaybackopenal
+override TARGET_PROGRAMS+=captureplaybackopenal wavopenal madopenal
endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
@@ -787,6 +790,10 @@ ifeq ($(OS_TARGET),symbian)
SHAREDLIBEXT=.dll
SHORTSUFFIX=symbian
endif
+ifeq ($(OS_TARGET),NativeNT)
+SHAREDLIBEXT=.dll
+SHORTSUFFIX=nativent
+endif
else
ifeq ($(OS_TARGET),go32v1)
PPUEXT=.pp1
@@ -1211,21 +1218,20 @@ else
TAROPT=vz
TAREXT=.tar.gz
endif
-override REQUIRE_PACKAGES=rtl openal mad oggvorbis a52 dts modplug matroska
+override REQUIRE_PACKAGES=rtl openal oggvorbis a52 dts modplug matroska
ifeq ($(FULL_TARGET),i386-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_OPENAL=1
-REQUIRE_PACKAGES_MAD=1
REQUIRE_PACKAGES_OGGVORBIS=1
REQUIRE_PACKAGES_A52=1
REQUIRE_PACKAGES_DTS=1
REQUIRE_PACKAGES_MODPLUG=1
REQUIRE_PACKAGES_MATROSKA=1
+REQUIRE_PACKAGES_MAD=1
endif
ifeq ($(FULL_TARGET),i386-go32v2)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_OPENAL=1
-REQUIRE_PACKAGES_MAD=1
REQUIRE_PACKAGES_OGGVORBIS=1
REQUIRE_PACKAGES_A52=1
REQUIRE_PACKAGES_DTS=1
@@ -1235,17 +1241,16 @@ endif
ifeq ($(FULL_TARGET),i386-win32)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_OPENAL=1
-REQUIRE_PACKAGES_MAD=1
REQUIRE_PACKAGES_OGGVORBIS=1
REQUIRE_PACKAGES_A52=1
REQUIRE_PACKAGES_DTS=1
REQUIRE_PACKAGES_MODPLUG=1
REQUIRE_PACKAGES_MATROSKA=1
+REQUIRE_PACKAGES_MAD=1
endif
ifeq ($(FULL_TARGET),i386-os2)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_OPENAL=1
-REQUIRE_PACKAGES_MAD=1
REQUIRE_PACKAGES_OGGVORBIS=1
REQUIRE_PACKAGES_A52=1
REQUIRE_PACKAGES_DTS=1
@@ -1255,7 +1260,6 @@ endif
ifeq ($(FULL_TARGET),i386-freebsd)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_OPENAL=1
-REQUIRE_PACKAGES_MAD=1
REQUIRE_PACKAGES_OGGVORBIS=1
REQUIRE_PACKAGES_A52=1
REQUIRE_PACKAGES_DTS=1
@@ -1265,7 +1269,6 @@ endif
ifeq ($(FULL_TARGET),i386-beos)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_OPENAL=1
-REQUIRE_PACKAGES_MAD=1
REQUIRE_PACKAGES_OGGVORBIS=1
REQUIRE_PACKAGES_A52=1
REQUIRE_PACKAGES_DTS=1
@@ -1275,7 +1278,6 @@ endif
ifeq ($(FULL_TARGET),i386-haiku)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_OPENAL=1
-REQUIRE_PACKAGES_MAD=1
REQUIRE_PACKAGES_OGGVORBIS=1
REQUIRE_PACKAGES_A52=1
REQUIRE_PACKAGES_DTS=1
@@ -1285,7 +1287,6 @@ endif
ifeq ($(FULL_TARGET),i386-netbsd)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_OPENAL=1
-REQUIRE_PACKAGES_MAD=1
REQUIRE_PACKAGES_OGGVORBIS=1
REQUIRE_PACKAGES_A52=1
REQUIRE_PACKAGES_DTS=1
@@ -1295,7 +1296,6 @@ endif
ifeq ($(FULL_TARGET),i386-solaris)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_OPENAL=1
-REQUIRE_PACKAGES_MAD=1
REQUIRE_PACKAGES_OGGVORBIS=1
REQUIRE_PACKAGES_A52=1
REQUIRE_PACKAGES_DTS=1
@@ -1305,7 +1305,6 @@ endif
ifeq ($(FULL_TARGET),i386-qnx)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_OPENAL=1
-REQUIRE_PACKAGES_MAD=1
REQUIRE_PACKAGES_OGGVORBIS=1
REQUIRE_PACKAGES_A52=1
REQUIRE_PACKAGES_DTS=1
@@ -1315,7 +1314,6 @@ endif
ifeq ($(FULL_TARGET),i386-netware)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_OPENAL=1
-REQUIRE_PACKAGES_MAD=1
REQUIRE_PACKAGES_OGGVORBIS=1
REQUIRE_PACKAGES_A52=1
REQUIRE_PACKAGES_DTS=1
@@ -1325,7 +1323,6 @@ endif
ifeq ($(FULL_TARGET),i386-openbsd)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_OPENAL=1
-REQUIRE_PACKAGES_MAD=1
REQUIRE_PACKAGES_OGGVORBIS=1
REQUIRE_PACKAGES_A52=1
REQUIRE_PACKAGES_DTS=1
@@ -1335,7 +1332,6 @@ endif
ifeq ($(FULL_TARGET),i386-wdosx)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_OPENAL=1
-REQUIRE_PACKAGES_MAD=1
REQUIRE_PACKAGES_OGGVORBIS=1
REQUIRE_PACKAGES_A52=1
REQUIRE_PACKAGES_DTS=1
@@ -1345,7 +1341,6 @@ endif
ifeq ($(FULL_TARGET),i386-darwin)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_OPENAL=1
-REQUIRE_PACKAGES_MAD=1
REQUIRE_PACKAGES_OGGVORBIS=1
REQUIRE_PACKAGES_A52=1
REQUIRE_PACKAGES_DTS=1
@@ -1355,7 +1350,6 @@ endif
ifeq ($(FULL_TARGET),i386-emx)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_OPENAL=1
-REQUIRE_PACKAGES_MAD=1
REQUIRE_PACKAGES_OGGVORBIS=1
REQUIRE_PACKAGES_A52=1
REQUIRE_PACKAGES_DTS=1
@@ -1365,7 +1359,6 @@ endif
ifeq ($(FULL_TARGET),i386-watcom)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_OPENAL=1
-REQUIRE_PACKAGES_MAD=1
REQUIRE_PACKAGES_OGGVORBIS=1
REQUIRE_PACKAGES_A52=1
REQUIRE_PACKAGES_DTS=1
@@ -1375,7 +1368,6 @@ endif
ifeq ($(FULL_TARGET),i386-netwlibc)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_OPENAL=1
-REQUIRE_PACKAGES_MAD=1
REQUIRE_PACKAGES_OGGVORBIS=1
REQUIRE_PACKAGES_A52=1
REQUIRE_PACKAGES_DTS=1
@@ -1385,7 +1377,6 @@ endif
ifeq ($(FULL_TARGET),i386-wince)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_OPENAL=1
-REQUIRE_PACKAGES_MAD=1
REQUIRE_PACKAGES_OGGVORBIS=1
REQUIRE_PACKAGES_A52=1
REQUIRE_PACKAGES_DTS=1
@@ -1395,7 +1386,6 @@ endif
ifeq ($(FULL_TARGET),i386-embedded)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_OPENAL=1
-REQUIRE_PACKAGES_MAD=1
REQUIRE_PACKAGES_OGGVORBIS=1
REQUIRE_PACKAGES_A52=1
REQUIRE_PACKAGES_DTS=1
@@ -1405,7 +1395,15 @@ endif
ifeq ($(FULL_TARGET),i386-symbian)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_OPENAL=1
-REQUIRE_PACKAGES_MAD=1
+REQUIRE_PACKAGES_OGGVORBIS=1
+REQUIRE_PACKAGES_A52=1
+REQUIRE_PACKAGES_DTS=1
+REQUIRE_PACKAGES_MODPLUG=1
+REQUIRE_PACKAGES_MATROSKA=1
+endif
+ifeq ($(FULL_TARGET),i386-nativent)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_OPENAL=1
REQUIRE_PACKAGES_OGGVORBIS=1
REQUIRE_PACKAGES_A52=1
REQUIRE_PACKAGES_DTS=1
@@ -1415,17 +1413,16 @@ endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_OPENAL=1
-REQUIRE_PACKAGES_MAD=1
REQUIRE_PACKAGES_OGGVORBIS=1
REQUIRE_PACKAGES_A52=1
REQUIRE_PACKAGES_DTS=1
REQUIRE_PACKAGES_MODPLUG=1
REQUIRE_PACKAGES_MATROSKA=1
+REQUIRE_PACKAGES_MAD=1
endif
ifeq ($(FULL_TARGET),m68k-freebsd)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_OPENAL=1
-REQUIRE_PACKAGES_MAD=1
REQUIRE_PACKAGES_OGGVORBIS=1
REQUIRE_PACKAGES_A52=1
REQUIRE_PACKAGES_DTS=1
@@ -1435,7 +1432,6 @@ endif
ifeq ($(FULL_TARGET),m68k-netbsd)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_OPENAL=1
-REQUIRE_PACKAGES_MAD=1
REQUIRE_PACKAGES_OGGVORBIS=1
REQUIRE_PACKAGES_A52=1
REQUIRE_PACKAGES_DTS=1
@@ -1445,7 +1441,6 @@ endif
ifeq ($(FULL_TARGET),m68k-amiga)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_OPENAL=1
-REQUIRE_PACKAGES_MAD=1
REQUIRE_PACKAGES_OGGVORBIS=1
REQUIRE_PACKAGES_A52=1
REQUIRE_PACKAGES_DTS=1
@@ -1455,7 +1450,6 @@ endif
ifeq ($(FULL_TARGET),m68k-atari)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_OPENAL=1
-REQUIRE_PACKAGES_MAD=1
REQUIRE_PACKAGES_OGGVORBIS=1
REQUIRE_PACKAGES_A52=1
REQUIRE_PACKAGES_DTS=1
@@ -1465,7 +1459,6 @@ endif
ifeq ($(FULL_TARGET),m68k-openbsd)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_OPENAL=1
-REQUIRE_PACKAGES_MAD=1
REQUIRE_PACKAGES_OGGVORBIS=1
REQUIRE_PACKAGES_A52=1
REQUIRE_PACKAGES_DTS=1
@@ -1475,7 +1468,6 @@ endif
ifeq ($(FULL_TARGET),m68k-palmos)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_OPENAL=1
-REQUIRE_PACKAGES_MAD=1
REQUIRE_PACKAGES_OGGVORBIS=1
REQUIRE_PACKAGES_A52=1
REQUIRE_PACKAGES_DTS=1
@@ -1485,7 +1477,6 @@ endif
ifeq ($(FULL_TARGET),m68k-embedded)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_OPENAL=1
-REQUIRE_PACKAGES_MAD=1
REQUIRE_PACKAGES_OGGVORBIS=1
REQUIRE_PACKAGES_A52=1
REQUIRE_PACKAGES_DTS=1
@@ -1495,17 +1486,16 @@ endif
ifeq ($(FULL_TARGET),powerpc-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_OPENAL=1
-REQUIRE_PACKAGES_MAD=1
REQUIRE_PACKAGES_OGGVORBIS=1
REQUIRE_PACKAGES_A52=1
REQUIRE_PACKAGES_DTS=1
REQUIRE_PACKAGES_MODPLUG=1
REQUIRE_PACKAGES_MATROSKA=1
+REQUIRE_PACKAGES_MAD=1
endif
ifeq ($(FULL_TARGET),powerpc-netbsd)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_OPENAL=1
-REQUIRE_PACKAGES_MAD=1
REQUIRE_PACKAGES_OGGVORBIS=1
REQUIRE_PACKAGES_A52=1
REQUIRE_PACKAGES_DTS=1
@@ -1515,7 +1505,6 @@ endif
ifeq ($(FULL_TARGET),powerpc-amiga)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_OPENAL=1
-REQUIRE_PACKAGES_MAD=1
REQUIRE_PACKAGES_OGGVORBIS=1
REQUIRE_PACKAGES_A52=1
REQUIRE_PACKAGES_DTS=1
@@ -1525,7 +1514,6 @@ endif
ifeq ($(FULL_TARGET),powerpc-macos)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_OPENAL=1
-REQUIRE_PACKAGES_MAD=1
REQUIRE_PACKAGES_OGGVORBIS=1
REQUIRE_PACKAGES_A52=1
REQUIRE_PACKAGES_DTS=1
@@ -1535,7 +1523,6 @@ endif
ifeq ($(FULL_TARGET),powerpc-darwin)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_OPENAL=1
-REQUIRE_PACKAGES_MAD=1
REQUIRE_PACKAGES_OGGVORBIS=1
REQUIRE_PACKAGES_A52=1
REQUIRE_PACKAGES_DTS=1
@@ -1545,7 +1532,6 @@ endif
ifeq ($(FULL_TARGET),powerpc-morphos)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_OPENAL=1
-REQUIRE_PACKAGES_MAD=1
REQUIRE_PACKAGES_OGGVORBIS=1
REQUIRE_PACKAGES_A52=1
REQUIRE_PACKAGES_DTS=1
@@ -1555,7 +1541,6 @@ endif
ifeq ($(FULL_TARGET),powerpc-embedded)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_OPENAL=1
-REQUIRE_PACKAGES_MAD=1
REQUIRE_PACKAGES_OGGVORBIS=1
REQUIRE_PACKAGES_A52=1
REQUIRE_PACKAGES_DTS=1
@@ -1565,17 +1550,16 @@ endif
ifeq ($(FULL_TARGET),sparc-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_OPENAL=1
-REQUIRE_PACKAGES_MAD=1
REQUIRE_PACKAGES_OGGVORBIS=1
REQUIRE_PACKAGES_A52=1
REQUIRE_PACKAGES_DTS=1
REQUIRE_PACKAGES_MODPLUG=1
REQUIRE_PACKAGES_MATROSKA=1
+REQUIRE_PACKAGES_MAD=1
endif
ifeq ($(FULL_TARGET),sparc-netbsd)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_OPENAL=1
-REQUIRE_PACKAGES_MAD=1
REQUIRE_PACKAGES_OGGVORBIS=1
REQUIRE_PACKAGES_A52=1
REQUIRE_PACKAGES_DTS=1
@@ -1585,7 +1569,6 @@ endif
ifeq ($(FULL_TARGET),sparc-solaris)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_OPENAL=1
-REQUIRE_PACKAGES_MAD=1
REQUIRE_PACKAGES_OGGVORBIS=1
REQUIRE_PACKAGES_A52=1
REQUIRE_PACKAGES_DTS=1
@@ -1595,7 +1578,6 @@ endif
ifeq ($(FULL_TARGET),sparc-embedded)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_OPENAL=1
-REQUIRE_PACKAGES_MAD=1
REQUIRE_PACKAGES_OGGVORBIS=1
REQUIRE_PACKAGES_A52=1
REQUIRE_PACKAGES_DTS=1
@@ -1605,17 +1587,16 @@ endif
ifeq ($(FULL_TARGET),x86_64-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_OPENAL=1
-REQUIRE_PACKAGES_MAD=1
REQUIRE_PACKAGES_OGGVORBIS=1
REQUIRE_PACKAGES_A52=1
REQUIRE_PACKAGES_DTS=1
REQUIRE_PACKAGES_MODPLUG=1
REQUIRE_PACKAGES_MATROSKA=1
+REQUIRE_PACKAGES_MAD=1
endif
ifeq ($(FULL_TARGET),x86_64-freebsd)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_OPENAL=1
-REQUIRE_PACKAGES_MAD=1
REQUIRE_PACKAGES_OGGVORBIS=1
REQUIRE_PACKAGES_A52=1
REQUIRE_PACKAGES_DTS=1
@@ -1625,7 +1606,6 @@ endif
ifeq ($(FULL_TARGET),x86_64-solaris)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_OPENAL=1
-REQUIRE_PACKAGES_MAD=1
REQUIRE_PACKAGES_OGGVORBIS=1
REQUIRE_PACKAGES_A52=1
REQUIRE_PACKAGES_DTS=1
@@ -1635,7 +1615,6 @@ endif
ifeq ($(FULL_TARGET),x86_64-darwin)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_OPENAL=1
-REQUIRE_PACKAGES_MAD=1
REQUIRE_PACKAGES_OGGVORBIS=1
REQUIRE_PACKAGES_A52=1
REQUIRE_PACKAGES_DTS=1
@@ -1645,7 +1624,6 @@ endif
ifeq ($(FULL_TARGET),x86_64-win64)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_OPENAL=1
-REQUIRE_PACKAGES_MAD=1
REQUIRE_PACKAGES_OGGVORBIS=1
REQUIRE_PACKAGES_A52=1
REQUIRE_PACKAGES_DTS=1
@@ -1655,7 +1633,6 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_OPENAL=1
-REQUIRE_PACKAGES_MAD=1
REQUIRE_PACKAGES_OGGVORBIS=1
REQUIRE_PACKAGES_A52=1
REQUIRE_PACKAGES_DTS=1
@@ -1665,17 +1642,16 @@ endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_OPENAL=1
-REQUIRE_PACKAGES_MAD=1
REQUIRE_PACKAGES_OGGVORBIS=1
REQUIRE_PACKAGES_A52=1
REQUIRE_PACKAGES_DTS=1
REQUIRE_PACKAGES_MODPLUG=1
REQUIRE_PACKAGES_MATROSKA=1
+REQUIRE_PACKAGES_MAD=1
endif
ifeq ($(FULL_TARGET),arm-palmos)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_OPENAL=1
-REQUIRE_PACKAGES_MAD=1
REQUIRE_PACKAGES_OGGVORBIS=1
REQUIRE_PACKAGES_A52=1
REQUIRE_PACKAGES_DTS=1
@@ -1685,7 +1661,6 @@ endif
ifeq ($(FULL_TARGET),arm-darwin)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_OPENAL=1
-REQUIRE_PACKAGES_MAD=1
REQUIRE_PACKAGES_OGGVORBIS=1
REQUIRE_PACKAGES_A52=1
REQUIRE_PACKAGES_DTS=1
@@ -1695,7 +1670,6 @@ endif
ifeq ($(FULL_TARGET),arm-wince)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_OPENAL=1
-REQUIRE_PACKAGES_MAD=1
REQUIRE_PACKAGES_OGGVORBIS=1
REQUIRE_PACKAGES_A52=1
REQUIRE_PACKAGES_DTS=1
@@ -1705,7 +1679,6 @@ endif
ifeq ($(FULL_TARGET),arm-gba)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_OPENAL=1
-REQUIRE_PACKAGES_MAD=1
REQUIRE_PACKAGES_OGGVORBIS=1
REQUIRE_PACKAGES_A52=1
REQUIRE_PACKAGES_DTS=1
@@ -1715,7 +1688,6 @@ endif
ifeq ($(FULL_TARGET),arm-nds)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_OPENAL=1
-REQUIRE_PACKAGES_MAD=1
REQUIRE_PACKAGES_OGGVORBIS=1
REQUIRE_PACKAGES_A52=1
REQUIRE_PACKAGES_DTS=1
@@ -1725,7 +1697,6 @@ endif
ifeq ($(FULL_TARGET),arm-embedded)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_OPENAL=1
-REQUIRE_PACKAGES_MAD=1
REQUIRE_PACKAGES_OGGVORBIS=1
REQUIRE_PACKAGES_A52=1
REQUIRE_PACKAGES_DTS=1
@@ -1735,7 +1706,6 @@ endif
ifeq ($(FULL_TARGET),arm-symbian)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_OPENAL=1
-REQUIRE_PACKAGES_MAD=1
REQUIRE_PACKAGES_OGGVORBIS=1
REQUIRE_PACKAGES_A52=1
REQUIRE_PACKAGES_DTS=1
@@ -1745,17 +1715,16 @@ endif
ifeq ($(FULL_TARGET),powerpc64-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_OPENAL=1
-REQUIRE_PACKAGES_MAD=1
REQUIRE_PACKAGES_OGGVORBIS=1
REQUIRE_PACKAGES_A52=1
REQUIRE_PACKAGES_DTS=1
REQUIRE_PACKAGES_MODPLUG=1
REQUIRE_PACKAGES_MATROSKA=1
+REQUIRE_PACKAGES_MAD=1
endif
ifeq ($(FULL_TARGET),powerpc64-darwin)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_OPENAL=1
-REQUIRE_PACKAGES_MAD=1
REQUIRE_PACKAGES_OGGVORBIS=1
REQUIRE_PACKAGES_A52=1
REQUIRE_PACKAGES_DTS=1
@@ -1765,7 +1734,6 @@ endif
ifeq ($(FULL_TARGET),powerpc64-embedded)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_OPENAL=1
-REQUIRE_PACKAGES_MAD=1
REQUIRE_PACKAGES_OGGVORBIS=1
REQUIRE_PACKAGES_A52=1
REQUIRE_PACKAGES_DTS=1
@@ -1775,7 +1743,6 @@ endif
ifeq ($(FULL_TARGET),avr-embedded)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_OPENAL=1
-REQUIRE_PACKAGES_MAD=1
REQUIRE_PACKAGES_OGGVORBIS=1
REQUIRE_PACKAGES_A52=1
REQUIRE_PACKAGES_DTS=1
@@ -1785,17 +1752,16 @@ endif
ifeq ($(FULL_TARGET),armeb-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_OPENAL=1
-REQUIRE_PACKAGES_MAD=1
REQUIRE_PACKAGES_OGGVORBIS=1
REQUIRE_PACKAGES_A52=1
REQUIRE_PACKAGES_DTS=1
REQUIRE_PACKAGES_MODPLUG=1
REQUIRE_PACKAGES_MATROSKA=1
+REQUIRE_PACKAGES_MAD=1
endif
ifeq ($(FULL_TARGET),armeb-embedded)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_OPENAL=1
-REQUIRE_PACKAGES_MAD=1
REQUIRE_PACKAGES_OGGVORBIS=1
REQUIRE_PACKAGES_A52=1
REQUIRE_PACKAGES_DTS=1
@@ -1805,12 +1771,12 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_OPENAL=1
-REQUIRE_PACKAGES_MAD=1
REQUIRE_PACKAGES_OGGVORBIS=1
REQUIRE_PACKAGES_A52=1
REQUIRE_PACKAGES_DTS=1
REQUIRE_PACKAGES_MODPLUG=1
REQUIRE_PACKAGES_MATROSKA=1
+REQUIRE_PACKAGES_MAD=1
endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
@@ -1864,32 +1830,6 @@ ifdef UNITDIR_OPENAL
override COMPILER_UNITDIR+=$(UNITDIR_OPENAL)
endif
endif
-ifdef REQUIRE_PACKAGES_MAD
-PACKAGEDIR_MAD:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /mad/Makefile.fpc,$(PACKAGESDIR))))))
-ifneq ($(PACKAGEDIR_MAD),)
-ifneq ($(wildcard $(PACKAGEDIR_MAD)/units/$(TARGETSUFFIX)),)
-UNITDIR_MAD=$(PACKAGEDIR_MAD)/units/$(TARGETSUFFIX)
-else
-UNITDIR_MAD=$(PACKAGEDIR_MAD)
-endif
-ifdef CHECKDEPEND
-$(PACKAGEDIR_MAD)/$(FPCMADE):
- $(MAKE) -C $(PACKAGEDIR_MAD) $(FPCMADE)
-override ALLDEPENDENCIES+=$(PACKAGEDIR_MAD)/$(FPCMADE)
-endif
-else
-PACKAGEDIR_MAD=
-UNITDIR_MAD:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /mad/Package.fpc,$(UNITSDIR)))))
-ifneq ($(UNITDIR_MAD),)
-UNITDIR_MAD:=$(firstword $(UNITDIR_MAD))
-else
-UNITDIR_MAD=
-endif
-endif
-ifdef UNITDIR_MAD
-override COMPILER_UNITDIR+=$(UNITDIR_MAD)
-endif
-endif
ifdef REQUIRE_PACKAGES_OGGVORBIS
PACKAGEDIR_OGGVORBIS:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /oggvorbis/Makefile.fpc,$(PACKAGESDIR))))))
ifneq ($(PACKAGEDIR_OGGVORBIS),)
@@ -2020,6 +1960,32 @@ ifdef UNITDIR_MATROSKA
override COMPILER_UNITDIR+=$(UNITDIR_MATROSKA)
endif
endif
+ifdef REQUIRE_PACKAGES_MAD
+PACKAGEDIR_MAD:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /mad/Makefile.fpc,$(PACKAGESDIR))))))
+ifneq ($(PACKAGEDIR_MAD),)
+ifneq ($(wildcard $(PACKAGEDIR_MAD)/units/$(TARGETSUFFIX)),)
+UNITDIR_MAD=$(PACKAGEDIR_MAD)/units/$(TARGETSUFFIX)
+else
+UNITDIR_MAD=$(PACKAGEDIR_MAD)
+endif
+ifdef CHECKDEPEND
+$(PACKAGEDIR_MAD)/$(FPCMADE):
+ $(MAKE) -C $(PACKAGEDIR_MAD) $(FPCMADE)
+override ALLDEPENDENCIES+=$(PACKAGEDIR_MAD)/$(FPCMADE)
+endif
+else
+PACKAGEDIR_MAD=
+UNITDIR_MAD:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /mad/Package.fpc,$(UNITSDIR)))))
+ifneq ($(UNITDIR_MAD),)
+UNITDIR_MAD:=$(firstword $(UNITDIR_MAD))
+else
+UNITDIR_MAD=
+endif
+endif
+ifdef UNITDIR_MAD
+override COMPILER_UNITDIR+=$(UNITDIR_MAD)
+endif
+endif
ifndef NOCPUDEF
override FPCOPTDEF=$(ARCH)
endif
@@ -2342,6 +2308,9 @@ endif
ifdef EXEFILES
override CLEANEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEFILES))
endif
+ifdef CLEAN_PROGRAMS
+override CLEANEXEFILES+=$(addprefix $(TARGETDIRPREFIX),$(addsuffix $(EXEEXT), $(CLEAN_PROGRAMS)))
+endif
ifdef CLEAN_UNITS
override CLEANPPUFILES+=$(addsuffix $(PPUEXT),$(CLEAN_UNITS))
endif
@@ -2389,6 +2358,9 @@ ifdef CLEANRSTFILES
-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
endif
endif
+ifdef CLEAN_FILES
+ -$(DEL) $(CLEAN_FILES)
+endif
-$(DELTREE) units
-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
ifneq ($(PPUEXT),.ppu)
diff --git a/packages/openal/examples/Makefile.fpc b/packages/openal/examples/Makefile.fpc
index b9f5f4b4c5..f36aab468e 100644
--- a/packages/openal/examples/Makefile.fpc
+++ b/packages/openal/examples/Makefile.fpc
@@ -3,10 +3,14 @@
#
[target]
-programs=madopenal captureplaybackopenal
+programs=captureplaybackopenal wavopenal
+programs_linux=madopenal
+programs_win32=madopenal
[require]
-packages=openal mad oggvorbis a52 dts modplug matroska
+packages=openal oggvorbis a52 dts modplug matroska
+packages_linux=mad
+packages_win32=mad
[install]
fpcpackage=y
diff --git a/packages/openal/examples/wavopenal.pas b/packages/openal/examples/wavopenal.pas
new file mode 100644
index 0000000000..719a1d8e69
--- /dev/null
+++ b/packages/openal/examples/wavopenal.pas
@@ -0,0 +1,330 @@
+(* WavOpenAL - OpenAL wave playing example
+
+ Copyright (c) 2010 Dmitry Boyarintsev
+
+ This software is provided 'as-is', without any express or implied
+ warranty. In no event will the authors be held liable for any damages
+ arising from the use of this software.
+
+ Permission is granted to anyone to use this software for any purpose,
+ including commercial applications, and to alter it and redistribute it
+ freely, subject to the following restrictions:
+
+ 1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+
+ 2. Altered source versions must be plainly marked as such, and must not be
+ misrepresented as being the original software.
+
+ 3. This notice may not be removed or altered from any source
+ distribution.
+
+ WaveOpenAL is based on MadOpenAL playing sample.
+ Yhe wavopenal program accepts a single .wav file name as a parameter and
+ plays it using openal until the end.
+
+*)
+program wavopenal;
+
+{$mode objfpc}
+
+uses
+ classes, sysutils, openal;
+
+// WAVE UTILS
+
+type
+ TRiffHeader = packed record
+ ID : array [0..3] of char;
+ Size : LongWord;
+ Format : array [0..3] of char;
+ end;
+
+ TWaveFormat = packed record
+ ID : array [0..3] of char;
+ Size : LongWord;
+ Format : Word;
+ Channels : Word;
+ SampleRate : LongWord;
+ ByteRate : LongWord;
+ BlockAlign : Word;
+ BitsPerSample : Word;
+ end;
+
+ TDataChunk = packed record
+ Id : array [0..3] of char;
+ Size : LongWord;
+ end;
+
+type
+
+ { TWaveReader }
+
+ TWaveReader = class(TObject)
+ private
+ loaded : Boolean;
+ chunkdata : TDataChunk;
+ chunkpos : Int64;
+ pos : Int64;
+ eof : Boolean;
+ fStream : TStream;
+
+ public
+ fmt : TWaveFormat;
+ function LoadFromStream(AStream: TStream): Boolean;
+ function ReadBuf(var Buffer; BufferSize: Integer): Integer;
+ end;
+
+const
+ ID_RIFF = 'RIFF';
+ ID_WAVE = 'WAVE';
+ ID_fmt = 'fmt ';
+ ID_data = 'data';
+
+{ TWaveReader }
+
+function TWaveReader.LoadFromStream(AStream:TStream):Boolean;
+var
+ riff : TRiffHeader;
+begin
+ fStream:=AStream;
+ loaded:=True;
+ try
+ Result:=fStream.Read(riff, sizeof(riff))=sizeof(riff);
+ riff.Size:=LEtoN(riff.Size);
+ Result:=Result and (riff.ID=ID_RIFF) and (riff.Format=ID_WAVE);
+ if not Result then Exit;
+
+ Result:=fStream.Read(fmt, sizeof(fmt))=sizeof(fmt);
+ fmt.Size:=LEtoN(fmt.Size);
+ fmt.Format:=LEtoN(fmt.Format);
+ fmt.Channels:=LEtoN(fmt.Channels);
+ fmt.SampleRate:=LEtoN(fmt.SampleRate);
+ fmt.ByteRate:=LEtoN(fmt.ByteRate);
+ fmt.BlockAlign:=LEtoN(fmt.BlockAlign);
+ fmt.BitsPerSample:=LEtoN(fmt.BitsPerSample);
+
+ Result:=fmt.ID=ID_fmt;
+ pos:=-1;
+ except
+ Result:=False;
+ Exit;
+ end;
+end;
+
+function Min(a,b: Integer): Integer;
+begin
+ if a<b then Result:=a
+ else Result:=b;
+end;
+
+function TWaveReader.ReadBuf(var Buffer;BufferSize:Integer):Integer;
+var
+ sz : Integer;
+ p : PByteArray;
+ i : Integer;
+begin
+ FillChar(Buffer, BufferSize, 0);
+ Result:=0;
+ // all data read
+ if eof then Exit;
+
+ p:=@Buffer;
+ i:=0;
+ while (not eof) and (i<bufferSize) do begin
+ if chunkpos>=chunkdata.Size then begin
+ if pos<0 then
+ fstream.Position:=sizeof(TRiffHeader)+Int64(fmt.Size)+sizeof(TDataChunk)
+ else
+ fstream.Position:=pos+chunkdata.size+SizeOf(chunkdata);
+
+ eof:=pos>=fStream.Size;
+ if not eof then begin
+ pos:=fStream.Position;
+ sz:=fstream.Read(chunkdata, sizeof(chunkdata));
+ chunkdata.Size:=LEtoN(chunkdata.Size);
+ if (sz<>sizeof(chunkdata)) or (chunkdata.Id<>ID_data) then
+ chunkpos:=chunkdata.Size
+ else
+ chunkpos:=0;
+ end;
+ end else begin
+ sz:=Min(BufferSize, chunkdata.Size-chunkpos);
+ fStream.Position:=pos+sizeof(chunkdata)+chunkpos;
+ sz:=fStream.Read(p[i], sz);
+ if sz<0 then Exit;
+ inc(chunkpos, sz);
+ inc(i, sz);
+ end;
+ end;
+ Result:=i;
+end;
+
+// ------------------------ OPEN AL ----------------------
+
+var
+ source : TStream;
+ codec_bs : Longword;
+
+// openal
+const
+ // Note: if you lower the al_bufcount, then you have to modify the al_polltime also!
+ al_bufcount = 4;
+ al_polltime = 100;
+
+var
+ al_device : PALCdevice;
+ al_context : PALCcontext;
+ al_source : ALuint;
+ al_format : Integer;
+ al_buffers : array[0..al_bufcount-1] of ALuint;
+ al_bufsize : Longword;
+ al_readbuf : Pointer;
+ al_rate : Longword;
+
+ wave : TWaveReader;
+
+procedure alPlay;
+var
+ i: Integer;
+begin
+ alSourceStop(al_source);
+ alSourceRewind(al_source);
+ alSourcei(al_source, AL_BUFFER, 0);
+
+ for i := 0 to al_bufcount - 1 do
+ begin
+ if wave.ReadBuf(al_readbuf^, al_bufsize) = 0 then
+ Break;
+
+ alBufferData(al_buffers[i], al_format, al_readbuf, al_bufsize, al_rate);
+ alSourceQueueBuffers(al_source, 1, @al_buffers[i]);
+ end;
+
+ // Under windows, AL_LOOPING = AL_TRUE breaks queueing, no idea why
+ alSourcei(al_source, AL_LOOPING, AL_FALSE);
+ alSourcePlay(al_source);
+end;
+
+procedure alStop;
+begin
+ alSourceStop(al_source);
+ alSourceRewind(al_source);
+ alSourcei(al_source, AL_BUFFER, 0);
+end;
+
+function alProcess: Boolean;
+var
+ processed : ALint;
+ buffer : ALuint;
+ sz : Integer;
+begin
+ alGetSourcei(al_source, AL_BUFFERS_PROCESSED, processed);
+ while (processed > 0) and (processed <= al_bufcount) do
+ begin
+ Write('.');
+
+ alSourceUnqueueBuffers(al_source, 1, @buffer);
+
+ sz:=wave.ReadBuf(al_readbuf^, al_bufsize);
+ if sz <= 0 then
+ begin
+ Exit(False);
+ end;
+
+ alBufferData(buffer, al_format, al_readbuf, sz, al_rate);
+ alSourceQueueBuffers(al_source, 1, @buffer);
+
+ Dec(processed);
+ end;
+
+ Result := True;
+end;
+
+
+var
+ Filename: String;
+ queued : Integer;
+ done : Boolean;
+begin
+ // define codec
+ if (ParamCount<=0) or not FileExists(ParamStr(1)) then begin
+ writeln('please specify .wav file name');
+ Exit;
+ end;
+ FileName:=ParamStr(1);
+
+ source := TFileStream.Create(Filename, fmOpenRead);
+
+ // inittialize codec
+ wave:=TWaveReader.Create;
+ if not wave.LoadFromStream(source) then begin
+ writeln('unable to read WAVE format');
+ Exit;
+ end;
+ if wave.fmt.Format<>1 then begin
+ writeln('WAVE file is using compression. Cannot play sorry. Please provide uncompressed .wav');
+ Exit;
+ end;
+ if wave.fmt.Channels=2 then begin
+ if wave.fmt.BitsPerSample=8 then al_format:=AL_FORMAT_STEREO8
+ else al_format:=AL_FORMAT_STEREO16
+ end else begin
+ if wave.fmt.BitsPerSample=8 then al_format:=AL_FORMAT_MONO8
+ else al_format:=AL_FORMAT_MONO16
+ end;
+
+ codec_bs:=2*wave.fmt.Channels;
+
+ //al_bufsize := 20000 - (20000 mod codec_bs);
+ al_bufsize := 20000 - (20000 mod codec_bs);
+ al_rate:=wave.fmt.SampleRate;
+ WriteLn('Blocksize : ', codec_bs);
+ WriteLn('Rate : ', wave.fmt.SampleRate);
+ WriteLn('Channels : ', wave.fmt.Channels);
+ WriteLn('OpenAL Buffers : ', al_bufcount);
+ WriteLn('OpenAL Buffer Size : ', al_bufsize);
+
+ // init openal
+ al_device := alcOpenDevice(nil);
+ al_context := alcCreateContext(al_device, nil);
+ alcMakeContextCurrent(al_context);
+
+ alDistanceModel(AL_INVERSE_DISTANCE_CLAMPED);
+ alGenSources(1, @al_source);
+ alGenBuffers(al_bufcount, @al_buffers);
+
+ GetMem(al_readbuf, al_bufsize);
+
+
+ // play loop
+ alPlay;
+
+ done:=False;
+ queued:=0;
+ repeat
+ if alProcess then begin
+ alGetSourcei(al_source, AL_BUFFERS_QUEUED, queued);
+ done:=queued=0;
+ end;
+ Sleep(al_polltime);
+ until done;
+
+ alStop;
+
+ // finalize openal
+ alDeleteSources(1, @al_source);
+ alDeleteBuffers(al_bufcount, @al_buffers);
+ alcDestroyContext(al_context);
+ alcCloseDevice(al_device);
+ FreeMem(al_readbuf);
+
+
+ // finalize codec
+ wave.Free;
+
+ // close file
+ source.Free;
+end.