
default: all

CXXFLAGS += -Wall -Igrit/cldib/ -Igrit/libgrit/

GRITSRC := grit_lz.cpp grit_huff.cpp grit_rle.cpp \
  cprs.cpp cprs_lz.cpp cprs_huff.cpp cprs_rle.cpp

%/:
	@mkdir -vp "$@"

obj/%.o: %.cpp obj/
	$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
obj/%.cpp.o: grit/libgrit/%.cpp obj/
	$(CXX) $(CXXFLAGS) -o "$@" -c "$<"

bin/lz77c: obj/lz77.o $(patsubst %.cpp,obj/%.cpp.o,$(GRITSRC)) bin/
	$(CXX) -o "$@" $(filter-out %/,$^)
bin/huffc: bin/lz77c
	ln -s -T lz77c "$@"

all: bin/lz77c bin/huffc

clean:
	$(RM) -rv bin/* obj/*

.PHONY: default all clean

