# Neil Edelman - 110121860 - made for GNU Make
# "Use MAKE to provide two features: compile the files and backup the .c
# files into your backup directory"

# Vars

PROJ := passweb
OBJS := PassWeb.o Menu.o Cipher.o
SRCS := $(OBJS:.o=.c)
H    := $(OBJS:.o=.h)
BACK := backup
CC   := gcc
CF   := -Wall -O3 -fasm -fomit-frame-pointer -ffast-math -funroll-loops -fasm -fomit-frame-pointer -ffast-math -funroll-loops -pedantic
TAR  := archive.tar

# Compile

default: passweb

$(PROJ): $(OBJS)
	$(CC) $(CF) -o $@ $(OBJS)

%.o: %.c $H
	$(CC) $(CF) -c $<

# Phony targets

.PHONY: backup clean tar

backup:
	-mkdir $(BACK)
	cp $(PROJ) $(SRCS) $(H) Makefile $(BACK)

clean:
	-rm $(OBJS)

tar: $(BACK)/$(TAR)

$(BACK)/$(TAR):
	-mkdir $(BACK)
	-tar cf $(BACK)/$(TAR) $(PROJ) $(SRCS) $(H) Makefile
