# beef Makefile

CC = gcc
CFLAGS = -Wall -ansi -pedantic -O2
SRCDIR = src

PREFIX = /usr
MANDIR = /usr/share/man/man1
DOCDIR = /usr/share/doc/beef

all: build

build:
	@echo -e "  CC\tmain.c"; \
	$(CC) $(CFLAGS) -o $(SRCDIR)/main.o -c $(SRCDIR)/main.c;
	@echo -e "  CC\tnew_cell.c"; \
	$(CC) $(CFLAGS) -o $(SRCDIR)/new_cell.o -c $(SRCDIR)/new_cell.c;
	@echo -e "  CC\tload.c"; \
	$(CC) $(CFLAGS) -o $(SRCDIR)/load.o -c $(SRCDIR)/load.c;
	@echo -e "  CC\teval.c"; \
	$(CC) $(CFLAGS) -o $(SRCDIR)/eval.o -c $(SRCDIR)/eval.c;
	@echo -e "  CC\ttape_dump.c"; \
	$(CC) $(CFLAGS) -o $(SRCDIR)/tape_dump.o -c $(SRCDIR)/tape_dump.c;
	@echo -e "  CC\tcode_dump.c"; \
	$(CC) $(CFLAGS) -o $(SRCDIR)/code_dump.o -c $(SRCDIR)/code_dump.c;
	@echo -e "  LD\tbeef"; \
	$(CC) $(CFLAGS) -o beef $(SRCDIR)/*.o;

install:
	@echo -e "  CP\tbeef"; \
	cp beef $(PREFIX)/bin;
	@echo -e "  CP\tbeef.1.gz"; \
	cp doc/beef.1.gz $(MANDIR);
	@if [ ! -d $(DOCDIR) ]; then \
	   echo -e "  MD\t$(DOCDIR)"; \
	   mkdir $(DOCDIR); \
	 fi;
	@echo -e "  CP\tchangelog COPYING.gz"; \
	cp doc/changelog doc/COPYING.gz $(DOCDIR);

clean:
	@echo -e "  RM\tbeef"; \
	rm -f beef;
	@echo -e "  RM\tsrc/*.o"; \
	rm -f $(SRCDIR)/*.o;

distclean: clean
.PHONY: build install clean distclean
