#
# Makefile for GNU Shogi and xshogi
#
# Copyright (c) 1993, 1994 Matthias Mutz
# Copyright (c) 1998, 1999 Michael Vanier and the Free Software Foundation
# Copyright (c) 2008, 2013, 2014 Yann Dirson and the Free Software Foundation
#
# GNU Shogi is based on GNU Chess
# Copyright (c) 1992 Free Software Foundation
#
# This file is part of GNU Shogi.
#
# GNU Shogi is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 1, or (at your option)
# any later version.
#
# GNU Shogi 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 General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with GNU Shogi; see the file COPYING.  If not, write to
# the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
#

ROOT        = @top_srcdir@
BUILDROOT   = @top_builddir@
GNUSHOGIDIR = $(BUILDROOT)/gnushogi
XSHOGIDIR   = $(BUILDROOT)/xshogi

PROGNAME = @PROGNAME@

#
# Default targets.
#

all : gnushogi_compile pat2inc bbk @XSHOGI@


#
# Primary targets.
#

gnushogi_compile:
	-cd $(GNUSHOGIDIR) && $(MAKE) $(PROGNAME)

pat2inc:
	-cd $(GNUSHOGIDIR) && $(MAKE) pat2inc

sizetest:
	-cd $(GNUSHOGIDIR) && $(MAKE) sizetest

xshogi_compile:
	-cd $(XSHOGIDIR) && $(MAKE)

bbk:
	-cd $(GNUSHOGIDIR) && $(MAKE) $(PROGNAME).bbk


#
# Alien target architectures
#

win32/Makefile: misc/mkmakefile.mingw-on-cygwin
	$<

#
# Installation.
#

install: gnushogi_install @XSHOGIINSTALL@

gnushogi_install:
	-cd $(GNUSHOGIDIR) && $(MAKE) install

xshogi_install: $(XSHOGIDIR)/xshogi
	-cd $(XSHOGIDIR) && $(MAKE) install



#
# Cleanup.
#

clean: gnushogi_clean @XSHOGICLEAN@ doc_clean

gnushogi_clean:
	cd $(GNUSHOGIDIR) && $(MAKE) clean

xshogi_clean:
	cd $(XSHOGIDIR) && $(MAKE) clean

doc_clean:
	cd $(BUILDROOT)/doc && $(MAKE) clean


#
# Building a distribution.
#

DISTNAME = @PACKAGE_TARNAME@-@PACKAGE_VERSION@

dist:
	$(MAKE) maintainerclean
	rm -rf $(DISTNAME)
	mkdir $(DISTNAME)
	tar -cf - --exclude .git --exclude $(DISTNAME) $(ROOT) | (cd $(DISTNAME) && tar -xf -)
	cd $(DISTNAME) && $(ROOT)/autogen.sh && $(ROOT)/configure
	cd $(DISTNAME)/doc && $(MAKE) info
	cd $(DISTNAME) && $(MAKE) win32/Makefile
	cd $(DISTNAME) && $(MAKE) distclean
	tar -zcf $(DISTNAME).tar.gz $(DISTNAME)

#
# Return to a pristine pre-configuration state.
#

DISTCLEANFILES = \
	config.cache config.log config.status config.h Makefile \
    $(GNUSHOGIDIR)/Makefile $(GNUSHOGIDIR)/Makefile.profile \
    $(XSHOGIDIR)/Makefile autom4te.cache

distclean: clean
	rm -rf $(DISTCLEANFILES)
	find -name '*~' | xargs rm -f
	cd $(BUILDROOT)/doc && $(MAKE) distclean

#
# Extra cleanup, for the maintainer only.
#

MAINTAINERCLEANFILES = configure config.h.in win32/Makefile

maintainerclean: distclean
	rm -f $(MAINTAINERCLEANFILES)
	cd $(BUILDROOT)/doc && $(MAKE) maintainerclean
