# General build makefile, only for examples.

APPDIR ?= /usr/local/bin
MAN1DIR ?= /usr/local/share/man/man1
INCLUDE ?= ../include
C_HEADER = $(INCLUDE)/seaio.h
CPP_HEADER = $(INCLUDE)/digitalIoDevice.h

CC ?=      /usr/bin/gcc
CXX ?= 	   /usr/bin/g++
MKDIR ?=   /bin/mkdir
CP ?=      /bin/cp
RM ?=      /bin/rm
CHMOD ?=   /bin/chmod


## ============================================================================
NAME = Configuration/Test Utility
LIBS = libseaio.a
C_APPS =
CPP_APPS = seaiotest
MAN1 =

CFLAGS = -Wall -O3 -I$(INCLUDE)
LIBFLG = -L../lib -lseaio

## ============================================================================
all: $(C_APPS) $(CPP_APPS)
	@echo " *$(NAME) are prepared"
	@echo

$(HEADER):
	@echo
	@echo "  ERROR!  Can't find include file!"
	@echo
	@echo "       I suggest you obtain another copy of this distribution."
	@echo
	@exit 1

../lib/$(LIBS):
	@$(MAKE) -C ../lib

$(LIBS): ../lib/$(LIBS) 

$(C_APPS): %: %.c $(LIBS)
	@echo "   Building application $@"
	@$(CC) $(CFLAGS) $< -o $@ $(LIBFLG)

$(CPP_APPS): %: %.cpp $(LIBS)
	@echo "   Building application $@"
	@$(CXX) $(CFLAGS) $< -o $@ $(LIBFLG)

objs:

install: $(C_APPS) $(CPP_APPS)
	@echo "   Installing ${NAME} to ${APPDIR}"
	@for n in $(C_APPS); do $(CP) -r $$n ${APPDIR}; done
	@for n in $(C_APPS); do $(CHMOD) 755 ${APPDIR}/$$n; done
	@for n in $(CPP_APPS); do $(CP) -r $$n ${APPDIR}; done
	@for n in $(CPP_APPS); do $(CHMOD) 755 ${APPDIR}/$$n; done
	@for n in $(MAN1); do $(CP) -r $$n ${MAN1DIR}; done
	@echo " *${NAME} installed"
	@echo

uninstall:
	@echo "   Uninstalling ${NAME} from ${APPDIR}"
	@for n in $(C_APPS); do $(RM) -f ${APPDIR}/$$n; done
	@for n in $(CPP_APPS); do $(RM) -f ${APPDIR}/$$n; done
	@for n in $(MAN1); do $(RM) -f ${MAN1DIR}/$$n; done
	@echo " *${NAME} uninstalled"
	@echo 

clean: 
	@echo "   Removing ${NAME} build files"
	@$(RM) -rf $(C_APPS) $(CPP_APPS)
	@echo " *${NAME} build files removed"
	@echo
