MAKE = make --no-print-directory

INCLUDEDIR = $(PWD)/include
LIBDIR     = $(PWD)/lib

UNITS = scanner/scanner.o parser/parser.o

export CC    = gcc
export FLAGS = -g -Wall -DDEBUG_EXTRA -DDEBUG -I$(INCLUDEDIR) -L$(LIBDIR)
export LIBS = -lpool -ltable -lmemory -lm

default: libraries
	@echo "(BUILD) Scanner"
	@cd scanner; $(MAKE)
	@cd parser; $(MAKE)
	@echo "(LD) pc"
	@$(CC) $(UNITS) main.c $(FLAGS) $(LIBS) -o pc

libraries:
	@echo "(BUILD) Libraries"
	@cd lib; $(MAKE)
	
disasm: libraries
	@echo "(BUILD) Disasm"
	@$(CC) util/disasm.c $(FLAGS) $(LIBS) -o dasm

clean:
	@cd lib; $(MAKE) clean
	@cd scanner; $(MAKE) clean
	@find . -regex ".*\.*[o~]" -print |xargs -r rm
	@echo "(CLEAN) *.0 *~"
