TARGET=lzw.so
OBJECTS = codec.o comp.o decomp.o dict.o format.o pack.o c_api.o unpack.o my_comp.o

SRCDIR = code
OBJDIR = objs
CC = g++
#COPTS = -fpic -funroll-loops -O3 -I./include -D_NEED_TERMINATE_FUNCTION
COPTS = -g -fpic -I./include -D_NEED_TERMINATE_FUNCTION
LIBS = -ldl

all : ${TARGET} my_comp

my_comp : ${OBJDIR}/my_comp.o ${TARGET}
	${CC} ${LIBS} ${OBJDIR}/my_comp.o ${TARGET} -o my_comp

${TARGET} : ${OBJECTS:%=${OBJDIR}/%}
	$(CC) -shared ${OBJECTS:%=${OBJDIR}/%} -o ${TARGET}

${OBJDIR}/%.o : ${SRCDIR}/%.c
	$(CC) $(COPTS) -c $< -o $@ 

${OBJDIR}/%.o : ${SRCDIR}/%.cpp
	$(CC) $(COPTS) -c $< -o $@ 

clean: 
	@/bin/rm -f *.so ${OBJDIR}/*.o ${TARGET}

