########################################################################
# AtariSIO tools Makefile
# (c) 2002-2004 by Matthias Reichl <hias@horus.com>
# http://www.horus.com/~hias/atari/
########################################################################

EXECUTABLES = atariserver atarixfer \
	atr2atp atpdump adir
#	atariserver-nocurses
#	serialwatcher

all: $(EXECUTABLES)

ATARISERVER_NOCURSES_LIBS = $(COMMON_LIBS) -lreadline -lncurses
ATARISERVER_LIBS = $(COMMON_LIBS) -lpanel -lncurses

COMMON_OBJS = DiskImage.o FileIO.o SIOTracer.o FileTracer.o Error.o

ATRIMAGE_OBJS = AtrImage.o AtrMemoryImage.o DCMCodec.o

ATPIMAGE_OBJS = AtpImage.o AtpTrack.o AtpSector.o \
	Atari1050Model.o \
	ChunkReader.o ChunkWriter.o Indent.o Crc32.o

ATARIXFER_OBJS = atarixfer.o $(COMMON_OBJS) $(ATRIMAGE_OBJS) \
	SIOWrapper.o

ATARISERVER_OBJS = atariserver.o CursesFrontend.o StringInput.o \
	History.o AtpUtils.o Directory.o DirectoryCache.o \
	FileInput.o FileSelect.o MiscUtils.o \
	$(COMMON_OBJS) $(ATRIMAGE_OBJS) $(ATPIMAGE_OBJS) \
	DiskManager.o SIOWrapper.o SIOManager.o \
	AbstractSIOHandler.o AtrSIOHandler.o AtpSIOHandler.o \
	HighSpeedSIOCode.o CursesFrontendTracer.o

ATARISERVER_NOCURSES_OBJS = atariserver-nocurses.o AtpUtils.o \
	$(COMMON_OBJS) $(ATRIMAGE_OBJS) $(ATPIMAGE_OBJS) \
	DiskManager.o SIOWrapper.o SIOManager.o \
	AbstractSIOHandler.o AtrSIOHandler.o AtpSIOHandler.o \
	HighSpeedSIOCode.o

ATR2ATP_OBJS = atr2atp.o AtpUtils.o \
	$(COMMON_OBJS) $(ATRIMAGE_OBJS) $(ATPIMAGE_OBJS)

ATPDUMP_OBJS = atpdump.o $(COMMON_OBJS) $(ATPIMAGE_OBJS)

ADIR_OBJS = adir.o $(COMMON_OBJS) $(ATRIMAGE_OBJS)

SERIALWATCHER_OBJS = serialwatcher.o SIOTracer.o FileTracer.o Error.o

atarixfer: $(ATARIXFER_OBJS)
	$(CXX) $(LDFLAGS) -o atarixfer $(ATARIXFER_OBJS) $(COMMON_LIBS)

atariserver: $(ATARISERVER_OBJS)
	$(CXX) $(LDFLAGS) -o atariserver $(ATARISERVER_OBJS) $(ATARISERVER_LIBS)

atariserver-nocurses: $(ATARISERVER_NOCURSES_OBJS)
	$(CXX) $(LDFLAGS) -o atariserver-nocurses $(ATARISERVER_NOCURSES_OBJS) $(ATARISERVER_NOCURSES_LIBS)

atr2atp: $(ATR2ATP_OBJS)
	$(CXX) $(LDFLAGS) -o atr2atp $(ATR2ATP_OBJS) $(COMMON_LIBS)

atpdump: $(ATPDUMP_OBJS)
	$(CXX) $(LDFLAGS) -o atpdump $(ATPDUMP_OBJS) $(COMMON_LIBS)

adir: $(ADIR_OBJS)
	$(CXX) $(LDFLAGS) -o adir $(ADIR_OBJS) $(COMMON_LIBS)

serialwatcher: $(SERIALWATCHER_OBJS)
	$(CXX) $(LDFLAGS) -o serialwatcher $(SERIALWATCHER_OBJS)

clean:
	rm -f *.o $(EXECUTABLES) *.65o dumphscode

install: atariserver atarixfer atr2atp atpdump
	if test ! -d $(INST_DIR)/bin ; then \
		mkdir -p $(INST_DIR)/bin ; \
	fi
	install -o root -g users -m 4750 atariserver $(INST_DIR)/bin/atariserver
	install -o root -g users -m 4750 atarixfer $(INST_DIR)/bin/atarixfer
	install -o root -g users -m 755 atr2atp $(INST_DIR)/bin/atr2atp
	install -o root -g users -m 755 atpdump $(INST_DIR)/bin/atpdump
	install -o root -g users -m 755 adir $(INST_DIR)/bin/adir
	if test ! -d $(INST_DIR)/include ; then \
		mkdir -p $(INST_DIR)/include ; \
	fi

uninstall:
	rm -f $(INST_DIR)/bin/atariserver 
	rm -f $(INST_DIR)/bin/atarixfer
	rm -f $(INST_DIR)/bin/atr2atp
	rm -f $(INST_DIR)/bin/atpdump
	rm -f $(INST_DIR)/bin/adir

# manually entered dependency information

dumphscode: dumphscode.o
	$(CC) -o dumphscode dumphscode.o

highspeedcode.65o: highspeedcode.src
	atasm $<

highspeedcode: highspeedcode.65o dumphscode
	./dumphscode

dep:
	rm -f .depend
	for i in *.cpp ; do \
		$(CXX) -I$(KDIR)/includes -MM $$i >> .depend ; \
	done 

-include .depend

