# $Id: Makefile,v 1.16 2020/09/22 08:49:58 tcheko Exp $

CC  = ppc-morphos-gcc -noixemul
CDEFS   = -DAROS_ALMOST_COMPATIBLE -DIS_MORPHOS=1 -DMUI4=1
CWARN   = -Wall -W -Wno-unused -Wno-sign-compare
CFLAGS  = $(CDEFS) $(CWARN) -O3 -mcpu=750 -fstrict-aliasing
LDFLAGS =
TARGET  = Snoopium
CATCOMP = ../../development/tools/catcomp/catcomp.pl

FILTEROUT = CVS
CATALOGS = $(filter-out $(FILTEROUT), $(shell ls catalogs))

include Makefile.objs

ECHO = echo
ECHE = echo -e
BOLD = \033[1m
NRML = \033[22m

COMPILING = @$(ECHE) "compiling $(BOLD)$@$(NRML)..."
LINKING = @$(ECHE) "linking $(BOLD)$@$(NRML)..."
STRIPPING = @$(ECHE) "stripping $(BOLD)$@$(NRML)..."
ARCHIVING = @$(ECHE) "archiving $(BOLD)$@$(NRML)..."

all: $(TARGET) catalogs

%.o: %.c
	$(COMPILING)
	@$(CC) $(CFLAGS) -c $< -o $@

%.o: %.s
	$(COMPILING)
	@$(CC) $(CFLAGS) -c $< -o $@
 
$(TARGET): $(OBJS) patchcode_mos.o
	$(LINKING)
	@$(CC) $(LDFLAGS) -o $@.db $(OBJS) patchcode_mos.o
	$(STRIPPING)
	@ppc-morphos-strip --remove-section=.comment $@.db -o $@
	@chmod u+x Snoopium

snooptext.h: snooptext.cd
	@$(CATCOMP) --cd snooptext.cd --cfile snooptext.h

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

%.catalog: %.ct snooptext.cd
	$(CATCOMP) -u -cd snooptext.cd -ct $< -o $@

source:
	(cd .. && tar -cf $(SOURCEPATH)snoopium.tar snoopium)

dump:
	objdump --disassemble-all --reloc $(TARGET).db >$(TARGET).s

clean:
	-@rm -f *.o
	-@rm -f $(TARGET) $(TARGET).s $(TARGET).db

install: all
	@mkdir -p /sys/Tools
	cp Snoopium /sys/Tools
	cp Snoopium.info /sys/Tools
	cp -f Distribution/Snoopium.guide MOSSYS:Locale/Help/english/Snoopium.guide
	@for language in $(CATALOGS); \
	do\
		mkdir -p /sys/MorphOS/Locale/Catalogs/$$language;\
		cp -f catalogs/$$language/$(TARGET).catalog /sys/MorphOS/Locale/Catalogs/$$language/Snoopium.catalog;\
	done

install-iso: all
	mkdir -p $(ISOPATH)Tools
	mkdir -p $(ISOPATH)MorphOS/Locale/Help/english
	cp Snoopium $(ISOPATH)Tools/Snoopium
	cp Snoopium.info $(ISOPATH)Tools/Snoopium.info
	cp -f Distribution/Snoopium.guide $(ISOPATH)MorphOS/Locale/Help/english/Snoopium.guide
	@for language in $(CATALOGS); \
	do\
		mkdir -p $(ISOPATH)MorphOS/Locale/Catalogs/$$language;\
		cp -f catalogs/$$language/$(TARGET).catalog $(ISOPATH)MorphOS/Locale/Catalogs/$$language/Snoopium.catalog;\
	done

dep:
	echo >Makefile.dep
	$(CC) -MM $(CFLAGS) `ls *.c` >>Makefile.dep

include Makefile.dep
