summaryrefslogtreecommitdiff
path: root/audio/audacity
diff options
context:
space:
mode:
authoritohy <itohy>2001-11-17 06:36:14 +0000
committeritohy <itohy>2001-11-17 06:36:14 +0000
commit52c4f3b777111901a17cd021385a7627712670bf (patch)
treee982dd5809d4628b0f4bfa424021f04d21cec8cc /audio/audacity
parent49e00e6d5ac56f868038a9755dad13e37bb33aab (diff)
downloadpkgsrc-52c4f3b777111901a17cd021385a7627712670bf.tar.gz
Make it work on alpha (long -> int32_t, alignment fix, egcs XXX).
It still sometimes crashes, but I have no clue....
Diffstat (limited to 'audio/audacity')
-rw-r--r--audio/audacity/Makefile7
-rw-r--r--audio/audacity/distinfo4
-rw-r--r--audio/audacity/patches/patch-ap13
-rw-r--r--audio/audacity/patches/patch-aq278
4 files changed, 300 insertions, 2 deletions
diff --git a/audio/audacity/Makefile b/audio/audacity/Makefile
index 28dd39eb708..acf5e797dc4 100644
--- a/audio/audacity/Makefile
+++ b/audio/audacity/Makefile
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.3 2001/09/27 23:17:42 jlam Exp $
+# $NetBSD: Makefile,v 1.4 2001/11/17 06:36:14 itohy Exp $
#
DISTNAME= audacity-src-0.96
@@ -23,6 +23,11 @@ CONFIGURE_ARGS+= --without-xaudio --with-libmpeg3
CONFIGURE_ENV+= CPPFLAGS="-I${LOCALBASE}/include"
USE_GMAKE= yes
+# XXX Internal compiler error with -O2
+.if (${MACHINE_ARCH} == alpha)
+CFLAGS= -O
+.endif
+
post-patch:
${SED} "s|XXXHELPDIRXXX|${PREFIX}/share|" \
<${WRKSRC}/Help.cpp >${WRKSRC}/Help.cpp.tmp \
diff --git a/audio/audacity/distinfo b/audio/audacity/distinfo
index f012d933711..79c182d99f8 100644
--- a/audio/audacity/distinfo
+++ b/audio/audacity/distinfo
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.2 2001/08/02 17:45:32 drochner Exp $
+$NetBSD: distinfo,v 1.3 2001/11/17 06:36:14 itohy Exp $
SHA1 (audacity-src-0.96.tgz) = 77ea8e263fcf72f0b3e42af9e5ee40a3ac83be80
Size (audacity-src-0.96.tgz) = 1820114 bytes
@@ -11,3 +11,5 @@ SHA1 (patch-af) = bee0d29ef3e420cc3e55d61589d1f43939c57e6c
SHA1 (patch-am) = 0bc51e734a382f056c31571dd6cc5c7b0a4ae63e
SHA1 (patch-an) = eed703ca9d2aeaf3ed7d841bb6b7f13ba8b886d7
SHA1 (patch-ao) = db05833c6f9ce6bf00d0e682a9099ffd583b147c
+SHA1 (patch-ap) = 07d9d67ed7220d61427e3c4746bc9d74f8fe03d6
+SHA1 (patch-aq) = 4d2c5981e4b6c3dfa52ec81dc4366151b82e813b
diff --git a/audio/audacity/patches/patch-ap b/audio/audacity/patches/patch-ap
new file mode 100644
index 00000000000..8ce0150513e
--- /dev/null
+++ b/audio/audacity/patches/patch-ap
@@ -0,0 +1,13 @@
+$NetBSD: patch-ap,v 1.1 2001/11/17 06:36:15 itohy Exp $
+
+--- snd/sndhead.h.orig Sun Jul 29 10:17:54 2001
++++ snd/sndhead.h Fri Nov 16 22:37:01 2001
+@@ -1,7 +1,7 @@
+ /* sndhead.h -- header info */
+
+ /* NeXT sound headers */
+-#define NEXT_SND_MAGIC (*((long *) ".snd")) // was: ((int)0x2e736e64)
++#define NEXT_SND_MAGIC (sndmagic.i[0]) // was: ((int)0x2e736e64)
+ #define NEXT_SND_FORMAT_UNSPECIFIED (0)
+ #define NEXT_SND_FORMAT_ULAW_8 (1)
+ #define NEXT_SND_FORMAT_LINEAR_8 (2)
diff --git a/audio/audacity/patches/patch-aq b/audio/audacity/patches/patch-aq
new file mode 100644
index 00000000000..dd2b0fc6841
--- /dev/null
+++ b/audio/audacity/patches/patch-aq
@@ -0,0 +1,278 @@
+$NetBSD: patch-aq,v 1.1 2001/11/17 06:36:15 itohy Exp $
+
+--- snd/sndheader.c.orig Sun Jul 29 10:17:54 2001
++++ snd/sndheader.c Fri Nov 16 22:39:47 2001
+@@ -52,6 +52,23 @@
+
+ #endif
+
++#ifdef __NetBSD__
++#include <sys/types.h>
++typedef int16_t int16;
++typedef int32_t int32;
++typedef u_int32_t uint32;
++#else
++# if defined(__alpha) || defined(__alpha__)
++typedef short int16;
++typedef int int32;
++typedef unsigned int uint32;
++# else
++typedef short int16;
++typedef long int32;
++typedef unsigned long uint32;
++# endif
++#endif
++
+ #ifndef min
+ #define min(a, b) ((a) < (b) ? (a) : (b))
+ #endif
+@@ -71,16 +88,23 @@
+ #define htonl(x) (x)
+ #endif
+
++const union {
++ char c[12];
++ int32 i[3];
++} sndmagic = {
++ ".sndFORMRIFF"
++};
++
+ /* AIFF file Marker declaration */
+ typedef struct {
+- short id;
+- long position;
++ int16 id;
++ int32 position;
+ } marker_node, *marker_type;
+
+ /* instrument definitions */
+ typedef short marker_id;
+ typedef struct {
+- short play_mode;
++ int16 play_mode;
+ marker_id begin_loop;
+ marker_id end_loop;
+ } aiff_loop_node, *aiff_loop_type;
+@@ -138,21 +162,21 @@
+
+ long readlong(int file, long *read_in)
+ {
+- long l = 0;
+- readitem(file, &l, long);
++ int32 l = 0;
++ readitem(file, &l, int32);
+ return ntohl(l);
+ }
+
+
+ short readshort(int file, long *read_in)
+ {
+- short s = 0;
+- readitem(file, &s, short);
++ int16 s = 0;
++ readitem(file, &s, int16);
+ return ntohs(s);
+ }
+
+
+-long revlong(long l)
++int32 revlong(int32 l)
+ {
+ return (((l >> 0) & 0xFF) << 24) |
+ (((l >> 8) & 0xFF) << 16) |
+@@ -161,19 +185,19 @@
+ }
+
+
+-long readrevlong(int file, long *read_in)
++int32 readrevlong(int file, long *read_in)
+ {
+ return revlong(readlong(file, read_in));
+ }
+
+
+-short revshort(short s)
++int16 revshort(int16 s)
+ {
+ return ((s & 0xFF) << 8) | ((s >> 8) & 0xFF);
+ }
+
+
+-short readrevshort(int file, long *read_in)
++int16 readrevshort(int file, long *read_in)
+ {
+ return revshort(readshort(file, read_in));
+ }
+@@ -200,25 +224,25 @@
+ #define writeitem(F,L,T) snd_file_write(F, (char *) L, sizeof(T));
+
+
+-void writelong(int file, long l)
++void writelong(int file, int32 l)
+ {
+ l = htonl(l);
+- writeitem(file, &l, long);
++ writeitem(file, &l, int32);
+ }
+
+-void writeshort(int file, short s)
++void writeshort(int file, int16 s)
+ {
+ s = htons(s);
+- writeitem(file, &s, short);
++ writeitem(file, &s, int16);
+ }
+
+-void writerevlong(int file, long l)
++void writerevlong(int file, int32 l)
+ {
+ writelong(file, revlong(l));
+ }
+
+
+-void writerevshort(int file, short s)
++void writerevshort(int file, int16 s)
+ {
+ writeshort(file, revshort(s));
+ }
+@@ -375,13 +399,14 @@
+ }
+
+
+-#define AIFF_SND_MAGIC (*((long *) "FORM"))
+-#define WAVE_SND_MAGIC (*((long *) "RIFF"))
++#define AIFF_SND_MAGIC (sndmagic.i[1])
++#define WAVE_SND_MAGIC (sndmagic.i[2])
+
+ long snd_read_header(snd_type snd, long *flags)
+ {
+ long read_in = 0;
+- long magic, bytemode, len;
++ int32 magic, bytemode;
++ long len;
+ short type=IRCAM_SND_COMMENT, size=0, encoding;
+ unsigned char buf[SIZEOF_IRCAM_HEADER];
+
+@@ -472,7 +497,7 @@
+ snd->u.file.current_offset = snd->u.file.byte_offset;
+
+ } else if (magic == NEXT_SND_MAGIC) {
+- long hdr_size, trash, rate;
++ int32 hdr_size, trash, rate;
+ snd->u.file.header = SND_HEAD_NEXT;
+ hdr_size = readlong(snd->u.file.file, &read_in); /* dataLocation */
+ trash = readlong(snd->u.file.file, &read_in); /* dataSize */
+@@ -550,20 +575,20 @@
+ }
+ snd->u.file.byte_offset = read_in;
+ } else if (magic == AIFF_SND_MAGIC) {
+- unsigned long totalsize;
++ uint32 totalsize;
+ unsigned long ssnd_start = 0;
+ char buf[4];
+- long blocksize;
+- long offset;
++ int32 blocksize;
++ int32 offset;
+ long chunksize;
+- long ssnd_chunksize;
++ int32 ssnd_chunksize;
+ inst_node inst;
+ short nmarkers;
+ marker_type markers = NULL;
+ int inst_read = FALSE;
+
+ snd->u.file.header = SND_HEAD_AIFF;
+- totalsize = (unsigned long) readlong(snd->u.file.file, &read_in);
++ totalsize = (uint32) readlong(snd->u.file.file, &read_in);
+ if (snd_file_read(snd->u.file.file, buf, 4) != 4 || strncmp(buf, "AIFF", 4) != 0) {
+ return fail(snd,
+ "AIFF 'FORM' chunk does not specify 'AIFF' as type\n");
+@@ -587,13 +612,13 @@
+ #endif
+ if (strncmp(buf, "COMM", 4) == 0) {
+ /* COMM chunk */
+- long chunksize;
+- long frames;
++ int32 chunksize;
++ int32 frames;
+ chunksize = readlong(snd->u.file.file, &read_in);
+ if (chunksize != 18) {
+ return fail(snd, "AIFF COMM chunk has bad size\n");
+ }
+- snd->format.channels = (long) readshort(snd->u.file.file, &read_in);
++ snd->format.channels = (int32) readshort(snd->u.file.file, &read_in);
+ frames = readlong(snd->u.file.file, &read_in);
+ snd->format.bits = readshort(snd->u.file.file, &read_in);
+ snd->format.mode = SND_MODE_PCM;
+@@ -615,7 +640,7 @@
+ snd_file_lseek(snd->u.file.file, chunksize - 8, SND_SEEK_CUR);
+ read_in += chunksize - 8;
+ } else if (strncmp(buf, "MARK", 4) == 0) {
+- long chunksize = readlong(snd->u.file.file, &read_in);
++ int32 chunksize = readlong(snd->u.file.file, &read_in);
+ int i;
+
+ nmarkers = readshort(snd->u.file.file, &read_in);
+@@ -658,7 +683,7 @@
+ snd->u.file.high_velocity = inst.high_velocity;
+ inst_read = TRUE;
+ } else {
+- long chunksize = readlong(snd->u.file.file, &read_in);
++ int32 chunksize = readlong(snd->u.file.file, &read_in);
+ if (chunksize & 1) chunksize ++; /* round up to even number */
+ read_in += chunksize;
+ /* skip the chunk */
+@@ -707,7 +732,7 @@
+ snd->u.file.current_offset = snd->u.file.byte_offset;
+ snd->u.file.end_offset = snd->u.file.byte_offset + ssnd_chunksize - 8;
+ } else if (magic == WAVE_SND_MAGIC) {
+- long size;
++ int32 size;
+ char buf[4];
+ short format;
+
+@@ -721,7 +746,7 @@
+
+ /* Skip to the next "fmt " or end of file */
+ while (1) {
+- long siz;
++ int32 siz;
+ if (snd_file_read(snd->u.file.file, buf, 4) != 4) {
+ return fail(snd, "WAVE file missing fmt spec");
+ }
+@@ -893,7 +918,7 @@
+ encoding = NEXT_SND_FORMAT_LINEAR_32;
+ }
+ writelong(snd->u.file.file, encoding);
+- writelong(snd->u.file.file, (long) (snd->format.srate + 0.5));
++ writelong(snd->u.file.file, (int32) (snd->format.srate + 0.5));
+ writelong(snd->u.file.file, snd->format.channels);
+ }
+
+@@ -985,13 +1010,13 @@
+ break;
+ }
+ writerevshort(snd->u.file.file, (short) snd->format.channels); /* Number of channels */
+- writerevlong(snd->u.file.file, (long) (snd->format.srate + 0.5)); /* Samples per second */
+- writerevlong(snd->u.file.file, (((long) snd->format.srate) * bytes_per_frame)); /* Bytes per second*/
++ writerevlong(snd->u.file.file, (int32) (snd->format.srate + 0.5)); /* Samples per second */
++ writerevlong(snd->u.file.file, (((int32) snd->format.srate) * bytes_per_frame)); /* Bytes per second*/
+ writerevshort(snd->u.file.file, (short) bytes_per_frame); /* Block alignment */
+ writerevshort(snd->u.file.file, (short) snd->format.bits); /* Bits per sample */
+ writerevshort(snd->u.file.file, (short) 0); /* Size of needed extra data */
+ snd_file_write(snd->u.file.file, "data", 4);
+- writerevlong(snd->u.file.file, (long) (nframes * bytes_per_frame));
++ writerevlong(snd->u.file.file, (int32) (nframes * bytes_per_frame));
+ snd->u.file.byte_offset = 46;
+ break;
+ default:
+@@ -1003,7 +1028,7 @@
+
+ void write_sndheader_finish(snd_type snd)
+ {
+- long n;
++ int32 n;
+ switch (snd->u.file.header) {
+ case SND_HEAD_NONE:
+ break;