[PD] Jack support on Windows

Hans-Christoph Steiner hans at at.or.at
Fri Jan 18 00:47:26 CET 2013


You don't want the auto-build script for this.  Its more trouble than its
worth. Do this instead:

* download the zip version:
http://autobuild.puredata.info/auto-build/2013-01-17/Pd-0.43.4-extended-20130117-windowsxp-i386.zip

* unzip it into ~/pure-data

* run these commands:
cd ~/pure-data
git clone git://pure-data.git.sourceforge.net/gitroot/pure-data/pd-extended.git
cd ~/pure-data/pd-extended

* now copy attached file into ~/pure-data/pd-extended/src/

* now run these commands:
make -f makefile.mingw
make -f makefile.mingw DESTDIR=~/pure-data/Pd-0.43.4-extended-20130117 prefix=
install

(make sure the last line is all on one line)

Now you should be able to go to ~/pure-data/Pd-0.43.4-extended-20130117/bin
and run pd.exe and have a working Pd with jack (fingers crossed)

.hc

On 01/17/2013 05:40 PM, Esteban Viveros wrote:
> I need to run git clone git://
> pure-data.git.sourceforge.net/gitroot/pure-data/pd-extended.git in the same
> folder of the libraries built? (~/pure-data/sources)
> 
> In my case I need to do this with your script: (?)
> 
> mkdir ~/auto-build
> cd ~/auto-buildhttps://pure-data.svn.sourceforge.net/svnroot/pure-data/branches/pd-extended/0.43
> pd-extended
> ~/auto-build/pd-extended/scripts/auto-build/pd-extended-auto-builder.sh
> 
> 
> 
> 2013/1/17 Hans-Christoph Steiner <hans at at.or.at>
> 
>>
>> Yeah, it looks like the binary installer for jack is all you need.
>>
>> No problem if you just built all the libraries in Building Library
>> Dependencies For Windows From SVN '/Sources'.  I was just trying to save
>> you
>> that effort, since its not needed for what you want to do.  But now you are
>> setup to build all of Pd-extended and perhaps even readanysf~ too :-D
>>
>> You will definitely need to download the Pd-extended source.
>>
>> .hc
>>
>> On 01/17/2013 03:37 PM, Esteban Viveros wrote:
>>> I have one more question... When you say to install Jack, you say the
>>> binary software or I need to find a source code of Jack audio?
>>>
>>>
>>> 2013/1/17 Esteban Viveros <emviveros at gmail.com>
>>>
>>>> Ops... Already done... :/
>>>>
>>>> Now only remains download pd source.. Did I that too wrong?
>>>>
>>>> I'm thinking to download the pd source and then run your script... Can I
>>>> continue?
>>>>
>>>>
>>>> 2013/1/17 Hans-Christoph Steiner <hans at at.or.at>
>>>>
>>>>>
>>>>> You don't need that stuff at all for what you are doing, skip that
>> step.
>>>>> That's only for building things like Gem.
>>>>>
>>>>> .hc
>>>>>
>>>>> On 01/16/2013 07:15 PM, Esteban Viveros wrote:
>>>>>> Ok...
>>>>>>
>>>>>> Now I need to know where is pure-data directory..? It's needed to
>>>>> Building
>>>>>> Library Dependencies For Windows From SVN '/Sources'
>>>>>>
>>>>>>
>>>>>> 2013/1/16 Hans-Christoph Steiner <hans at at.or.at>
>>>>>>
>>>>>>>
>>>>>>> I updated the makefile.mingw a bit, I forgot to add something before.
>>>>>  Its
>>>>>>> attached.
>>>>>>>
>>>>>>> .hc
>>>>>>>
>>>>>>> On 01/16/2013 06:44 PM, Esteban Viveros wrote:
>>>>>>>> gcc.exe ,GCC. 4.6.2
>>>>>>>>
>>>>>>>>
>>>>>>>> 2013/1/16 Hans-Christoph Steiner <hans at at.or.at>
>>>>>>>>
>>>>>>>>> On 01/16/2013 06:28 PM, Esteban Viveros wrote:
>>>>>>>>>> HC,
>>>>>>>>>>
>>>>>>>>>> I have two question at time..
>>>>>>>>>>
>>>>>>>>>> First, I need to add Cygwin to system path? If yes, I run SETX
>> path
>>>>>>>>>> c:\cygwin;c:\cygwin\bin;%path%  in Cygwin Terminal?
>>>>>>>>>
>>>>>>>>> This is probably optional but cygwin is useful.  You do it from the
>>>>>>> System
>>>>>>>>> control panel:
>>>>>>>>> http://www.computerhope.com/issues/ch000549.htm
>>>>>>>>>
>>>>>>>>> If you install TortoiseSVN, I don't think you need cygwin at all
>>>>> (watch
>>>>>>> out
>>>>>>>>> for download links in the big add in that page):
>>>>>>>>> http://tortoisesvn.net/downloads.html
>>>>>>>>>
>>>>>>>>>> Two, In session: "Copying Libgmp-10Dll for Cc1.Exe" I don't have
>>>>>>>>>> /mingw/libexec/gcc/mingw32/4.7.2/ but I have
>>>>>>>>>> /mingw/libexec/gcc/mingw32/4.6.2  I need to create the 4.7.2
>>>>> directory
>>>>>>> or
>>>>>>>>>> copy the dll's to 4.6.2?
>>>>>>>>>
>>>>>>>>> Copy the dlls to the existing folder, don't create a new one.  You
>>>>> can
>>>>>>> tell
>>>>>>>>> which version of gcc you have by doing:
>>>>>>>>>
>>>>>>>>> gcc --version
>>>>>>>>>
>>>>>>>>> My guess is that you have 4.6.2, which should work fine.
>>>>>>>>>
>>>>>>>>> .hc
>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> 2013/1/16 Hans-Christoph Steiner <hans at at.or.at>
>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> Start by installing Jack on your windows machine and setting up a
>>>>> Pd
>>>>>>>>> build
>>>>>>>>>>> environment:
>>>>>>>>>>> http://puredata.info/docs/developer/WindowsMinGW
>>>>>>>>>>>
>>>>>>>>>>> You can skip the "Building library dependencies for Windows from
>>>>> SVN
>>>>>>>>>>> '/sources'" section for now.
>>>>>>>>>>>
>>>>>>>>>>> Then in the MSYS MinGW shell, do this:
>>>>>>>>>>>
>>>>>>>>>>> git clone git://
>>>>>>>>>>> pure-data.git.sourceforge.net/gitroot/pure-data/pd-extended.git
>>>>>>>>>>> cd pd-extended/src
>>>>>>>>>>> make -f makefile.mingw
>>>>>>>>>>>
>>>>>>>>>>> That should give you a regular Pd build.  Then download a
>>>>> Pd-extended
>>>>>>>>>>> 0.43.4
>>>>>>>>>>> zip version and unzip it.  I usually put it on my desktop.  Then
>>>>> you
>>>>>>> can
>>>>>>>>>>> install your new build into it:
>>>>>>>>>>>
>>>>>>>>>>> make -f makefile.mingw
>>>>>>>>>>> DESTDIR="$USERPROFILE/Desktop/Pd-0.43.4-extended-20130115 prefix=
>>>>>>>>> install
>>>>>>>>>>>
>>>>>>>>>>> If that works, then you're ready to try to build against Jack.
>>>>>>>  Replace
>>>>>>>>>>> pd-extended/src/makefile.mingw with makefile.mingw that is
>>>>> attached to
>>>>>>>>> this
>>>>>>>>>>> email, and try this:
>>>>>>>>>>>
>>>>>>>>>>> cd pd-extended/src
>>>>>>>>>>> make -f makefile.mingw clean
>>>>>>>>>>> make -f makefile.mingw
>>>>>>>>>>> DESTDIR="$USERPROFILE/Desktop/Pd-0.43.4-extended-20130115 prefix=
>>>>>>>>> install
>>>>>>>>>>>
>>>>>>>>>>> .hc
>>>>>>>>>>>
>>>>>>>>>>> On 01/16/2013 02:07 PM, Esteban Viveros wrote:
>>>>>>>>>>>> Wow.... If I had the knowledge to do.. (!) *.*
>>>>>>>>>>>>
>>>>>>>>>>>> But I can try... I need documentation to learn.. Where can I
>>>>> begin?
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> 2013/1/16 Hans-Christoph Steiner <hans at at.or.at>
>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> I agree, it should be included.  Why don't you try to build it?
>>>>>  Or
>>>>>>>>>>> maybe
>>>>>>>>>>>>> if
>>>>>>>>>>>>> patco has some time, he could take a look.
>>>>>>>>>>>>>
>>>>>>>>>>>>> Its much too late to include it in 0.43.4, but once its
>> working,
>>>>> its
>>>>>>>>>>> easy
>>>>>>>>>>>>> to
>>>>>>>>>>>>> include in nightly builds of 0.44.
>>>>>>>>>>>>>
>>>>>>>>>>>>> .hc
>>>>>>>>>>>>>
>>>>>>>>>>>>> On 01/16/2013 12:58 PM, Esteban Viveros wrote:
>>>>>>>>>>>>>> Hello list,
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Excuse the hassle... But I think this very important ..
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> The windows version of pd-extended 0.43 don't have support to
>>>>>>> Jack..
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> It would be great can connect my new pd extended release to
>>>>> ableton
>>>>>>>>>>> live
>>>>>>>>>>>>> to
>>>>>>>>>>>>>> play a little..
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>>>> Pd-list at iem.at mailing list
>>>>>>>>>>>>>> UNSUBSCRIBE and account-management ->
>>>>>>>>>>>>> http://lists.puredata.info/listinfo/pd-list
>>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>>> Pd-list at iem.at mailing list
>>>>>>>>>>>>> UNSUBSCRIBE and account-management ->
>>>>>>>>>>>>> http://lists.puredata.info/listinfo/pd-list
>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>> Pd-list at iem.at mailing list
>>>>>>>>>>>> UNSUBSCRIBE and account-management ->
>>>>>>>>>>> http://lists.puredata.info/listinfo/pd-list
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> _______________________________________________
>>>>>>>>>>> Pd-list at iem.at mailing list
>>>>>>>>>>> UNSUBSCRIBE and account-management ->
>>>>>>>>>>> http://lists.puredata.info/listinfo/pd-list
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> Pd-list at iem.at mailing list
>>>>>>>> UNSUBSCRIBE and account-management ->
>>>>>>> http://lists.puredata.info/listinfo/pd-list
>>>>>>>>
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Pd-list at iem.at mailing list
>>>>>>> UNSUBSCRIBE and account-management ->
>>>>>>> http://lists.puredata.info/listinfo/pd-list
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> Pd-list at iem.at mailing list
>>>>>> UNSUBSCRIBE and account-management ->
>>>>> http://lists.puredata.info/listinfo/pd-list
>>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> Pd-list at iem.at mailing list
>>>>> UNSUBSCRIBE and account-management ->
>>>>> http://lists.puredata.info/listinfo/pd-list
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>>
>>>> Esteban Viveros
>>>>
>>>> (27) 8815 7170
>>>> (27) 3066 0359
>>>> (11) 95761 4125
>>>> (11) 2738 7868
>>>>
>>>> www.bandpage.com/estebanviveros <http://soundcloud.com/estebanviveros>
>>>>
>>>> https://www.facebook.com/estebanviveros.art
>>>>
>>>> http://www.papodecompositor-es.blogspot.com.br/
>>>>
>>>> http://expurgacao.art.br/
>>>>
>>>
>>>
>>>
>>
> 
> 
> 
> 
> 
> _______________________________________________
> Pd-list at iem.at mailing list
> UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
> 
-------------- next part --------------
# how Miller builds Pd on Windows:
# http://lists.puredata.info/pipermail/pd-dev/2004-10/002981.html

