# Manually created makefile

CC = gcc
CFLAGS = -g -Wall -DDBUG
CPPFLAGS = -I. 
LDFLAGS =
LIBS = -liberty

SRC = frame_stack.c frame_stack-objc.m ccatch.c \
StackFrame.m Catch.m Exception.m UnwindProtect.m

C_OBJECTS = frame_stack.o ccatch.o
OBJC_OBJECTS = frame_stack-objc.o StackFrame.o Catch.o Exception.o \
UnwindProtect.o xmalloc.m

.SUFFIXES: .m .c .d

all: libccatch.a libobjccatch.a tests

libccatch.a: $(C_OBJECTS)
	rm -f libccatch.a
	ar cr $@ $^

libobjccatch.a: $(OBJC_OBJECTS)
	rm -f libobjccatch.a
	ar cr $@ $^

frame_stack-objc.m: frame_stack.c
	ln -s frame_stack.c frame_stack-objc.m

tests: libccatch.a dummy
	cd test; $(MAKE)

clean:
	rm -f *.o core catch-test

%.o : %.c
	$(CC) -c $(CFLAGS) $(CPPFLAGS) $< -o $@

%.d : %.c
	$(SHELL) -ec '$(CC) -M $(CPPFLAGS) $< \
	| sed '\''s/$*\\.o[ :]*/& $@/g'\'' > $@'

%.o : %.m
	$(CC) -c $(CFLAGS) $(CPPFLAGS) $< -o $@

%.d : %.m
	$(SHELL) -ec '$(CC) -M $(CPPFLAGS) $< \
	| sed '\''s/$*\\.o[ :]*/& $@/g'\'' > $@'

dummy:


include $(patsubst %.c, %.d, $(filter %.c, $(SRC)) )
include $(patsubst %.m, %.d, $(filter %.m, $(SRC)) )
