#
# projectM -- Milkdrop-esque visualisation SDK
# Copyright (C)2003-2007 projectM Team
# 
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
# 
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# Lesser General Public License for more details.
# 
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
# See 'LICENSE.txt' included within this release

SUBDIRS=\
projectM-engine \
projectM-iTunes \
projectM-libvisual \
projectM-moviegen \
projectM-screensaver \
projectM-sdlvis \
projectM-wxvis \
projectM-xmms \
macos \
win32

all: subdirs

### Go through each subdir
subdirs: 
	@for i in $(SUBDIRS); do \
	( cd $$i ; make -f Makefile.dist ) \
	done

clean:
	@for i in $(SUBDIRS); do \
	( cd $$i ; make -f Makefile.dist clean ) \
	done
