BIN = sysrpl
RPL2 = 

# RPL2 += -D__MALLOC__
RPL2 += -D__MAX_MEM__=65536

RPL2 += -D__STATZ__
RPL2 += -D__SAFE__

GCC = gcc -fgnu89-inline

CC = $(GCC) -Wall
LD = $(GCC)

OPTIMIZE = -O2

PROFILE = -pg -O1
DEBUG = -g -O0

OTHER = -lmenu -lcurses -lm -lgmp -ldl

#STATIC = -static
STATIC =

CFLAGS  = $(RPL2) $(OPTIMIZE) $(STATIC)
# CFLAGS  = $(RPL2) $(DEBUG) $(STATIC)
LDFLAGS = $(CFLAGS) $(OTHER) $(STATIC)

MEMCHECK = valgrind --tool=memcheck \
	--leak-check=yes --leak-resolution=high --show-reachable=yes

OBJZ = \
	main.o \
	console.o \
	gstack.o \
	debug.o \
	object.o \
	dump.o \
	prolog.o \
	stack.o \
	mem.o \
	xlib.o \
	cmd.o \
	symb.o \
	lambda.o \
	cplx.o \
	special.o

.PHONY: clean

all: $(BIN)

run: $(BIN)
	@$(BIN)

memcheck: $(BIN)
	$(MEMCHECK) $(BIN)

dbg: $(BIN)
	gdb $(BIN)

$(BIN): $(OBJZ)
	$(LD) -o $(BIN) $^ $(LDFLAGS)

clean:
	rm -f $(OBJZ)
	rm -f $(BIN)
