XCOMM Copyright 2006 Sandia Corporation. Under the terms of Contract
XCOMM DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government
XCOMM retains certain rights in this software.
XCOMM
XCOMM Redistribution and use in source and binary forms, with or without
XCOMM modification, are permitted provided that the following conditions are
XCOMM met:
XCOMM
XCOMM     * Redistributions of source code must retain the above copyright
XCOMM       notice, this list of conditions and the following disclaimer.
XCOMM
XCOMM     * Redistributions in binary form must reproduce the above
XCOMM       copyright notice, this list of conditions and the following
XCOMM       disclaimer in the documentation and/or other materials provided
XCOMM       with the distribution.
XCOMM
XCOMM     * Neither the name of Sandia Corporation nor the names of its
XCOMM       contributors may be used to endorse or promote products derived
XCOMM       from this software without specific prior written permission.
XCOMM
XCOMM THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
XCOMM "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
XCOMM LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
XCOMM A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
XCOMM OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
XCOMM SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
XCOMM LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
XCOMM DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
XCOMM THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
XCOMM (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
XCOMM OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
XCOMM

#if defined(__CYGWIN__) && defined(__NO_CYGWIN_OPTION__)
#define LOCAL_LDFLAGS -liberty
#endif

#if HasFlexBison
BISON = bison --yacc --defines
FLEX = flex

SRCS = \
ap_builtin.c  ap_aprepro.c  ap_stat.c     ap_getline_int.c \
ap_util.c     ap_init.c     ap_hash.c     ap_units.c ap_exodus.c ap_array.c
OSRCS = \
aprepro.l  aprepro.y  my_aprepro.h

#else

SRCS = \
ap_builtin.c  ap_aprepro.c     ap_stat.c     ap_getline_int.c \
y.tab.c    lex.yy.c   ap_util.c     ap_init.c    ap_hash.c  ap_exodus.c   ap_units.c ap_array.c

OSRCS = \
aprepro.l  aprepro.y  my_aprepro.h

#endif

LIBS=$(SUPLIB) $(EXOIIV2C) $(NETCDF) -lm 

OBJS = \
y.tab.o    ap_builtin.o  ap_aprepro.o     ap_stat.o  ap_getline_int.o \
ap_util.o  ap_init.o     ap_hash.o     ap_units.o ap_exodus.o ap_array.o

DEFINES = $(ALLOCA_DEFINES)

NormalCTarget(aprepro,$(OBJS),NullParameter,NullParameter,$(LIBS))

InstallProgram(aprepro,$(BINDIR))

CleanTarget()

y.tab.o: y.tab.c my_aprepro.h lex.yy.c

#if HasFlexBison
BISON = bison --yacc --defines
FLEX = flex

y.tab.c y.tab.h: aprepro.y
	$(BISON) aprepro.y

lex.yy.c: aprepro.l
	$(FLEX) aprepro.l

ExtraStuffToClean(lex.yy.c y.tab.c y.tab.h)
#endif

test: check

check: aprepro
	@echo "****Test should produce the following 7 lines of output to stderr:"
	@echo "Aprepro: WARN: Undefined variable 'ifundefined' (test.inp_app, line 49)"
	@echo "Aprepro: WARN: Undefined variable 'Parse' (test.inp_app, line 78)"
	@echo "Aprepro: ERROR:  syntax error (test.inp_app, line 78)"
	@echo "Aprepro: WARN: Undefined variable 'This' (test.inp_app, line 79)"
	@echo "Aprepro: ERROR:  syntax error (test.inp_app, line 79)"
	@echo "Aprepro: WARN: User-defined Variable 'a' redefined (_string_, line 1)"
	@echo "Aprepro: WARN: Undefined variable 'T' (test.inp_app, line 189)"
	@echo " "
	rm -f distribution.out
	./aprepro test.inp_app | grep -v Revision > distribution.out
	@echo " "
	@echo "****'<' denotes standard, '>' denotes current output"
	@echo "****Differences should be limited to small differences in"
	@echo "	numerical precision only."
	-diff --ignore-all-space test_standard.out distribution.out

DependTarget()
