#
#   DMS Tools and Utilities
#   Copyright (C) 2008, 2009 David M. Syzdek <david@syzdek.net>
#
#   @SYZDEK_LICENSE_HEADER_START@
#
#   This program is free software; you can redistribute it and/or modify
#   it under the terms of the GNU General Public License Version 2 as
#   published by the Free Software Foundation.
#
#   This program 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 this program; if not, write to the Free Software
#   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
#
#   @SYZDEK_LICENSE_HEADER_END@
#
#   http://www.syzdek.net/
#
#   Makefile-xcode - Makefile wrapper for compiling from Xcode
#
#   Notes:
#      Tested on OS X 10.5.8 with Xcode 3.1.4.  Set any one of the the
#      variables below in the Xcode build settings for the target to override
#      the defaults.
#

# build tools
ACLOCAL					?= /usr/bin/aclocal 
AUTOCONF				?= /usr/bin/autoconf
AUTOHEADER				?= /usr/bin/autoheader
AUTOMAKE				?= /usr/bin/automake
LIBTOOLIZE				?= /usr/bin/glibtoolize
TOUCH					?= /usr/bin/touch

# tool flags
ACLOCAL_FLAGS				?= -I m4
AUTOCONF_FLAGS				?=
AUTOHEADER_FLAGS			?=
AUTOMAKE_FLAGS				?= -c -a
LIBTOOLIZE_FLAGS			?= -c
TOUCH_FLAGS				?=

# file locations
BUILD_DIR				?= .
MAKEFILE				?= Makefile-xcode
PATH					 = /usr/bin:/bin:/usr/sbin:/sbin
SRCROOT					?= .
builddir				?= $(BUILD_DIR)
srcdir					?= $(SRCROOT)

# build options
CONFIGURE_FLAGS				?=
CONFIGURE_FLAGS				+= --enable-dependency-tracking
MAKEFLAGS				?= -j 2
DEBUG					?= NO
DISTCLEAN				?= NO

# build lists
AUTOTOOLS_FILES				= $(srcdir)/aclocal.m4 \
					  $(srcdir)/configure \
					  $(srcdir)/config.h.in \
					  $(srcdir)/Makefile.in \
					  $(builddir)/Makefile
TARGETS					= all \
					  check \
					  clean \
					  dist-bzip2 dist-gzip dist-zip \
					  distcheck \
					  distclean \
					  info dvi html pdf ps \
					  install \
					  installcheck installdirs \
					  install-html install-dvi\
					  install-pdf install-ps \
					  install-strip \
					  maintainer-clean \
					  mostlyclean \
					  TAGS \
					  uninstall

# make targets
$(TARGETS): debugOutput $(builddir)/Makefile $(srcdir)/config.h.in
	if test "x$(ACTION)" == "xclean";then \
	   if test "x$(DISTCLEAN)" == "xYES";then \
	      cd $(builddir) && make $(MAKEFLAGS) distclean; \
	   else \
	      cd $(builddir) && make $(MAKEFLAGS) clean; \
	   fi; \
	else \
	   test -f $(builddir)/Makefile && cd $(builddir) && make $(MAKEFLAGS) ${@}; \
	fi;

dist: dist-gzip dist-bzip2 dist-zip

# creates files generated by GNU Autoconf, GNU Automake, and GNU Libtool
autotools: debugOutput $(AUTOTOOLS_FILES)
	if test "x$(ACTION)" == "xclean";then rm -f $(AUTOTOOLS_FILES);fi

debugOutput:
	@echo ""
	@echo "Build Directory:  $(builddir)"
	@echo "Source Directory: $(srcdir)"
	@echo "Configure Flags:  $(CONFIGURE_FLAGS)"
	@echo ""
	@test "x$(DEBUG)" == "xYES" && echo "Environment variables available in Makefile: " && \
		bash -c set && echo "" && echo "" || exit 0

$(srcdir)/aclocal.m4: $(MAKEFILE) $(srcdir)/acinclude.m4 $(srcdir)/configure.ac
	$(ACLOCAL) $(ACLOCAL_FLAGS)
	$(TOUCH) $(srcdir)/aclocal.m4

$(srcdir)/configure: $(MAKEFILE) $(srcdir)/aclocal.m4 $(srcdir)/configure.ac
	$(AUTOCONF) $(AUTOCONF_FLAGS)
	$(TOUCH) $(srcdir)/configure

$(srcdir)/config.h.in: $(MAKEFILE) $(srcdir)/aclocal.m4 $(srcdir)/configure
	$(AUTOHEADER) $(AUTOHEADER_FLAGS)
	$(TOUCH) $(srcdir)/config.h.in

$(srcdir)/Makefile.in: $(MAKEFILE) $(srcdir)/Makefile.am $(srcdir)/aclocal.m4
	$(LIBTOOLIZE) $(LIBTOOLIZE_FLAGS)
	$(AUTOMAKE) $(AUTOMAKE_FLAGS)
	$(TOUCH) $(srcdir)/Makefile.in

$(builddir)/Makefile: $(MAKEFILE) $(srcdir)/configure $(srcdir)/Makefile.in
	mkdir -p $(builddir)
	cd $(builddir) && \
	   $(srcdir)/configure $(CONFIGURE_FLAGS)

# end of Makefile file
