######### COMPILATION OPTIONS
PREFIX  = usr/local
CFLAGS  = -Wall -ansi -pedantic -g
LDFLAGS =
ROOTDIR	= .
INCDIR  = -I$(ROOTDIR)/include
LIBDIR	= $(ROOTDIR)/lib
LIBS	= $(LIBDIR)/hardware.lib
CC	= gcc
RM	= rm -f

OBJECTS = dump.o drive.o mbr.o volume.o file.o filenaming.o

######### MAIN TARGETS
BINARIES	= mkhd dmps frmt vm validvol if_nfile status if_dfile if_pfile if_cfile pdir nfile nfs pfile cfile ndir dfile
ALL : $(OBJECTS) $(BINARIES)

######### MAIN RULES
%.o : %.c
	$(CC) -c $< -o $@ $(CFLAGS) $(INCDIR)

# $(BINARIES) : $(OBJECTS)
#	$(CC) $(CFLAGS) $(OBJECTS) -o $(BINARIES) $(LDFLAGS) ./$(LIBS)

if_pfile : if_pfile.o
	$(CC) $(CFLAGS) -o $@ $< $(OBJECTS) $(LIBS)

status : status.o
	$(CC) $(CFLAGS) -o $@ $< $(OBJECTS) $(LIBS)

if_nfile : if_nfile.o
	$(CC) $(CFLAGS) -o $@ $< $(OBJECTS) $(LIBS)
	
if_cfile : if_cfile.o
	$(CC) $(CFLAGS) -o $@ $< $(OBJECTS) $(LIBS)

if_dfile : if_dfile.o
	$(CC) $(CFLAGS) -o $@ $< $(OBJECTS) $(LIBS)

nfile : nfile.o
	$(CC) $(CFLAGS) -o $@ $< $(OBJECTS) $(LIBS)

pfile : pfile.o
	$(CC) $(CFLAGS) -o $@ $< $(OBJECTS) $(LIBS)

cfile : cfile.o
	$(CC) $(CFLAGS) -o $@ $< $(OBJECTS) $(LIBS)

dfile : dfile.o
	$(CC) $(CFLAGS) -o $@ $< $(OBJECTS) $(LIBS)

pdir : pdir.o
	$(CC) $(CFLAGS) -o $@ $< $(OBJECTS) $(LIBS)

ndir : ndir.o
	$(CC) $(CFLAGS) -o $@ $< $(OBJECTS) $(LIBS)

mkhd : mkhd.o
	$(CC) $(CFLAGS) -o $@ $< $(OBJECTS) $(LIBS)

nfs : nfs.o
	$(CC) $(CFLAGS) -o $@ $< $(OBJECTS) $(LIBS)

vm : vm.o
	$(CC) $(CFLAGS) -o $@ $< $(OBJECTS) $(LIBS)

frmt : frmt.o
	$(CC) $(CFLAGS) -o $@ $< $(OBJECTS) $(LIBS)

validvol : validvol.o
	$(CC) $(CFLAGS) -o $@ $< $(OBJECTS) $(LIBS)
		
dmps : dmps.o
	$(CC) $(CFLAGS) -o $@ $< $(OBJECTS) $(LIBS)
	
######### MISC
.PHONY: clean realclean depend

clean :
	$(RM) *.o $(BINARIES)
	
realclean : clean 
	$(RM) vdiskA.bin vdiskB.bin
