
INCLUDE = -I/usr/include/ncurses -I/usr/lib/ncurses

#Monitor tape is only for debugging. It just writes a list of
#tape functions that taper is trying to do
#
#If you have a tape drive that writes leading zeroes to a tape, then
#you must define LEADING_ZEROES and then prepare all tapes with mktaper.
DEFINES =
#DEFINES = -DLEADING_ZEROES

CC = gcc
CFLAGS= -Wall -pedantic 
DEBUG = -g 

AR = ar
ARFLAGS = rcs

LIBPATH = -L/usr/lib 
LINKLIB = 
CURSES = ncurses

#------------- Shouldn't need to change anything below this ------------------
COMMON_SRCS = common.c select_box.c memory.c
BACKUP_SRCS = sel_backup.c backup.c 
RESTORE_SRCS = sel_restore.c restore.c
MKINFO_SRCS = mkinfo.c
MKTAPE_SRCS = mktape.c
TESTZERO_SRCS = testzero.c

COMMON_OBJS = $(COMMON_SRCS:.c=.o)
BACKUP_OBJS = $(BACKUP_SRCS:.c=.o)
RESTORE_OBJS = $(RESTORE_SRCS:.c=.o)
MKINFO_OBJS = $(MKINFO_SRCS:.c=.o)
MKTAPE_OBJS = $(MKTAPE_SRCS:.c=.o)
TESTZERO_OBJS = $(TESTZERO_SRCS:.c=.o)


all: backup restore mkinfo mktape testzero which_device

common_archive.ar: $(COMMON_OBJS) 
		$(AR) $(ARFLAGS) common_archive.ar $(COMMON_OBJS)

backup: $(BACKUP_OBJS) common_archive.ar .depend
	$(CC) $(DEBUG) $(CFLAGS) $(DEFINES) $(INCLUDE) -o backup $(BACKUP_OBJS) \
                common_archive.ar $(LINKLIB) -l$(CURSES)

restore: $(RESTORE_OBJS) common_archive.ar .depend
	$(CC) $(DEBUG) $(CFLAGS) $(DEFINES) $(INCLUDE) -o restore $(RESTORE_OBJS) \
               common_archive.ar $(LINKLIB) -l$(CURSES)

mkinfo: $(MKINFO_OBJS) common_archive.ar .depend
	$(CC) $(DEBUG) $(CFLAGS) $(DEFINGS) $(INCLUDE) -o mkinfo $(MKINFO_OBJS) \
              common_archive.ar $(LINKLIB) -l$(CURSES)

mktape: $(MKTAPE_OBJS) common_archive.ar .depend
	$(CC) $(DEBUG) $(CFLAGS) $(DEFINGS) $(INCLUDE) -o mktape $(MKTAPE_OBJS) \
              common_archive.ar $(LINKLIB) -l$(CURSES)

testzero: $(TESTZERO_OBJS) common_archive.ar .depend
	$(CC) $(DEBUG) $(CFLAGS) $(DEFINGS) $(INCLUDE) -o testzero $(TESTZERO_OBJS) \
              common_archive.ar $(LINKLIB) -l$(CURSES)

which_device: which_device.o .depend
	 $(CC) $(DEBUG) $(CFLAGS) $(DEFINES) $(INCLUDE) -o which_device \
              which_device.o $(LINKLIB) 


.c.o:
	$(CC) $(DEBUG) $(CFLAGS) $(DEFINES) $(INCLUDE) -c $<

clean:
	rm -rf *.o backup restore mkinfo testzero mktape \
		which_device .depend tape_monitor common_archive.ar

.depend:
	make depend

depend:
	$(CC) -M $(INCLUDE) $(COMMON_SRCS) $(BACKUP_SRCS) $(RESTORE_SRCS) \
				$(MKINFO_SRCS) $(MKTAPE_SRCS) $(TESTZERO_SRCS) \
				which_device.c > .depend
	
dep: depend

ifeq (.depend, $(wildcard .depend))
include .depend
endif


