diff options
author | Bryan Jurish <mukau@users.sourceforge.net> | 2009-02-14 20:34:47 +0000 |
---|---|---|
committer | Bryan Jurish <mukau@users.sourceforge.net> | 2009-02-14 20:34:47 +0000 |
commit | c3764252f3c566cdd0f325eac2401378ab92775f (patch) | |
tree | b6b0563c459d192c7b1910b8a591e0c481fbe2c0 /hello | |
parent | 4f69b08833151fab744e64a16ae8016a123fa929 (diff) |
+ added hello/ : demonstrate use of autotools utilities for Pd externals
svn path=/trunk/externals/moocow/; revision=10768
Diffstat (limited to 'hello')
-rw-r--r-- | hello/Makefile.am | 63 | ||||
-rw-r--r-- | hello/README.cvs | 13 | ||||
-rw-r--r-- | hello/README.html | 277 | ||||
-rw-r--r-- | hello/README.pod | 260 | ||||
l--------- | hello/autogen.sh | 1 | ||||
-rw-r--r-- | hello/configure.ac | 62 | ||||
-rw-r--r-- | hello/goodbye-help.pd | 6 | ||||
-rw-r--r-- | hello/goodbye.c | 83 | ||||
-rw-r--r-- | hello/hello-help.pd | 6 | ||||
-rw-r--r-- | hello/hello.c | 94 | ||||
-rw-r--r-- | hello/heynow.pd | 4 | ||||
l--------- | hello/m4 | 1 | ||||
l--------- | hello/mooPdUtils.h | 1 | ||||
l--------- | hello/pdexternal.am | 1 | ||||
-rw-r--r-- | hello/pod2htmi.tmp | 2 |
15 files changed, 874 insertions, 0 deletions
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 @@ +<?xml version="1.0" ?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<title>DESCRIPTION</title> +<meta http-equiv="content-type" content="text/html; charset=utf-8" /> +<link rev="made" href="mailto:root@localhost" /> +</head> + +<body style="background-color: white"> + +<p><a name="__index__"></a></p> +<!-- INDEX BEGIN --> + +<ul> + + <li><a href="#description">DESCRIPTION</a></li> + <li><a href="#installation">INSTALLATION</a></li> + <li><a href="#configuration_options">CONFIGURATION OPTIONS</a></li> + <li><a href="#howto">HOWTO</a></li> + <ul> + + <li><a href="#files">Files</a></li> + <li><a href="#running_aclocal">Running aclocal</a></li> + <li><a href="#configure_ac">configure.ac</a></li> + <li><a href="#makefile_am">Makefile.am</a></li> + <li><a href="#ax_pd_external_m4">ax_pd_external.m4</a></li> + <li><a href="#pdexternal_am">pdexternal.am</a></li> + <li><a href="#multilibs_and_singleobject_externals">Multilibs and Single-Object Externals</a></li> + </ul> + + <li><a href="#acknowledgements">ACKNOWLEDGEMENTS</a></li> + <li><a href="#author">AUTHOR</a></li> +</ul> +<!-- INDEX END --> + +<hr /> +<p>README for example pd external package 'hello'</p> +<p>Last updated for hello v0.01</p> +<p> +</p> +<hr /> +<h1><a name="description">DESCRIPTION</a></h1> +<p>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.</p> +<p>See <a href="#howto">HOWTO</a> for a developer-oriented introduction.</p> +<p> +</p> +<hr /> +<h1><a name="installation">INSTALLATION</a></h1> +<p>Issue the following commands to the shell:</p> +<pre> + cd PACKAGE-XX.YY (or wherever you extracted the distribution) + ./configure + make + make install</pre> +<p> +</p> +<hr /> +<h1><a name="configuration_options">CONFIGURATION OPTIONS</a></h1> +<p>The 'configure' script supports the following options, among others:</p> +<ul> +<li><strong><a name="item__2d_2dhelp">--help</a></strong> + +<p>Output a brief usage summary of the 'configure' script, +including a list of supported options and influential +environment variables.</p> +</li> +<li><strong><a name="item__2d_2denable_2ddebug__2c__2d_2ddisable_2ddebug">--enable-debug , --disable-debug</a></strong> + +<p>Whether to enable verbose debugging messages. +Default=no.</p> +</li> +<li><strong><a name="item__2d_2dwith_2dpd_2ddir_3dpd_dir">--with-pd-dir=PD_DIR</a></strong> + +<p>Set base Pd directory. Default PREFIX/pd</p> +</li> +<li><strong><a name="item__2d_2dwith_2dpd_2dinclude_3dpd_inc">--with-pd-include=PD_INC</a></strong> + +<p>Where to look for m_pd.h</p> +</li> +<li><strong><a name="item__2d_2dwith_2dpd_2dextdir_3dpd_externs">--with-pd-extdir=PD_EXTERNS</a></strong> + +<p>Where to install compiled externals. Default: PD_DIR/externs</p> +</li> +<li><strong><a name="item__2d_2denable_2dobject_2dexternals__2c__2d_2ddisabl">--enable-object-externals , --disable-object-externals</a></strong> + +<p>Whether to build single-object externals or only multilibs (default), +for packages which support both.</p> +</li> +</ul> +<p> +</p> +<hr /> +<h1><a name="howto">HOWTO</a></h1> +<p>This section provides a brief developer-oriented description of +how to use GNU autotools to manage your own Pd external package.</p> +<p> +</p> +<h2><a name="files">Files</a></h2> +<dl> +<dt><strong><a name="item___top_srcdir__m4">$(top_srcdir)/m4</a></strong></dt> + +<dd> +<p>The directory m4/ should be copied to your top-level package directory. +See <a href="#ax_pd_external_m4">ax_pd_external.m4</a> for details.</p> +</dd> +<dt><strong><a name="item___top_srcdir__pdexternal_am">$(top_srcdir)/pdexternal.am</a></strong></dt> + +<dd> +<p>The file pdexternal.am should be copied to your top-level package directory +See <a href="#pdexternal_am">pdexternal.am</a> for details.</p> +</dd> +<dt><strong><a name="item_h">$(srcdir)/mooPdUtils.h (optional)</a></strong></dt> + +<dd> +<p>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.</p> +</dd> +</dl> +<p> +</p> +<h2><a name="running_aclocal">Running aclocal</a></h2> +<p>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:</p> +<pre> + ACLOCAL_AMFLAGS = -I m4</pre> +<p>See the example package's autogen.sh for a useful wrapper script.</p> +<p> +</p> +<h2><a name="configure_ac">configure.ac</a></h2> +<p>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:</p> +<pre> + ##-- save user's CFLAGS,CPPFLAGS + UCPPFLAGS="$CPPFLAGS" + UCFLAGS="$CFLAGS" + ULDFLAGS="$LDFLAGS"</pre> +<pre> + ##-- Pd external stuff + AX_PD_EXTERNAL</pre> +<p>See the example package's configure.ac for a complete working example.</p> +<p> +</p> +<h2><a name="makefile_am">Makefile.am</a></h2> +<p>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).</p> +<p>See the example package's Makefile.am for a complete working example.</p> +<dl> +<dt><strong><a name="item_externals">Externals</a></strong></dt> + +<dd> +<p>To build & install the external ``hello.$(PDEXT)'', add the +following to Makefile.am:</p> +<pre> + pdexterns_PROGRAMS = hello + hello_SOURCES = hello.c mooPdUtils.h</pre> +</dd> +<dt><strong><a name="item_abstractions">Abstractions</a></strong></dt> + +<dd> +<p>To install the abstraction ``heynow.pd'', add the +following to Makefile.am:</p> +<pre> + pdexterns_DATA = heynow.pd</pre> +</dd> +<dt><strong><a name="item_documentation">Documentation</a></strong></dt> + +<dd> +<p>To install the documentation patch ``hello-help.pd'', add the +following to Makefile.am:</p> +<pre> + pddoc_DATA = hello-help.pd</pre> +</dd> +</dl> +<p> +</p> +<h2><a name="ax_pd_external_m4">ax_pd_external.m4</a></h2> +<p>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:</p> +<ul> +<li> +<p>Providing --with-FEATURE and --enable-FEATURE arguments such as +--with-pd-dir (see <a href="#configuration_options">CONFIGURATION OPTIONS</a>, above).</p> +</li> +<li> +<p>Defining automake-style ``Xdir'' variables for easy definition +of package externals, abstractions, and documentation.</p> +</li> +<li> +<p>Checking for the required header ``m_pd.h''.</p> +</li> +<li> +<p>Defining platform-dependent compiler and linker flags for +building Pd externals, and adding these to the relevant +system variables (CPPFLAGS, CFLAGS, LDFLAGS, etc.)</p> +</li> +</ul> +<p>See the comments at the top of m4/ax_pd_external.m4 for +more details on the AX_PD_EXTERNAL macro.</p> +<p> +</p> +<h2><a name="pdexternal_am">pdexternal.am</a></h2> +<p>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.</p> +<p> +</p> +<h2><a name="multilibs_and_singleobject_externals">Multilibs and Single-Object Externals</a></h2> +<p>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.</p> +<p>Makefile.am should contain something like:</p> +<pre> + ##-- always build these externals + pdexterns_PROGRAMS = hello</pre> +<pre> + ##-- potential single-object externals (as _PROGRAMS) + EXTRA_PROGRAMS = goodbye</pre> +<pre> + ##-- build single-object externals? + if WANT_OBJECT_EXTERNALS + pdexterns_PROGRAMS += goodbye + endif</pre> +<p>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:</p> +<pre> + #ifdef HAVE_CONFIG_H + # include "config.h" + #endif</pre> +<pre> + #ifndef WANT_OBJECT_EXTERNALS + /*-- Multilib build: include source for the goodbye external --*/ + # include "goodbye.c" + #endif</pre> +<pre> + /*... local definitions etc. go here ...*/</pre> +<pre> + void hello_setup(void) + { + #ifndef WANT_OBJECT_EXTERNALS + goodbye_setup(); + #endif</pre> +<pre> + /*... local setup code goes here ...*/ + }</pre> +<p> +</p> +<hr /> +<h1><a name="acknowledgements">ACKNOWLEDGEMENTS</a></h1> +<p>PD by Miller Puckette and others.</p> +<p> +</p> +<hr /> +<h1><a name="author">AUTHOR</a></h1> +<p>Bryan Jurish <<a href="mailto:moocow@ling.uni-potsdam.de">moocow@ling.uni-potsdam.de</a>></p> + +</body> + +</html> 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</"HOWTO"> 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</"ax_pd_external.m4"> for details. + +=item $(top_srcdir)/pdexternal.am + +The file pdexternal.am should be copied to your top-level package directory +See L</"pdexternal.am"> 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</"CONFIGURATION OPTIONS">, 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 E<lt>moocow@ling.uni-potsdam.deE<gt> 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 <moocow@ling.uni-potsdam.de> + * 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 <m_pd.h> +#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 <moocow@ling.uni-potsdam.de> + * 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 <m_pd.h> +#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 @@ + +. |