#
# Makefile for Betascan - Epson Backend
# 2009-2019 Michal Zukowski
#

ROOTPATH=../../../../

include $(ROOTPATH)Makefile.config.default
ifeq ($(wildcard $(ROOTPATH)Makefile.config), $(ROOTPATH)Makefile.config)
	include $(ROOTPATH)Makefile.config
endif

CC  =  ppc-morphos-gcc-9
CFLAGS += -Wall -noixemul -O3 -I../Include  -g -Wl,--traditional-format
EXE = Epson2.device
LIBS =  -L../SaneUtilSrc -lsaneutil -L../SaneiSrc -lsanei
LIBS += -ldebug
DEFINES = -DBACKEND_NAME=\"Epson2\" -DDEVNAME=\"Epson2.device\" -DV_MAJOR=1 -DV_MINOR=4
#DEFINES +=-DNDEBUG
DEFINES +=-D__AMIGADATE__=\"$(shell date "+%d.%m.%Y")\"
#DEFINES +=-DDEBUG
STRIP = ppc-morphos-strip --remove-section .comment

TEMPLATES_DIR = ../SaneTemplates

.PHONY: all dist clean install install-iso doc single-dist release source

all: ../SaneUtilSrc/libsaneutil.a obj $(EXE)
	make -C ../SaneUtilSrc/
	make -C ../SaneiSrc/
	
OBJS	 = obj/epson2.o obj/epson_usb.o obj/epson2-io.o obj/epson2-ops.o  obj/epson2-cct.o obj/epson2-commands.o obj/SaneEpson.o obj/epson2_scsi.o
TEMPLATE_OBJS = obj/DefaultParameters.o      obj/DefaultSaneGetParameters.o  obj/DefaultSaneStart.o \
				obj/DefaultSaneClose.o                 obj/DefaultSaneStop.o \
				obj/DefaultSaneGetDevices.o  obj/DefaultSaneRead.o           obj/Instrument.o \
# obj/DefaultSaneOpen.o

$(OBJS): obj

$(EXE).db: ../SaneUtilSrc/libsaneutil.a  ../SaneiSrc/libsanei.a  $(OBJS)  $(TEMPLATE_OBJS)
	$(CC) -o $@ $(OBJS) $(TEMPLATE_OBJS) $(LIBS)  -nostartfiles   -noixemul

$(EXE): $(EXE).db
	$(STRIP) $(EXE).db -o $(EXE)


obj:
	@mkdir -p obj

obj/Instrument.o: $(TEMPLATES_DIR)/Instrument.c
	$(CC) -c  $(CFLAGS) $(DEFINES)   -nostartfiles -o $@ $<

obj/DefaultParameters.o: $(TEMPLATES_DIR)/DefaultParameters.c
	$(CC) -c  $(CFLAGS) $(DEFINES)   -nostartfiles -o $@ $<

obj/DefaultSaneGetParameters.o: $(TEMPLATES_DIR)/DefaultSaneGetParameters.c
	$(CC) -c  $(CFLAGS) $(DEFINES)   -nostartfiles -o $@ $<

obj/DefaultSaneStart.o: $(TEMPLATES_DIR)/DefaultSaneStart.c
	$(CC) -c  $(CFLAGS) $(DEFINES)   -nostartfiles -o $@ $<

obj/DefaultSaneClose.o: $(TEMPLATES_DIR)/DefaultSaneClose.c
	$(CC) -c  $(CFLAGS) $(DEFINES)   -nostartfiles -o $@ $<

#obj/DefaultSaneOpen.o: $(TEMPLATES_DIR)/DefaultSaneOpen.c
#	 $(CC) -c  $(CFLAGS) $(DEFINES)   -nostartfiles -o $@ $<

obj/DefaultSaneStop.o: $(TEMPLATES_DIR)/DefaultSaneStop.c
	$(CC) -c  $(CFLAGS) $(DEFINES)   -nostartfiles -o $@ $<

obj/DefaultSaneGetDevices.o: $(TEMPLATES_DIR)/DefaultSaneGetDevices.c
	$(CC) -c  $(CFLAGS) $(DEFINES)   -nostartfiles -o $@ $<

obj/DefaultSaneRead.o: $(TEMPLATES_DIR)/DefaultSaneRead.c
	$(CC) -c  $(CFLAGS) $(DEFINES)   -nostartfiles -o $@ $<

obj/epson2.o: epson2.c
	$(CC) -c  $(CFLAGS) $(DEFINES)  -nostartfiles  -o $@ $<

obj/epson2-ops.o: epson2-ops.c
	$(CC) -c  $(CFLAGS) $(DEFINES)  -nostartfiles  -o $@ $<

obj/epson2-cct.o: epson2-cct.c
	$(CC) -c  $(CFLAGS) $(DEFINES)  -nostartfiles  -o $@ $<

obj/epson2-commands.o: epson2-commands.c
	$(CC) -c  $(CFLAGS) $(DEFINES)  -nostartfiles  -o $@ $<

obj/epson2-io.o: epson2-io.c
	$(CC) -c  $(CFLAGS) $(DEFINES)  -nostartfiles  -o $@ $<

obj/epson_usb.o: epson_usb.c epson_usb.h
	$(CC) -c  $(CFLAGS) $(DEFINES)  -nostartfiles  -o $@ $<

obj/epson2_scsi.o: epson2_scsi.c epson2_scsi.h
	$(CC) -c  $(CFLAGS) $(DEFINES)  -nostartfiles  -o $@ $<

obj/SaneEpson.o: SaneEpson.c
	$(CC) -c  $(CFLAGS) $(DEFINES)  -nostartfiles  -o $@ $<

clean:
	rm -f obj/*.o

../SaneUtilSrc/libsaneutil.a:
	(cd ../SaneUtilSrc && $(MAKE))

../SaneiSrc/libsanei.a:
	(cd ../SaneiSrc && $(MAKE))

.PHONY : clean
source:


install:  $(EXE)
	mkdir -p  /mossys/Devs/Scanners
	cp $(EXE) /mossys/Devs/Scanners
	

install-iso:  $(EXE)
	mkdir -p  $(ISOPATH)MorphOS/Devs/Scanners
	cp $(EXE) $(ISOPATH)MorphOS/Devs/Scanners
