# Top level -*- makefile -*- fragment for the GNU compiler for the Java(TM)
# language.
-# Copyright (C) 1996, 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+# Copyright (C) 1996, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
#This file is part of GCC.
# Define the names for selecting java in LANGUAGES.
java: jc1$(exeext) $(GCJ)$(exeext) jvgenmain$(exeext) \
- gcjh$(exeext) jv-scan$(exeext) jcf-dump$(exeext)
+ gcjh$(exeext) jv-scan$(exeext) jcf-dump$(exeext) \
+ gjnih$(exeext)
# Define the name of target independent tools to be installed in $(bindir)
# Names are subject to changes
-JAVA_TARGET_INDEPENDENT_BIN_TOOLS = gcjh jv-scan jcf-dump
+JAVA_TARGET_INDEPENDENT_BIN_TOOLS = gcjh gjnih jv-scan jcf-dump
# Tell GNU make to ignore these if they exist.
.PHONY: java
# Executables built by this Makefile:
JAVA_OBJS = java/parse.o java/class.o java/decl.o java/expr.o \
java/constants.o java/lang.o java/typeck.o java/except.o java/verify.o \
+ java/verify-glue.o java/verify-impl.o \
java/zextract.o java/jcf-io.o java/win32-host.o java/jcf-parse.o java/mangle.o \
java/mangle_name.o java/builtins.o java/resource.o \
java/jcf-write.o java/buffer.o java/check-init.o java/jcf-depend.o \
- java/jcf-path.o java/xref.o java/boehm.o java/java-gimplify.o mkdeps.o
+ java/jcf-path.o java/boehm.o java/java-gimplify.o
GCJH_OBJS = java/gjavah.o java/jcf-io.o java/jcf-depend.o java/jcf-path.o \
- java/win32-host.o java/zextract.o version.o mkdeps.o errors.o ggc-none.o \
+ java/win32-host.o java/zextract.o version.o errors.o ggc-none.o \
intl.o
+GJNIH_OBJS = java/gjavah-jni.o java/jcf-io.o java/jcf-depend.o java/jcf-path.o \
+ java/win32-host.o java/zextract.o version.o errors.o \
+ ggc-none.o intl.o
+
JVSCAN_OBJS = java/parse-scan.o java/jv-scan.o version.o intl.o
JCFDUMP_OBJS = java/jcf-dump.o java/jcf-io.o java/jcf-depend.o java/jcf-path.o \
- java/win32-host.o java/zextract.o errors.o version.o mkdeps.o ggc-none.o intl.o
+ java/win32-host.o java/zextract.o errors.o version.o ggc-none.o intl.o
JVGENMAIN_OBJS = java/jvgenmain.o java/mangle_name.o errors.o intl.o
-# Use loose warnings for this front end.
-java-warn = $(WERROR)
+# Use strict warnings for this front end.
+java-warn = $(STRICT_WARN)
+
# String length warnings
jvspec.o-warn = -Wno-error
+# Bison-1.75 output often yields (harmless) -Wtraditional warnings
+java/parse-scan.o-warn = -Wno-error
+java/parse.o-warn = -Wno-error
+
jc1$(exeext): $(JAVA_OBJS) $(BACKEND) $(LIBDEPS)
rm -f $@
$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ \
gcjh$(exeext): $(GCJH_OBJS) $(LIBDEPS)
rm -f $@
- $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(GCJH_OBJS) $(ZLIB) $(LIBS)
+ $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(GCJH_OBJS) $(CPPLIBS) $(ZLIB) $(LIBS)
+
+gjnih$(exeext): $(GJNIH_OBJS) $(LIBDEPS)
+ rm -f $@
+ $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(GJNIH_OBJS) $(CPPLIBS) $(ZLIB) $(LIBS)
jv-scan$(exeext): $(JVSCAN_OBJS) $(LIBDEPS)
rm -f $@
jcf-dump$(exeext): $(JCFDUMP_OBJS) $(LIBDEPS)
rm -f $@
$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(JCFDUMP_OBJS) \
- $(ZLIB) $(LDEXP_LIB) $(LIBS)
+ $(CPPLIBS) $(ZLIB) $(LDEXP_LIB) $(LIBS)
jvgenmain$(exeext): $(JVGENMAIN_OBJS) $(LIBDEPS)
rm -f $@
-cp -p $^ $(srcdir)/doc
dvi:: doc/gcj.dvi
+html:: $(htmldir)/java/index.html
JAVA_MANFILES = doc/gcj.1 doc/gcjh.1 doc/jv-scan.1 doc/jcf-dump.1 doc/gij.1 \
- doc/jv-convert.1 doc/rmic.1 doc/rmiregistry.1
+ doc/jv-convert.1 doc/grmic.1 doc/grmiregistry.1 \
+ doc/gcj-dbtool.1 doc/gjnih.1
java.man: $(JAVA_MANFILES)
rm -f $(DESTDIR)$(bindir)/$$tool_transformed_name$(exeext); \
$(INSTALL_PROGRAM) $$tool$(exeext) $(DESTDIR)$(bindir)/$$tool_transformed_name$(exeext); \
chmod a+x $(DESTDIR)$(bindir)/$$tool_transformed_name$(exeext); \
- if [ $$tool = gcjh ]; then \
+ if [ -f $(GCJ)-cross$(exeext) ]; then \
+ true; \
+ elif [ $$tool = gcjh ]; then \
rm -f $(DESTDIR)$(bindir)/$(GCJH_TARGET_INSTALL_NAME)$(exeext); \
( cd $(DESTDIR)$(bindir) && \
$(LN) $$tool_transformed_name$(exeext) $(GCJH_TARGET_INSTALL_NAME)$(exeext) ); \
-rm -rf $(DESTDIR)$(bindir)/$(JAVA_INSTALL_NAME)$(exeext)
-rm -rf $(DESTDIR)$(man1dir)/$(JAVA_INSTALL_NAME)$(man1ext)
-rm -rf $(DESTDIR)$(man1dir)/gcjh$(man1ext)
+ -rm -rf $(DESTDIR)$(man1dir)/gjnih$(man1ext)
-rm -rf $(DESTDIR)$(man1dir)/jv-scan$(man1ext)
-rm -rf $(DESTDIR)$(man1dir)/jcf-dump$(man1ext)
-rm -rf $(DESTDIR)$(man1dir)/gij$(man1ext)
-rm -rf $(DESTDIR)$(man1dir)/jv-convert$(man1ext)
+ -rm -rf $(DESTDIR)$(man1dir)/gcj-dbtool$(man1ext)
install-info:: $(DESTDIR)$(infodir)/gcj.info
-rm -f java/parse.c java/parse-scan.c
-rm -f java/*$(objext) $(DEMANGLER_PROG)
-rm -f java/*$(coverageexts)
- -rm -f jc1$(exeext) $(GCJ)$(exeext) jvgenmain$(exeext) gcjh$(exeext) jv-scan$(exeext) jcf-dump$(exeext) s-java
+ -rm -f jc1$(exeext) $(GCJ)$(exeext) jvgenmain$(exeext) gcjh$(exeext) \
+ gjnih$(exeext) jv-scan$(exeext) jcf-dump$(exeext) s-java
java.clean:
java.distclean:
-rm -f java/config.status java/Makefile
-rm -f java/parse.output java/y.tab.c
java.maintainer-clean:
- -rm -f $(docobjdir)/gcj.1 $(docobjdir)/gcjh.1
+ -rm -f $(docobjdir)/gcj.1 $(docobjdir)/gcjh.1 $(docobjdir)/gjnih.1
-rm -f $(docobjdir)/jv-scan.1 $(docobjdir)/jcf-dump.1
-rm -f $(docobjdir)/gij.1
-rm -f $(docobjdir)/jv-convert.1
- -rm -f $(docobjdir)/rmic.1
- -rm -f $(docobjdir)/rmiregistry.1
+ -rm -f $(docobjdir)/grmic.1
+ -rm -f $(docobjdir)/grmiregistry.1
+ -rm -f $(docobjdir)/gcj-dbtool.1
#\f
# Stage hooks:
# The main makefile has already created stage?/java.
coretypes.h $(TM_H) toplev.h
java/class.o: java/class.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
$(JAVA_TREE_H) $(RTL_H) java/jcf.h java/parse.h toplev.h output.h $(GGC_H) \
- $(TARGET_H) function.h gt-java-class.h
+ $(TARGET_H) function.h gt-java-class.h cgraph.h
java/constants.o: java/constants.c $(CONFIG_H) $(JAVA_TREE_H) java/jcf.h \
toplev.h $(SYSTEM_H) coretypes.h $(TM_H) $(GGC_H) gt-java-constants.h
java/decl.o: java/decl.c $(CONFIG_H) $(JAVA_TREE_H) $(RTL_H) java/jcf.h \
- toplev.h flags.h $(SYSTEM_H) coretypes.h $(TM_H) function.h expr.h \
+ toplev.h flags.h $(SYSTEM_H) coretypes.h $(TM_H) function.h $(EXPR_H) \
libfuncs.h except.h java/java-except.h $(GGC_H) real.h gt-java-decl.h \
- target.h
+ target.h cgraph.h
java/except.o: java/except.c $(CONFIG_H) $(JAVA_TREE_H) java/jcf.h real.h \
$(RTL_H) java/javaop.h java/java-opcodes.h except.h java/java-except.h \
toplev.h $(SYSTEM_H) coretypes.h $(TM_H) function.h
toplev.h $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) $(EXPR_H) diagnostic.h \
langhooks.h $(LANGHOOKS_DEF_H) gt-java-lang.h opts.h options.h
java/mangle.o: java/mangle.c $(CONFIG_H) java/jcf.h $(JAVA_TREE_H) $(SYSTEM_H) \
- coretypes.h $(TM_H) toplev.h $(GGC_H) gt-java-mangle.h
+ coretypes.h $(TM_H) toplev.h $(GGC_H) gt-java-mangle.h $(LANGHOOKS_DEF_H)
java/mangle_name.o: java/mangle_name.c $(CONFIG_H) java/jcf.h $(JAVA_TREE_H) \
$(SYSTEM_H) coretypes.h $(TM_H) toplev.h $(GGC_H)
java/resource.o: java/resource.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
$(JAVA_TREE_H) $(RTL_H) java/jcf.h java/parse.h toplev.h output.h $(GGC_H) \
- $(TARGET_H) function.h gt-java-resource.h expr.h
+ $(TARGET_H) function.h gt-java-resource.h $(EXPR_H)
java/typeck.o: java/typeck.c $(CONFIG_H) $(JAVA_TREE_H) java/jcf.h \
java/convert.h toplev.h $(SYSTEM_H) coretypes.h $(TM_H) $(GGC_H) real.h
-java/win32-host.o: java/win32-host.c $(CONFIG_H) $(SYSTEM_H) java/jcf.h
+java/win32-host.o: java/win32-host.c $(CONFIG_H) $(SYSTEM_H) coretypes.h java/jcf.h
java/verify.o: java/verify.c $(CONFIG_H) $(JAVA_TREE_H) java/jcf.h \
java/javaop.h java/java-opcodes.h java/java-except.h toplev.h $(SYSTEM_H) \
coretypes.h $(TM_H)
-java/xref.o: java/xref.c java/xref.h $(CONFIG_H) $(JAVA_TREE_H) toplev.h \
- $(SYSTEM_H) coretypes.h $(TM_H)
+java/verify-glue.o: java/verify-glue.c $(CONFIG_H) $(SYSTEM_H) $(JAVA_TREE_H) \
+ coretypes.h $(TM_H) java/verify.h toplev.h
+java/verify-impl.o: java/verify-impl.c $(CONFIG_H) java/verify.h $(SYSTEM_H) \
+ coretypes.h java/jcf.h $(JAVA_TREE_H)
java/zextract.o: java/zextract.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
java/zipfile.h
java/java-gimplify.o: java/java-gimplify.c $(CONFIG_H) $(SYSTEM_H) \
-DDEFAULT_TARGET_VERSION=\"$(version)\" \
$(srcdir)/java/jcf-path.c $(OUTPUT_OPTION)
-# jcf-tree-inline.o needs a -D.
-java/java-tree-inline.o: tree-inline.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
- $(TM_H) $(TREE_H) $(RTL_H) expr.h flags.h params.h input.h insn-config.h \
- $(INTEGRATE_H) $(VARRAY_H) $(HASHTAB_H) $(SPLAY_TREE_H) toplev.h \
- langhooks.h $(C_COMMON_H) $(srcdir)/tree-inline.h
- $(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
- -DINLINER_FOR_JAVA=1 \
- $(srcdir)/tree-inline.c -o $@
+# create gjnih's object
+java/gjavah-jni.o: $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(JAVA_TREE_H) \
+ java/gjavah.c java/jcf-reader.c java/jcf.h java/javaop.h version.h $(GGC_H) \
+ intl.h
+ $(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $(ZLIBINC) \
+ -DJNI_DEFAULT=1 \
+ $(srcdir)/java/gjavah.c $(OUTPUT_OPTION)
+
+TEXI_JAVA_FILES = java/gcj.texi $(docdir)/include/fdl.texi \
+ $(docdir)/include/gpl.texi $(docdir)/include/gcc-common.texi \
+ gcc-vers.texi
# Documentation
-doc/gcj.info: java/gcj.texi $(docdir)/include/fdl.texi \
- $(docdir)/include/gpl.texi $(docdir)/include/gcc-common.texi
+doc/gcj.info: $(TEXI_JAVA_FILES)
if test "x$(BUILD_INFO)" = xinfo; then \
rm -f doc/gcj.info*; \
$(MAKEINFO) $(MAKEINFOFLAGS) -I $(docdir)/include -o $@ $<; \
else true; fi
-doc/gcj.dvi: java/gcj.texi $(docdir)/include/fdl.texi \
- $(docdir)/include/gpl.texi $(docdir)/include/gcc-common.texi
+doc/gcj.dvi: $(TEXI_JAVA_FILES)
$(TEXI2DVI) -I $(abs_docdir)/include -o $@ $<
+$(htmldir)/java/index.html: $(TEXI_JAVA_FILES)
+ $(mkinstalldirs) $(@D)
+ rm -f $(@D)/*
+ $(TEXI2HTML) -I $(docdir)/include -I $(srcdir)/java -o $(@D) $<
+
.INTERMEDIATE: gcj.pod gcjh.pod jv-scan.pod jcf-dump.pod gij.pod \
- jv-convert.pod rmic.pod rmiregistry.pod
+ jv-convert.pod grmic.pod grmiregistry.pod gcj-dbtool.pod gjnih.pod
gcj.pod: java/gcj.texi
-$(TEXI2POD) -D gcj < $< > $@
gcjh.pod: java/gcj.texi
-$(TEXI2POD) -D gcjh < $< > $@
+gjnih.pod: java/gcj.texi
+ -$(TEXI2POD) -D gjnih < $< > $@
jv-scan.pod: java/gcj.texi
-$(TEXI2POD) -D jv-scan < $< > $@
jcf-dump.pod: java/gcj.texi
-$(TEXI2POD) -D gij < $< > $@
jv-convert.pod: java/gcj.texi
-$(TEXI2POD) -D jv-convert < $< > $@
-rmic.pod: java/gcj.texi
- -$(TEXI2POD) -D rmic < $< > $@
-rmiregistry.pod: java/gcj.texi
- -$(TEXI2POD) -D rmiregistry < $< > $@
+grmic.pod: java/gcj.texi
+ -$(TEXI2POD) -D grmic < $< > $@
+grmiregistry.pod: java/gcj.texi
+ -$(TEXI2POD) -D grmiregistry < $< > $@
+gcj-dbtool.pod: java/gcj.texi
+ -$(TEXI2POD) -D gcj-dbtool < $< > $@
# Install the man pages.
java.install-man: installdirs \
$(DESTDIR)$(man1dir)/$(JAVA_INSTALL_NAME)$(man1ext) \
$(JAVA_TARGET_INDEPENDENT_BIN_TOOLS:%=doc/%.1) \
- doc/gij.1 doc/jv-convert.1 doc/rmic.1 doc/rmiregistry.1
+ doc/gij.1 doc/jv-convert.1 doc/grmic.1 doc/grmiregistry.1 \
+ doc/gcj-dbtool.1
for tool in $(JAVA_TARGET_INDEPENDENT_BIN_TOOLS) \
- gij jv-convert rmic rmiregistry ; do \
+ gij jv-convert grmic grmiregistry gcj-dbtool ; do \
tool_transformed_name=`echo $$tool|sed '$(program_transform_name)'`; \
man_name=$(DESTDIR)$(man1dir)/$${tool_transformed_name}$(man1ext); \
rm -f $$man_name ; \
- $(INSTALL_DATA) doc/$${tool}.1 $$man_name; \
+ for source_name in doc/$${tool}.1 $(srcdir)/doc/$${tool}.1 ; do \
+ if test -f $$source_name; then \
+ $(INSTALL_DATA) $$source_name $$man_name; \
+ break; \
+ else : ; \
+ fi; \
+ done ; \
chmod a-x $$man_name ; \
done
-$(DESTDIR)$(man1dir)/$(JAVA_INSTALL_NAME)$(man1ext): doc/gcj.1
+$(DESTDIR)$(man1dir)/$(JAVA_INSTALL_NAME)$(man1ext): doc/gcj.1 installdirs
-rm -f $@
-$(INSTALL_DATA) $< $@
-chmod a-x $@