#
#   DMS Tools and Utilities
#   Copyright (C) 2008, 2009 David M. Syzdek <david@syzdek.net>
#
#   @SYZDEK_LICENSE_HEADER_START@
#
#   Redistribution and use in source and binary forms, with or without
#   modification, are permitted provided that the following conditions are
#   met:
#
#      * Redistributions of source code must retain the above copyright
#        notice, this list of conditions and the following disclaimer.
#      * Redistributions in binary form must reproduce the above copyright
#        notice, this list of conditions and the following disclaimer in the
#        documentation and/or other materials provided with the distribution.
#      * Neither the name of David M. Syzdek nor the
#        names of its contributors may be used to endorse or promote products
#        derived from this software without specific prior written permission.
#
#   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
#   IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
#   THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
#   PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL DAVID M. SYZDEK BE LIABLE FOR
#   ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
#   DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
#   SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
#   CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
#   LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
#   OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
#   SUCH DAMAGE.
#
#   @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
