Hi André,
just get a 'normal' makefile that is used to compile one single external (the one from the Pd examples compiles three...). It doesn't matter wheter it's a control or signal external. Attached you'll find the makefile for patcher~ (win, OS X & Linux). To compile your own external just change the first two lines to:
NAME=yourexternal~ CSYM=yourexternal_tilde
to compile a signal external or to:
NAME=yourexternal CSYM=yourexternal
to compile a control external. That's all you need to do. The first line is the name of your external (used to build up the filename by appending '.c'), the second line the name of the function that gets exportet (after appending '_setup').
Olaf
PS: you might also need to change the path to m_pd.h and to your VC++...
André Schmidt schrieb:
hi devs,
i hope i'm not buggin you too much (again:) with my newbish questions, but i want to get started with little trouble as possible. so, got MSVC++6 and i managed to compile the foos in .../6.externs/ with 'nmake' after i changed the right paths in the makefile. and yes, they really worked :). this was my first time i compiled c/c++ from the commandline (not including my 1 and only time i succesfully compiled pd on linux:) so this makefile thing is a quite mystery to me but i assume it has all the settings that an IDE would have in it's menus, or similar. ok, for starters i want to compile the "hello world" external from http://iem.kug.ac.at/pd/externals-HOWTO/node3.html but i dont know what i should write in the makefile. before i start to TAE with the makefile from the foo examples i thought maybe some1 could explain or give a good www-link about the makefile...
thnx -andre (boldly going where i've newer been)
PD-dev mailing list PD-dev@iem.kug.ac.at http://iem.kug.ac.at/cgi-bin/mailman/listinfo/pd-dev
NAME=patcher~ CSYM=patcher_tilde
current: pd_nt pd_linux pd_darwin
# ----------------------- NT -----------------------
pd_nt: $(NAME).dll
.SUFFIXES: .dll
PDNTCFLAGS = /W3 /WX /O2 /G6 /DNT /DPD /nologo
# where is VC++ ??? VC="C:\Programme\Microsoft Visual Studio\VC98"
# where is your m_pd.h ??? PDNTINCLUDE = /I. /Ic:\pd\tcl\include /Ic:\pd\src /I$(VC)\include /Iinclude
PDNTLDIR = $(VC)\Lib PDNTLIB = $(PDNTLDIR)\libc.lib \ $(PDNTLDIR)\oldnames.lib \ $(PDNTLDIR)\kernel32.lib \ $(PDNTLDIR)\user32.lib \ $(PDNTLDIR)\uuid.lib \ c:\pd\bin\pd.lib
.c.dll: cl $(PDNTCFLAGS) $(PDNTINCLUDE) /c $*.c link /dll /export:$(CSYM)_setup $*.obj $(PDNTLIB)
# ----------------------- IRIX 5.x -----------------------
pd_irix5: $(NAME).pd_irix5
.SUFFIXES: .pd_irix5
SGICFLAGS5 = -o32 -DPD -DUNIX -DIRIX -O2
SGIINCLUDE = -I../../src
.c.pd_irix5: cc $(SGICFLAGS5) $(SGIINCLUDE) -o $*.o -c $*.c ld -elf -shared -rdata_shared -o $*.pd_irix5 $*.o rm $*.o
# ----------------------- IRIX 6.x -----------------------
pd_irix6: $(NAME).pd_irix6
.SUFFIXES: .pd_irix6
SGICFLAGS6 = -n32 -DPD -DUNIX -DIRIX -DN32 -woff 1080,1064,1185 \ -OPT:roundoff=3 -OPT:IEEE_arithmetic=3 -OPT:cray_ivdep=true \ -Ofast=ip32
.c.pd_irix6: cc $(SGICFLAGS6) $(SGIINCLUDE) -o $*.o -c $*.c ld -n32 -IPA -shared -rdata_shared -o $*.pd_irix6 $*.o rm $*.o
# ----------------------- MAX OS X -----------------------
pd_darwin: $(NAME).pd_darwin
.SUFFIXES: .pd_darwin
DARWINCFLAGS = -DPD -DUNIX -O2 -DMACOSX \ -Wall -W -Wshadow -Wstrict-prototypes \ -Wno-unused -Wno-parentheses -Wno-switch
DARWININCLUDE = -I../../src
.c.pd_darwin: cc $(DARWINCFLAGS) $(DARWININCLUDE) -o $*.o -c $*.c cc -bundle -undefined suppress -flat_namespace -o $*.pd_darwin $*.o rm -f $*.o ../$*.pd_darwin ln -s $*/$*.pd_darwin ..
# ----------------------- LINUX i386 -----------------------
pd_linux: $(NAME).pd_linux
.SUFFIXES: .pd_linux
LINUXCFLAGS = -DPD -DUNIX -O2 -funroll-loops -fomit-frame-pointer \ -Wall -W -Wshadow -Wstrict-prototypes -Werror \ -Wno-unused -Wno-parentheses -Wno-switch
# where is your m_pd.h ??? LINUXINCLUDE = -I../../src
.c.pd_linux: cc -O2 -Wall -DPD -fPIC $(LINUXCFLAGS) $(LINUXINCLUDE) -c $*.c ld -export_dynamic -shared -o $*.pd_linux $*.o -lc strip --strip-unneeded $*.pd_linux
# ----------------------------------------------------------
install: cp help-*.pd ../../doc/5.reference
clean: rm -f *.o *.pd_* so_locations