CC=gcc
OPT= -O3 
CFLAGS=${OPT} -funsigned-char -Wall -Wcast-align -m486 -Iinclude
LDFLAGS=${OPT} #-lefence


vpath %.a lib
vpath %.h -Iinclude

SRC=v2fs.c v2_init.c part_info.c v2fs_to_file.c file_to_v2fs.c \
v2fs_rename.c v2fs_delete.c file_to_v2obj.c v2fs_defrag.c 
EXE=v2_init part_info v2fs_to_file file_to_v2fs \
v2fs_rename v2fs_delete file_to_v2obj v2fs_defrag 

DISTRO_FILES=${SRC} Makefile readme.carlo
DISTRO_INCLUDE_FILES=include/v2fs.h include/v2gen.h
DISTRO_LIB_FILES=lib/Makefile lib/gen.c

exe: $(EXE)

clean:
	-rm $(EXE) *.o *.d util.tgz util.zip *~ lib/*.o lib/*.a lib/*.d lib/*~
	-rm -rf util_distro

distro:
	-rm -rf util_distro util.zip util.tgz
	-mkdir util_distro
	-mkdir util_distro/include
	-mkdir util_distro/lib
	cp -pR ${DISTRO_FILES} util_distro
	cp -pR ${DISTRO_INCLUDE_FILES} util_distro/include
	cp -pR ${DISTRO_LIB_FILES} util_distro/lib
	zip util.zip util_distro/*
	tar cvfz util.tgz util_distro

v2fs_defrag: v2fs_defrag.o v2fs.o -lv2
file_to_v2obj: file_to_v2obj.o v2fs.o -lv2
v2fs_delete: v2fs_delete.o v2fs.o -lv2
v2fs_rename: v2fs_rename.o v2fs.o -lv2
file_to_v2fs: file_to_v2fs.o v2fs.o -lv2
v2fs_to_file: v2fs_to_file.o v2fs.o -lv2
part_info: part_info.o v2fs.o -lv2
v2_init: v2_init.o v2fs.o -lv2

tar: ${EXE}
	strip ${EXE}
	tar cvfz exe.tar.gz ${EXE}

lib/libv2.a: 
	cd lib && $(MAKE) libv2.a

%.d: %.c
	$(SHELL) -ec '$(CC) -Iinclude -M $(CPPFLAGS) $< \
        | sed '\''s/\($*\)\.o[ :]*/\1.o $@ : /g'\'' > $@; \
        [ -s $@ ] || rm -f $@'

#
# include a dependency file if one exists
#
include $(SRC:.c=.d)



