TOPDIR = ../c++
include $(TOPDIR)/rules.mk

RFPC = $(TOPDIR)/compiler/rfpc
RFLAGS = -B ../lib -I refal -e org.refal.plus.compiler.rfpc.Main

PROGRAMS = rfpc

all:: $(PROGRAMS)

RFPC_MODULES = \
  rfpc \
  rfp_lex \
  rfp_parse \
  rfp_compile \
  rfp_err \
  rfp_src \
  rfp_asail \
  rfp_asail_cpp \
  rfp_asail_java \
  rfp_asail_jbc \
  rfp_asail_tpp \
  rfp_as2as \
  rfp_check \
  rfp_format \
  rfp_helper \
  rfp_vars \
  rfp_const \
  rfp_clashes \
  rfp_asail2asail \
  rfp_debug \
  NativeJava

RFPC_SOURCES = $(addprefix refal/org/refal/plus/compiler/,$(RFPC_MODULES:=.rf))
RFPC_OBJECTS = $(addprefix refal/org/refal/plus/compiler/,$(RFPC_MODULES:=.o))
RFPC_CC_SOURCES = $(addprefix refal/org/refal/plus/compiler/,$(RFPC_MODULES:=.cc))

PROGRAMS_EXE = $(PROGRAMS:=$(EXE_SUFFIX))

ALL_SOURCES = $(sort $(RFPC_SOURCES))
ALL_INCLUDES = $(ALL_SOURCES:.rf=.rfi)

DISTFILES = Makefile
DISTFILES += gendeps.sh
DISTFILES += $(ALL_SOURCES) $(ALL_INCLUDES)

DEPS = $(ALL_SOURCES:.rf=.dep)

#ifndef NODEPS
#
#%.dep: %.rf
#	@echo Generating dependencies for $<
#	@./gendeps.sh $<
#
#endif
#
#ifeq ($(RFP),rfp)
#LDFLAGS=
#LDLIBS=
#endif

CPPFLAGS += $(RFRTLIB_CFLAGS) $(RFLIB_CFLAGS)

rfpc: $(RFPC_OBJECTS) $(LIBRF) $(LIBRFRT) $(LIBPXX)
	$(CC) -o rfpc $(LDFLAGS) $(RFPC_OBJECTS) $(LIBRF) $(LIBRFRT) $(LIBPXX) $(LOADLIBES) $(LDLIBS)

clean::
	rm -f $(PROGRAMS_EXE) $(RFPC_CC_SOURCES) $(RFPC_OBJECTS) $(DEPS)

-include $(DEPS)
