From c3764252f3c566cdd0f325eac2401378ab92775f Mon Sep 17 00:00:00 2001 From: Bryan Jurish Date: Sat, 14 Feb 2009 20:34:47 +0000 Subject: + added hello/ : demonstrate use of autotools utilities for Pd externals svn path=/trunk/externals/moocow/; revision=10768 --- hello/Makefile.am | 63 ++++++++++++ hello/README.cvs | 13 +++ hello/README.html | 277 ++++++++++++++++++++++++++++++++++++++++++++++++++ hello/README.pod | 260 ++++++++++++++++++++++++++++++++++++++++++++++ hello/autogen.sh | 1 + hello/configure.ac | 62 +++++++++++ hello/goodbye-help.pd | 6 ++ hello/goodbye.c | 83 +++++++++++++++ hello/hello-help.pd | 6 ++ hello/hello.c | 94 +++++++++++++++++ hello/heynow.pd | 4 + hello/m4 | 1 + hello/mooPdUtils.h | 1 + hello/pdexternal.am | 1 + hello/pod2htmi.tmp | 2 + 15 files changed, 874 insertions(+) create mode 100644 hello/Makefile.am create mode 100644 hello/README.cvs create mode 100644 hello/README.html create mode 100644 hello/README.pod create mode 120000 hello/autogen.sh create mode 100644 hello/configure.ac create mode 100644 hello/goodbye-help.pd create mode 100644 hello/goodbye.c create mode 100644 hello/hello-help.pd create mode 100644 hello/hello.c create mode 100644 hello/heynow.pd create mode 120000 hello/m4 create mode 120000 hello/mooPdUtils.h create mode 120000 hello/pdexternal.am create mode 100644 hello/pod2htmi.tmp diff --git a/hello/Makefile.am b/hello/Makefile.am new file mode 100644 index 0000000..484fe0c --- /dev/null +++ b/hello/Makefile.am @@ -0,0 +1,63 @@ +# File: ./Makefile.am +# Package: hello +# Description: +# + simple automake file for example pd external +# +# Process this file with Automake to create Makefile.in. +#----------------------------------------------------------------------- + +##----------------------------------------------------------------------- +## Options & Subdirectories + +##-- aclocal options (top level only) +ACLOCAL_AMFLAGS = -I m4 + +## --- automake options (top level only) +#AUTOMAKE_OPTIONS = foreign dist-bzip2 dist-zip +AUTOMAKE_OPTIONS = foreign + +## --- recursion subdirectories +#SUBDIRS = config src + +#----------------------------------------------------------------------- +# Includes +#----------------------------------------------------------------------- +include $(top_srcdir)/pdexternal.am + +##----------------------------------------------------------------------- +## Pd Externals: hacked _PROGRAMS +#----------------------------------------------------------------------- + +pdexterns_PROGRAMS = hello +if WANT_OBJECT_EXTERNALS + pdexterns_PROGRAMS += goodbye +endif + +##-- possible single-object externals (as _PROGRAMS) +EXTRA_PROGRAMS = goodbye + +##-- sources +hello_SOURCES = hello.c mooPdUtils.h +goodbye_SOURCES = goodbye.c mooPdUtils.h + +##-- patches +pdexterns_DATA = heynow.pd + +##-- documentation +pddoc_DATA = \ + hello-help.pd \ + goodbye-help.pd + +#----------------------------------------------------------------------- +# Additional Variables & Rules: PODS +#----------------------------------------------------------------------- +PODS = README.pod + +all-local: $(PODS:.pod=.txt) + +##----------------------------------------------------------------------- +## Variables: distribution +#----------------------------------------------------------------------- + +## --- extra distribution files +#EXTRA_DIST += $(PODS:.pod=.txt) diff --git a/hello/README.cvs b/hello/README.cvs new file mode 100644 index 0000000..2a0ee0c --- /dev/null +++ b/hello/README.cvs @@ -0,0 +1,13 @@ +To build from cvs, do the following: + + ./autogen.sh + ./configure + make + make install + +NOTE: The README.txt file in the distribution +is auto-generated from perl ".pod" format by +the "pod2text" included in most perl distributions. + +marmosets, + Bryan diff --git a/hello/README.html b/hello/README.html new file mode 100644 index 0000000..8f0d7a2 --- /dev/null +++ b/hello/README.html @@ -0,0 +1,277 @@ + + + + +DESCRIPTION + + + + + + +

