#  FLAC - Free Lossless Audio Codec
#  Copyright (C) 2001,2002,2003,2004,2005,2006 Josh Coalson
#
#  This file is part the FLAC project.  FLAC is comprised of several
#  components distributed under difference licenses.  The codec libraries
#  are distributed under Xiph.Org's BSD-like license (see the file
#  COPYING.Xiph in this distribution).  All other programs, libraries, and
#  plugins are distributed under the GPL (see COPYING.GPL).  The documentation
#  is distributed under the Gnu FDL (see COPYING.FDL).  Each file in the
#  FLAC distribution contains at the top the terms under which it may be
#  distributed.
#
#  Since this particular file is relevant to all components of FLAC,
#  it may be distributed under the Xiph.Org license, which is the least
#  restrictive of those mentioned above.  See the file COPYING.Xiph in this
#  distribution.

#
# GNU Makefile
#
# Useful targets
#
# all     : build all libraries and programs in the default configuration (currently 'release')
# debug   : build all libraries and programs in debug mode
# valgrind: build all libraries and programs in debug mode, dynamically linked and ready for valgrind
# release : build all libraries and programs in release mode
# test    : run the unit and stream tests
# clean   : remove all non-distro files
#

topdir = .

.PHONY: all doc src libFLAC libFLAC++ libOggFLAC libOggFLAC++ share plugin_common plugin_xmms flac metaflac test_grabbag test_libFLAC test_libFLAC++ test_libOggFLAC test_libOggFLAC++ test_seeking test_streams
all: doc src

DEFAULT_CONFIG = release

CONFIG = $(DEFAULT_CONFIG)

debug   : CONFIG = debug
valgrind: CONFIG = valgrind
release : CONFIG = release

debug   : all
valgrind: all
release : all

doc:
	(cd $@ ; $(MAKE) -f Makefile.lite)

src:
	(cd $@ ; $(MAKE) -f Makefile.lite $(CONFIG))

libFLAC:
	(cd src/$@ ; $(MAKE) -f Makefile.lite $(CONFIG))

libFLAC++: libFLAC
	(cd src/$@ ; $(MAKE) -f Makefile.lite $(CONFIG))

libOggFLAC: libFLAC
	(cd src/$@ ; $(MAKE) -f Makefile.lite $(CONFIG))

libOggFLAC++: libFLAC
	(cd src/$@ ; $(MAKE) -f Makefile.lite $(CONFIG))

share: libFLAC
	(cd src/$@ ; $(MAKE) -f Makefile.lite $(CONFIG))

flac: libFLAC libOggFLAC share
	(cd src/$@ ; $(MAKE) -f Makefile.lite $(CONFIG))

metaflac: libFLAC share
	(cd src/$@ ; $(MAKE) -f Makefile.lite $(CONFIG))

plugin_common: libFLAC
	(cd src/$@ ; $(MAKE) -f Makefile.lite $(CONFIG))

plugin_xmms: libFLAC plugin_common
	(cd src/$@ ; $(MAKE) -f Makefile.lite $(CONFIG))

test_seeking: libFLAC libOggFLAC
	(cd src/$@ ; $(MAKE) -f Makefile.lite $(CONFIG))

test_streams: libFLAC
	(cd src/$@ ; $(MAKE) -f Makefile.lite $(CONFIG))

test_grabbag: share
	(cd src/$@ ; $(MAKE) -f Makefile.lite $(CONFIG))

test_libFLAC: libFLAC
	(cd src/$@ ; $(MAKE) -f Makefile.lite $(CONFIG))

test_libFLAC++: libFLAC libFLAC++
	(cd src/$@ ; $(MAKE) -f Makefile.lite $(CONFIG))

test_libOggFLAC: libFLAC libOggFLAC
	(cd src/$@ ; $(MAKE) -f Makefile.lite $(CONFIG))

test_libOggFLAC++: libFLAC libOggFLAC libOggFLAC++
	(cd src/$@ ; $(MAKE) -f Makefile.lite $(CONFIG))

test: debug
	(cd test ; $(MAKE) -f Makefile.lite debug)

testv: valgrind
	(cd test ; $(MAKE) -f Makefile.lite valgrind)

testr: release
	(cd test ; $(MAKE) -f Makefile.lite release)

clean:
	-(cd doc ; $(MAKE) -f Makefile.lite clean)
	-(cd src ; $(MAKE) -f Makefile.lite clean)
	-(cd test ; $(MAKE) -f Makefile.lite clean)
