.PHONY: all install clean

F_FRONT = F_Front
CC      = gcc
LIBXML2 = /usr/include/
CFLAGS  = -g -O2 -std=gnu99 -Wall -Wpointer-arith -DNDEBUG -DBUGFIX -D__XCODEML__ -DYYDEBUG -I$(LIBXML2)/libxml2 -I../../include
LDFLAGS = -L/usr/lib64 -lxml2 -lm
MKDIR_P = install -m 755 -d
INSTALL = install
BINDIR  = /usr/local/bin
AWK     = gawk

OBJECTS = F95-main.o C-expr-mem.o C-exprcode.o F-datatype.o F-ident.o \
	  F95-parser.o F-mem.o F-compile.o F-compile-decl.o F-compile-expr.o \
	  F-opt-expv.o F-output-xcodeml.o F-io-xcodeml.o F-data.o F-datasub.o \
	  F-equiv.o F-varutil.o F-intrinsic.o F-intrinsics-table.o F-OMP.o F-XMP.o \
	  xcodeml-node.o xcodeml-parse.o xcodeml-util.o xcodeml-type.o \
	  xcodeml-traverse.o xcodeml-output-F.o F-dump.o F-type-attr-tbl.o \
	  module-manager.o hash.o F-input-xmod.o F-module-procedure.o F-second-pass.o
HEADERS = C-OMP.h C-XMP.h C-expr.h C-exprcode.h F-datatype.h F-front.h F-ident.h \
	  F-input-xmod.h F-intrinsics-types.h F-module-procedure.h F-output-xcodeml.h \
	  F-second-pass.h hash.h module-manager.h xcodeml-module.h xcodeml-node.h xcodeml.h
CREATE_FILES = C-exprcode.h C-exprcode.c

FALSE       = 1
TRUE        = 0
IS_MOD2XMOD = 1
ifeq ($(IS_MOD2XMOD), $(TRUE))
    CFLAGS+=-D_MPI_FC=gfortran
endif

all: $(F_FRONT)

$(F_FRONT): $(OBJECTS) $(HEADERS)
	$(CC) $(CFLAGS) -o $@ $(OBJECTS) $(LDFLAGS)

$(OBJECTS): $(HEADERS)

.c.o:
	$(CC) $(CFLAGS) $< -c

C-exprcode.h: C-exprcode.def C-exprcode.h.awk
	$(AWK) -f C-exprcode.h.awk < C-exprcode.def > C-exprcode.h

C-exprcode.c: C-exprcode.def C-exprcode.c.awk
	$(AWK) -f C-exprcode.c.awk < C-exprcode.def > C-exprcode.c

install: $(F_FRONT)
	$(MKDIR_P) $(BINDIR)
	$(INSTALL) $(F_FRONT) $(BINDIR)

clean:
	rm -f *.o $(CREATE_FILES) $(F_FRONT)

