# libmatroska core Makefile (used in cygwin)
# $Id: Makefile,v 1.1 2003/07/16 15:32:47 robux4 Exp $
# Author: Steve Lhomme <robux4 @ users.sf.net>
# Author: Moritz Bunkus <moritz @ bunkus.org>

# Programs
CXX=g++
LD=g++
DEP=$(CXX) -MM
DEPEND = makedepend
AR = ar rcvu
RANLIB = ranlib

# Options
EXTENSION=.cpp
# BeOS only supports gcc2 for now anyway
# (gcc3 is underway)
GCCVERSION := $(shell $(CXX) -dumpversion | cut -b 1)
ifeq (2,$(GCCVERSION))
	LIBEBML_GCC2=-DLIBEBML_GCC2
endif
CXXFLAGS=-g -DDEBUG -Wall -Wno-unknown-pragmas $(LIBEBML_GCC2) -DWRITE_EVEN_UNSET_DATA
LDFLAGS=-L.

SRC_DIR=../../src/
MUX_SRC_DIR=../../test/mux/

# Librarires
INCLUDE=-I${SRC_DIR}
LIBS=
MUX_LIBS=-lmatroska

# Names
LIBRARY=libmatroska.a

# source-files
sources:=$(wildcard ${SRC_DIR}*$(EXTENSION))

# header files; replace .cxx extension with .h
headers:=$(patsubst %$(EXTENSION),%.hpp,$(sources))

# files holding dependency information; replace .cxx extension with .dep
dependencies:=$(patsubst %$(EXTENSION),%.dep,$(sources))

# object files; replace .cxx extension with .o
objects:=$(patsubst %$(EXTENSION),%.o,$(sources))

DEPENDFLAGS  = ${CXXFLAGS} ${INCLUDE}

all: $(LIBRARY) test

# Build rules
%.o: %$(EXTENSION)
	$(CXX) -c $(CXXFLAGS) $(INCLUDE) -o $@ $<

$(LIBRARY): $(objects)
	$(AR) $@ $(objects)
	$(RANLIB) $@
#	$(LD) $(LDFLAGS) -o $@ $^ $(LIBS)
#	${LD} -o $@ ${LDFLAGS} ${OBJS} ${LIBS} ${EXTRA_LIBS}

clean:
	rm -f ${SRC_DIR}$(objects)
	rm -f ${SRC_DIR}$(dependencies)
	rm -f ${SRC_DIR}$(LIBRARY)
	rm -f CORE
	rm -f test6 test8

# what are the source dependencies
depend: $(sources)
	$(DEPEND) $(DEPENDFLAGS) $(sources)

test: test6 test8

test6:	$(MUX_SRC_DIR)test6.o $(LIBRARY)
	$(LD) -o $@ $(LDFLAGS) $< $(MUX_LIBS)

$(MUX_SRC_DIR)test6.o: $(MUX_SRC_DIR)test6.cpp
	$(CXX) -c $(CXXFLAGS) $(INCLUDE) -o $@ $<

test8:	$(MUX_SRC_DIR)test8.o $(LIBRARY)
	$(LD) -o $@ $(LDFLAGS) $< $(MUX_LIBS)

$(MUX_SRC_DIR)test8.o: $(MUX_SRC_DIR)test8.cpp
	$(CXX) -c $(CXXFLAGS) $(INCLUDE) -o $@ $<


# DO NOT DELETE