CC = gcc
CXX = g++

cvs_root_dir = ../..
pd_src = $(cvs_root_dir)/pd
DLL_DIR = $(pd_src)/src

BIN_DIR = ../bin

VPATH = $(pd_src)/src

prefix = /usr/local/pd
exec_prefix = $(prefix)
includedir = $(prefix)/include
libdir = $(exec_prefix)/lib
mandir = $(prefix)/man
bindir = $(exec_prefix)/bin

GFLAGS = -DINSTALL_PREFIX=\"$(prefix)\"

# varibles to match packages/Makefile.buildlayout so that they can be easily
# overridden when building Pd-extended builds. <hans at at.or.at>
libpddir = $(prefix)
pddocdir = $(libpddir)/doc
libpdbindir = $(libpddir)/bin

PDEXEC = pd.exe
PDDLL = pd.dll
DLLWRAP= dllwrap

MORECFLAGS = -O3 -funroll-loops -fomit-frame-pointer 

PADIR = $(pd_src)/portaudio
ASIODIR = $(pd_src)/asio/ASIOSDK2
ASIOINC = -I$(ASIODIR)/common -I$(ASIODIR)/host -I$(ASIODIR)/host/pc
INCPA = -I$(PADIR) -I$(PADIR)/include -I$(PADIR)/src/common -I$(PADIR)/src/os/win $(ASIOINC)
INCLUDE = -I$(pd_src)/src -I$(PROGRAMFILES)/Jack/includes -I/c/Progra~1/jack/includes -I/c/Progra~2/jack/includes -I/c/Progra~3/jack/includes
GINCLUDE = -I/usr/local/include $(INCLUDE)

