#-------------------------------------------------------------------------------
#   Makefile for MOXA UPort series drvier
#-------------------------------------------------------------------------------
KVER	 := $(shell uname -r)
KDISVER  := $(shell uname -a)
KDIR	 := /lib/modules/$(KVER)/build
PWD	 := $(shell pwd)
TARGET	 := mxuport

ifeq ($(KERNELRELEASE),)
	include $(PWD)/ver.mk
else
endif

export DRV_VER
export REL_DATE

all:	modules

install: modules
	@make -s -C mxusbserial install KVER=$(KVER)
	@make -s -C mxuport install KVER=$(KVER)
	@depmod -a
	@echo " "
	@echo "************************************************************************"
	@echo " MOXA UPort 1200/1400/1600 series driver ver $(DRV_VER) installed successfully."
	@echo "************************************************************************"

dkms_install: modules
	@make -s -C mxusbserial dkms_install KVER=$(KVER)
	@make -s -C mxuport dkms_install KVER=$(KVER)
	@depmod -a
	@echo " "
	@echo "************************************************************************"
	@echo " MOXA UPort 1200/1400/1600 series driver ver $(DRV_VER) installed successfully."
	@echo "************************************************************************"

RHEL8P1: rhel8p1
	@make -s -C mxusbserial install KVER=$(KVER)
	@make -s -C mxuport install KVER=$(KVER)
	@depmod -a
	@echo " "
	@echo "************************************************************************"
	@echo " MOXA UPort 1200/1400/1600 series driver ver $(DRV_VER) installed successfully."
	@echo "************************************************************************"

ifneq ($(KERNELRELEASE),)
obj-y := mxusbserial/ mxuport/ 
else

modules: envchk
	@$(MAKE) EXTRA_CFLAGS=$(MXPARM) -C $(KDIR) M=$(PWD) modules 2>> build.log \
	&& cp -f ./build.log ../build.log \
	&& exit 0 \
	|| echo "Build Fail! Please check build.log for further information." \
	&& cp -f ./build.log ../build.log \
	&& exit 1

rhel8p1: envchk
	@$(MAKE) EXTRA_CFLAGS=-DRHEL8_PATCH1 -C $(KDIR) M=$(PWD) modules 2>> build.log \
	&& cp -f ./build.log ../build.log \
	&& exit 0 \
	|| echo "Build Fail! Please check build.log for further information." \
	&& cp -f ./build.log ../build.log \
	&& exit 1

endif

envchk:
	@./mxconf | tee build.log

remove:
	@make -s -C mxuport remove KVER=$(KVER)
	@make -s -C mxusbserial remove KVER=$(KVER)
	@depmod -a
	@echo ""
	@echo "************************************************************************"
	@echo " MOXA UPort 1200/1400/1600 series driver ver $(DRV_VER) removed successfully."
	@echo "************************************************************************"


clean: clean_local clean_lib

clean_local:
	@echo "Removing driver files..."
	@make -s -C mxuport clean KVER=$(KVER)
	@make -s -C mxusbserial clean KVER=$(KVER)
	@rm -rf ./.tmp_versions
	@rm -f *.symvers
	@rm -f *.order
	@rm -f *.markers
	@rm -rf ../.tmp*
	@rm -f .cache.mk
	@rm -rf ../output

clean_lib:
	@rm -f /lib/modules/$(KVER)/kernel/drivers/usb/serial/$(TARGET_DRIVER).ko
	@rm -f ../*.log
	@rm -f ./*.log
	@echo ""
	@echo "************************************************************************"
	@echo " MOXA UPort 1200/1400/1600 series driver ver $(DRV_VER) removed successfully."
	@echo "************************************************************************"
