ROOTPATH=../../../
include $(ROOTPATH)Makefile.global

CC = ppc-morphos-gcc-9
STRIP = ppc-morphos-strip -s --strip-unneeded --remove-section .comment
CHMOD = chmod
CP = cp
RM = rm
EXE = SMARTDoctor

FILTEROUT          = CVS
CATALOGS           = $(filter-out $(FILTEROUT),$(shell ls catalogs)) 
CATALOGSCT         = $(filter-out $(FILTEROUT),$(shell ls catalogs/*/$(EXE).ct))
CATALOGDIR         = MorphOS/Locale/Catalogs

NEWCATCOMP         = $(ROOTPATH)morphoswb/development/tools/catcomp/catcomp.pl
TRANSLATORSCAN     = $(ROOTPATH)morphoswb/development/tools/translatorscan/translatorscan.pl

CFLAGS = -I./include -O2 -Wall -noixemul
LFLAGS = -lm -noixemul -ldebug
CDEFS = \
	-D__AMIGADATE__=\"$(shell date "+%d.%m.%Y")\" \
	-D__YEAR__=\"$(shell date "+%Y")\" \
	-DNO_PPCINLINE_STDARG -DAROS_ALMOST_COMPATIBLE


OBJ = \
	startup.o \
	main.o \
	mcc_application.o \
	mcc_main.o \
	mcc_updaterate.o \
	mcc_attributelist.o \
	mcc_devicelist.o \
	mcc_deviceselector.o \
	misc.o \
	locale.o \
	smartcontrol.o \
	parse.o \
#	string.o \
#	mcc_about.o \

all: $(EXE)_strings.h aboutbox_translators.h  $(EXE) catalogs

$(EXE): $(OBJ)
	$(CC) $(OBJ) -o $@.db $(LFLAGS)
	$(STRIP) --remove-section .comment $@.db -o $@
	$(CHMOD) +x $(EXE)

%.o: %.c  $(EXE)_strings.h *.h aboutbox_translators.h
	$(CC) $(CDEFS) $(CFLAGS) -c $< -o $@

#  aboutbox translators
#

aboutbox_translators.h: catalogs/*/*.ct
	@echo "    [HEADER] $@"
	@$(TRANSLATORSCAN)

#  locale
#

$(EXE)_strings.h: $(EXE).cd
	@echo "    [CATCOMP] $@"
	@$(NEWCATCOMP) --new-code --no-block -cd $(EXE).cd --cfile $@

.PHONY: catalogs
catalogs: $(patsubst %,catalogs/%/$(EXE).catalog,$(CATALOGS))

%.catalog: %.ct $(EXE).cd
	@echo "    [CATCOMP] $@"
	@$(NEWCATCOMP) -u -cd $(EXE).cd -ct $< -o $@

install: all
	mkdir -p /sys/Tools
	cp SMARTDoctor /sys/Tools/
	cp SMARTDoctor.info /sys/Tools/SMARTDoctor.info
	mkdir -p /sys/MorphOS/Data/SMARTDoctor
	cp SMARTDatabase.dat /sys/MorphOS/Data/SMARTDoctor
	for language in $(CATALOGS); \
	do\
		mkdir -p /sys/$(CATALOGDIR)/$$language;\
		cp -f catalogs/$$language/$(EXE).catalog /sys/$(CATALOGDIR)/$$language/$(EXE).catalog;\
	done

install-iso: all
	mkdir -p $(ISOPATH)Tools
	cp SMARTDoctor $(ISOPATH)Tools/
	cp SMARTDoctor.info $(ISOPATH)Tools/SMARTDoctor.info
	mkdir -p $(ISOPATH)MorphOS/Data/SMARTDoctor
	cp SMARTDatabase.dat $(ISOPATH)MorphOS/Data/SMARTDoctor
	for language in $(CATALOGS); \
	do\
		mkdir -p $(ISOPATH)$(CATALOGDIR)/$$language;\
		cp -f catalogs/$$language/$(EXE).catalog $(ISOPATH)$(CATALOGDIR)/$$language/$(EXE).catalog;\
	done

source:
	@echo "this project uses source-postgg"

source-postgg: all
	(cd .. && tar -cf $(SOURCEPATH)smartdoctor.tar smartdoctor/*.c smartdoctor/*.h smartdoctor/*.readme smartdoctor/COPYING smartdoctor/makefile smartdoctor/catalogs/*/*.ct smartdoctor/catalogs/*/*.catalog )

clean:
	$(RM) -f $(OBJ) $(EXE) $(EXE).debug *.db $(EXE)_strings.h aboutbox_translators.h catalogs/*/*.catalog

