#*******************************************************************************
# E.S.O. - ACS project
#
# "@(#) $Id: Makefile,v 1.13 2011/08/02 17:00:35 javarias Exp $"
#
# Makefile of ........
#
# who       when      what
# --------  --------  ----------------------------------------------
# jkern  15/09/04  created
#

#*******************************************************************************
# This Makefile follows VLT Standards (see Makefile(5) for more).
#*******************************************************************************
# REMARKS
#    None
#------------------------------------------------------------------------

# RTAI modules
# -------------------------
#RTAI_MODULES    = LkmModule

#
#LkmModule_OBJECTS = LkmModule

# Includes (.h) files (public and local)
# ---------------------------------

INCLUDES      = LKM.h


EXECUTABLES = loadLkmModule unloadLkmModule

unexport MAKE_NOSTATIC
loadLkmModule_NOSHARED=on
loadLkmModule_OBJECTS = loadLkmModule
loadLkmModule_LIBS = LKM C++

unloadLkmModule_NOSHARED=on
unloadLkmModule_OBJECTS = unloadLkmModule
unloadLkmModule_LIBS = LKM C++
#
# Libraries (public and local)
# ----------------------------
LIBRARIES       = LKM lkmLoaderImpl

#
# <brief description of lllll library>
LKM_OBJECTS   = LKM
LKM_LDFLAGS = -lstdc++

lkmLoaderImpl_OBJECTS   = lkmLoaderImpl
lkmLoaderImpl_LIBS      = lkmLoaderStubs lkmErrType baci cdb maciErrType acsErrTypeLifeCycle acscomponent acscomponentStubs


SCRIPTS = loadUnloadLKM.sh
SCRIPTS_L = setPerm_Sbit

#
# Configuration Database Files
# ----------------------------
CDB_SCHEMAS = LkmLoader

ACSERRDEF = lkmErrType

# 
# IDL Files and flags
# 
IDL_FILES = lkmLoader

#
# list of all possible C-sources (used to create automatic dependencies)
# ------------------------------
CSOURCENAMES = \
	$(foreach exe, $(EXECUTABLES) $(EXECUTABLES_L), $($(exe)_OBJECTS)) \
	$(foreach rtos, $(RTAI_MODULES) , $($(rtos)_OBJECTS)) \
	$(foreach lib, $(LIBRARIES) $(LIBRARIES_L), $($(lib)_OBJECTS))

#
#>>>>> END OF standard rules

#
# INCLUDE STANDARDS
# -----------------
MAKEDIRTMP := $(shell searchFile include/acsMakefile)
ifneq ($(MAKEDIRTMP),\#error\#)
   MAKEDIR := $(MAKEDIRTMP)/include
   include $(MAKEDIR)/acsMakefile
endif

#
# TARGETS
# -------
all:	do_all
	@echo " . . . 'all' done" 

clean : clean_all 
	$(RM) *~ ../include/*~ ../idl/*~ ../*~ core
	@echo " . . . clean done"

clean_dist : clean_all clean_dist_all 
	@echo " . . . clean_dist done"

man   : do_man 
	@echo " . . . man page(s) done"


.PHONY: deleteloadLkmModule
deleteloadLkmModule : ../bin/loadLkmModule 
	$(AT)if ssh -q -oPasswordAuthentication=no  root@${HOST} 'rm -f $(VLTTOP)/bin/loadLkmModule'; then \
                echo "Removed old: $(VLTTOP)/bin/loadLkmModule"; \
        else \
		echo "Problem with removing old: $(VLTTOP)/bin/loadLkmModule"; \
	fi

.PHONY: deleteunloadLkmModule
deleteunloadLkmModule : ../bin/unloadLkmModule
	$(AT)if ssh -q -oPasswordAuthentication=no  root@${HOST} 'rm -f $(VLTTOP)/bin/unloadLkmModule'; then \
                echo "Removed old: $(VLTTOP)/bin/unloadLkmModule"; \
        else \
                echo "Problem with removing old: $(VLTTOP)/bin/unloadLkmModule"; \
        fi


install : deleteunloadLkmModule deleteloadLkmModule
	$(MAKE) install_all
	$(AT)if ssh -q -oPasswordAuthentication=no  root@${HOST} '${PWD}/../bin/setPerm_Sbit $(VLTTOP)'; then \
		echo "Kernel modules loadLkmModule and  unloadLkmModule installed."; \
	else \
		if [ "$(MAKE_RTAI_IGNORE_INSTALL_FAILURE)" != "" ]; then  \
			echo "WARNING: Kernel modules loadLkmModule and  unloadLkmModule not installed."; \
                else \
			echo "FAILURE: Kernel modules loadLkmModule and  unloadLkmModule not installed. Check your SSH configuration!"; \
			/bin/false; \
                fi \
	fi
	@echo " . . . installation done"


#___oOo___
