## Process this file with automake to produce Makefile.in.

AUTOMAKE_OPTIONS = foreign

gcjdir = $(includedir)/gcj
gcj_HEADERS = array.h cni.h field.h javaprims.h method.h

toolgcjdir = @tool_include_dir@/gcj
toolgcj_HEADERS = libgcj-config.h