LDFLAGS = -L$(PROGRAMFILES)/Jack/lib -L/c/Progra~1/jack/lib -L/c/Progra~2/jack/lib -L/c/Progra~3/jack/lib
LIBS = -lm -lwsock32 -lwinmm -lole32 -lpthreadGC2 -ljack

OPT_CFLAGS = 

WARN_CFLAGS = -Wall -W -Wstrict-prototypes -Wno-unused \
    -Wno-unused-parameter -Wno-parentheses -Wno-switch
# Some old code in asio/ASIOSDK2/common/combase.h needs to be ignored,
# we do this by setting the WINVER macro to min Windows XP aka 5.1.
# Also, for SetDllDirectory() s_loader.c, we need a minium of Windows
# XP SP1.  WINVER isnt' fine-grained enough for that, so we use the
# next minor version of Windows, 5.2.
ARCH_CFLAGS = -DPD -DPD_INTERNAL -DPA_USE_ASIO -DPA_USE_WMME -DWINVER=0x0502 \
	-DUSEAPI_MMIO -DUSEAPI_PORTAUDIO -mms-bitfields -DWISHAPP='"wish85.exe"'

CFLAGS += $(ARCH_CFLAGS) $(WARN_CFLAGS) $(OPT_CFLAGS) $(MORECFLAGS)