+ + + + + +
+

README for example pd external package 'hello'

+

Last updated for hello v0.01

+

+

+
+

DESCRIPTION

+

The 'hello' package is an example external package intended +to demonstrate one way of using GNU autotools (automake, autoconf, autoheader) +to manage a Pd external distribution.

+

See HOWTO for a developer-oriented introduction.

+

+

+
+

INSTALLATION

+

Issue the following commands to the shell:

+
+   cd PACKAGE-XX.YY  (or wherever you extracted the distribution)
+   ./configure
+   make
+   make install
+

+

+
+

CONFIGURATION OPTIONS

+

The 'configure' script supports the following options, among others:

+ +

+

+
+

HOWTO

+

This section provides a brief developer-oriented description of +how to use GNU autotools to manage your own Pd external package.

+

+

+

Files

+
+
$(top_srcdir)/m4
+ +
+

The directory m4/ should be copied to your top-level package directory. +See ax_pd_external.m4 for details.

+
+
$(top_srcdir)/pdexternal.am
+ +
+

The file pdexternal.am should be copied to your top-level package directory +See pdexternal.am for details.

+
+
$(srcdir)/mooPdUtils.h (optional)
+ +
+

The file mooPdUtils.h may be copied to your source-level directory. +Currently, this only provides a PDEXT_UNUSED macro to avoid annoying +gcc warnings under -W.

+
+
+

+

+

Running aclocal

+

You must pass the ``-I m4'' flag to aclocal when you call it. +For maintainer-mode rebuilding and autoreconf, you should add +the following to your top-level Makefile.am:

+
+ ACLOCAL_AMFLAGS = -I m4
+

See the example package's autogen.sh for a useful wrapper script.

+

+

+

configure.ac

+

You must call the macro AX_PD_EXTERNAL from configure.ac. +Before doing so (and before calling AC_PROG_CC), make sure +that you cache the values of important user flags in shell +variables:

+
+ ##-- save user's CFLAGS,CPPFLAGS
+ UCPPFLAGS="$CPPFLAGS"
+ UCFLAGS="$CFLAGS"
+ ULDFLAGS="$LDFLAGS"
+
+ ##-- Pd external stuff
+ AX_PD_EXTERNAL
+

See the example package's configure.ac for a complete working example.

+

+

+

Makefile.am

+

You probably want to include $(top_srcdir)/pdexternal.am in +your Makefile.am(s). This will allow you to build Pd externals +as ``_PROGRAMS'' targets. In particular, pdext_PROGRAMS targets +will be built as externals and installed in PDEXT_DIR (see above).

+

See the example package's Makefile.am for a complete working example.

+
+
Externals
+ +
+

To build & install the external ``hello.$(PDEXT)'', add the +following to Makefile.am:

+
+ pdexterns_PROGRAMS = hello
+ hello_SOURCES = hello.c mooPdUtils.h
+
+
Abstractions
+ +
+

To install the abstraction ``heynow.pd'', add the +following to Makefile.am:

+
+ pdexterns_DATA = heynow.pd
+
+
Documentation
+ +
+

To install the documentation patch ``hello-help.pd'', add the +following to Makefile.am:

+
+ pddoc_DATA = hello-help.pd
+
+
+

+

+

ax_pd_external.m4

+

The AX_PD_EXTERNAL macro defined in m4/ax_pd_external.m4 +is intended to perform all common autoconf-level +checks and substitutions necessary for building Pd external packages on +various systems. Among other things, this includes:

+ +

See the comments at the top of m4/ax_pd_external.m4 for +more details on the AX_PD_EXTERNAL macro.

+

+

+

pdexternal.am

+

pdexternal.am is intended to be included in your package's Makefile.am. +It redefines the automake EXEEXT to allow building Pd externals using +automake's _PROGRAMS targets. Additionally, it defines the +automake varibles PDEXT, SUFFIXES, EXTRA_DIST, CLEANFILES, DISTCLEANFILES, +and MAINTAINERCLEANFILES.

+

+

+

Multilibs and Single-Object Externals

+

You can use automake's EXTRA_PROGRAMS variable, together +with the pdexterns_PROGRAMS automake target, the automake conditional +WANT_OBJECT_EXTERNALS, and the C preprocessor macro WANT_OBJECT_EXTERNALS +to allow building single-object-externals or multilibs from a single +source distribution.

