#
# Copyright (C) 2000-2007 by Andy McFadden, All Rights Reserved.
# This is free software; you can redistribute it and/or modify it under the
# terms of the BSD, see the file COPYING.
#
# Makefile for nufxlib tests (should work with non-GNU make).
#
# This is normally invoked from the nufxlib makefile.
#
# If you invoke this directly, LIB_PRODUCT won't be defined, and it
# won't automatically detect changes to the library.  However, any
# changes to the library should cause a re-build in here anyway if
# you're running "make" from the library directory.
#
SHELL		= /bin/sh
CC			= @CC@
AR			= ar rcv
#OPT 		= @CFLAGS@ -DNDEBUG
OPT			= @CFLAGS@
#OPT		= @CFLAGS@ -DDEBUG_MSGS
#OPT 		= @CFLAGS@ -DDEBUG_VERBOSE
GCC_FLAGS	= -Wall -Wwrite-strings -Wstrict-prototypes -Wpointer-arith -Wshadow
CFLAGS		= @BUILD_FLAGS@ -I. -I.. @DEFS@

#ALL_SRCS	= $(wildcard *.c *.cpp)
ALL_SRCS	= Exerciser.c ImgConv.c Launder.c TestBasic.c \
			  TestExtract.c TestSimple.c TestTwirl.c

NUFXLIB		= -L.. -lnufx

PRODUCTS	= exerciser imgconv launder test-basic test-extract test-names \
				test-simple test-twirl

all: $(PRODUCTS)
	@true

exerciser: Exerciser.o $(LIB_PRODUCT)
	$(CC) -o $@ Exerciser.o $(NUFXLIB) @LIBS@

imgconv: ImgConv.o $(LIB_PRODUCT)
	$(CC) -o $@ ImgConv.o $(NUFXLIB) @LIBS@

launder: Launder.o $(LIB_PRODUCT)
	$(CC) -o $@ Launder.o $(NUFXLIB) @LIBS@

test-basic: TestBasic.o $(LIB_PRODUCT)
	$(CC) -o $@ TestBasic.o $(NUFXLIB) @LIBS@

test-extract: TestExtract.o $(LIB_PRODUCT)
	$(CC) -o $@ TestExtract.o $(NUFXLIB) @LIBS@

test-names: TestNames.o $(LIB_PRODUCT)
	$(CC) -o $@ TestNames.o $(NUFXLIB) @LIBS@

test-simple: TestSimple.o $(LIB_PRODUCT)
	$(CC) -o $@ TestSimple.o $(NUFXLIB) @LIBS@

test-twirl: TestTwirl.o $(LIB_PRODUCT)
	$(CC) -o $@ TestTwirl.o $(NUFXLIB) @LIBS@

tags::
	ctags --totals -R ../*
	@#ctags *.cpp ../*.c *.h ../*.h

clean:
	-rm -f *.o core
	-rm -f $(PRODUCTS)

distclean: clean
	-rm -f tags
	-rm -f Makefile Makefile.bak

COMMON_HDRS = ../NufxLibPriv.h ../NufxLib.h ../MiscStuff.h ../SysDefs.h
Exerciser.o: Exerciser.c $(COMMON_HDRS)
ImgConv.o: ImgConv.c $(COMMON_HDRS)
Launder.o: Launder.c $(COMMON_HDRS)
TestBasic.o: TestBasic.c $(COMMON_HDRS)
TestExtract.o: TestExtract.c $(COMMON_HDRS)
TestNames.o: TestNames.c $(COMMON_HDRS)
TestSimple.o: TestSimple.c $(COMMON_HDRS)
TestTwirl.o: TestTwirl.c $(COMMON_HDRS)
