#===> generated by: genmakec.scr-00.00.07-031114 by cipo@ut.ee <===
#====================================================================
# Makefile for class FIELDOUT
#      Version: fieldout2-00.05.01-051016 by cipo@ut.ee
#       Author: cipo@ut.ee
#====================================================================
# notes: do not forget to uncomment rules for INI files in install target

SHELL = /bin/bash

SOURCEROOT = $(DEV)
  HOSTTYPE = `uname -m`

    SRCDIR = src
INCLUDEDIR = $(SOURCEROOT)/include
    LIBDIR = $(SOURCEROOT)/lib/$(HOSTTYPE)
    INIDIR = $(SOURCEROOT)/ini
 SOURCEDIR = $(SOURCEROOT)/$(SRCDIR)

  CLASSDIR = $(SOURCEDIR)/class

SOURCE = $(wildcard *.cpp)
   OBJ = $(SOURCE:.cpp=.o)
  HEAD = $(SOURCE:.cpp=.h)
   INI = $(wildcard *.ini)


ifeq ($(CC),cc)
	CC = g++
endif

	GCC = $(CC)

CPPFLAGS = -c
GCCFLAGS = -x c++ -Wall -Wshadow -Werror

# Define targets
#====================================================================

all:
	@echo "#===> command line error: usage...<==="
	@echo "# make  <target>"
	@echo "# Targets are: gcc-classes         - compile all related classes with GCC"
	@echo "#              gcc-classes-cvs     - download from cvs and compile all related"
	@echo "#                                    classes with GCC"
	@echo "#              gcc-compile         - compile class only with GCC"
	@echo "#              gcc-compile-all     - compile this and related classes with GCC"
	@echo "#              gcc-compile-all-cvs - download from cvs related classes and"
	@echo "#                                    compile this and related classes with GCC"
	@echo "#              install"
	@echo "#              gcc-complete        - compile all with GCC, install and clean"
	@echo "#              gcc-complete-cvs    - download all classes from cvs, compile all"
	@echo "#                                    with GCC, install and clean"
	@echo "#              upload-cvs          - upload changes into cvs"
	@echo "#              clean"

#====================================================================

#========== GCC: compile and install classes ========================

gcc-classes:
ifneq ($(SYSUTILS_M_DEFINE),1)
	@cd $(CLASSDIR)/sysutils/$(SRCDIR) && $(MAKE) -e DEV=$(DEV)\
	gcc-complete
endif

#========== GCC: download, compile and install classes ==============

gcc-classes-cvs:
ifneq ($(SYSUTILS_M_DEFINE),1)
	if test ! -e $(CLASSDIR); then \
		mkdir -p $(CLASSDIR); \
	fi; \
	cd $(CLASSDIR); \
	if test ! -e sysutils; then \
		cvs checkout sysutils; \
	else \
		cvs update sysutils; \
	fi; \
	cd $(CLASSDIR)/sysutils/$(SRCDIR) && $(MAKE) -e DEV=$(DEV)\
	gcc-complete-cvs
endif

#========== GCC: serial version =====================================

gcc-compile:
	$(GCC) $(CPPFLAGS) $(GCCFLAGS) -I$(INCLUDEDIR) $(SOURCE)

#========== GCC: compile program and classes ========================

gcc-compile-all: gcc-classes gcc-compile

#========== GCC: serial version =====================================

gcc-compile-cvs:
	$(GCC) $(CPPFLAGS) $(GCCFLAGS) -I$(INCLUDEDIR) $(SOURCE)

#========== GCC: compile program and classes ========================

gcc-compile-all: gcc-classes gcc-compile

#========== GCC: download, compile classes and program ==============

gcc-compile-all-cvs: gcc-classes-cvs gcc-compile

#========== install =================================================

install:
	@if test ! -e $(LIBDIR); then \
		mkdir -p $(LIBDIR); \
		echo "created diretory:" $(LIBDIR); \
	fi
	mv $(OBJ) $(LIBDIR)/
	@if test ! -e $(INCLUDEDIR); then \
		mkdir -p $(INCLUDEDIR); \
		echo "created diretory:" $(INCLUDEDIR); \
	fi
	cp $(HEAD) $(INCLUDEDIR)/
#	@if test ! -d $(INIDIR); then \
		mkdir -p $(INIDIR); \
		echo "created diretory:" $(INIDIR); \
#	fi
#	cp $(INI) $(INIDIR)/

#========== GCC: compile all and install ============================

gcc-complete: gcc-compile-all install clean
	@echo " "
	@echo "========== FIELDOUT compiled & installed =========="
	@echo " "

#========== GCC: download, compile all and install =============

gcc-complete-cvs: gcc-compile-all-cvs install clean
	@echo " "
	@echo "========== FIELDOUT compiled & installed =========="
	@echo " "

#========== upload into cvs ====================================

upload-cvs:
	cvs commit -R *
ifneq ($(SYSUTILS_M_DEFINE),1)
	cd $(CLASSDIR)/sysutils/$(SRCDIR) && $(MAKE) -e DEV=$(DEV)\
	upload-cvs
endif

#========== remove object files =====================================

clean:
	rm -f $(OBJ)


