diff --git a/audio/Makefile b/audio/Makefile index 0dbbc1858cc7..b6091934a0a9 100644 --- a/audio/Makefile +++ b/audio/Makefile @@ -169,6 +169,7 @@ SUBDIR += p5-Shout SUBDIR += p5-Xmms SUBDIR += p5-tagged + SUBDIR += pd SUBDIR += pimp3 SUBDIR += play SUBDIR += playmidi diff --git a/audio/pd/Makefile b/audio/pd/Makefile new file mode 100644 index 000000000000..572aa5eb87dc --- /dev/null +++ b/audio/pd/Makefile @@ -0,0 +1,88 @@ +# New ports collection makefile for: pd +# Date created: 2002-05-24 +# Whom: trevor +# +# $FreeBSD$ +# + +PORTNAME= pd +PORTVERSION= 0.35.23 +CATEGORIES= audio +MASTER_SITES= http://www-crca.ucsd.edu/~msp/Software/ +DISTNAME= pd-0.35-test23.linux + +MAINTAINER= trevor@FreeBSD.org + +LIB_DEPENDS= tcl83:${PORTSDIR}/lang/tcl83 \ + tk83:${PORTSDIR}/x11-toolkits/tk83 + +GNU_CONFIGURE= yes +CONFIGURE_ENV= CFLAGS="${CFLAGS} ${PTHREAD_CFLAGS}" \ + LIBS="${PTHREAD_LIBS} -L${LOCALBASE}/lib -ltk83 -ltcl83" +MAKEFILE= makefile +MAN1= pd.1 pdreceive.1 pdsend.1 +PATCH_WRKSRC= ${WRKSRC}/.. +PLIST= ${WRKDIR}/pkg-plist +USE_GMAKE= yes +USE_X_PREFIX= yes +WRKSRC= ${WRKDIR}/pd-0.35-test23/src + +pre-patch: + ${CP} ${WRKSRC}/s_linux.c ${WRKSRC}/s_freebsd.c + +post-patch: + ${FIND} ${WRKDIR} -type f -name '*.c' -exec ${PERL} -pi -e \ + "s:malloc.h:stdlib.h:g" {} \; + +pre-configure: + ${CHMOD} +x ${WRKSRC}/${CONFIGURE_SCRIPT} + +post-configure: + ${PERL} -pi -e \ +"s:^INCLUDE = :INCLUDE = -I${LOCALBASE}/include/tk8.3 -I${LOCALBASE}/include/tcl8.3 -I${X11BASE}/include :g; s:^LIB =:LIB =${PTHREAD_LIBS}:g; s:^CFLAGS =:CFLAGS+=${PTHREAD_CFLAGS}:g" \ + ${WRKSRC}/makefile + +pre-install: + ${RM} -f ${PLIST} +.for ii in pd pd-gui pd-watchdog pd.tk pdreceive pdsend + ${ECHO_CMD} bin/${ii} >> ${PLIST} +.endfor + ${ECHO_CMD} include/m_pd.h >> ${PLIST} +.if !defined(NOPORTDOCS) +.for ii in LICENSE README + ${ECHO_CMD} share/doc/pd/${ii}.txt >> ${PLIST} +.endfor + cd ${WRKSRC}/../doc && ${FIND} -s . -type f | \ + ${CUT} -c3-999 | \ + ${SED} -e 's:^:share/doc/pd/:' >> ${PLIST} \ + && ${FIND} -d . -type d | \ + ${CUT} -c3-999 | \ + ${SED} -e 's:^:@dirrm share/doc/pd/:' >> ${PLIST} + cd ${WRKSRC}/../extra && ${FIND} -s . -type f -or -type l | \ + ${CUT} -c3-999 | \ + ${SED} -e 's:^:share/pd/:' >> ${PLIST} \ + && ${FIND} -d . -type d | \ + ${CUT} -c3-999 | \ + ${SED} -e 's:^:@dirrm share/pd/:' >> ${PLIST} +.endif + +do-install: +.for ii in pd pd-gui pd-watchdog pdreceive pdsend + ${INSTALL_PROGRAM} ${WRKSRC}/../bin/${ii} ${PREFIX}/bin +.endfor + ${INSTALL_DATA} ${WRKSRC}/../bin/pd.tk ${PREFIX}/bin + ${INSTALL_DATA} ${WRKSRC}/m_pd.h ${PREFIX}/include +.if !defined(NOPORTDOCS) + ${MKDIR} ${DOCSDIR} +.for ii in LICENSE README + ${INSTALL_DATA} ${WRKSRC}/../${ii}.txt ${DOCSDIR} +.endfor + cd ${WRKSRC}/../doc && pax -r -w * ${DOCSDIR} +.endif +.for ii in pd pdreceive pdsend + ${INSTALL_MAN} ${WRKSRC}/../man/${ii}.1 ${PREFIX}/man/man1/ +.endfor + ${MKDIR} ${DATADIR} + cd ${WRKSRC}/../extra && pax -r -w * ${DATADIR} + +.include diff --git a/audio/pd/distinfo b/audio/pd/distinfo new file mode 100644 index 000000000000..fc506caeb54b --- /dev/null +++ b/audio/pd/distinfo @@ -0,0 +1 @@ +MD5 (pd-0.35-test23.linux.tar.gz) = 99c240b5dd0680f92f873fb7785b3965 diff --git a/audio/pd/files/patch-extra_fiddle~_fiddle~.c b/audio/pd/files/patch-extra_fiddle~_fiddle~.c new file mode 100644 index 000000000000..6158d457d4eb --- /dev/null +++ b/audio/pd/files/patch-extra_fiddle~_fiddle~.c @@ -0,0 +1,13 @@ +--- extra/fiddle~/fiddle~.c.orig Mon Apr 15 15:52:45 2002 ++++ extra/fiddle~/fiddle~.c Fri May 24 23:12:27 2002 +@@ -40,9 +40,7 @@ This file is downloadable from http://ww + #define fexp exp + #define fsqrt sqrt + #pragma warning (disable: 4305 4244) +-#endif +- +-#if (defined(__linux__) || defined(MACOSX)) ++#else + #define flog log + #define fexp exp + #define fsqrt sqrt diff --git a/audio/pd/files/patch-extra_paf~_paf~.c b/audio/pd/files/patch-extra_paf~_paf~.c new file mode 100644 index 000000000000..901afc5f68aa --- /dev/null +++ b/audio/pd/files/patch-extra_paf~_paf~.c @@ -0,0 +1,23 @@ +--- extra/paf~/paf~.c.orig Wed Mar 6 18:58:30 2002 ++++ extra/paf~/paf~.c Fri May 24 23:15:15 2002 +@@ -161,6 +161,20 @@ static void linenv_set(t_linenv *l, floa + #define DONE_MACHINE_TYPE + #endif /* MACOSX */ + ++#ifdef __FreeBSD__ ++#include ++#if BYTE_ORDER == LITTLE_ENDIAN ++#define HIOFFSET 1 ++#define LOWOFFSET 0 ++#else ++#define HIOFFSET 0 /* word offset to find MSB */ ++#define LOWOFFSET 1 /* word offset to find LSB */ ++#endif /* BYTE_ORDER */ ++#include ++#define int32 int32_t ++#define DONE_MACHINE_TYPE ++#endif /* __FreeBSD__ */ ++ + #ifdef __linux__ + + #include diff --git a/audio/pd/files/patch-src_configure b/audio/pd/files/patch-src_configure new file mode 100644 index 000000000000..90a50b9feb35 --- /dev/null +++ b/audio/pd/files/patch-src_configure @@ -0,0 +1,19 @@ +--- src/configure.orig Thu Apr 25 19:16:29 2002 ++++ src/configure Fri May 24 23:12:20 2002 +@@ -2655,6 +2655,16 @@ fi + + + ++if test `uname -s` = FreeBSD; ++then ++ LDFLAGS="-Wl,-export-dynamic" ++ EXT=pd_freebsd ++ MORECFLAGS=-DDL_OPEN ++ SYSSRC=s_freebsd.c ++ STRIPFLAG=-s ++ GUINAME="pd-gui" ++ OSNUMBER=0 ++fi + + if test `uname -s` = Linux; + then diff --git a/audio/pd/files/patch-src_d_array.c b/audio/pd/files/patch-src_d_array.c new file mode 100644 index 000000000000..2428de3d7a50 --- /dev/null +++ b/audio/pd/files/patch-src_d_array.c @@ -0,0 +1,22 @@ +--- src/d_array.c.orig Fri Nov 16 23:57:20 2001 ++++ src/d_array.c Fri May 24 23:12:22 2002 +@@ -508,6 +508,19 @@ static void tabread4_tilde_setup(void) + #define LOWOFFSET 0 + #define int32 long + #else ++#ifdef __FreeBSD__ ++#include ++#if BYTE_ORDER == LITTLE_ENDIAN ++#define HIOFFSET 1 ++#define LOWOFFSET 0 ++#else ++#define HIOFFSET 0 /* word offset to find MSB */ ++#define LOWOFFSET 1 /* word offset to find LSB */ ++#endif /* BYTE_ORDER */ ++#include ++#define int32 int32_t ++#endif ++ + #ifdef __linux__ + #include + #if !defined(__BYTE_ORDER) || !defined(__LITTLE_ENDIAN) diff --git a/audio/pd/files/patch-src_d_osc.c b/audio/pd/files/patch-src_d_osc.c new file mode 100644 index 000000000000..1ff58bb0ffca --- /dev/null +++ b/audio/pd/files/patch-src_d_osc.c @@ -0,0 +1,21 @@ +--- src/d_osc.c.orig Fri Nov 16 23:57:14 2001 ++++ src/d_osc.c Fri May 24 23:12:26 2002 +@@ -24,6 +24,18 @@ + #define LOWOFFSET 0 + #define int32 long + #else ++#ifdef __FreeBSD__ ++#include ++#if BYTE_ORDER == LITTLE_ENDIAN ++#define HIOFFSET 1 ++#define LOWOFFSET 0 ++#else ++#define HIOFFSET 0 /* word offset to find MSB */ ++#define LOWOFFSET 1 /* word offset to find LSB */ ++#endif /* BYTE_ORDER */ ++#include ++#define int32 int32_t ++#endif + #ifdef __linux__ + + #include diff --git a/audio/pd/files/patch-src_s_freebsd.c b/audio/pd/files/patch-src_s_freebsd.c new file mode 100644 index 000000000000..468fbb2d6903 --- /dev/null +++ b/audio/pd/files/patch-src_s_freebsd.c @@ -0,0 +1,30 @@ +--- src/s_freebsd.c.orig Fri May 24 23:12:24 2002 ++++ src/s_freebsd.c Fri May 24 23:12:23 2002 +@@ -32,7 +32,7 @@ + * 1311:forum::für::umläute:2001 + */ + +-#include ++#include + + #if (defined(ALSA01) || defined(ALSA99)) + #define ALSA +@@ -865,7 +865,8 @@ + } + else + { +- wantformat = AFMT_S16_NE; ++/* FreeBSD's soundcard.h does not define AFMT_S16_NE */ ++ wantformat = AFMT_S16_BE; + dev->d_bytespersamp = 2; + } + param = wantformat; +@@ -2747,7 +2748,7 @@ + + /* use ctrlpanel to change, experiment, channels 1 */ + +- orig = param = AFMT_S16_NE; ++ orig = param = AFMT_S16_BE; + if (ioctl(fd,SNDCTL_DSP_SETFMT,¶m) == -1) + fprintf(stderr,"RME9652: Could not set DSP format\n"); + else if( orig != param ) diff --git a/audio/pd/files/patch-src_s_loader.c b/audio/pd/files/patch-src_s_loader.c new file mode 100644 index 000000000000..e41f26a7db2e --- /dev/null +++ b/audio/pd/files/patch-src_s_loader.c @@ -0,0 +1,12 @@ +--- src/s_loader.c.orig Wed Mar 6 18:58:30 2002 ++++ src/s_loader.c Fri May 24 23:12:25 2002 +@@ -23,6 +23,9 @@ + typedef void (*t_xxx)(void); + + static char sys_dllextent[] = ++#ifdef __FreeBSD__ ++ ".pd_freebsd"; ++#endif + #ifdef IRIX + #ifdef N32 + ".pd_irix6"; diff --git a/audio/pd/files/patch-src_x_misc.c b/audio/pd/files/patch-src_x_misc.c new file mode 100644 index 000000000000..49075dd72d5f --- /dev/null +++ b/audio/pd/files/patch-src_x_misc.c @@ -0,0 +1,19 @@ +--- src/x_misc.c.orig Fri Nov 16 23:56:31 2001 ++++ src/x_misc.c Fri May 24 23:12:26 2002 +@@ -10,6 +10,7 @@ + #include + #ifdef UNIX + #include ++#include + #include + #include + #endif +@@ -18,7 +19,7 @@ + #include + #endif + +-#ifdef MACOSX ++#if defined (MACOSX) || defined (__FreeBSD__) + #define HZ CLK_TCK + #endif + diff --git a/audio/pd/pkg-comment b/audio/pd/pkg-comment new file mode 100644 index 000000000000..3e008c05bcaa --- /dev/null +++ b/audio/pd/pkg-comment @@ -0,0 +1 @@ +Pure Data, a MIDI-capable real-time audio processor/synthesizer diff --git a/audio/pd/pkg-descr b/audio/pd/pkg-descr new file mode 100644 index 000000000000..15ea5c428b9c --- /dev/null +++ b/audio/pd/pkg-descr @@ -0,0 +1,13 @@ +from the documentation: + + Pd is a real-time graphical programming environment for audio and + graphical processing. It resembles the Max/MSP system but is much + simpler and more portable; also Pd has two features not (yet) showing + up in Max/MSP: first, via Mark Dank's GEM package, Pd can be used + for simultaneous computer animation and computer audio. Second, an + experimental facility is provided for defining and accessing data + structures. + +WWW: http://www-crca.ucsd.edu/~msp/software.html + +Also see the unofficial Web site at http://pure-data.org/.