[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