#MARCH=-march=athlon-tbird
CXXFLAGS=-ansi -pedantic -Wall -O3
#CXXFLAGS+= -DITALIAN
includedir = $(CURDIR)/include
CXXFLAGS+= -I$(includedir)

export MARCH CXXFLAGS

VPATH = src $(SUBDIRS)

OBJECTS = main.o quickstart.o
OBJECTS += selectspeed.o check.o setup.o 

SUBDIRS = libaudiostream libkeyer
SUBDIRS += libmenus librandom
SUBDIRS += libmorse libdatafile

.PHONY: all clean clean_libs clean_aldo install $(SUBDIRS)
.LIBPATTERNS:=lib%.a

all:
	$(MAKE) libs
	$(MAKE) aldo

libs: $(SUBDIRS) 

$(SUBDIRS):
	@$(MAKE) -C $@ static

aldo: $(OBJECTS) -ldatafile -laudiostream -lmorse -lkeyer -lrandom -lmenus
	$(CXX) -o $@ $^

main.o: main.cpp $(HEADERS)
	$(CXX) $(MARCH) $(CXXFLAGS) -c $< -o $@

quickstart.o: quickstart.cpp $(HEADERS)
	$(CXX) $(MARCH) $(CXXFLAGS) -c $< -o $@

selectspeed.o: selectspeed.cpp $(HEADERS)
	$(CXX) $(MARCH) $(CXXFLAGS) -c $< -o $@

check.o: check.cpp $(HEADERS)
	$(CXX) $(MARCH) $(CXXFLAGS) -c $< -o $@

setup.o: setup.cpp $(HEADERS)
	$(CXX) $(MARCH) $(CXXFLAGS) -c $< -o $@

clean: clean_libs clean_aldo

clean_libs: 
	$(MAKE) -C libaudiostream clean
	$(MAKE) -C libkeyer clean
	$(MAKE) -C libmenus clean
	$(MAKE) -C librandom clean
	$(MAKE) -C libmorse clean
	$(MAKE) -C libdatafile clean
	$(MAKE) -C po clean

clean_aldo:
	@$(RM) aldo $(OBJECTS)

install: libs aldo uninstall
	@install -m555 -oroot aldo /usr/bin/
	@$(MAKE) -C po install

uninstall:
	@$(RM) /usr/bin/aldo
	@$(MAKE) -C po uninstall