#===========================================================================
#
# Top Makefile
#
# Modification History:
#
#   Date       OPR         Who       Reason
# --------   -------   ------------  -----------------------------------------
#===========================================================================
#
# Eliminate implicit rules
.SUFFIXES:

# determine the operating system type and related parameters
include platform.defs

ifndef TOPDIR
  export TOPDIR:=$(shell pwd)
endif

all: src 
	@echo "Finished build"

# Build the source
src : FORCE
	@echo "Building Source..."
	@cd src && $(MAKE)

# Make clean
clean:
	@cd src && $(MAKE) clean

FORCE:

#======================= Install definitions ======================
#
# Make sure the Installation directory is defined
#
ifneq ($(INSTALL_DIR),)

bin_files = $(filter-out %/CVS , $(wildcard bin/$(OS_SUB_DIR)/*))
dest_bin_files = $(addprefix $(INSTALL_DIR)/, $(bin_files))

data_files = $(filter-out %/CVS , $(wildcard data/*))
dest_data_files = $(addprefix $(INSTALL_DIR)/, $(data_files))

doc_files = $(filter-out %/CVS , $(wildcard doc/*))
dest_doc_files = $(addprefix $(INSTALL_DIR)/, $(doc_files))

Install_files = $(filter-out %/CVS , $(wildcard install/*))
dest_Install_files = $(addprefix $(INSTALL_DIR)/, $(Install_files))

lib_files = $(filter-out %/CVS , $(wildcard lib/$(OS_SUB_DIR)/*))
dest_lib_files = $(addprefix $(INSTALL_DIR)/, $(lib_files))

update_dirs =  bin data doc Install lib

#
include ./src/$(OS_SUB_DIR).defs

LBDR = $(INSTALL_DIR)/lib/$(OS_SUB_DIR)
.PHONY : install
install : $(update_dirs)
	@chmod -fR go-w $(INSTALL_DIR)
	@echo "Tree chmod done"
	@chmod -f ugo+rx $(INSTALL_DIR)/bin/$(OS_SUB_DIR)/*
	@chmod -f ugo+r $(INSTALL_DIR)/lib/$(OS_SUB_DIR)/*
	@echo "Install/Update complete"

# Create all of the destination directories
#

.PHONY : dirs
dirs :
	@echo "INSTALL_DIR = $(INSTALL_DIR)"
	@sleep 5
	@echo "Building dirs..."
	[ -d  $(INSTALL_DIR)/bin/$(OS_SUB_DIR) ] || mkdir -p $(INSTALL_DIR)/bin/$(OS_SUB_DIR)
	[ -d  $(INSTALL_DIR)/data ] || mkdir -p $(INSTALL_DIR)/data
	[ -d  $(INSTALL_DIR)/doc ] || mkdir -p $(INSTALL_DIR)/doc
	[ -d  $(INSTALL_DIR)/install ] || mkdir -p $(INSTALL_DIR)/install
	[ -d  $(INSTALL_DIR)/lib/$(OS_SUB_DIR) ] || mkdir -p $(INSTALL_DIR)/lib/$(OS_SUB_DIR)

bin : $(dest_bin_files)
data : $(dest_data_files)
doc : $(dest_doc_files)
Install : $(dest_Install_files)
lib : $(dest_lib_files)

dest_files := $(foreach dir, $(update_dirs), $(dest_$(dir)_files))

$(dest_files) : $(INSTALL_DIR)/% : %
	@echo 'Installing: $(<)'
	@cp -f '$(<)' '$(@)'

print:
	@echo $(lib_files)
	@echo $(bin_script_files)
	@echo $(dest_files)

else # INSTALL_DIR not defined

ERR = $(error ERROR)

.PHONY: install
install:
	@echo "INSTALL_DIR not defined"
	$(ERR)

endif 
