
 
MODULE_NAME := opal
obj-m := opal.o

opal-objs := main.o led.o light_ring.o ssegment.o ec_version.o buzzer.o fan.o writeprotect.o myname.o cash_drawers.o batteryled.o watchdog.o power.o switches.o backlight.o lcd_2x20.o smart_battery.o voltage_sysfs.o led_heartbeat.o sysfs_power.o vbat.o temperature_sysfs.o com12v.o


KERNELDIR := ~/timesys/SDK64Bit-V6_02_00/kernel-source/linux-5.15/
ccflags-y += -I./include
EXTRA_CFLAGS +=-g -I$(PWD)/include

INSTALL_DIR := /lib/modules/$(shell uname -r)/extra

PWD = $(shell pwd)
all:
	make CROSS_COMPILE=~/timesys/SDK64Bit-V6_02_00/toolchain/bin/x86_64-timesys-linux-gnu- -C $(KERNELDIR) M=$(PWD) modules
	~/timesys/SDK64Bit-V6_02_00/toolchain/bin/x86_64-timesys-linux-gnu-gcc test_app/setss.c  -o test_app/setss
	~/timesys/SDK64Bit-V6_02_00/toolchain/bin/x86_64-timesys-linux-gnu-gcc test_app/test_beep.c  -o test_app/beep
	~/timesys/SDK64Bit-V6_02_00/toolchain/bin/x86_64-timesys-linux-gnu-gcc test_app/setled.c  -o test_app/setled
	~/timesys/SDK64Bit-V6_02_00/toolchain/bin/x86_64-timesys-linux-gnu-gcc test_app/system_ctl_app.c  -o test_app/system_ctl_app
	~/timesys/SDK64Bit-V6_02_00/toolchain/bin/x86_64-timesys-linux-gnu-gcc test_app/mywatchdog.c  -o test_app/mywatchdog
	~/timesys/SDK64Bit-V6_02_00/toolchain/bin/x86_64-timesys-linux-gnu-gcc test_app/cash_app.c  -o test_app/cash_app -lpthread
	cp opal.ko opal_CMD.ko

clean:
	rm -rf *.o test_app/setss
	rm -rf *.ko *.order *.mod.c *.symvers \.*\.cmd

module_install:
	@echo "Installing $(MODULE_NAME).ko to $(INSTALL_DIR)"
	@sudo mkdir -p $(INSTALL_DIR)
	@sudo cp $(MODULE_NAME).ko $(INSTALL_DIR)/
	@echo "Module installed successfully"
