CXX = g++
CC = gcc
CXXFLAGS = -Wall -O2 -D NDEBUG
RM = rm

LIBS = `pkg-config --libs opencv libxml-2.0`
INCS = `pkg-config --cflags opencv libxml-2.0`

.PHONY: all clean

%.o: %.cpp %.h
	$(CXX) $(CXXFLAGS) $(INCS) -c $< -o $@
        
%.o: %.c %.h
	$(CC) $(CXXFLAGS) $(INCS) -c $< -o $@
        
%.s: %.cpp %.h
	$(CXX) $(CXXFLAGS) $(INCS) -S $< -o $@

%.s: %.c %.h
	$(CC) $(CXXFLAGS) $(INCS) -S $< -o $@

all: bin/pclines

bin/pclines: main.cpp libPClines.o
	$(CXX) $^ -o $@ $(CXXFLAGS) $(INCS) $(LIBS)

bin/libpclines.o: libPClines.c
	$(CC) $^ -o $@ -fPIC -shared $(CXXFLAGS) $(INCS) $(LIBS)

clean:
	$(RM) *.o *.s
