OBJECTS =fs_error.o fs_media.o fs_readts.o fs_search.o fs_fileio.o\
	fs_glob.o fs_parse.o fs_hostdep.o fs_accel.o\
	fs_io_ufs.o fs_io_t64.o fs_io_lnx.o fs_io_net.o\
	fs_io_dxx.o fs_io_d64.o fs_io_d71.o fs_io_d81.o fs_io_dhd.o\
	dosemu.o dos_blockio.o\
	comm-lpt.o ieee_ser.o\
	machdep.o\
	client-comm.o clientdep.o\
	misc_func.o resman.o datestamp.o read_key.o\
	debug.o	version.o


CC =gcc
COPT=-Wall -g -DUNIX -DLINUX
# COPT -Wall -g -DUNIX -DBSD

# Linux options
LINUXCOPT=-O

# This is the amiga link options
# LOPT= -lcompat
# This is the UNIX link option
LOPT=

all:	64net2 64rm 64ls 64list 64cat x64net

backup:	64net2.tar.gz
	tar zcvf 64net2.tgz *c *h Makefile devel*

clean:
	rm *.o

spotless:	clean
	rm 64net2 64ls 64rm 64list 64cat x64net

#
#	Distribution build commands
#

freebsd-dist: 64net2
	tar zcvf /tmp/64net2fb.tgz 64net2 64netrc *.development cable.doc
msdos-dist:
	tar zcvf /tmp/64net2ms.tgz 64net2.exe 64netrc *.development cable.doc

#
# Directives to build actual binaries
#
# 64net2 - 64NET/2 Server
# 64rm   - Delete files in a 64net filesystem
# 64ls   - View a directory c64 style using the 64net filesystem
# 64list - Show the BASIC listing of a file using the 64net filesystem
# 64cat  - Show the contents of a file using the 64net filesystem
#

64net2:	$(OBJECTS) 64net2.o fs.h
	$(CC) $(LOPT) $(OBJECTS) 64net2.o -o 64net2

64list:	$(OBJECTS) 64list.o fs.h
	$(CC) $(LOPT) $(OBJECTS) 64list.o -o 64list

64rm:	$(OBJECTS) 64rm.o fs.h
	$(CC) $(LOPT) $(OBJECTS) 64rm.o -o 64rm

64ls:	$(OBJECTS) 64ls.o fs.h
	$(CC) $(LOPT) $(OBJECTS) 64ls.o -o 64ls

64cat:	$(OBJECTS) 64cat.o fs.h
	$(CC) $(LOPT) $(OBJECTS) 64cat.o -o 64cat

x64net:	x64net.c 15xx.xpm
	$(CC) $(COPT) -o x64net x64net.c -L/usr/X11/lib -lX11 

#
# Directives for 64NET filesystem and front end modules
#

64net2.o:	main_64net2.c fs.h
	$(CC) $(COPT) -c main_64net2.c -o 64net2.o

64list.o:	main_list.c fs.h
	$(CC) $(COPT) -c main_list.c -o 64list.o

64ls.o:	main_ls.c fs.h
	$(CC) $(COPT) -c main_ls.c -o 64ls.o

64rm.o:	main_rm.c fs.h
	$(CC) $(COPT) -c main_rm.c -o 64rm.o

64cat.o:	main_cat.c fs.h
	$(CC) $(COPT) -c main_cat.c -o 64cat.o

version.o:	version.c
	$(CC) $(COPT) -c version.c

datestamp.o:	datestamp.c
	$(CC) $(COPT) -c datestamp.c

machdep.o:	machdep.c machdep.h
	$(CC) $(LINUXCOPT) $(COPT) -c machdep.c
#
# File system interfaces
#

fs_parse.o:	fs_parse.c fs.h
	$(CC) $(COPT) -c fs_parse.c

fs_error.o:	fs_error.c fs.h
	$(CC) $(COPT) -c fs_error.c

fs_media.o:	fs_media.c fs.h
	$(CC) $(COPT) -c fs_media.c

fs_readts.o:	fs_readts.c fs.h
	$(CC) $(COPT) -c fs_readts.c

fs_search.o:	fs_search.c fs.h fs_func.h
	$(CC) $(COPT) -c fs_search.c

fs_fileio.o:	fs_fileio.c fs.h fs_func.h misc_func.h
	$(CC) $(COPT) -c fs_fileio.c

fs_glob.o:	fs_glob.c fs.h
	$(CC) $(COPT) -c fs_glob.c

fs_hostdep.o:	fs_hostdep.c 
	$(CC) $(COPT) -c fs_hostdep.c

fs_accel.o:	fs_accel.c fs.h 
	$(CC) $(COPT) -c fs_accel.c

#
# 64net/2 Filesystem modules
#

fs_io_ufs.o:	fs_io_ufs.c fs.h
	$(CC) $(COPT) -c fs_io_ufs.c

fs_io_dxx.o:	fs_io_dxx.c fs.h fs_func.h
	$(CC) $(COPT) -c fs_io_dxx.c

fs_io_d64.o:	fs_io_d64.c fs.h fs_func.h
	$(CC) $(COPT) -c fs_io_d64.c

fs_io_d71.o:	fs_io_d71.c fs.h fs_func.h misc_func.h
	$(CC) $(COPT) -c fs_io_d71.c

fs_io_d81.o:	fs_io_d81.c fs.h fs_func.h misc_func.h
	$(CC) $(COPT) -c fs_io_d81.c

fs_io_dhd.o:	fs_io_dhd.c fs.h fs_func.h misc_func.h
	$(CC) $(COPT) -c fs_io_dhd.c

fs_io_t64.o:	fs_io_t64.c fs.h
	$(CC) $(COPT) -c fs_io_t64.c

fs_io_lnx.o:	fs_io_lnx.c fs.h
	$(CC) $(COPT) -c fs_io_lnx.c

fs_io_net.o:	fs_io_net.c fs.h
	$(CC) $(COPT) -c fs_io_net.c

#
# DOS Emulation modules
#

dosemu.o:	dosemu.c fs.h fs_func.h dosemu.h
	$(CC) $(COPT) -c dosemu.c

dos_blockio.o:	dos_blockio.c fs.h fs_func.h dosemu.h
	$(CC) $(COPT) -c dos_blockio.c

#
# Other modules (eg communication etc)
#

comm-lpt.o:	comm-lpt.c fs.h comm-lpt.h cpufunc.h clientdep.h linux.h
	$(CC) $(LINUXCOPT) $(COPT) -c comm-lpt.c

ieee_ser.o:	ieee_ser.c fs.h comm-lpt.h cpufunc.h clientdep.h linux.h iec.h
	$(CC) $(LINUXCOPT) $(COPT) -c ieee_ser.c

# 64net2.o:	64net2.c
#	$(CC) $(COPT) -c 64net2.c

client-comm.o: client-comm.c
	$(CC) $(COPT) -c client-comm.c

clientdep.o:	clientdep.c
	$(CC) $(COPT) -c clientdep.c

resman.o:	resman.c fs.h
	$(CC) $(COPT) -c resman.c

misc_func.o:	misc_func.c
	$(CC) $(COPT) -c misc_func.c

debug.o:	debug.c
	$(CC) $(COPT) -c debug.c


#
# Security/registration modules
#

read_key.o:	read_key.c
	$(CC) $(COPT) -c read_key.c




