CC_OBJS = clipcode_a1.o \
       clipcode_a2.o \
       clipcode_a3.o \
       clipcode_args.o \
       clipcode_helpers.o

LS_OBJS = lstring.o \
       lstring_defs.o

MAINOBJS = $(CC_OBJS) $(LS_OBJS)

CFLAGS := $(CFLAGS) -Wall
CC_LIBS =  -lpcre
PROGS = clipcode clipcode_static lstring

all: clipcode lstring
# you don't *really* want the static version, do you?

static: clipcode_static

clipcode: $(CC_OBJS)
	cc -o clipcode $^ $(CC_LIBS)

lstring: $(LS_OBJS)
	cc -o lstring $^

lstring.c: lstring.l
	flex -olstring.c lstring.l

# intermediate file for static linking (so we don't end
# up statically linking against libc...)
clipcode_partial.o: $(CC_OBJS)
	cc -r -nostdlib -o $@ $^ -static $(CC_LIBS)

clipcode_static: clipcode_partial.o
	cc -o $@ $<

Makefile.dep depend: *.c
	for i in *.c; do $(CC) $(INC) -MM $$i;done >Makefile.dep


include Makefile.dep

clean:
	$(RM) $(MAINOBJS) clipcode_partial.o $(PROGS)
