SHELL = /bin/sh

# V=0 quiet, V=1 verbose.  other values don't work.
V = 0
Q1 = $(V:1=)
Q = $(Q1:0=@)
ECHO1 = $(V:1=@:)
ECHO = $(ECHO1:0=@echo)

RM = rm -f
COPY = cp

CXX = g++
CXXFLAGS = -DOPENSSL_NO_STATIC_ENGINE -I/usr/local/include -fPIC
INCFLAGS = -I. -I/usr/obj/ports/rubinius-2.2.9/rubinius-2.2.9/staging/library -I/usr/obj/ports/rubinius-2.2.9/rubinius-2.2.9/staging/vm/include/capi
OBJS = encoding_compat.o grammar.o melbourne.o node_types.o symbols.o var_table.o visitor.o

LDSHAREDXX = g++ -shared -lstdc++ -fPIC
DLLIB = melbourne.so
DLDFLAGS = -L/usr/local/lib 
LIBPATH = -L. -L/usr/obj/ports/rubinius-2.2.9/rubinius-2.2.9/staging/lib
LIBS =  

INSTALL_PATH = /usr/obj/ports/rubinius-2.2.9/rubinius-2.2.9/staging/gems/gems/rubinius-melbourne-2.1.0.0/lib/rubinius/melbourne


.PHONY: all install

all:    $(DLLIB)

clean:
	-$(Q)$(RM) $(OBJS) $(DLLIB)

distclean:
	-$(Q)$(RM) $(OBJS) $(DLLIB) Makefile

install:
	-$(Q)$(COPY) $(DLLIB) $(INSTALL_PATH)


.SUFFIXES: .y .cpp .o

.y.cpp:
	$(ECHO) generating parser $(<)
	$(Q) bison -o $@ $<

.cpp.o:
	$(ECHO) compiling $(<)
	$(Q) $(CXX) $(CXXFLAGS) $(INCFLAGS) -o $@ -c $<

$(DLLIB): $(OBJS) Makefile
	$(ECHO) linking shared-object $(DLLIB)
	-$(Q)$(RM) $(@)
	$(Q) $(LDSHAREDXX) -o $@ $(OBJS) $(LIBPATH) $(DLDFLAGS) $(LIBS)

