[PD] HELP with compiling PD for X11

Sam Roig tzahm at punkass.com
Tue Jan 27 12:14:13 CET 2004


Already a while ago I tried to compile PD for OS X using the X11 libraries instead of the Aqua version. Although some people on the list tried to help, I never managed to compile it properly.  I am trying again now with similar results. Can someone have a look at my makefile and tell me what's wrong? I installed the Tcl/Tk libraries with fink and I also have the Aqua ones installed. Ideally, I would like to compile PD with x11 support (for x-forwarding) and also Jack and Portaudio support. To tell the truth, if the thing compiles with X11 and makes any sound at all, I'll be happy.
 
 The makefile follows. Thanks.

 -- 
 ::: sam :::

 VPATH = ../obj:./
 OBJ_DIR = ../obj
 BIN_DIR = ../bin
 PDEXEC = $(BIN_DIR)/pd
 EXT= pd_darwin
 GUINAME= pd-gui
 
 INSTALL_PREFIX = /usr/local
 GFLAGS = -DINSTALL_PREFIX=\"$(INSTALL_PREFIX)\"
 
 MANDIR = ${prefix}/man
 
 MORECFLAGS = -DMACOSX -I/usr/X11R6/include 	 -I../portaudio_v18/pa_common         -I../portaudio_v18/pablio 	-I../portmidi_osx 	-Wno-error 	-DUSEAPI_PORTAUDIO -DPA_BIG_ENDIAN -DUSEAPI_JACK -DUSEAPI_JACK
 
 INCLUDE = -I.
 GINCLUDE = $(INCLUDE) -I/sw/include -I/usr/X11R6/include
 GLIB =  -lX11 -L/usr/X11R6/lib -L/sw/lib -ltcl -ltk
 
 LDFLAGS = -Wl -L/sw/lib -ltclstub -ltkstub8.4 -L/usr/X11R6/lib -lX11 -framework CoreAudio -framework AudioUnit -framework AudioToolbox         -framework Carbon -framework CoreMIDI -framework Jack 
 LIB =   -ldl -lm -lpthread
 # remove -ldl if it fails!
 OPT_CFLAGS = -O2
 WARN_CFLAGS = -Wall -W -Wstrict-prototypes -Werror \
     -Wno-unused -Wno-parentheses -Wno-switch
 ARCH_CFLAGS = -DPD -DUNIX 
 
 CFLAGS = $(ARCH_CFLAGS) $(WARN_CFLAGS) $(OPT_CFLAGS) $(MORECFLAGS)
 
 # the sources
 
 SYSSRC += s_midi_pm.c s_audio_pa.c 	../portaudio_v18/pa_common/pa_lib.c 	../portaudio_v18/pa_common/pa_trace.c 	../portaudio_v18/pa_common/pa_convert.c     	../portaudio_v18/pablio/pablio_pd.c 	../portaudio_v18/pablio/ringbuffer_pd.c 	../portaudio_v18/pa_mac_core/pa_mac_core.c         ../portmidi_osx/pmdarwin.c         ../portmidi_osx/pmmacosx.c         ../portmidi_osx/pmutil.c         ../portmidi_osx/portmidi.c         ../portmidi_osx/ptdarwin.c  s_audio_jack.c
 
 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 g_bang.c g_hdial.c g_hslider.c g_mycanvas.c g_numbox.c \
     g_toggle.c g_vdial.c g_vslider.c g_vumeter.c \
     m_pd.c m_class.c m_obj.c m_atom.c m_memory.c m_binbuf.c \
     m_conf.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 \
     d_ugen.c d_ctl.c d_arithmetic.c d_osc.c d_filter.c d_dac.c d_misc.c \
     d_math.c d_fft.c d_mayer_fft.c d_fftroutine.c d_array.c d_global.c \
     d_delay.c d_resample.c \
     x_arithmetic.c x_connective.c x_interface.c x_midi.c x_misc.c \
     x_time.c x_acoustics.c x_net.c x_qlist.c x_gui.c d_soundfile.c \
     $(SYSSRC)
 
 
 OBJ = $(SRC:.c=.o) 
 EXTERNS = ../extra/*/*.$(EXT)
 
 GSRC =  t_main.c t_tkcmd.c
 
 GOBJ = $(GSRC:.c=.o)
 
 #
 #  ------------------ targets ------------------------------------
 #
 
 .PHONY: pd gui externs all
 
 all: $(PDEXEC) $(BIN_DIR)/pd-watchdog $(BIN_DIR)/$(GUINAME) $(BIN_DIR)/pdsend \
     $(BIN_DIR)/pdreceive  $(BIN_DIR)/pd.tk externs
 
 bin: $(PDEXEC) $(BIN_DIR)/pd-watchdog $(BIN_DIR)/$(GUINAME) $(BIN_DIR)/pdsend \
     $(BIN_DIR)/pdreceive  $(BIN_DIR)/pd.tk
 
 $(OBJ) : %.o : %.c
 	$(CC) $(CFLAGS) $(GFLAGS) $(INCLUDE) -c -o $(OBJ_DIR)/$*.o $*.c 
 
 $(GOBJ) : %.o : %.c
 	$(CC) $(CFLAGS) $(GFLAGS) $(GINCLUDE) -c -o $(OBJ_DIR)/$*.o $*.c 
 
 pd: $(PDEXEC)
 
 gui: $(BIN_DIR)/$(GUINAME)
 
 pd-watchdog: $(BIN_DIR)/pd-watchdog
 
 $(BIN_DIR)/pd-watchdog: s_watchdog.c
 	cc -O2 $(STRIPFLAG) -o $(BIN_DIR)/pd-watchdog s_watchdog.c
 
 $(BIN_DIR)/pdsend: u_pdsend.c
 	cc $(CFLAGS)  $(STRIPFLAG) -o $(BIN_DIR)/pdsend u_pdsend.c
 
 $(BIN_DIR)/pdreceive: u_pdreceive.c
 	cc $(CFLAGS)  $(STRIPFLAG) -o $(BIN_DIR)/pdreceive u_pdreceive.c
 
 $(PDEXEC): $(OBJ) 
 	cd ../obj;  $(CC) $(LDFLAGS) $(DBG_CFLAGS) -o $(PDEXEC) $(OBJ) \
 	$(LIB)
 
 $(BIN_DIR)/pd-gui: $(GOBJ) $(GSRC)
 	cd ../obj; $(CC) $(INCLUDE) -o $(BIN_DIR)/$(GUINAME) $(GOBJ) \
 	$(GLIB)
 
 $(BIN_DIR)/pd.tk: u_main.tk
 	echo set pd_nt 2 > $(BIN_DIR)/pd.tk
 	grep -v "set pd_nt" < u_main.tk >> $(BIN_DIR)/pd.tk
 
 #this is for Max OSX only...
 $(BIN_DIR)/pdtcl: $(GOBJ) $(GSRC)
 	cd ../obj; libtool -dynamic -o $(BIN_DIR)/pdtcl $(GOBJ) \
 	/Library/Frameworks/Tk.framework/Versions/Current/Tk \
 	/Library/Frameworks/Tcl.framework/Versions/Current/Tcl \
 	/usr/lib/libSystem.B.dylib
 
 externs: 
 	cd ../extra/bonk~;make pd_darwin
 	cd ../extra/choice;make pd_darwin
 	cd ../extra/expr~;make pd_darwin
 	cd ../extra/fiddle~;make pd_darwin
 	cd ../extra/loop~;make pd_darwin
 	cd ../extra/lrshift~;make pd_darwin
 	cd ../extra/pique;make pd_darwin
 
 INSTDIR = $(DESTDIR)/$(INSTALL_PREFIX)
 MANINSTDIR = $(DESTDIR)/$(MANDIR)
 
 install:  all
 	install -d $(INSTDIR)/lib/pd/bin
 	install $(BIN_DIR)/$(GUINAME) $(INSTDIR)/lib/pd/bin/$(GUINAME)
 	install $(BIN_DIR)/pd-watchdog $(INSTDIR)/lib/pd/bin/pd-watchdog
 	install -m644 $(BIN_DIR)/pd.tk $(INSTDIR)/lib/pd/bin/pd.tk
 	install -d $(INSTDIR)/bin
 	install -m755 $(PDEXEC) $(INSTDIR)/bin/pd
 	install -m 755 $(BIN_DIR)/pdsend $(INSTDIR)/bin/pdsend
 	install -m 755 $(BIN_DIR)/pdreceive $(INSTDIR)/bin/pdreceive 
 	install -d $(INSTDIR)/lib/pd/extra
 	install -d $(INSTDIR)/lib/pd/externs
 	install -m 644 $(EXTERNS) $(INSTDIR)/lib/pd/extra
 	cp -r ../doc $(INSTDIR)/lib/pd/
 	install -d $(INSTDIR)/include
 	install -m644 m_pd.h $(INSTDIR)/include/m_pd.h
 	install -d $(MANINSTDIR)/man1
 	gzip < ../man/pd.1 >  $(MANINSTDIR)/man1/pd.1.gz
 	chmod 644 $(MANINSTDIR)/man1/pd.1.gz
 	gzip < ../man/pdsend.1 >  $(MANINSTDIR)/man1/pdsend.1.gz
 	chmod 644 $(MANINSTDIR)/man1/pdsend.1.gz
 	gzip < ../man/pdreceive.1 >  $(MANINSTDIR)/man1/pdreceive.1.gz
 	chmod 644 $(MANINSTDIR)/man1/pdreceive.1.gz
 
 local-clean:
 	-rm -f ../obj/* $(BIN_DIR)/pd $(BIN_DIR)/$(GUINAME) $(BIN_DIR)/pdsend \
 	    $(BIN_DIR)/pdreceive $(BIN_DIR)/pd-watchdog m_stamp.c
 	-rm -f *~
 	-(cd ../doc/6.externs; rm -f *.pd_linux)
 	-rm -f makefile.dependencies
 	touch makefile.dependencies
 	chmod 666 makefile.dependencies
 
 extra-clean:
 	-rm -f `find ../extra/ -name "*.pd_*"`
 	-rm -f tags
 
 clean: extra-clean local-clean
 
 distclean: clean
 	rm -rf config.cache config.log config.status makefile tags \
 	     autom4te-*.cache
 	echo all: > makefile
 	echo -e  "\t./configure" >> makefile
 	echo -e "\tmake" >> makefile
 
 tags: $(SRC) $(GSRC); ctags *.[ch]
 
 depend: 
 	$(CC) $(INCLUDE) $(CFLAGS) -M $(SRC) > makefile.dependencies
 
 uninstall:
 	-rm -r $(INSTDIR)/lib/pd
 	-rm $(INSTDIR)/bin/pd
 	-rm $(INSTDIR)/bin/pdsend
 	-rm $(INSTDIR)/bin/pdreceive
 	-rm $(INSTDIR)/include/m_pd.h
 	-rm $(MANINSTDIR)/man/man1/pd.1.gz
 	-rm $(MANINSTDIR)/man/man1/pdsend.1.gz
 	-rm $(MANINSTDIR)/man/man1/pdreceive.1.gz
 
 include makefile.dependencies
 
 
 
 
 
 
 


-- 
::: sam :::




More information about the Pd-list mailing list