#
# Makefile for building ProRes reference decoder
#
#
# Copyright (c) 2015 Apple Inc. and the Society of Motion Picture and
# Television Engineers. All rights reserved.
#
# See LICENSE.txt for licensing information.
#


# Definitions
CXX = g++
CXXFLAGS = -O3 -Wall -g

MAIN = ProResDecoder
SOURCES = $(MAIN:%=%.cpp) Frame.cpp Picture.cpp Slice.cpp \
          CoeffVLCStream.cpp AlphaVLCStream.cpp \
          Block.cpp SliceMacroblockWriter.cpp
OBJECTS = $(SOURCES:%.cpp=%.o)


# Targets
default: $(MAIN)


# Header dependencies
ProResDecoder.o: Bitstream.h PixelBuffer.h Frame.h
Frame.o: Frame.h Picture.h Bitstream.h PixelBuffer.h
Picture.o: Frame.h Picture.h Slice.h Bitstream.h PixelBuffer.h
Slice.o: Frame.h Picture.h Slice.h CoeffVLCStream.h AlphaVLCStream.h Block.h \
         VLCStream.h Bitstream.h SliceMacroblockWriter.h PixelBuffer.h
CoeffVLCStream.o: CoeffVLCStream.h VLCStream.h Bitstream.h
AlphaVLCStream.o: AlphaVLCStream.h VLCStream.h Bitstream.h
Block.o: Block.h Frame.h
SliceMacroblockWriter.o: SliceMacroblockWriter.h PixelBuffer.h


# Rules
%.o: %.cpp
	$(CXX) -c $(CXXFLAGS) -o $@ $<

$(MAIN): $(OBJECTS)
	$(CXX) -o $@ $^

clean: cleanobj
	rm -f $(MAIN)

cleanobj:
	rm -f $(OBJECTS)
