# -----------------------------------------------------------------------------
#  (C) Altran Praxis Limited
# -----------------------------------------------------------------------------
# 
#  The SPARK toolset is free software; you can redistribute it and/or modify it
#  under terms of the GNU General Public License as published by the Free
#  Software Foundation; either version 3, or (at your option) any later
#  version. The SPARK toolset 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 distributed with the SPARK toolset; see file
#  COPYING3. If not, go to http://www.gnu.org/licenses for a complete copy of
#  the license.
# 
# =============================================================================

################################################################################
# PURPOSE
#-------------------------------------------------------------------------------
# Makefile for POGS
# For Linux, Windows, Solaris or Mac OS X (aka Darwin).
################################################################################

################################################################################
# BUILD CONFIGURATION
################################################################################

# Name of the output program.
OUTPUT_NAME:=pogs

# Location of root.
ROOT:=..

SPARK_PREPED:=oscommandline.adb

# Location of common.
COMMON:=${ROOT}/common

include ${COMMON}/Makefile.inc

################################################################################
# PLATFORM INDEPENDENT CONFIGURATION
################################################################################

# Files containing platform specific code that is handled by gnatprep
PREP_TARGETS:=${SPARK_PREPED}

################################################################################
# TARGETS
################################################################################

all: ${OUTPUT_NAME}${EXE_EXTN}

${OUTPUT_NAME}${EXE_EXTN}: preamble prep
	gnatmake -j${SPARKCPUS} ${GNATMAKE_OPTS} ${OUTPUT_NAME} -o $@ -bargs ${BIND_OPTS}

self-analysis: preamble prep
	-spark -plain @${OUTPUT_NAME}.smf

# Initialisations
# ===============

preamble:
	$(MAKE) -C ${ROOT}/examiner clean

# Platform specific prepping
# ==========================

prep: ${PREP_TARGETS}
	$(MAKE) -C ${ROOT}/examiner prep

%.ads: %.aps
	gnatprep ${PREP_OPTS} -DTarget=${PREP_TARGET} $< $@

%.adb: %.apb
	gnatprep ${PREP_OPTS} -DTarget=${PREP_TARGET} $< $@

# Cleaning code base
# ==================

clean: residueclean standardclean

reallyclean: clean targetclean vcclean preamble
	$(MAKE) -C ${ROOT}/examiner reallyclean

residueclean:
	rm -f ${PREP_TARGETS}

################################################################################
# END-OF-FILE