+

Makefile.am should contain something like:

+
+ ##-- always build these externals
+ pdexterns_PROGRAMS = hello
+
+ ##-- potential single-object externals (as _PROGRAMS)
+ EXTRA_PROGRAMS = goodbye
+
+ ##-- build single-object externals?
+ if WANT_OBJECT_EXTERNALS
+  pdexterns_PROGRAMS += goodbye
+ endif
+

If single-object externals were requested by the user, +then the C preprocessor macro WANT_OBJECT_EXTERNALS will be defined +by autoheader, to allow you to +conditionally #include<> the EXTRA_PROGRAMS sources in your +top-level multilib source file if desired. In the above example, +hello.c might contain:

+
+ #ifdef HAVE_CONFIG_H
+ # include "config.h"
+ #endif
+
+ #ifndef WANT_OBJECT_EXTERNALS
+ /*-- Multilib build: include source for the goodbye external --*/
+ # include "goodbye.c"
+ #endif
+
+ /*... local definitions etc. go here ...*/
+
+ void hello_setup(void)
+ {
+  #ifndef WANT_OBJECT_EXTERNALS
+   goodbye_setup();
+  #endif
+
+  /*... local setup code goes here ...*/
+ }
+

+

+
+

ACKNOWLEDGEMENTS

+

PD by Miller Puckette and others.

+

+

+
+

AUTHOR

+

Bryan Jurish <moocow@ling.uni-potsdam.de>