STRIP = strip --strip-unneeded -R .note -R .comment

# the sources

PASRC = s_audio_pa.c s_audio_paring.c s_audio_jack.c \
	s_audio_mmio.c s_midi_mmio.c \
	$(PADIR)/src/common/pa_stream.c \
        $(PADIR)/src/common/pa_trace.c \
        $(PADIR)/src/common/pa_process.c \
        $(PADIR)/src/common/pa_front.c \
        $(PADIR)/src/common/pa_dither.c \
        $(PADIR)/src/common/pa_cpuload.c \
        $(PADIR)/src/common/pa_converters.c \
        $(PADIR)/src/common/pa_allocation.c \
        $(PADIR)/src/common/pa_ringbuffer.c \
        $(PADIR)/src/os/win/pa_win_hostapis.c \
        $(PADIR)/src/os/win/pa_win_util.c \
        $(PADIR)/src/os/win/pa_win_waveformat.c \
        $(PADIR)/src/os/win/pa_win_coinitialize.c \
        $(PADIR)/src/hostapi/wmme/pa_win_wmme.c

ASIOSRC = 	$(PADIR)/src/hostapi/asio/iasiothiscallresolver.cpp \
			$(PADIR)/src/hostapi/asio/pa_asio.cpp \
			$(ASIODIR)/common/asio.cpp \
			$(ASIODIR)/host/asiodrivers.cpp \
			$(ASIODIR)/host/pc/asiolist.cpp

