Its quick if you have the Pd sources, and will save you effort in the long run.  

export CVSROOT=":pserver:anonymous@pure-data.cvs.sourceforge.net:/cvsroot/pure-data"
mkdir pure-data
cd pure-data
cvs login
cvs co pd
cvs co externals
cvs co packages
mkdir externals/ericlyon
cp   /path/to/your/*.c   externals/ericlyon
cp   externals/io/hidio/Makefile   externals/ericlyon
emacs   externals/Makefile
(copy and paste "template" section and change the paths, and the section I sent you)
cd externals/ericlyon
make clean
make

Voila! I have done it many times...

.hc


On Dec 4, 2006, at 5:12 PM, Eric Lyon wrote:

Thanks, I'll have a look. For now I just need something quick and dirty that works so I can test the code. But what you suggest is probably the best longterm solution.

Eric


On 12/4/06, Hans-Christoph Steiner <hans@eds.org> wrote:

You could use the Pd-extended build stuff, then only have to maintain one target for all platforms (GNU/Linux, Mac OS X, and Windows) and you get automatic inclusion into Pd-extended, nightly builds on all these platforms, as well as automatic handling of global CPU optimization flags.

Here's a bit for building [hid] from externals/Makefile with some stuff stripped out that's not relevant to what you describe. 

-------------
HID_SRC = input_arrays.c hid_$(OS_NAME).c hid.c
HID_OBJECTS := $(patsubst %.c, $(externals_src)/hcs/hid/%.o, $(HID_SRC))
$(HID_OBJECTS) : %.o : %.c
$(CC) $(CFLAGS) -o "$*.o" -c "$*.c"

$(externals_src)/hcs/hid/hid.$(EXTENSION): $(HID_OBJECTS) 
$(CC) $(LDFLAGS) -o $(externals_src)/hcs/hid/hid.$(EXTENSION) $(HID_OBJECTS)
$(STRIP) $(externals_src)/hcs/hid/hid.$(EXTENSION)
--------------

The sources are all in $(externals_src)/hcs/hid. The resulting file is: $(externals_src)/hcs/hid/hid.$(EXTENSION)

This would make the most sense if you put your code into the Pd CVS layout (or even checked it into the Pd CVS).  Like make a folder in pure-data/externals, put your code there, then make a target in pure-data/externals/Makefile using the template that's in there.

.hc

On Dec 4, 2006, at 10:56 AM, Eric Lyon wrote:

Greetings,

I need some advice for how to modify the Pd Makefile for when I need to compile more than one code file into an external, yet do not wish to create a separate library. Say I have a main file for the external, "tightdsp~.c" another file containing support functions, " dsphelper1.c" and a third file with even more functions, "dsphelper2.c". How would I modify the following Makefile so that it would compile the code together, just as if I had copied the contents of the two helper files into the main code file?

TIA,
Eric
===

NAME=tightdsp~
CSYM=tightdsp_tilde

current: pd_darwin

# ----------------------- Mac OSX -----------------------

pd_darwin: $(NAME).pd_darwin

.SUFFIXES: .pd_darwin

DARWINCFLAGS = -DPD -O2 -Wall -W -Wshadow -Wstrict-prototypes \
    -Wno-unused -Wno-parentheses -Wno-switch

.c.pd_darwin:
        cc $(DARWINCFLAGS) $(LINUXINCLUDE)  -o $*.o -c $*.c
        cc -bundle -undefined suppress  -flat_namespace -o $*.pd_darwin $*.o
        rm -f $*.o ../$*.pd_darwin
        cp $*.pd_darwin $(DEST)
# ----------------------------------------------------------
_______________________________________________
PD-dev mailing list


------------------------------------------------------------------------

"[W]e have invented the technology to eliminate scarcity, but we are deliberately throwing it away to benefit those who profit from scarcity."        -John Gilmore





------------------------------------------------------------------------

"[W]e have invented the technology to eliminate scarcity, but we are deliberately throwing it away to benefit those who profit from scarcity."        -John Gilmore