+ + + + diff --git a/hello/README.pod b/hello/README.pod new file mode 100644 index 0000000..8941f49 --- /dev/null +++ b/hello/README.pod @@ -0,0 +1,260 @@ +=pod + +README for example pd external package 'hello' + +Last updated for hello v0.01 + +=head1 DESCRIPTION + +The 'hello' package is an example external package intended +to demonstrate one way of using GNU autotools (automake, autoconf, autoheader) +to manage a Pd external distribution. + +See L for a developer-oriented introduction. + + +=head1 INSTALLATION + +Issue the following commands to the shell: + + cd PACKAGE-XX.YY (or wherever you extracted the distribution) + ./configure + make + make install + +=head1 CONFIGURATION OPTIONS + +The 'configure' script supports the following options, among others: + +=over 4 + +=item * --help + +Output a brief usage summary of the 'configure' script, +including a list of supported options and influential +environment variables. + +=item * --enable-debug , --disable-debug + +Whether to enable verbose debugging messages. +Default=no. + +=item * --with-pd-dir=PD_DIR + +Set base Pd directory. Default PREFIX/pd + +=item * --with-pd-include=PD_INC + +Where to look for m_pd.h + +=item * --with-pd-extdir=PD_EXTERNS + +Where to install compiled externals. Default: PD_DIR/externs + +=item * --enable-object-externals , --disable-object-externals + +Whether to build single-object externals or only multilibs (default), +for packages which support both. + +=back + + +=head1 HOWTO + +This section provides a brief developer-oriented description of +how to use GNU autotools to manage your own Pd external package. + +=head2 Files + +=over 4 + +=item $(top_srcdir)/m4 + +The directory m4/ should be copied to your top-level package directory. +See L for details. + +=item $(top_srcdir)/pdexternal.am + +The file pdexternal.am should be copied to your top-level package directory +See L for details. + +=item $(srcdir)/mooPdUtils.h (optional) + +The file mooPdUtils.h may be copied to your source-level directory. +Currently, this only provides a PDEXT_UNUSED macro to avoid annoying +gcc warnings under -W. + +=back + + +=head2 Running aclocal + +You must pass the "-I m4" flag to aclocal when you call it. +For maintainer-mode rebuilding and autoreconf, you should add +the following to your top-level Makefile.am: + + ACLOCAL_AMFLAGS = -I m4 + +See the example package's autogen.sh for a useful wrapper script. + + +=head2 configure.ac + +You must call the macro AX_PD_EXTERNAL from configure.ac. +Before doing so (and before calling AC_PROG_CC), make sure +that you cache the values of important user flags in shell +variables: + + ##-- save user's CFLAGS,CPPFLAGS + UCPPFLAGS="$CPPFLAGS" + UCFLAGS="$CFLAGS" + ULDFLAGS="$LDFLAGS" + + ##-- Pd external stuff + AX_PD_EXTERNAL + +See the example package's configure.ac for a complete working example. + + +=head2 Makefile.am + +You probably want to include $(top_srcdir)/pdexternal.am in +your Makefile.am(s). This will allow you to build Pd externals +as "_PROGRAMS" targets. In particular, pdext_PROGRAMS targets +will be built as externals and installed in PDEXT_DIR (see above). + +See the example package's Makefile.am for a complete working example. + +=over 4 + +=item Externals + +To build & install the external "hello.$(PDEXT)", add the +following to Makefile.am: + + pdexterns_PROGRAMS = hello + hello_SOURCES = hello.c mooPdUtils.h + +=item Abstractions + +To install the abstraction "heynow.pd", add the +following to Makefile.am: + + pdexterns_DATA = heynow.pd + +=item Documentation + +To install the documentation patch "hello-help.pd", add the +following to Makefile.am: + + pddoc_DATA = hello-help.pd + +=back + +=cut + +=pod + +=head2 ax_pd_external.m4 + +The AX_PD_EXTERNAL macro defined in m4/ax_pd_external.m4 +is intended to perform all common autoconf-level +checks and substitutions necessary for building Pd external packages on +various systems. Among other things, this includes: + +=over 4 + +=item * + +Providing --with-FEATURE and --enable-FEATURE arguments such as +--with-pd-dir (see L, above). + +=item * + +Defining automake-style "Xdir" variables for easy definition +of package externals, abstractions, and documentation. + +=item * + +Checking for the required header "m_pd.h". + +=item * + +Defining platform-dependent compiler and linker flags for +building Pd externals, and adding these to the relevant +system variables (CPPFLAGS, CFLAGS, LDFLAGS, etc.) + +=back + +See the comments at the top of m4/ax_pd_external.m4 for +more details on the AX_PD_EXTERNAL macro. + + +=head2 pdexternal.am + +pdexternal.am is intended to be included in your package's Makefile.am. +It redefines the automake EXEEXT to allow building Pd externals using +automake's _PROGRAMS targets. Additionally, it defines the +automake varibles PDEXT, SUFFIXES, EXTRA_DIST, CLEANFILES, DISTCLEANFILES, +and MAINTAINERCLEANFILES. + + +=head2 Multilibs and Single-Object Externals + +You can use automake's EXTRA_PROGRAMS variable, together +with the pdexterns_PROGRAMS automake target, the automake conditional +WANT_OBJECT_EXTERNALS, and the C preprocessor macro WANT_OBJECT_EXTERNALS +to allow building single-object-externals or multilibs from a single +source distribution. + +Makefile.am should contain something like: + + ##-- always build these externals + pdexterns_PROGRAMS = hello + + ##-- potential single-object externals (as _PROGRAMS) + EXTRA_PROGRAMS = goodbye + + ##-- build single-object externals? + if WANT_OBJECT_EXTERNALS + pdexterns_PROGRAMS += goodbye + endif + +If single-object externals were requested by the user, +then the C preprocessor macro WANT_OBJECT_EXTERNALS will be defined +by autoheader, to allow you to +conditionally #include<> the EXTRA_PROGRAMS sources in your +top-level multilib source file if desired. In the above example, +hello.c might contain: + + #ifdef HAVE_CONFIG_H + # include "config.h" + #endif + + #ifndef WANT_OBJECT_EXTERNALS + /*-- Multilib build: include source for the goodbye external --*/ + # include "goodbye.c" + #endif + + /*... local definitions etc. go here ...*/ + + void hello_setup(void) + { + #ifndef WANT_OBJECT_EXTERNALS + goodbye_setup(); + #endif + + /*... local setup code goes here ...*/ + } + +=cut + +=pod + +=head1 ACKNOWLEDGEMENTS + +PD by Miller Puckette and others. + +=head1 AUTHOR + +Bryan Jurish Emoocow@ling.uni-potsdam.deE diff --git a/hello/autogen.sh b/hello/autogen.sh new file mode 120000 index 0000000..3fbe8b5 --- /dev/null +++ b/hello/autogen.sh @@ -0,0 +1 @@ +../common/autogen.sh \ No newline at end of file diff --git a/hello/configure.ac b/hello/configure.ac new file mode 100644 index 0000000..fe3ffb0 --- /dev/null +++ b/hello/configure.ac @@ -0,0 +1,62 @@ +dnl Process this file with autoconf to produce a configure script. +dnl -- for a clean build, run: aclocal && autoheader && automake -a && autoconf +AC_PREREQ(2.5) + +##-- Some handy macros +define([THE_PACKAGE_NAME], [hello]) +define([THE_PACKAGE_VERSION], [0.01]) +define([THE_PACKAGE_AUTHOR], [moocow@ling.uni-potsdam.de]) + +AC_INIT(THE_PACKAGE_NAME, THE_PACKAGE_VERSION, THE_PACKAGE_AUTHOR) + +##-- Additional m4 macros +AC_CONFIG_MACRO_DIR(m4) + +##-- source & aux +dnl AC_CONFIG_AUX_DIR(config) +AC_CONFIG_AUX_DIR(.) + +##-- save user's CFLAGS,CPPFLAGS +UCPPFLAGS="$CPPFLAGS" +UCFLAGS="$CFLAGS" +ULDFLAGS="$LDFLAGS" + +##-- use automake, autoheader +AM_INIT_AUTOMAKE(THE_PACKAGE_NAME, THE_PACKAGE_VERSION) +AM_CONFIG_HEADER(config.h) + +##-- Default prefix +AC_PREFIX_DEFAULT(/usr/local) + +dnl ----- maintainer mode +dnl + enables "maintainer mode" only with ./configure --enable-maintainer-mode +dnl - causes make __never__ to invoke 'config/missing' (i.e. any autotools) +dnl - basically a hack to avoid version mismatches in autoconf, automake, etc. +dnl for autobuilds from SVN +dnl + maintainer should call ./configure --enable-maintainer-mode, and must keep +dnl SVN sources consistent +AM_MAINTAINER_MODE +dnl -----/maintainer mode + +##-- other flags (?) +dnl AC_ISC_POSIX + +##vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv +## Pd external checks +AX_PD_EXTERNAL +## /pd external common +##^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +##vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv +## Local: headers +AC_MSG_NOTICE([performing local configuration actions]) +## /local: headers +##^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +##-- local: restore user's CFLAGS (now done by AX_PD_EXTERNAL) +#CFLAGS="$UCFLAGS" +#CPPFLAGS="$UCPPFLAGS" +#LDFLAGS="$ULDFLAGS" + +##-- local: output +AC_OUTPUT(Makefile) diff --git a/hello/goodbye-help.pd b/hello/goodbye-help.pd new file mode 100644 index 0000000..d8ce41f --- /dev/null +++ b/hello/goodbye-help.pd @@ -0,0 +1,6 @@ +#N canvas 80 40 420 146 10; +#X msg 37 47 bang; +#X text 103 47 bang : print a greeting; +#X text 31 7 goodbye : example external; +#X obj 37 80 goodbye; +#X connect 0 0 3 0; diff --git a/hello/goodbye.c b/hello/goodbye.c new file mode 100644 index 0000000..b758035 --- /dev/null +++ b/hello/goodbye.c @@ -0,0 +1,83 @@ +/* -*- Mode: C -*- */ +/*=============================================================================*\ + * File: goodbye.c + * Author: Bryan Jurish + * Description: dummy external for autotools example + * + * Copyright (c) 2009 Bryan Jurish. + * + * For information on usage and redistribution, and for a DISCLAIMER OF ALL + * WARRANTIES, see the file "COPYING", in this distribution. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + *=============================================================================*/ +#include +#include "mooPdUtils.h" + +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +/*===================================================================== + * Constants + *=====================================================================*/ + +/*===================================================================== + * Structures and Types + *=====================================================================*/ +static t_class *goodbye_class; + +typedef struct _goodbye +{ + t_object x_obj; +} t_goodbye; + + +/*-------------------------------------------------------------------- + * new + */ +static void *goodbye_new(void) +{ + t_goodbye *x = (t_goodbye *)pd_new(goodbye_class); + return x; +} + +/*-------------------------------------------------------------------- + * bang + */ +static void goodbye_bang(PDEXT_UNUSED t_goodbye *x) +{ + post("goodbye, Pd!"); +} + +/*===================================================================== + * Setup + *=====================================================================*/ +void goodbye_setup(void) +{ + post(""); + post("goodbye: example external version " PACKAGE_VERSION " by Bryan Jurish"); + post("goodbye: compiled by " PACKAGE_BUILD_USER " on " PACKAGE_BUILD_DATE); + + goodbye_class = class_new(gensym("goodbye"), + (t_newmethod)goodbye_new, + 0, + sizeof(t_goodbye), + CLASS_DEFAULT, + 0); + + //-- help method + class_addmethod(goodbye_class, (t_method)goodbye_bang, gensym("bang"), A_NULL); +} diff --git a/hello/hello-help.pd b/hello/hello-help.pd new file mode 100644 index 0000000..f739083 --- /dev/null +++ b/hello/hello-help.pd @@ -0,0 +1,6 @@ +#N canvas 54 0 420 146 10; +#X obj 37 80 hello; +#X msg 37 47 bang; +#X text 103 47 bang : print a greeting; +#X text 31 7 hello : example external; +#X connect 1 0 0 0; diff --git a/hello/hello.c b/hello/hello.c new file mode 100644 index 0000000..1419619 --- /dev/null +++ b/hello/hello.c @@ -0,0 +1,94 @@ +/* -*- Mode: C -*- */ +/*=============================================================================*\ + * File: hello.c + * Author: Bryan Jurish + * Description: dummy external for autotools example + * + * Copyright (c) 2009 Bryan Jurish. + * + * For information on usage and redistribution, and for a DISCLAIMER OF ALL + * WARRANTIES, see the file "COPYING", in this distribution. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + *=============================================================================*/ +#include +#include "mooPdUtils.h" + +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +/*===================================================================== + * Constants + *=====================================================================*/ + +/*===================================================================== + * Structures and Types + *=====================================================================*/ +static t_class *hello_class; + +typedef struct _hello +{ + t_object x_obj; +} t_hello; + + +/*===================================================================== + * Multilib (see also _setup() method) + *=====================================================================*/ +#ifndef WANT_OBJECT_EXTERNALS +# include "goodbye.c" +#endif + +/*-------------------------------------------------------------------- + * new + */ +static void *hello_new(void) +{ + t_hello *x = (t_hello *)pd_new(hello_class); + return x; +} + +/*-------------------------------------------------------------------- + * bang + */ +static void hello_bang(PDEXT_UNUSED t_hello *x) +{ + post("hello, Pd!"); +} + +/*===================================================================== + * Setup + *=====================================================================*/ +void hello_setup(void) +{ + post(""); + post("hello: example external version " PACKAGE_VERSION " by Bryan Jurish"); + post("hello: compiled by " PACKAGE_BUILD_USER " on " PACKAGE_BUILD_DATE); + + hello_class = class_new(gensym("hello"), + (t_newmethod)hello_new, + 0, + sizeof(t_hello), + CLASS_DEFAULT, + 0); + + //-- help method + class_addmethod(hello_class, (t_method)hello_bang, gensym("bang"), A_NULL); + +#ifndef WANT_OBJECT_EXTERNALS + goodbye_setup(); +#endif +} diff --git a/hello/heynow.pd b/hello/heynow.pd new file mode 100644 index 0000000..5baaf3b --- /dev/null +++ b/hello/heynow.pd @@ -0,0 +1,4 @@ +#N canvas 0 0 450 300 10; +#X obj 100 26 inlet; +#X obj 100 52 print heynow; +#X connect 0 0 1 0; diff --git a/hello/m4 b/hello/m4 new file mode 120000 index 0000000..83ffc0c --- /dev/null +++ b/hello/m4 @@ -0,0 +1 @@ +../common/m4 \ No newline at end of file diff --git a/hello/mooPdUtils.h b/hello/mooPdUtils.h new file mode 120000 index 0000000..677b39d --- /dev/null +++ b/hello/mooPdUtils.h @@ -0,0 +1 @@ +../common/mooPdUtils.h \ No newline at end of file diff --git a/hello/pdexternal.am b/hello/pdexternal.am new file mode 120000 index 0000000..914f4be --- /dev/null +++ b/hello/pdexternal.am @@ -0,0 +1 @@ +../common/pdexternal.am \ No newline at end of file diff --git a/hello/pod2htmi.tmp b/hello/pod2htmi.tmp new file mode 100644 index 0000000..61e86d9 --- /dev/null +++ b/hello/pod2htmi.tmp @@ -0,0 +1,2 @@ + +. -- cgit v1.2.1