1 #==============================================================================#
3 # Centralized cross-platform build system
5 # see for instructions: http://puredata.org/docs/developer/build
8 #==============================================================================#
12 cvs_root_dir
:= $(shell cd
$(CWD
)/..
&& pwd
)
13 DESTDIR
= $(CWD
)/build
14 BUILDLAYOUT_DIR
= $(CWD
)
18 all: pd abstractions doc gem externals
19 @echo
"Complete build succeeded!"
21 include $(BUILDLAYOUT_DIR
)/Makefile.buildlayout
23 #==============================================================================#
25 # GET VERSIONS FOR RELEVANT SOFTWARE
27 #==============================================================================#
30 CYCLONE_MAJOR_VERSION
:= $(shell grep CYCLONE_VERSION \
31 $(externals_src
)/miXed
/cyclone
/build_counter | cut
-d
' ' -f
3 | \
33 CYCLONE_RELEASE
:= $(shell grep CYCLONE_RELEASE \
34 $(externals_src
)/miXed
/cyclone
/build_counter | cut
-d
' ' -f
3 | \
36 CYCLONE_BUILD
:= $(shell grep CYCLONE_BUILD \
37 $(externals_src
)/miXed
/cyclone
/build_counter | cut
-d
' ' -f
3 | \
39 CYCLONE_VERSION
:= $(CYCLONE_MAJOR_VERSION
) $(CYCLONE_RELEASE
) $(CYCLONE_BUILD
)
42 GEM_VERSION
:= $(shell grep
"GEM_VERSION" $(gem_src
)/src
/Base
/GemVersion.h | \
43 sed
-n
's|.*GEM_VERSION = "\(.*\)".*|\1|p')
45 MAXLIB_VERSION
:= $(shell grep
"define VERSION" \
46 $(externals_src
)/maxlib
/maxlib.c | cut
-d
'"' -f
2)
48 OSC_VERSION
:= $(shell grep
"define VERSION" $(externals_src
)/OSCx
/src
/OSC.c | \
51 PDP_VERSION
:= $(shell grep PDP_VERSION
= $(externals_src
)/pdp
/configure.ac | \
54 PIDIP_VERSION
:= $(shell grep _VERSION
= $(externals_src
)/pidip
/configure.ac | \
57 PMPD_VERSION
:= $(shell grep
"define VERSION" \
58 $(externals_src
)/pmpd
/src
/pmpd.c | cut
-d
'"' -f
2)
61 TOXY_MAJOR_VERSION
:= $(shell grep TOXY_VERSION \
62 $(externals_src
)/miXed
/toxy
/build_counter | cut
-d
' ' -f
3 | \
64 TOXY_RELEASE
:= $(shell grep TOXY_RELEASE \
65 $(externals_src
)/miXed
/toxy
/build_counter | cut
-d
' ' -f
3 | \
67 TOXY_BUILD
:= $(shell grep TOXY_BUILD \
68 $(externals_src
)/miXed
/toxy
/build_counter | cut
-d
' ' -f
3 | \
70 TOXY_VERSION
:= $(TOXY_MAJOR_VERSION
) $(TOXY_RELEASE
) $(TOXY_BUILD
)
73 ZEXY_VERSION
:= $(shell grep VERSION
$(externals_src
)/zexy
/src
/zexy.h | \
74 grep
-v _VERSION | cut
-d
' ' -f
3 | cut
-d
'"' -f
2)
77 # these are sent to all of the various Makefiles so that they all copy their
78 # output to the same directory tree
79 DEST_PATHS
= BUILDLAYOUT_DIR
=$(BUILDLAYOUT_DIR
) \
80 cvs_root_dir
=$(cvs_root_dir
) \
83 libpddir
=$(libpddir
) \
84 OPT_CFLAGS
="$(OPT_CFLAGS)" \
88 #==============================================================================#
92 #==============================================================================#
94 #------------------------------------------------------------------------------
99 #------------------------------------------------------------------------------
104 #------------------------------------------------------------------------------
107 $(MAKE
) -C
$(externals_src
) $(DEST_PATHS
)
110 #------------------------------------------------------------------------------
113 ifeq ($(OS_NAME
),darwin
)
114 PD_CONFIGURE_FLAGS
= --enable-jack
116 ifeq ($(OS_NAME
),linux
)
117 PD_CONFIGURE_FLAGS
= --enable-jack
--enable-alsa
125 HAVE_AUTOGEN_SH
:= $(wildcard $(pd_src
)/autogen.sh
)
126 # test for the new build system
127 ifeq (autogen.sh
, $(findstring autogen.sh
,$(HAVE_AUTOGEN_SH
)))
128 #----------------------------------------------------------------------------#
129 # new autotools build system
133 && .
/configure
$(PD_CONFIGURE_FLAGS
) \
134 && make
$(DEST_PATHS
) $(PD_BUILD_FLAGS
)
138 $(MAKE
) -C
$(pd_src
) $(DEST_PATHS
) $(PD_BUILD_FLAGS
) install
139 install -d
$(DESTDIR
)$(manualsdir
)/$(PD_NAME
)
140 install -p
$(pd_src
)/src
/notes.txt
$(DESTDIR
)$(manualsdir
)/$(PD_NAME
)
142 #----------------------------------------------------------------------------#
144 PD_AUTOCONF
= autoconf
145 $(pd_src
)/src
/configure
: $(pd_src
)/src
/configure.in
146 cd
$(pd_src
)/src
/ && \
147 if
[ -f acinclude.m4
] ; then aclocal
; fi
&& \
149 if grep
-q AC_CONFIG_HEADERS configure.in
; then autoheader
; fi
151 # this is not used yet because MinGW doesn't use ./configure && make yet
152 #$(pd_src)/src/makefile: $(pd_src)/src/makefile.in
153 # cd $(pd_src)/src/ && ./configure $(PD_CONFIGURE_FLAGS)
155 # this line has the "-" to support the current makefile.mingw hack
156 pd
: $(pd_src
)/src
/configure set_version
157 -cd
$(pd_src
)/src
&& .
/configure
$(PD_CONFIGURE_FLAGS
) && \
158 make OPT_CFLAGS
="" depend
&& \
159 make
$(DEST_PATHS
) $(PD_BUILD_FLAGS
)
163 $(MAKE
) -C
$(pd_src
)/src
$(DEST_PATHS
) $(PD_BUILD_FLAGS
) install
164 install -d
$(DESTDIR
)$(manualsdir
)/$(PD_NAME
)
165 install -p
$(pd_src
)/src
/notes.txt
$(DESTDIR
)$(manualsdir
)/$(PD_NAME
)
170 #==============================================================================#
174 #==============================================================================#
176 # this is used for installing into a pre-build Pd binary
177 extended_install
: abstractions_install doc_install \
178 gem_install externals_install readme_install welcome_install \
179 license_install noncvs_install
182 #------------------------------------------------------------------------------
184 install: pd_install extended_install
185 @echo
"Complete install succeeded!"
187 #------------------------------------------------------------------------------
189 devel_install
: pd_devel_install
190 @echo
"Complete install succeeded!"
192 #------------------------------------------------------------------------------
193 # abstractions_install
194 abstractions_install
:
195 $(MAKE
) -C
$(abstractions_src
) $(DEST_PATHS
) install
197 #------------------------------------------------------------------------------
200 $(MAKE
) -C
$(doc_src
) $(DEST_PATHS
) install
203 #------------------------------------------------------------------------------
206 $(MAKE
) -C
$(extensions_src
) $(DEST_PATHS
) install
209 #------------------------------------------------------------------------------
212 $(MAKE
) -C
$(externals_src
) $(DEST_PATHS
) install
215 #------------------------------------------------------------------------------
218 $(gem_src
)/src
/configure
:
219 cd
$(gem_src
)/src
&& .
/autogen.sh
221 $(gem_src
)/src
/Gem.dll
: $(gem_src
)/src
/configure
223 $(gem_src
)/src
/Gem.pd_linux
: $(gem_src
)/src
/configure
224 cd
$(gem_src
)/src
&& .
/configure \
225 --without-ffmpeg
--with-pd
=$(pd_src
) --disable-NV
226 $(MAKE
) -C
$(gem_src
)/src
228 $(gem_src
)/src
/Gem.pd_darwin
: $(gem_src
)/src
/configure
229 cd
$(gem_src
)/src
&& .
/configure \
230 PKG_FTGL_CFLAGS
=-I
/sw
/include/freetype2 \
231 --without-x
--without-ImageMagick
--without-v4l \
232 --without-tiff
--without-jpeg
--without-mpeg
--without-mpeg3 \
233 --without-ieee1394
--without-aviplay
--without-avifile
--without-ffmpeg \
234 --with-ftgl-includes
=/sw
/include/FTGL
--with-ftgl-libs
=/sw
/lib \
235 --with-artoolkit-includes
=/sw
/include --with-artoolkit-libs
=/sw
/lib \
237 $(MAKE
) -C
$(gem_src
)/src
239 gem
: $(gem_src
)/src
/Gem.
$(EXTENSION
)
241 gem_install
: gem
$(helpdir
)
242 install -d
$(DESTDIR
)$(helpdir
)/$(GEM_NAME
)
243 install -p
$(gem_src
)/help
/*.
* $(DESTDIR
)$(helpdir
)/$(GEM_NAME
)
244 install -p
$(gem_src
)/abstractions
/*-help.pd
$(DESTDIR
)$(helpdir
)/$(GEM_NAME
)
245 install -d
$(DESTDIR
)$(objectsdir
)/$(GEM_NAME
)
246 ifneq ($(OS_NAME
),windows
)
247 install -p
$(gem_src
)/src
/Gem.
$(EXTENSION
) $(DESTDIR
)$(objectsdir
)/$(GEM_NAME
)/
249 # kludge to get helpfiles working since the HELPSYMBOL stuff changed
250 install -p
$(gem_src
)/help
/*.
* $(DESTDIR
)$(objectsdir
)/$(GEM_NAME
)/
251 install -p
$(shell ls
-1 $(gem_src
)/abstractions
/*.
* | \
252 grep
-v
'\-help.pd') $(DESTDIR
)$(objectsdir
)/$(GEM_NAME
)
253 install -d
$(DESTDIR
)$(manualsdir
)/$(GEM_NAME
)
254 install -p
$(gem_src
)/doc
/*.
* $(DESTDIR
)$(manualsdir
)/$(GEM_NAME
)
255 install -d
$(DESTDIR
)$(manualsdir
)/$(GEM_NAME
)/manual
256 # in Gem 0.92, $(gem_src)/manual moved to $(gem_src)/doc/manual
257 (test -d
$(gem_src
)/manual
&& \
258 install -p
$(gem_src
)/manual
/*.
* $(DESTDIR
)$(manualsdir
)/$(GEM_NAME
)/manual
) || \
259 install -p
$(gem_src
)/doc
/manual
/*.
* $(DESTDIR
)$(manualsdir
)/$(GEM_NAME
)/manual
260 for
dir in
$(shell ls
-1 $(gem_src
)/examples | grep
-v CVS
); do \
261 echo
"installing $$dir"; \
262 install -d
$(DESTDIR
)$(examplesdir
)/$(GEM_NAME
)/$$dir ; \
263 install -p
$(gem_src
)/examples
/$$dir/*.
* $(DESTDIR
)$(examplesdir
)/$(GEM_NAME
)/$$dir ;\
267 #------------------------------------------------------------------------------
269 # this is for including pre-compiled binaries in a build
271 -install -p
$(packages_src
)/noncvs
/$(OS_NAME
)/bin
/*.
* $(DESTDIR
)$(bindir)
272 -install -p
$(packages_src
)/noncvs
/$(OS_NAME
)/doc
/5.reference
/*.
* $(DESTDIR
)$(helpdir
)
273 -install -p
$(packages_src
)/noncvs
/$(OS_NAME
)/extra
/*.
* $(DESTDIR
)$(objectsdir
)
274 ifeq ($(OS_NAME
),windows
)
275 -install -p
$(packages_src
)/noncvs
/windows
/extra
/Gem
/*.
* \
276 $(DESTDIR
)$(objectsdir
)/$(GEM_NAME
)/
278 -test -d
$(packages_src
)/noncvs
/$(OS_NAME
)/gripd
&& \
279 install -d
$(DESTDIR
)$(prefix)/gripd
280 -install -p
$(packages_src
)/noncvs
/$(OS_NAME
)/gripd
/*.
* \
281 $(DESTDIR
)$(prefix)/gripd
284 #==============================================================================#
286 # GENERATE TEXT FILES FOR PACKAGE
288 #==============================================================================#
290 LICENSE_FILE
= $(DESTDIR
)$(manualsdir
)/$(PD_NAME
)/License.html
292 # generate HTML version of License
293 install -d
$(DESTDIR
)$(manualsdir
)/$(PD_NAME
)
295 touch
$(LICENSE_FILE
)
296 echo
"<html><body>" >> "$(LICENSE_FILE)"
297 echo
"<h3>(Parts of this package can be used under " >> "$(LICENSE_FILE)"
298 echo
"<a href="Pd-LICENSE.txt
">Pd’s BSD license</a>)</h3>" >> "$(LICENSE_FILE)"
299 echo
"<font size=\"-1\">" >> "$(LICENSE_FILE)"
300 cat
"$(packages_src)/gpl-3.0.txt" | sed
-e
's/^$$/\<P\>/g' >> "$(LICENSE_FILE)"
301 echo
"</font></body></html>" >> $(LICENSE_FILE
)
303 install -p
"$(pd_src)/LICENSE.txt" "$(DESTDIR)$(manualsdir)/$(PD_NAME)/Pd-LICENSE.txt"
307 WELCOME_FILE
= $(DESTDIR
)$(manualsdir
)/$(PD_NAME
)/Welcome.html
309 install -d
$(DESTDIR
)$(manualsdir
)/$(PD_NAME
)
311 touch
$(WELCOME_FILE
)
312 echo
"<html><head>" >> $(WELCOME_FILE
)
313 echo
"<link rel=\"stylesheet\" type=\"text/css\" href=\"http://puredata.org/ploneCustom.css\" />" >> $(WELCOME_FILE
)
314 echo
"</head>" >> $(WELCOME_FILE
)
315 echo
"<body><p><p>" >> $(WELCOME_FILE
)
316 echo
"<center><img src=\"\">" >> $(WELCOME_FILE
)
317 echo
"<h2>Version $(PD_VERSION)</h2>" >> $(WELCOME_FILE
)
318 echo
"<p>written by Miller S. Puckette</p></center>" >> $(WELCOME_FILE
)
319 echo
"<font size=\"-1\">" >> $(WELCOME_FILE
)
320 echo
"<p>`grep -A9 ACKNOWLEDG $(pd_src)/README.txt`</p>" >> $(WELCOME_FILE
)
321 echo
"</font>" >> $(WELCOME_FILE
)
322 echo
"</body></html>" >> $(WELCOME_FILE
)
326 README_FILE
= $(DESTDIR
)$(manualsdir
)/$(PD_NAME
)/ReadMe.html
328 install -d
$(DESTDIR
)$(manualsdir
)/$(PD_NAME
)
329 echo
$(CYCLONE_RELEASE
)
332 echo
"<html>" >> $(README_FILE
)
333 echo
"<head>" >> $(README_FILE
)
334 echo
"<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" />" >> $(README_FILE
)
335 echo
"<link rel=\"stylesheet\" type=\"text/css\" href=\"http://puredata.org/plone.css\" />" >> $(README_FILE
)
336 echo
"</head>" >> $(README_FILE
)
337 echo
"<body>" >> $(README_FILE
)
338 echo
"<h2>Pure Data $(PD_VERSION)</h2>" >> $(README_FILE
)
339 echo
"<p>Pd is a real-time, graphical programming language for media processing. It provides an environment for audio analysis, synthesis, and processing, with a rich set of multimedia capabilities. You can get Pd for Linux, Windows, MacOS X, BSD, or IRIX.</p>" >> $(README_FILE
)
340 echo
"<p>For more information, go to: <a href=\"http://puredata.org\" target=\"pd\">http://puredata.org</a></p>" >> $(README_FILE
)
341 echo
"<h3>Installation</h3>" >> $(README_FILE
)
342 ifeq ($(OS_NAME
),linux
)
343 echo
"<p></p>" >> $(README_FILE
)
344 echo
"<p></p>" >> $(README_FILE
)
346 ifeq ($(OS_NAME
),darwin
)
347 echo
"<p>To install Pd, drag the $(PD_APP_NAME).app into your <b>/Applications</b> folder or to the shortcut in the disk image. (<i>You might need to put the old one in the trash before copying this one to <b>/Applications</b></i>)</p>" >> $(README_FILE
)
348 echo
"<p>By default, most of the included libraries are loaded at startup. To change this, set your own preferences in the <b>Startup...</b> Preferences pane usings the <b>Save all settings</b> button. If you want to start with the default preferences, throw away the Pd preferences file <strong>~/Library/Preferences/org.puredata.pd.plist</strong> (<code>~</code> <i>means your home folder</i>), or run this command in the Terminal.app: </p><p><code>rm ~/Library/Preferences/org.puredata.pd.plist</code></p><p>The Preferences panels in Pd are currently buggy, so you might have better luck with the Apple utilities: <code>defaults read org.puredata.pd</code>, or, <b>Property List Editor</b>, which is freely available as part of <a href=\"http://developer.apple.com/tools/xcode/download/\" target=\"_blank\">XCode</a> or the <a href=\"http://www.apple.com/support/downloads/serveradmintools104.html\" target=\"_blank\">Server Tools</a>.</p>" >> $(README_FILE
)
349 echo
"If you want to use PDP on Mac OS X 10.4/Tiger or 10.3/Panther, you will need to install X11 (X11 comes installed with 10.5/Leopard). It comes on the install CD/DVD that your computer came with. For more detail, see <a href=\"http://www.simplehelp.net/2006/10/22/how-to-install-x11-in-os-x/\" target=\"_blank\">How to install X11 in OS X</a> or <a href=\"http://puredata.info/docs/faq/macosx\" target=\"_blank\">How do I install Pd on MacOS X?</a>." >> $(README_FILE
)
351 ifeq ($(OS_NAME
),windows
)
352 echo
"<p>To make sure that all of the included libraries are loaded when Pd runs, " >> $(README_FILE
)
353 echo
"double-click <code>C:\Program Files\pd\pd-settings.reg</code> to import the settings to the registry. WARNING: this will overwrite any existing Pd preferences!</p>" >> $(README_FILE
)
354 echo
"<h3>ASIO4ALL</h3>" >> $(README_FILE
)
355 echo
"<p><a href=\"http://www.asio4all.com/\" target=\"_blank\">ASIO4ALL</a> is a cost-free <a href=\"http://en.wikipedia.org/wiki/Audio_Stream_Input/Output\" target=\"_blank\">ASIO</a> audio driver. Is it highly recommended for use with Pd. Download and install it, then when you launch Pd, choose the <strong>ASIO</strong> option from the <strong>Media</strong> menu. Using ASIO4ALL should mean less crashes and troubles, as well as better audio performance." >> $(README_FILE
)
356 echo
"</p>" >> $(README_FILE
)
358 echo
"<h3>Installing Externals, Objects, and Help files</h3>" >> $(README_FILE
)
359 echo
"<p>" >> $(README_FILE
)
360 echo
"If you would like to install other externals, objects, help files, etc. there are special folders that Pd-extended uses, which are listed below. If the folder does not exist, you should create it. You can find out more details about this by reading that FAQ: <a href=\"http://puredata.info/docs/faq/how-do-i-install-externals-and-help-files-with-pd-extended\" target=\"_blank\">How do I install externals and help files?</a>." >> $(README_FILE
)
361 echo
"<dl>" >> $(README_FILE
)
362 ifeq ($(OS_NAME
),darwin
)
363 echo
"<dt>Only for the current user account</dt>" >> $(README_FILE
)
364 echo
"<dd>~/Library/Pd</dd>" >> $(README_FILE
)
365 echo
"<dt>For all user accounts on the computer</dt>" >> $(README_FILE
)
366 echo
"<dd>/Library/Pd</dd>" >> $(README_FILE
)
368 ifeq ($(OS_NAME
),linux
)
369 echo
"<dt>Only for the current user account</dt>" >> $(README_FILE
)
370 echo
"<dd>~/pd-externals/</dd>" >> $(README_FILE
)
371 echo
"<dt>For all user accounts on the computer</dt>" >> $(README_FILE
)
372 echo
"<dd>/usr/local/lib/pd-externals</dd>" >> $(README_FILE
)
374 ifeq ($(OS_NAME
),windows
)
375 echo
"<dt>Only for the current user account</dt>" >> $(README_FILE
)
376 echo
"<dd><a href=\"file:///%UserProfile%/Application%20Data\">%UserProfile%\Application Data\Pd</a></dd>" >> $(README_FILE
)
377 echo
"<dt>For all user accounts on the computer</dt>" >> $(README_FILE
)
378 echo
"<dd><a href=\"file:///%CommonProgramFiles%/\">%ProgramFiles%\Common Files\Pd</a></dd>" >> $(README_FILE
)
380 echo
"</dl>" >> $(README_FILE
)
381 echo
"</p>" >> $(README_FILE
)
382 echo
"<h3>Flext Binaries have been removed from Pd-extended</h3>" >> $(README_FILE
)
383 echo
"<p>As of release 0.41.4 of Pd-extended, the whole package is built from source every night. That means that some objects have been removed from the package because they were not being built from source (objects like [pool], [msd], [flashserver], etc.). You can download these objects from the original authors or <a href=\"http://puredata.info/docs/faq/how-do-i-download-the-flext-binaries-that-used-to-be-included-in-pd-extended\" target=\"_blank\">get the files from the 0.40.3 Pd-extended release</a>." >> $(README_FILE
)
384 echo
"</p>" >> $(README_FILE
)
385 echo
"<h3>License</h3>" >> $(README_FILE
)
386 echo
"<p>" >> $(README_FILE
)
387 echo
'This package is released under the <a href="http://www.gnu.org/copyleft/gpl.html" target="gpl">GNU GPL</a>. The Pd core and some other included code is originally available with a <a href="http://pure-data.cvs.sourceforge.net/pure-data/pd/LICENSE.txt">BSD license</a> from the Pd CVS on SourceForge.' >> $(README_FILE
)
388 echo
"</p>" >> $(README_FILE
)
389 echo
"<h3>Patented Algorithms</h3>" >> $(README_FILE
)
390 echo
"<p>" >> $(README_FILE
)
391 echo
"This package may contain software that is covered by patents in certain countries, like the U.S. and Germany. In order to use this software you must have the proper license. Below is a list of the known software packages that are covered by patents in some countries:" >> $(README_FILE
)
392 echo
"</p>" >> $(README_FILE
)
393 echo
"<ul>" >> $(README_FILE
)
394 echo
'<li><a href="http://en.wikipedia.org/wiki/MP3" target="license">MP3 aka MPEG-1 Part 3 Layer 3</a></li>' >> $(README_FILE
)
395 echo
'<li><a href="http://en.wikipedia.org/wiki/MPEG-2" target="license">MPEG-2</a></li>' >> $(README_FILE
)
396 echo
'<li><a href="http://en.wikipedia.org/wiki/MPEG-4#Licensing" target="license">MPEG-4</a></li>' >> $(README_FILE
)
397 echo
"</ul>" >> $(README_FILE
)
398 echo
'<p>Please consider trying to get rid of software patents in your country: <a href="http://www.nosoftwarepatents.com" target="nsp">http://www.nosoftwarepatents.com</a></p>' >> $(README_FILE
)
399 echo
"<h3>Pure Data CVS Developers</h3>" >> $(README_FILE
)
400 # this may seem whack, but it generates the list of developers from the SourceForge site:
401 curl
'http://sourceforge.net/project/memberlist.php?group_id=55736' | grep
-A2
-e
'<td>' | sed
's|\(href="\)|target="w" \1http://sourceforge.net|' >> $(README_FILE
)
402 echo
"</p>" >> $(README_FILE
)
403 echo
"<p>" >> $(README_FILE
)
404 echo
"Many others not listed have contributed their time and effort, this is just a list of the current developers in the SourceForge project. But really, every Pd user is a developer and is encouraged to contribute to the CVS repository." >> $(README_FILE
)
405 echo
"</p>" >> $(README_FILE
)
406 echo
"<h3>Included Versions</h3>" >> $(README_FILE
)
407 echo
"<p>These externals are all included from the Pd CVS repository:</p>" >> $(README_FILE
)
408 echo
"<ul>" >> $(README_FILE
)
409 echo
"<li>pure data: $(PD_VERSION) " >> $(README_FILE
)
410 echo
"<li>cyclone: $(CYCLONE_VERSION)" >> $(README_FILE
)
411 echo
"<li>gem: $(GEM_VERSION)" >> $(README_FILE
)
412 echo
"<li>iemlib: `date +20%y.%m.%d`" >> $(README_FILE
)
413 echo
"<li>maxlib: $(MAXLIB_VERSION)" >> $(README_FILE
)
414 echo
"<li>osc: $(OSC_VERSION)" >> $(README_FILE
)
415 echo
"<li>pmpd: $(PMPD_VERSION)" >> $(README_FILE
)
416 echo
"<li>pd-abstractions: `date +20%y.%m.%d`" >> $(README_FILE
)
417 echo
"<li>pd-doc: `date +20%y.%m.%d`" >> $(README_FILE
)
418 echo
"<li>pd-externals: `date +20%y.%m.%d`" >> $(README_FILE
)
419 echo
"<li>pddp: `date +20%y.%m.%d`" >> $(README_FILE
)
420 echo
"<li>pdp: $(PDP_VERSION)" >> $(README_FILE
)
421 echo
"<li>pidip: $(PIDIP_VERSION)" >> $(README_FILE
)
422 echo
"<li>toxy: $(TOXY_VERSION)" >> $(README_FILE
)
423 echo
"<li>unauthorized: `date +20%y.%m.%d`" >> $(README_FILE
)
424 echo
"<li>zexy: $(ZEXY_VERSION)" >> $(README_FILE
)
425 echo
"</ul>" >> $(README_FILE
)
426 echo
"(this package was built on `date`) <BR>" >> $(README_FILE
)
427 echo
"</body></html>" >> $(README_FILE
)
431 #==============================================================================#
435 #==============================================================================#
438 #----------------------------------------------------------------------------
439 # clean up the documentation before packaging
441 # clean out cruft files
442 -find
$(DESTDIR
) -name .DS_Store
-delete
443 -find
$(DESTDIR
) -name
'*.*.bak' -delete
444 -find
$(DESTDIR
) -name .svn
-print0 | xargs
-0 rm -rf
447 #==============================================================================#
451 #==============================================================================#
453 devsymlinks
: devsymlinks_
$(OS_NAME
)
464 devsymlinks_darwin
: devsymlinks_clean
465 # this makes /usr/local symlinks to the Tcl/Tk frameworks so that ./configure
468 test -e
/Library
/Frameworks
/Tcl.framework
/Versions
/$(TCLTK_VERSION
)/Headers
/tcl.h
&& \
470 /Library
/Frameworks
/Tcl.framework
/Versions
/$(TCLTK_VERSION
)/Headers
/tcl.h \
471 /usr
/local
/include/tcl.h
472 test -e
/Library
/Frameworks
/Tcl.framework
/Versions
/$(TCLTK_VERSION
)/Headers
/tclDecls.h
&& \
474 /Library
/Frameworks
/Tcl.framework
/Versions
/$(TCLTK_VERSION
)/Headers
/tclDecls.h \
475 /usr
/local
/include/tclDecls.h
476 test -e
/Library
/Frameworks
/Tcl.framework
/Versions
/$(TCLTK_VERSION
)/Headers
/tclPlatDecls.h
&& \
478 /Library
/Frameworks
/Tcl.framework
/Versions
/$(TCLTK_VERSION
)/Headers
/tclPlatDecls.h \
479 /usr
/local
/include/tclPlatDecls.h
481 test -e
/Library
/Frameworks
/Tcl.framework
/tclConfig.sh
&& \
482 sudo ln
-s
/Library
/Frameworks
/Tcl.framework
/tclConfig.sh
/usr
/local
/lib
483 test -e
/Library
/Frameworks
/Tcl.framework
/Versions
/$(TCLTK_VERSION
)/Tcl
&& \
485 /Library
/Frameworks
/Tcl.framework
/Versions
/$(TCLTK_VERSION
)/Tcl \
486 /usr
/local
/lib
/libtcl
$(TCLTK_VERSION
).dylib
487 test -e
/Library
/Frameworks
/Tcl.framework
/Versions
/$(TCLTK_VERSION
)/libtclstub
$(TCLTK_VERSION
).a
&& \
489 /Library
/Frameworks
/Tcl.framework
/Versions
/$(TCLTK_VERSION
)/libtclstub
$(TCLTK_VERSION
).a \
490 /usr
/local
/lib
/libtclstub
$(TCLTK_VERSION
).a
491 test -e
/usr
/local
/lib
/libtcl
$(TCLTK_VERSION
).dylib
&& \
492 sudo ln
-s
/usr
/local
/lib
/libtcl
$(TCLTK_VERSION
).dylib
/usr
/local
/lib
/libtcl.dylib
494 test -e
/Library
/Frameworks
/Tk.framework
/Versions
/$(TCLTK_VERSION
)/Headers
/tk.h
&& \
496 /Library
/Frameworks
/Tk.framework
/Versions
/$(TCLTK_VERSION
)/Headers
/tk.h \
497 /usr
/local
/include/tk.h
498 test -e
/Library
/Frameworks
/Tk.framework
/Versions
/$(TCLTK_VERSION
)/Headers
/tkDecls.h
&& \
500 /Library
/Frameworks
/Tk.framework
/Versions
/$(TCLTK_VERSION
)/Headers
/tkDecls.h \
501 /usr
/local
/include/tkDecls.h
502 test -e
/Library
/Frameworks
/Tk.framework
/Versions
/$(TCLTK_VERSION
)/Headers
/tkIntXlibDecls.h
&& \
504 /Library
/Frameworks
/Tk.framework
/Versions
/$(TCLTK_VERSION
)/Headers
/tkIntXlibDecls.h \
505 /usr
/local
/include/tkIntXlibDecls.h
506 test -e
/Library
/Frameworks
/Tk.framework
/Versions
/$(TCLTK_VERSION
)/Headers
/tkMacOSX.h
&& \
508 /Library
/Frameworks
/Tk.framework
/Versions
/$(TCLTK_VERSION
)/Headers
/tkMacOSX.h \
509 /usr
/local
/include/tkMacOSX.h
510 test -e
/Library
/Frameworks
/Tk.framework
/Versions
/$(TCLTK_VERSION
)/Headers
/tkPlatDecls.h
&& \
512 /Library
/Frameworks
/Tk.framework
/Versions
/$(TCLTK_VERSION
)/Headers
/tkPlatDecls.h \
513 /usr
/local
/include/tkPlatDecls.h
515 test -e
/Library
/Frameworks
/Tk.framework
/tkConfig.sh
&& \
516 sudo ln
-s
/Library
/Frameworks
/Tk.framework
/tkConfig.sh
/usr
/local
/lib
517 test -e
/Library
/Frameworks
/Tk.framework
/Versions
/$(TCLTK_VERSION
)/Tk
&& \
518 sudo ln
-s
/Library
/Frameworks
/Tk.framework
/Versions
/$(TCLTK_VERSION
)/Tk \
519 /usr
/local
/lib
/libtk
$(TCLTK_VERSION
).dylib
520 test -e
/Library
/Frameworks
/Tk.framework
/Versions
/$(TCLTK_VERSION
)/libtkstub
$(TCLTK_VERSION
).a
&& \
522 /Library
/Frameworks
/Tk.framework
/Versions
/$(TCLTK_VERSION
)/libtkstub
$(TCLTK_VERSION
).a \
523 /usr
/local
/lib
/libtkstub
$(TCLTK_VERSION
).a
524 test -e
/usr
/local
/lib
/libtk
$(TCLTK_VERSION
).dylib
&& \
525 sudo ln
-s
/usr
/local
/lib
/libtk
$(TCLTK_VERSION
).dylib
/usr
/local
/lib
/libtk.dylib
530 -sudo
rm -f
/usr
/local
/include/tcl
*.h
/usr
/local
/include/tk
*.h
531 -sudo
rm -f
/usr
/local
/lib
/tclConfig.sh
/usr
/local
/lib
/tkConfig.sh
532 -sudo
rm -f
/usr
/local
/lib
/libtcl
*.dylib
/usr
/local
/lib
/libtk
*.dylib
533 -sudo
rm -f
/usr
/local
/lib
/libtclstub
*.a
/usr
/local
/lib
/libtkstub
*.a
537 # change Pd's version number to reflect the extended build
538 # this needs the complete_version_defines patch to work
539 cd
$(pd_src
)/src
/ && \
540 sed
's|^\(#define PD_TEST_VERSION "\).*"|\1$(PD-EXTENDED_VERSION)"|' m_pd.h
> \
541 m_pd.h.tmp
&& mv m_pd.h.tmp m_pd.h
544 # change the version number back to the original
545 # this needs the complete_version_defines patch to work
546 cd
$(pd_src
)/src
&& \
547 sed
's|^\(#define PD_TEST_VERSION ".*\)$(PD-EXTENDED_VERSION_PREFIX).*"|\1"|' \
548 m_pd.h
> m_pd.h.tmp
&& \
553 @echo pd_src
$(pd_src
)
554 # apply all platform-neutral patches
555 for patch in
$(shell ls
-1 $(CWD
)/patches
/*.patch
); do \
556 echo
"Applying $$patch"; \
557 cd
$(pd_src
)/src
/ && patch
-p0
< $$patch; \
559 # apply all platform-specific patches (is broken on MINGW/Windows)
560 ifneq ($(OS_NAME
),windows
)
561 for patch in
$(shell ls
-1 $(CWD
)/patches
/$(OS_NAME
)/*.patch
); do \
562 echo
"Applying $$patch"; \
563 cd
$(pd_src
)/src
/ && patch
-p0
< $$patch; \
566 -rm -f
-- $(pd_src
)/src
/configure
$(pd_src
)/src
/makefile
568 @echo
"patching completed."
572 # apply all platform-specific patches (is broken on MINGW/Windows)
573 ifneq ($(OS_NAME
),windows
)
574 for patch in
$(shell ls
-1r
$(CWD
)/patches
/$(OS_NAME
)/*.patch
); do \
575 echo
"Applying $$patch"; \
576 cd
$(pd_src
)/src
/ && patch
-p0
-R
< $$patch; \
579 # apply all platform-neutral patches
580 for patch in
$(shell ls
-1r
$(CWD
)/patches
/*.patch
); do \
581 echo
"Applying $$patch"; \
582 cd
$(pd_src
)/src
/ && patch
-p0
-R
< $$patch; \
584 -rm -f
-- $(pd_src
)/src
/configure
$(pd_src
)/src
/makefile \
585 $(pd_src
)/src
/makefile.dependencies
587 @echo
"unpatching completed."
590 patch
: patch_pd set_version
592 unpatch
: unset_version unpatch_pd
597 @echo pd_src
$(pd_src
)
598 # apply all platform-neutral patches
599 for patch in
$(shell ls
-1 $(CWD
)/patches
/*.patch
); do \
600 echo
"Applying $$patch"; \
601 cd
$(pd_src
)/src
/ && patch
-p0
< $$patch; \
603 # apply all platform-specific patches
604 for patch in
$(shell ls
-1 $(CWD
)/patches
/$(OS_NAME
)/*.patch
); do \
605 echo
"Applying $$patch"; \
606 cd
$(pd_src
)/src
/ && patch
-p0
< $$patch; \
608 -rm -f
-- $(pd_src
)/src
/configure
$(pd_src
)/src
/makefile
609 # change Pd's version number to reflect the extended build
610 # this needs the complete_version_defines patch to work
611 cd
$(pd_src
)/src
/ && \
612 sed
's|^\(#define PD_TEST_VERSION "\).*"|\1$(PD-EXTENDED_VERSION)"|' m_pd.h
> \
613 m_pd.h.tmp
&& mv m_pd.h.tmp m_pd.h
615 @echo
"patching completed."
619 # change the version number back to the original
620 # this needs the complete_version_defines patch to work
621 cd
$(pd_src
)/src
&& \
622 sed
's|^\(#define PD_TEST_VERSION ".*\)$(PD-EXTENDED_VERSION)"|\1"|' \
623 m_pd.h
> m_pd.h.tmp
&& \
625 # apply all platform-specific patches
626 for patch in
$(shell ls
-1r
$(CWD
)/patches
/$(OS_NAME
)/*.patch
); do \
627 echo
"Applying $$patch"; \
628 cd
$(pd_src
)/src
/ && patch
-p0
-R
< $$patch; \
630 # apply all platform-neutral patches
631 for patch in
$(shell ls
-1r
$(CWD
)/patches
/*.patch
); do \
632 echo
"Applying $$patch"; \
633 cd
$(pd_src
)/src
/ && patch
-p0
-R
< $$patch; \
635 -rm -f
-- $(pd_src
)/src
/configure
$(pd_src
)/src
/makefile
637 @echo
"unpatching completed."
639 #==============================================================================#
643 #==============================================================================#
645 -$(MAKE
) -C
$(abstractions_src
) $(DEST_PATHS
) clean
652 -$(MAKE
) -C
$(externals_src
) $(DEST_PATHS
) clean
656 -$(MAKE
) -C
$(gem_src
)/src
clean
660 -$(MAKE
) $(pd_src
)/src
$(DEST_PATHS
) clean
663 # these targets are all from Makefile.buildlayout: install_clean cruft_clean
664 clean: abstractions_clean doc_clean externals_clean gem_clean \
666 echo
"Complete clean finished."
669 distclean: cruft_clean
670 $(MAKE
) -C
$(abstractions_src
) distclean
671 $(MAKE
) -C
$(doc_src
) distclean
672 $(MAKE
) -C
$(extensions_src
) distclean
673 $(MAKE
) -C
$(externals_src
) distclean
674 -$(MAKE
) -C
$(pd_src
) distclean
677 @echo
"PD_VERSION: $(PD_VERSION)"
678 @echo
"PD-EXTENDED_VERSION: $(PD-EXTENDED_VERSION)"
680 @echo
"DESTDIR $(DESTDIR)"
681 @echo
"PREFIX $(prefix)"
682 @echo
"BINDIR $(bindir)"
683 @echo
"LIBDIR $(libdir)"
684 @echo
"OBJECTSDIR $(objectsdir)"
685 @echo
"PDDOCDIR $(pddocdir)"
686 @echo
"LIBPDDIR $(libpddir)"
687 @echo
"LIBPDBINDIR $(libpdbindir)"
688 @echo
"HELPDIR $(helpdir)"
689 @echo
"MANUALSDIR $(manualsdir)"
690 @echo
"EXAMPLESDIR $(examplesdir)"
691 @echo
"HAVE_AUTOGEN_SH --$(HAVE_AUTOGEN_SH)--"