I'm needing some compilation help with the markov object I found here:
http://icem-www.folkwang-hochschule.de/~finnendahl/pd.html (bottom of the page)
I'm using it on linux, but I can't get it to compile on win32.
"Can't get it to compile" is not enough info to give us a chance to help. Please tell us a bit more about your problem.
Yes, my apologies. I'm using cygwin.
It seems that the makefile is tailored only to linux, and my goal is to compile a .dll for windows. At first the compilation itself failed with lots of "undefined reference to ..." that quickly scrolled off the dos window (why can't they put a scrollbar on it?!).
I tried hacking the makefile, and now it compiles to the *.o files OK, but the linking still failes with a similar multitude of "undefined reference" errors, all things to do with pd, like "outlet_float," etc. I've pasted the makefile below.
I understand that the problem is with includes and libraries, but I haven't find a solution. Any clues (or a working makefile!) are appreciated :)
-Chris
(makefile)
current: all
# This makefile is a ripoff of the zexy lib makefile # by johannes m. zmoelnig (thanks, johannes :-) # mahash/mapwrite/mapread makefile # everything is GnuGPL that should come with the object # make sure that the "m_pd.h" is somehow available either by putting it into this # directory, by adding it's path to the INCLUDE-path or by putting it into an # already included path, e.g. "/usr/local/include/"
#these are the user adjustables : adjust them to fit into your system # PD will install to $(DESTDIR)$(INSTALLL_PREFIX)$(PDLIBDIR), which is /usr/local/lib/pd # by default DESTDIR = INSTALL_PREFIX = /cygdrive/c/WINDOWS/Desktop/pd-0.38-4/pd-0.38-4-devel-2 PDLIBDIR = /lib INSTALLDIR = /externs HELPFILEDIR = /doc/5.reference #these were the user adjustables
TARGETS = dice in_out markovUtils rb_tree buffer dice2 fileio markov rand table
# ----------------------- LINUX ---------------------------- .SUFFIXES: .pd_linux
LINUXOBJECTS = $(TARGETS:%=%.o) ARCH = $(shell uname --machine)
PD_DIR = $(DESTDIR)$(INSTALL_PREFIX)$(PDLIBDIR)
ifeq (${ARCH},alpha) AFLAGS = -mieee -mcpu=ev56 endif
LINCLUDE = -I/usr/include -I/cygdrive/c/WINDOWS/Desktop/pd-0.38-4/pd-0.38-4-devel-2/src
$(LINUXOBJECTS): *.h
CFLAGS = -O2 -g -Wall $(LINCLUDE) $(UCFLAGS) $(AFLAGS)
-DPD -O2 -funroll-loops -fomit-frame-pointer
-W -Wshadow -Wstrict-prototypes
-Wno-unused -Wno-parentheses -Wno-switch
everything: clean all install distclean
install: # cp maphash.pd_linux $(PD_DIR)$(INSTALLDIR) # cp maphash-help.pd $(PD_DIR)$(HELPFILEDIR)/maphash.pd # cp maphash-io.pd $(PD_DIR)$(INSTALLDIR) # cp maphash-io-example.txt $(PD_DIR)$(INSTALLDIR) # ln -s $(PD_DIR)$(HELPFILEDIR)/maphash.pd $(PD_DIR)$(HELPFILEDIR)/mapread.pd # ln -s $(PD_DIR)$(HELPFILEDIR)/maphash.pd $(PD_DIR)$(HELPFILEDIR)/mapwrite.pd
uninstall: # rm $(PD_DIR)$(INSTALLDIR)/maphash.pd_linux # rm $(PD_DIR)$(INSTALLDIR)/maphash-io.pd # rm $(PD_DIR)$(INSTALLDIR)/maphash-io-example.txt # rm $(PD_DIR)$(HELPFILEDIR)/maphash.pd # rm $(PD_DIR)$(HELPFILEDIR)/mapread.pd # rm $(PD_DIR)$(HELPFILEDIR)/mapwrite.pd
distclean: touch dummy.o touch dummy.pd_linux touch dummy~ touch _dummy rm *.o *.pd_linux *~ _*
clean: touch dummy.o touch dummy.pd_linux rm *.o *.pd_linux
all: $(LINUXOBJECTS)
@echo :: $(LINUXOBJECTS)
ld -L/cygdrive/c/WINDOWS/Desktop/pd-0.38-4/pd-0.38-4-devel-2/lib
-export_dynamic -shared -o markov.dll *.o -lc -lm strip --strip-unneeded markov.dll
.c.pd_linux: gcc $(CFLAGS) -O2 -DPD -fPIC $(INCLUDE) -c -o $*.o $*.c
(end makefile)