[PD-dev] pd externals makefile help for newbie [win32]
Olaf Matthes
olaf.matthes at gmx.de
Tue Sep 24 21:50:13 CEST 2002
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 at iem.kug.ac.at
> http://iem.kug.ac.at/cgi-bin/mailman/listinfo/pd-dev
-------------- next part --------------
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
More information about the Pd-dev
mailing list