#VSRC =  s_audio_vst.c

PMDIR = ../portmidi
PMINCLUDE = -I$(PMDIR)/pm_common -I$(PMDIR)/pm_win -I$(PMDIR)/porttime -DNEWBUFFER
PMSRC = $(PMDIR)/pm_common/portmidi.c \
        $(PMDIR)/pm_common/pmutil.c \
        $(PMDIR)/porttime/porttime.c \
        $(PMDIR)/porttime/ptwinmm.c \
        $(PMDIR)/pm_win/pmwin.c \
        $(PMDIR)/pm_win/pmwinmm.c

PMOBJ =  $(PMSRC:.c=.o)

HEADERS = g_all_guis.h m_imp.h g_canvas.h m_pd.h s_stuff.h g_magicglass.h \
	$(wildcard ../portaudio/common/*.h) s_audio_paring.h scandir.h \
	../portaudio/src/os/win/pa_win_coinitialize.h

SRC = g_canvas.c g_graph.c g_text.c g_rtext.c g_array.c g_template.c \
	g_io.c g_scalar.c g_traversal.c g_guiconnect.c g_readwrite.c g_editor.c \
    g_all_guis.c \
    m_pd.c m_class.c m_obj.c m_atom.c m_memory.c m_binbuf.c \
    m_conf_pdextended.c m_glob.c m_sched.c \
    s_main.c s_inter.c s_file.c s_print.c \
    s_loader.c s_path.c s_entry.c s_audio.c s_midi.c \
    s_utf8.c \
    d_ugen.c d_ctl.c d_arithmetic.c d_osc.c d_filter.c \
    d_math.c d_array.c d_global.c \
    d_delay.c d_resample.c \
    x_arithmetic.c x_connective.c \
    x_acoustics.c d_soundfile.c \
    e_fft.c e_gfxstub.c e_dac.c e_midi.c \
    g_magicglass.c \
    scandir.c \
    import.c path.c print.c closebang.c initbang.c loadbang.c

# FFTW
#SRC +=  d_fft_fftw.c d_fftroutine.c
# Mayer FFT
SRC +=  d_fft_mayer.c d_fftroutine.c

SRSRC = u_pdsend.c u_pdreceive.c

OBJ = $(SRC:.c=.o) 
SROBJ = $(SRSRC:.c=.o) 
PAOBJ = $(PASRC:.c=.o)
ASIOOBJ = $(ASIOSRC:.cpp=.o)
#VOBJ = $(VSRC:.c=.o)
OBJC = $(OBJ) $(PAOBJ) $(ASIOOBJ) $(PMOBJ)


# get version from m_pd.h to use in doc/1.manual/1.introduction.txt
PD_MAJOR_VERSION := $(shell grep PD_MAJOR_VERSION m_pd.h | \
	sed 's|^.define *PD_MAJOR_VERSION *\([0-9]*\).*|\1|' )
PD_MINOR_VERSION := $(shell grep PD_MINOR_VERSION m_pd.h | \
	sed 's|^.define *PD_MINOR_VERSION *\([0-9]*\).*|\1|' )
PD_BUGFIX_VERSION := $(shell grep PD_BUGFIX_VERSION m_pd.h | \
	sed 's|^.define *PD_BUGFIX_VERSION *\([0-9]*\).*|\1|' )
PD_TEST_VERSION := $(shell grep PD_TEST_VERSION m_pd.h | \
	sed 's|^.define *PD_TEST_VERSION *"\(.*\)".*|\1|' )
PD_VERSION := $(PD_MAJOR_VERSION).$(PD_MINOR_VERSION).$(PD_BUGFIX_VERSION)
ifneq ($(PD_TEST_VERSION),)
	PD_VERSION := $(PD_VERSION)-$(PD_TEST_VERSION)
endif


#
#  ------------------ targets ------------------------------------
#

.PHONY: all install clean testbin

all: $(PDDLL) $(PDEXEC) pdsend.exe pdreceive.exe pd.com

$(OBJ) : %.o : %.c
	$(CC) $(CFLAGS) $(GFLAGS) $(INCLUDE) -c -o $*.o $*.c 

$(GOBJ) : %.o : %.c
	$(CC) $(CFLAGS) $(GFLAGS) $(GINCLUDE) -c -o $*.o $*.c 

$(SROBJ) : %.o : %.c
	$(CC) $(CFLAGS) $(GFLAGS) $(INCLUDE) -c -o $*.o $*.c 

$(PAOBJ) : %.o : %.c
	$(CC) $(CFLAGS) $(GFLAGS) $(INCPA) -c -o $*.o $*.c 

$(ASIOOBJ) : %.o : %.cpp
	$(CXX) $(CFLAGS) $(INCPA) -c -o $*.o $*.cpp

$(PMOBJ) : %.o : %.c
	$(CC) $(CFLAGS) $(GFLAGS) $(PMINCLUDE) -c -o $*.o $*.c 

$(VOBJ) : %.o : %.c
	$(CC) $(CFLAGS) $(GFLAGS) $(INCLUDE) -c -o $*.o $*.c 

pdsend.exe: u_pdsend.o
	$(CC) $(CFLAGS) $(LDFLAGS) -o pdsend.exe u_pdsend.o $(LIBS)

pdreceive.exe: u_pdreceive.o
	$(CC) $(CFLAGS) $(LDFLAGS) -o pdreceive.exe u_pdreceive.o $(LIBS)

$(PDEXEC): s_entry.o pd.res
	$(CC) $(LDFLAGS) -mwindows -o $(PDEXEC) s_entry.o pd.res $(LIBS) -L. -lpd

pd.com: s_entry.o
	$(CC) $(LDFLAGS) -o pd.com s_entry.o $(LIBS) -L. -lpd

$(PDDLL): $(OBJC)
	$(CXX) -shared $(LDFLAGS) -o $(PDDLL) $(OBJC) $(LIBS) \
		-Wl,--export-all-symbols -Wl,--out-implib=pd.a; 

pd.res: pd.rc
	windres pd.rc -O coff -o pd.res

#vstschedlib.dll: $(VOBJ)
#	$(DLLWRAP) --export-all-symbols --output-def vst.def \
#	--output-lib=vst.a --dllname=vstschedlib.dll s_audio_vst.o pd.a $(LIBS)

# kludge to put stuff into the pd/bin dir for testing
testbin: $(PDEXEC) $(PDDLL) pd.com
	echo "Copying files to $(BIN_DIR)"
	install -d $(BIN_DIR)
	install -p *.tcl $(BIN_DIR)
	install -p $(PDDLL) $(BIN_DIR)
	install -p pd.ico $(BIN_DIR)
	install -p pd.com $(BIN_DIR)
	install -p $(PDEXEC) $(BIN_DIR)

ABOUT_FILE=$(DESTDIR)$(pddocdir)/1.manual/1.introduction.txt
install:  all
# locales don't have a MinGW makefile yet, but the pd-gui-rewrite one could work
#	make libpddir=$(libpddir) -C ../po install
# the real install
	install -d $(DESTDIR)$(bindir)/../tcl/
	install -p ../tcl/*.tcl $(DESTDIR)$(bindir)/../tcl/
	install -p ../tcl/pd.gif $(DESTDIR)$(bindir)/../tcl/
	install -p $(PDEXEC) $(DESTDIR)$(bindir)/$(PDEXEC)
	$(STRIP) $(DESTDIR)$(bindir)/$(PDEXEC)
	install -p pd.com $(DESTDIR)$(bindir)/pd.com
	$(STRIP) $(DESTDIR)$(bindir)/pd.com
	install -p pd.dll $(DESTDIR)$(bindir)/pd.dll
	$(STRIP) $(DESTDIR)$(bindir)/pd.dll
	install -p pd.ico $(DESTDIR)$(bindir)/pd.ico
	install -p pdsend.exe $(DESTDIR)$(bindir)/pdsend.exe
	$(STRIP) $(DESTDIR)$(bindir)/pdsend.exe
	install -p pdreceive.exe $(DESTDIR)$(bindir)/pdreceive.exe
	$(STRIP) $(DESTDIR)$(bindir)/pdreceive.exe
	for dir in $(shell ls -1 ../doc | grep -v CVS); do \
		echo "installing $$dir"; \
		install -d $(DESTDIR)$(pddocdir)/$$dir ; \
		install -p ../doc/$$dir/*.* $(DESTDIR)$(pddocdir)/$$dir ; \
	done
	for dir in $(shell ls -1 ../doc/7.stuff | grep -v CVS); do \
		echo "installing 7.stuff/$$dir"; \
		install -d $(DESTDIR)$(pddocdir)/7.stuff/$$dir ; \
		install -p ../doc/7.stuff/$$dir/*.* $(DESTDIR)$(pddocdir)/7.stuff/$$dir ; \
	done
	mv $(ABOUT_FILE) $(ABOUT_FILE).tmp
	cat $(ABOUT_FILE).tmp | sed 's|PD_VERSION|Pd version $(PD_VERSION)|' \
		> $(ABOUT_FILE)
	rm $(ABOUT_FILE).tmp
	install -d $(DESTDIR)/extra
	install -p ../extra/output~.pd ../extra/output~-help.pd $(DESTDIR)/extra
	install -d $(DESTDIR)$(includedir)
	install -p m_pd.h $(DESTDIR)$(includedir)
	install -d $(DESTDIR)$(includedir)/pdextended
	install -p g_all_guis.h g_canvas.h m_imp.h m_pd.h s_stuff.h e_fft.h e_sqrt.h \
		$(DESTDIR)$(includedir)/pdextended
	@echo "Pd install succeeded."


clean:
	-rm -f -- $(BIN_DIR)/*.*
	-rm -f -- *.o *.a *.def
	-rm -f -- pd*.exe pd*.dll pd.com
	-rm -f -- $(OBJ) $(GOBJ) $(SROBJ) $(PAOBJ) $(ASIOOBJ) $(PMOBJ)
	-rm -f makefile.dependencies

distclean: clean
	rm -rf -- config.cache config.log config.status makefile tags \
	     autom4te-*.cache

tags: $(SRC) $(GSRC); ctags *.[ch]

depend: makefile.dependencies

makefile.dependencies: $(SRC) $(PASRC) $(HEADERS)
	$(CC) $(INCLUDE) $(INCPA) $(CFLAGS) -M $(SRC) $(PASRC) $(HEADERS) \
		> makefile.dependencies

uninstall:
	-rm $(prefix)/bin/pd*.exe
	-rm $(prefix)/bin/pd*.com
	-rm $(prefix)/bin/pd*.dll
	-rm $(prefix)/bin/*.tcl


test_locations:
	@echo "PD_VERSION: $(PD_VERSION)"
	@echo "PACKAGE_VERSION: $(PACKAGE_VERSION)"
	@echo "CWD $(CWD)"
	@echo "DESTDIR $(DESTDIR)"
	@echo "PREFIX $(prefix)"
	@echo "BINDIR  $(bindir)"
	@echo "LIBDIR  $(libdir)"
	@echo "OBJECTSDIR  $(objectsdir)"
	@echo "PDDOCDIR  $(pddocdir)"
	@echo "LIBPDDIR  $(libpddir)"
	@echo "LIBPDBINDIR  $(libpdbindir)"
	@echo "HELPDIR  $(helpdir)"
	@echo "MANUALSDIR  $(manualsdir)"
	@echo "EXAMPLESDIR  $(examplesdir)"


include makefile.dependencies


More information about the Pd-list mailing list