aboutsummaryrefslogtreecommitdiff
path: root/README.txt
blob: e337790675aa0bb197f7957dc98705c3f43f728a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
==============================================================================
the zexy external
==============================================================================

outline of this file::
==============================================================================
 +  general
 +  installation
   +  linux, irix, OSX,... (autoconf)
   +  w32
 +  using
 +  license


general::
==============================================================================
the zexy external is a collection of externals for miller.s.puckette's 
realtime-computermusic-environment called "puredata" (or abbreviated "pd")
this zexy external will be of no use, if you don't have a running version of 
pd on your system.
check out for http://pd.iem.at to learn more about pd and how to get it 

note: the zexy external is published under the Gnu General Public License 
that is included (GnuGPL.txt). some parts of the code are taken directly 
from the pd source-code, they, of course, fall under the license pd is 
published under.



installation::
==============================================================================

linux, irix, osx, mingw,... :
------------------------------------------------------------------------------
see INSTALL for more detailed instructions

#0> ./autogen.sh
#1> ./configure
#2> make
#3> make install

installation directory:
by defaultm zexy will install into /usr/local/lib/pd/extra/zexy
the path can be changed via the "--prefix", or "--libdir"
e.g. "./configure --prefix=/usr" -> /usr/lib/pd/extra/zexy
e.g. "./configure --libdir=/tmp/foo" -> /tmp/foo/zexy

puredata headers:
zexy needs to find the Pd headers (and Pd.lib on some systems) during the build
process.
if you have installed the headers in a non-standard location, you can specify
them with the "--with-pd" option:
"./configure --with-pd=/usr/include/pd" will add /usr/include/pd to the INCLUDE
path.
"./configure --with-pd=/home/me/src/Pd-0.43.1" can be used to add
/home/me/src/Pd-0.43.1/src to the INCLUDEs and /home/me/src/Pd-0.43.1/bin to the
library search path

custom external extension:
zexy does it's best to determine the correct external extension for your system.
e.g. it will use "dll" on w32, or "pd_linux" on linux.
if - for whatever obscure reasons - you want to force the extension to certain
value, you can use the "--with-extension" flag:
"./configure --with-extension=l_ia64" will use "l_ia64" for the resulting
binaries

SSE2 (SIMD):
by default zexy is compiled without SIMD optimization (recently there have been
reports about crashes, when SSE2 was enabled; until this is fixed, the default
is to use the safe fallback)
if you want to enable SSE2 optimization, configure with
"./configure --enable-simd=SSE2"

multi-object vs single-object libraries:
by default, zexy builds a single library "zexy" that contains all objects.
if - for some obscure reason - you insist on having a lot of small libraries
each containing a single object, you can enable this by using the
"--disable-library" flag

parallel port support:
if you don't want the parallel-port object [lpt] you can disable it with
	"--disable-lpt"
 (e.g.: because you don't have a parallel-port)


fat (multiarch) binaries:
for building multi-arch binaries (currently only supported on OSX), specify the
wanted architectures in the "--enable-fat-binary" flag
e.g. "./configure --enable-fat-binary=i386,ppc --with-extension=d_fat"

win32 :
------------------------------------------------------------------------------

to compile: 
 + w/ MSVC use the build project found in build/win-vs*/
 OR
 + with GCC configure your pd path, eg:
	#> ./configure --prefix=/c/program/pd; make; make install
 OR
 + cross-compilation for windows on linux using mingw (assumes that the 
   crosscompiler is "i586-mingw32msvc-cc")
	#> ./configure --host=i586-mingw32msvc --with-extension=dll \
	   --disable-PIC --with-pd=/path/to/win/pd/
	#> make CFLAGS="-fno-unit-at-a-time"
     notes: configure tries to set the CFLAGS to "-g -O2" if the compiler
            accepts this; however, this optimization sometimes generates 
	    binaries that cannot be loaded by pd; it seems that disabling
	    the "unit-at-a-time" optimization (which gets enabled by "-O2")
	    is the cause of this problem. turning it off might help

making pd run with the zexy external::
==============================================================================
make sure, that pd will be looking at this location 
(add "-path <mypath>/pd/externs" either to your .pdrc or each time 
you execute pd)
make sure, that you somehow load the zexy external (either add "-lib zexy" 
(if you advised pd somehow to look at the correct place) 
or "-lib <myzexypath>/zexy" to your startup-script (.pdrc or whatever) 
or load it via the object "zexy" at runtime

license::
==============================================================================
    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, see <http://www.gnu.org/licenses/>.