libjava/classpath/ChangeLog.gcj:
2007-05-31 Matthias Klose <doko@ubuntu.com> * javax/management/NotificationBroadcasterSupport.java (getNotificationInfo): Add cast. * native/jni/qt-peer/Makefile.am (AM_CXXFLAGS): Add libstdc++ include directories. * native/jni/qt-peer/Makefile.in: Regenerate. libjava/ChangeLog: 2007-06-03 Matthias Klose <doko@ubuntu.com> * java/io/natFileWin32.cc (setFilePermissions): New (stub only). _access: Handle EXEC query, stub only. 2007-06-03 Matthias Klose <doko@ubuntu.com> Merged from classpath: * gnu/java/nio/SelectorProviderImpl.java: Whitespace merge. * java/lang/System.java(inheritedChannel): New. * java/lang/Character.java: Remove stray`;'. * java/net/MulticastSocket.java: Merged. * java/text/DateFormatSymbols.java(getInstance): New, comment updates. * java/text/Collator.java(getInstance): Merged. * java/util/Calendar.java: New attributes ALL_STYLES, SHORT, LONG. getDisplayName, getDisplayNames: New. * java/util/logging/Logger.java: Merged. * Regenerate .class and .h files. 2007-06-03 Matthias Klose <doko@ubuntu.com> * java/io/File.java: Merge with classpath-0.95, new method setFilePermissions, new attribute EXEC. * java/io/natFilePosix.cc (setFilePermissions): New. _access: Handle EXEC query. * classpath/lib/java/io/File.class, java/io/File.h: Regenerate. 2007-06-03 Matthias Klose <doko@ubuntu.com> Imported GNU Classpath 0.95. * classpath/Makefile.in, classpath/native/jni/midi-dssi/Makefile.in, classpath/native/jni/classpath/Makefile.in, classpath/native/jni/Makefile.in, classpath/native/jni/gconf-peer/Makefile.in, classpath/native/jni/java-io/Makefile.in, classpath/native/jni/native-lib/Makefile.in, classpath/native/jni/java-util/Makefile.in, classpath/native/jni/midi-alsa/Makefile.in, classpath/native/jni/java-lang/Makefile.in, classpath/native/jni/java-nio/Makefile.in, classpath/native/jni/java-net/Makefile.in, classpath/native/jni/xmlj/Makefile.in, classpath/native/jni/qt-peer/Makefile.in, classpath/native/jni/gtk-peer/Makefile.in, classpath/native/Makefile.in, classpath/native/jawt/Makefile.in, classpath/native/fdlibm/Makefile.in, classpath/native/plugin/Makefile.in, classpath/resource/Makefile.in, classpath/scripts/Makefile.in, classpath/tools/Makefile.in, classpath/doc/Makefile.in, classpath/doc/api/Makefile.in, classpath/lib/Makefile.in, classpath/external/Makefile.in, classpath/external/jsr166/Makefile.in, classpath/external/sax/Makefile.in, classpath/external/w3c_dom/Makefile.in, classpath/external/relaxngDatatype/Makefile.in, classpath/include/Makefile.in, classpath/examples/Makefile.in: Regenerate. * classpath/config.guess, classpath/config.sub, classpath/ltmain.sh : Update. * classpath/configure, classpath/depcomp, classpath/missing, classpath/aclocal.m4, classpath/install-sh: Regenerate. * gnu/classpath/Configuration.java (CLASSPATH_VERSION): Now 0.95. * sources.am: Regenerate. * Makefile.in: Regenerate. * Update the .class files and generated CNI header files, add new .class and generated CNI header files. * Remove generated files for removed java source files: classpath/gnu/java/net/BASE64.java, classpath/gnu/java/security/util/Base64.java, classpath/gnu/java/awt/peer/gtk/GThreadMutex.java, classpath/gnu/java/awt/peer/gtk/GThreadNativeMethodRunner.java, classpath/gnu/java/awt/font/autofit/Scaler.java, classpath/gnu/classpath/jdwp/util/Value.java, classpath/gnu/javax/net/ssl/Base64.java. * Remove empty directories. * Makefile.am(nat_source_files): Add natVMOperatingSystemMXBeanImpl.cc. * java/lang/Class.java(setAccessible): Merge from classpath. * java/util/Locale.java: Remove. * gnu/java/lang/management/VMOperatingSystemMXBeanImpl.java, gnu/java/lang/management/natVMOperatingSystemMXBeanImpl.cc: New. * gcj/javaprims.h: Update class declarations. * scripts/classes.pl: Update usage. * HACKING: Mention to build all peers. From-SVN: r125302
This commit is contained in:
@@ -1,21 +1,19 @@
|
||||
SUBDIRS = api
|
||||
|
||||
EXTRA_DIST = README.jaxp $(man_MANS)
|
||||
EXTRA_DIST = README.jaxp texi2pod.pl $(man_MANS)
|
||||
|
||||
## GCJ LOCAL: we don't want to install all of Classpath's info files.
|
||||
## info_TEXINFOS = cp-hacking.texinfo cp-vmintegration.texinfo cp-tools.texinfo
|
||||
TEXINFO_TEX = ../../gcc/doc/include/texinfo.tex
|
||||
info_TEXINFOS = cp-tools.texinfo
|
||||
cp_tools_TEXINFOS = gcc-vers.texi
|
||||
|
||||
%.dvi : %.texinfo
|
||||
.texinfo.dvi:
|
||||
texi2dvi $<
|
||||
|
||||
%.ps : %.dvi
|
||||
.dvi.ps:
|
||||
dvips -o $@ $<
|
||||
|
||||
docs: cp-hacking.ps cp-vmintegration.ps cp-tools.ps
|
||||
install-data-local: install-info
|
||||
docs: cp-hacking.ps cp-vmintegration.ps cp-tools.ps $(TOOLS_MANFILES)
|
||||
|
||||
man_MANS = $(TOOLS_MANFILES)
|
||||
TOOLS_MANFILES = \
|
||||
@@ -32,23 +30,11 @@ TOOLS_MANFILES = \
|
||||
gserialver.1 \
|
||||
gtnameserv.1
|
||||
|
||||
BASEVER = $(top_srcdir)/../../gcc/BASE-VER
|
||||
DEVPHASE = $(top_srcdir)/../../gcc/DEV-PHASE
|
||||
|
||||
POD2MAN = pod2man --center="GNU" --release="gcc-$(shell cat $(BASEVER))"
|
||||
TEXI2POD = perl $(top_srcdir)/../../contrib/texi2pod.pl
|
||||
POD2MAN = pod2man --center="GNU" --release="$(VERSION)"
|
||||
TEXI2POD = perl $(srcdir)/texi2pod.pl
|
||||
STAMP = echo timestamp >
|
||||
|
||||
# gcc-vers.texi is generated from the version files.
|
||||
gcc-vers.texi: $(BASEVER) $(DEVPHASE)
|
||||
(echo "@set version-GCC $(shell cat $(BASEVER))"; \
|
||||
if [ "$(shell cat $(DEVPHASE))" = "experimental" ]; \
|
||||
then echo "@set DEVELOPMENT"; \
|
||||
else echo "@clear DEVELOPMENT"; \
|
||||
fi) > $@T
|
||||
mv -f $@T $@
|
||||
|
||||
%.1: %.pod
|
||||
.pod.1:
|
||||
$(STAMP) $@
|
||||
-($(POD2MAN) --section=1 $< > $(@).T$$$$ && \
|
||||
mv -f $(@).T$$$$ $@) || \
|
||||
|
||||
@@ -37,23 +37,27 @@ build_triplet = @build@
|
||||
host_triplet = @host@
|
||||
target_triplet = @target@
|
||||
subdir = doc
|
||||
DIST_COMMON = $(cp_tools_TEXINFOS) $(srcdir)/Makefile.am \
|
||||
$(srcdir)/Makefile.in texinfo.tex
|
||||
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in texinfo.tex
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
|
||||
$(top_srcdir)/../../config/lead-dot.m4 \
|
||||
$(top_srcdir)/../../config/multi.m4 \
|
||||
$(top_srcdir)/../../config/no-executables.m4 \
|
||||
$(top_srcdir)/../../libtool.m4 $(top_srcdir)/m4/acattribute.m4 \
|
||||
$(top_srcdir)/m4/accross.m4 $(top_srcdir)/m4/acinclude.m4 \
|
||||
$(top_srcdir)/../../libtool.m4 \
|
||||
$(top_srcdir)/../../ltoptions.m4 \
|
||||
$(top_srcdir)/../../ltsugar.m4 \
|
||||
$(top_srcdir)/../../ltversion.m4 \
|
||||
$(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
|
||||
$(top_srcdir)/m4/acinclude.m4 \
|
||||
$(top_srcdir)/m4/ax_create_stdint_h.m4 \
|
||||
$(top_srcdir)/m4/ax_func_which_gethostbyname_r.m4 \
|
||||
$(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \
|
||||
$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
|
||||
$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \
|
||||
$(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
|
||||
mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs
|
||||
CONFIG_HEADER = $(top_builddir)/include/config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
SOURCES =
|
||||
@@ -88,12 +92,15 @@ ACLOCAL = @ACLOCAL@
|
||||
AMDEP_FALSE = @AMDEP_FALSE@
|
||||
AMDEP_TRUE = @AMDEP_TRUE@
|
||||
AMTAR = @AMTAR@
|
||||
AR = @AR@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
AWK = @AWK@
|
||||
BUILD_CLASS_FILES_FALSE = @BUILD_CLASS_FILES_FALSE@
|
||||
BUILD_CLASS_FILES_TRUE = @BUILD_CLASS_FILES_TRUE@
|
||||
CAIRO_CFLAGS = @CAIRO_CFLAGS@
|
||||
CAIRO_LIBS = @CAIRO_LIBS@
|
||||
CC = @CC@
|
||||
CCDEPMODE = @CCDEPMODE@
|
||||
CFLAGS = @CFLAGS@
|
||||
@@ -139,6 +146,7 @@ DATE = @DATE@
|
||||
DEFAULT_PREFS_PEER = @DEFAULT_PREFS_PEER@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
DUMPBIN = @DUMPBIN@
|
||||
ECHO_C = @ECHO_C@
|
||||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
@@ -151,15 +159,16 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
|
||||
EXAMPLESDIR = @EXAMPLESDIR@
|
||||
EXEEXT = @EXEEXT@
|
||||
FASTJAR = @FASTJAR@
|
||||
FGREP = @FGREP@
|
||||
FIND = @FIND@
|
||||
FOUND_CACAO_FALSE = @FOUND_CACAO_FALSE@
|
||||
FOUND_CACAO_TRUE = @FOUND_CACAO_TRUE@
|
||||
FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
|
||||
FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
|
||||
FOUND_GCJX_FALSE = @FOUND_GCJX_FALSE@
|
||||
FOUND_GCJX_TRUE = @FOUND_GCJX_TRUE@
|
||||
FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
|
||||
FOUND_GCJ_TRUE = @FOUND_GCJ_TRUE@
|
||||
FOUND_JAVAC_FALSE = @FOUND_JAVAC_FALSE@
|
||||
FOUND_JAVAC_TRUE = @FOUND_JAVAC_TRUE@
|
||||
FOUND_JIKES_FALSE = @FOUND_JIKES_FALSE@
|
||||
FOUND_JIKES_TRUE = @FOUND_JIKES_TRUE@
|
||||
FOUND_KJC_FALSE = @FOUND_KJC_FALSE@
|
||||
@@ -167,7 +176,6 @@ FOUND_KJC_TRUE = @FOUND_KJC_TRUE@
|
||||
FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
|
||||
FREETYPE2_LIBS = @FREETYPE2_LIBS@
|
||||
GCJ = @GCJ@
|
||||
GCJX = @GCJX@
|
||||
GCONF_CFLAGS = @GCONF_CFLAGS@
|
||||
GCONF_LIBS = @GCONF_LIBS@
|
||||
GDK_CFLAGS = @GDK_CFLAGS@
|
||||
@@ -177,6 +185,7 @@ GENINSRC_TRUE = @GENINSRC_TRUE@
|
||||
GJDOC = @GJDOC@
|
||||
GLIB_CFLAGS = @GLIB_CFLAGS@
|
||||
GLIB_LIBS = @GLIB_LIBS@
|
||||
GREP = @GREP@
|
||||
GTK_CFLAGS = @GTK_CFLAGS@
|
||||
GTK_LIBS = @GTK_LIBS@
|
||||
INIT_LOAD_LIBRARY = @INIT_LOAD_LIBRARY@
|
||||
@@ -188,6 +197,7 @@ INSTALL_GLIBJ_ZIP_TRUE = @INSTALL_GLIBJ_ZIP_TRUE@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
JAVAC = @JAVAC@
|
||||
JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
|
||||
JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
|
||||
JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@
|
||||
@@ -197,6 +207,7 @@ JIKES = @JIKES@
|
||||
JIKESENCODING = @JIKESENCODING@
|
||||
JIKESWARNINGS = @JIKESWARNINGS@
|
||||
KJC = @KJC@
|
||||
LD = @LD@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LIBDEBUG = @LIBDEBUG@
|
||||
LIBICONV = @LIBICONV@
|
||||
@@ -216,6 +227,7 @@ MKDIR = @MKDIR@
|
||||
MOC = @MOC@
|
||||
MOZILLA_CFLAGS = @MOZILLA_CFLAGS@
|
||||
MOZILLA_LIBS = @MOZILLA_LIBS@
|
||||
NM = @NM@
|
||||
OBJEXT = @OBJEXT@
|
||||
PACKAGE = @PACKAGE@
|
||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||
@@ -237,6 +249,7 @@ RANLIB = @RANLIB@
|
||||
REGEN_PARSERS_FALSE = @REGEN_PARSERS_FALSE@
|
||||
REGEN_PARSERS_TRUE = @REGEN_PARSERS_TRUE@
|
||||
REMOVE = @REMOVE@
|
||||
SED = @SED@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
SHELL = @SHELL@
|
||||
STRICT_WARNING_CFLAGS = @STRICT_WARNING_CFLAGS@
|
||||
@@ -264,8 +277,10 @@ X_EXTRA_LIBS = @X_EXTRA_LIBS@
|
||||
X_LIBS = @X_LIBS@
|
||||
X_PRE_LIBS = @X_PRE_LIBS@
|
||||
ZIP = @ZIP@
|
||||
ac_ct_AR = @ac_ct_AR@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
ac_ct_CXX = @ac_ct_CXX@
|
||||
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
|
||||
ac_ct_RANLIB = @ac_ct_RANLIB@
|
||||
ac_ct_STRIP = @ac_ct_STRIP@
|
||||
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
|
||||
@@ -298,6 +313,7 @@ install_sh = @install_sh@
|
||||
libdir = @libdir@
|
||||
libexecdir = @libexecdir@
|
||||
localstatedir = @localstatedir@
|
||||
lt_ECHO = @lt_ECHO@
|
||||
mandir = @mandir@
|
||||
mkdir_p = @mkdir_p@
|
||||
multi_basedir = @multi_basedir@
|
||||
@@ -316,10 +332,9 @@ target_vendor = @target_vendor@
|
||||
toolexeclibdir = @toolexeclibdir@
|
||||
vm_classes = @vm_classes@
|
||||
SUBDIRS = api
|
||||
EXTRA_DIST = README.jaxp $(man_MANS)
|
||||
EXTRA_DIST = README.jaxp texi2pod.pl $(man_MANS)
|
||||
TEXINFO_TEX = ../../gcc/doc/include/texinfo.tex
|
||||
info_TEXINFOS = cp-tools.texinfo
|
||||
cp_tools_TEXINFOS = gcc-vers.texi
|
||||
man_MANS = $(TOOLS_MANFILES)
|
||||
TOOLS_MANFILES = \
|
||||
gappletviewer.1 \
|
||||
@@ -335,10 +350,8 @@ TOOLS_MANFILES = \
|
||||
gserialver.1 \
|
||||
gtnameserv.1
|
||||
|
||||
BASEVER = $(top_srcdir)/../../gcc/BASE-VER
|
||||
DEVPHASE = $(top_srcdir)/../../gcc/DEV-PHASE
|
||||
POD2MAN = pod2man --center="GNU" --release="gcc-$(shell cat $(BASEVER))"
|
||||
TEXI2POD = perl $(top_srcdir)/../../contrib/texi2pod.pl
|
||||
POD2MAN = pod2man --center="GNU" --release="$(VERSION)"
|
||||
TEXI2POD = perl $(srcdir)/texi2pod.pl
|
||||
STAMP = echo timestamp >
|
||||
@GENINSRC_FALSE@STAMP_GENINSRC =
|
||||
|
||||
@@ -365,7 +378,7 @@ MAINTAINERCLEANFILES = \
|
||||
all: all-recursive
|
||||
|
||||
.SUFFIXES:
|
||||
.SUFFIXES: .dvi .ps
|
||||
.SUFFIXES: .1 .dvi .pod .ps .texinfo
|
||||
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
|
||||
@for dep in $?; do \
|
||||
case '$(am__configure_deps)' in \
|
||||
@@ -405,7 +418,7 @@ clean-libtool:
|
||||
distclean-libtool:
|
||||
-rm -f libtool
|
||||
|
||||
cp-tools.info: cp-tools.texinfo $(cp_tools_TEXINFOS)
|
||||
cp-tools.info: cp-tools.texinfo
|
||||
restore=: && backupdir="$(am__leading_dot)am$$$$" && \
|
||||
rm -rf $$backupdir && mkdir $$backupdir && \
|
||||
if ($(MAKEINFO) --version) >/dev/null 2>&1; then \
|
||||
@@ -423,17 +436,17 @@ cp-tools.info: cp-tools.texinfo $(cp_tools_TEXINFOS)
|
||||
fi; \
|
||||
rm -rf $$backupdir; exit $$rc
|
||||
|
||||
cp-tools.dvi: cp-tools.texinfo $(cp_tools_TEXINFOS)
|
||||
cp-tools.dvi: cp-tools.texinfo
|
||||
TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
|
||||
MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \
|
||||
$(TEXI2DVI) -o $@ `test -f 'cp-tools.texinfo' || echo '$(srcdir)/'`cp-tools.texinfo
|
||||
|
||||
cp-tools.pdf: cp-tools.texinfo $(cp_tools_TEXINFOS)
|
||||
cp-tools.pdf: cp-tools.texinfo
|
||||
TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
|
||||
MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \
|
||||
$(TEXI2PDF) -o $@ `test -f 'cp-tools.texinfo' || echo '$(srcdir)/'`cp-tools.texinfo
|
||||
|
||||
cp-tools.html: cp-tools.texinfo $(cp_tools_TEXINFOS)
|
||||
cp-tools.html: cp-tools.texinfo
|
||||
rm -rf $(@:.html=.htp)
|
||||
if $(MAKEINFOHTML) $(AM_MAKEINFOHTMLFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \
|
||||
-o $(@:.html=.htp) `test -f 'cp-tools.texinfo' || echo '$(srcdir)/'`cp-tools.texinfo; \
|
||||
@@ -446,9 +459,6 @@ cp-tools.html: cp-tools.texinfo $(cp_tools_TEXINFOS)
|
||||
rm -rf $(@:.html=); else rm -Rf $(@:.html=.htp) $@; fi; \
|
||||
exit 1; \
|
||||
fi
|
||||
.dvi.ps:
|
||||
TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
|
||||
$(DVIPS) -o $@ $<
|
||||
|
||||
uninstall-info-am:
|
||||
@$(PRE_UNINSTALL)
|
||||
@@ -778,7 +788,7 @@ info: info-recursive
|
||||
|
||||
info-am: $(INFO_DEPS)
|
||||
|
||||
install-data-am: install-data-local install-info-am install-man
|
||||
install-data-am: install-info-am install-man
|
||||
|
||||
install-exec-am:
|
||||
|
||||
@@ -847,36 +857,26 @@ uninstall-man: uninstall-man1
|
||||
ctags ctags-recursive dist-info distclean distclean-generic \
|
||||
distclean-libtool distclean-recursive distclean-tags distdir \
|
||||
dvi dvi-am html html-am info info-am install install-am \
|
||||
install-data install-data-am install-data-local install-exec \
|
||||
install-exec-am install-info install-info-am install-man \
|
||||
install-man1 install-strip installcheck installcheck-am \
|
||||
installdirs installdirs-am maintainer-clean \
|
||||
maintainer-clean-aminfo maintainer-clean-generic \
|
||||
maintainer-clean-recursive mostlyclean mostlyclean-aminfo \
|
||||
mostlyclean-generic mostlyclean-libtool mostlyclean-recursive \
|
||||
pdf pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \
|
||||
uninstall-info-am uninstall-man uninstall-man1
|
||||
install-data install-data-am install-exec install-exec-am \
|
||||
install-info install-info-am install-man install-man1 \
|
||||
install-strip installcheck installcheck-am installdirs \
|
||||
installdirs-am maintainer-clean maintainer-clean-aminfo \
|
||||
maintainer-clean-generic maintainer-clean-recursive \
|
||||
mostlyclean mostlyclean-aminfo mostlyclean-generic \
|
||||
mostlyclean-libtool mostlyclean-recursive pdf pdf-am ps ps-am \
|
||||
tags tags-recursive uninstall uninstall-am uninstall-info-am \
|
||||
uninstall-man uninstall-man1
|
||||
|
||||
|
||||
%.dvi : %.texinfo
|
||||
.texinfo.dvi:
|
||||
texi2dvi $<
|
||||
|
||||
%.ps : %.dvi
|
||||
.dvi.ps:
|
||||
dvips -o $@ $<
|
||||
|
||||
docs: cp-hacking.ps cp-vmintegration.ps cp-tools.ps
|
||||
install-data-local: install-info
|
||||
docs: cp-hacking.ps cp-vmintegration.ps cp-tools.ps $(TOOLS_MANFILES)
|
||||
|
||||
# gcc-vers.texi is generated from the version files.
|
||||
gcc-vers.texi: $(BASEVER) $(DEVPHASE)
|
||||
(echo "@set version-GCC $(shell cat $(BASEVER))"; \
|
||||
if [ "$(shell cat $(DEVPHASE))" = "experimental" ]; \
|
||||
then echo "@set DEVELOPMENT"; \
|
||||
else echo "@clear DEVELOPMENT"; \
|
||||
fi) > $@T
|
||||
mv -f $@T $@
|
||||
|
||||
%.1: %.pod
|
||||
.pod.1:
|
||||
$(STAMP) $@
|
||||
-($(POD2MAN) --section=1 $< > $(@).T$$$$ && \
|
||||
mv -f $(@).T$$$$ $@) || \
|
||||
|
||||
@@ -44,16 +44,21 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
|
||||
$(top_srcdir)/../../config/lead-dot.m4 \
|
||||
$(top_srcdir)/../../config/multi.m4 \
|
||||
$(top_srcdir)/../../config/no-executables.m4 \
|
||||
$(top_srcdir)/../../libtool.m4 $(top_srcdir)/m4/acattribute.m4 \
|
||||
$(top_srcdir)/m4/accross.m4 $(top_srcdir)/m4/acinclude.m4 \
|
||||
$(top_srcdir)/../../libtool.m4 \
|
||||
$(top_srcdir)/../../ltoptions.m4 \
|
||||
$(top_srcdir)/../../ltsugar.m4 \
|
||||
$(top_srcdir)/../../ltversion.m4 \
|
||||
$(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
|
||||
$(top_srcdir)/m4/acinclude.m4 \
|
||||
$(top_srcdir)/m4/ax_create_stdint_h.m4 \
|
||||
$(top_srcdir)/m4/ax_func_which_gethostbyname_r.m4 \
|
||||
$(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \
|
||||
$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
|
||||
$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \
|
||||
$(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
|
||||
mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs
|
||||
CONFIG_HEADER = $(top_builddir)/include/config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
SOURCES =
|
||||
@@ -64,12 +69,15 @@ ACLOCAL = @ACLOCAL@
|
||||
AMDEP_FALSE = @AMDEP_FALSE@
|
||||
AMDEP_TRUE = @AMDEP_TRUE@
|
||||
AMTAR = @AMTAR@
|
||||
AR = @AR@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
AWK = @AWK@
|
||||
BUILD_CLASS_FILES_FALSE = @BUILD_CLASS_FILES_FALSE@
|
||||
BUILD_CLASS_FILES_TRUE = @BUILD_CLASS_FILES_TRUE@
|
||||
CAIRO_CFLAGS = @CAIRO_CFLAGS@
|
||||
CAIRO_LIBS = @CAIRO_LIBS@
|
||||
CC = @CC@
|
||||
CCDEPMODE = @CCDEPMODE@
|
||||
CFLAGS = @CFLAGS@
|
||||
@@ -115,6 +123,7 @@ DATE = @DATE@
|
||||
DEFAULT_PREFS_PEER = @DEFAULT_PREFS_PEER@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
DUMPBIN = @DUMPBIN@
|
||||
ECHO_C = @ECHO_C@
|
||||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
@@ -127,15 +136,16 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
|
||||
EXAMPLESDIR = @EXAMPLESDIR@
|
||||
EXEEXT = @EXEEXT@
|
||||
FASTJAR = @FASTJAR@
|
||||
FGREP = @FGREP@
|
||||
FIND = @FIND@
|
||||
FOUND_CACAO_FALSE = @FOUND_CACAO_FALSE@
|
||||
FOUND_CACAO_TRUE = @FOUND_CACAO_TRUE@
|
||||
FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
|
||||
FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
|
||||
FOUND_GCJX_FALSE = @FOUND_GCJX_FALSE@
|
||||
FOUND_GCJX_TRUE = @FOUND_GCJX_TRUE@
|
||||
FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
|
||||
FOUND_GCJ_TRUE = @FOUND_GCJ_TRUE@
|
||||
FOUND_JAVAC_FALSE = @FOUND_JAVAC_FALSE@
|
||||
FOUND_JAVAC_TRUE = @FOUND_JAVAC_TRUE@
|
||||
FOUND_JIKES_FALSE = @FOUND_JIKES_FALSE@
|
||||
FOUND_JIKES_TRUE = @FOUND_JIKES_TRUE@
|
||||
FOUND_KJC_FALSE = @FOUND_KJC_FALSE@
|
||||
@@ -143,7 +153,6 @@ FOUND_KJC_TRUE = @FOUND_KJC_TRUE@
|
||||
FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
|
||||
FREETYPE2_LIBS = @FREETYPE2_LIBS@
|
||||
GCJ = @GCJ@
|
||||
GCJX = @GCJX@
|
||||
GCONF_CFLAGS = @GCONF_CFLAGS@
|
||||
GCONF_LIBS = @GCONF_LIBS@
|
||||
GDK_CFLAGS = @GDK_CFLAGS@
|
||||
@@ -153,6 +162,7 @@ GENINSRC_TRUE = @GENINSRC_TRUE@
|
||||
GJDOC = @GJDOC@
|
||||
GLIB_CFLAGS = @GLIB_CFLAGS@
|
||||
GLIB_LIBS = @GLIB_LIBS@
|
||||
GREP = @GREP@
|
||||
GTK_CFLAGS = @GTK_CFLAGS@
|
||||
GTK_LIBS = @GTK_LIBS@
|
||||
INIT_LOAD_LIBRARY = @INIT_LOAD_LIBRARY@
|
||||
@@ -164,6 +174,7 @@ INSTALL_GLIBJ_ZIP_TRUE = @INSTALL_GLIBJ_ZIP_TRUE@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
JAVAC = @JAVAC@
|
||||
JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
|
||||
JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
|
||||
JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@
|
||||
@@ -173,6 +184,7 @@ JIKES = @JIKES@
|
||||
JIKESENCODING = @JIKESENCODING@
|
||||
JIKESWARNINGS = @JIKESWARNINGS@
|
||||
KJC = @KJC@
|
||||
LD = @LD@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LIBDEBUG = @LIBDEBUG@
|
||||
LIBICONV = @LIBICONV@
|
||||
@@ -192,6 +204,7 @@ MKDIR = @MKDIR@
|
||||
MOC = @MOC@
|
||||
MOZILLA_CFLAGS = @MOZILLA_CFLAGS@
|
||||
MOZILLA_LIBS = @MOZILLA_LIBS@
|
||||
NM = @NM@
|
||||
OBJEXT = @OBJEXT@
|
||||
PACKAGE = @PACKAGE@
|
||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||
@@ -213,6 +226,7 @@ RANLIB = @RANLIB@
|
||||
REGEN_PARSERS_FALSE = @REGEN_PARSERS_FALSE@
|
||||
REGEN_PARSERS_TRUE = @REGEN_PARSERS_TRUE@
|
||||
REMOVE = @REMOVE@
|
||||
SED = @SED@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
SHELL = @SHELL@
|
||||
STRICT_WARNING_CFLAGS = @STRICT_WARNING_CFLAGS@
|
||||
@@ -240,8 +254,10 @@ X_EXTRA_LIBS = @X_EXTRA_LIBS@
|
||||
X_LIBS = @X_LIBS@
|
||||
X_PRE_LIBS = @X_PRE_LIBS@
|
||||
ZIP = @ZIP@
|
||||
ac_ct_AR = @ac_ct_AR@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
ac_ct_CXX = @ac_ct_CXX@
|
||||
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
|
||||
ac_ct_RANLIB = @ac_ct_RANLIB@
|
||||
ac_ct_STRIP = @ac_ct_STRIP@
|
||||
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
|
||||
@@ -274,6 +290,7 @@ install_sh = @install_sh@
|
||||
libdir = @libdir@
|
||||
libexecdir = @libexecdir@
|
||||
localstatedir = @localstatedir@
|
||||
lt_ECHO = @lt_ECHO@
|
||||
mandir = @mandir@
|
||||
mkdir_p = @mkdir_p@
|
||||
multi_basedir = @multi_basedir@
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
\input texinfo @c -*-texinfo-*-
|
||||
|
||||
@c %**start of header
|
||||
@setfilename hacking.info
|
||||
@setfilename cp-hacking.info
|
||||
@settitle GNU Classpath Hacker's Guide
|
||||
@c %**end of header
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
This file contains important information you will need to know if you
|
||||
are going to hack on the GNU Classpath project code.
|
||||
|
||||
Copyright (C) 1998,1999,2000,2001,2002,2003,2004, 2005 Free Software Foundation, Inc.
|
||||
Copyright (C) 1998,1999,2000,2001,2002,2003,2004,2005,2007 Free Software Foundation, Inc.
|
||||
|
||||
@ifnotplaintext
|
||||
@dircategory GNU Libraries
|
||||
@@ -65,6 +65,9 @@ and compilers for the java programming language.
|
||||
* Volunteering:: So you want to help out
|
||||
* Project Goals:: Goals of the GNU Classpath project
|
||||
* Needed Tools and Libraries:: A list of programs and libraries you will need
|
||||
* Installation:: Installation instructions
|
||||
* Building and running with the X AWT peers:: Building and running with the X AWT peers
|
||||
* Misc. Notes:: Miscellaneous notes
|
||||
* Programming Standards:: Standards to use when writing code
|
||||
* Hacking Code:: Working on code, Working with others
|
||||
* Programming Goals:: What to consider when writing code
|
||||
@@ -324,7 +327,7 @@ that way. But finishing, polishing up, documenting, testing and
|
||||
debugging current functionality is of higher priority then adding new
|
||||
functionality.
|
||||
|
||||
@node Needed Tools and Libraries, Programming Standards, Project Goals, Top
|
||||
@node Needed Tools and Libraries, Installation, Project Goals, Top
|
||||
@comment node-name, next, previous, up
|
||||
@chapter Needed Tools and Libraries
|
||||
|
||||
@@ -338,15 +341,19 @@ needed when working directly on the CVS version.
|
||||
|
||||
@itemize @bullet
|
||||
@item
|
||||
GCC 3.3+
|
||||
GNU make 3.80+
|
||||
@item
|
||||
GCC 2.95+
|
||||
@item
|
||||
Eclipse Compiler for Java 3.1+
|
||||
@item
|
||||
CVS 1.11+
|
||||
@item
|
||||
automake 1.7+
|
||||
automake 1.9+
|
||||
@item
|
||||
autoconf 2.59+
|
||||
@item
|
||||
libtool 1.4.2+
|
||||
libtool 1.5+
|
||||
@item
|
||||
GNU m4 1.4
|
||||
@item
|
||||
@@ -356,35 +363,50 @@ texinfo 4.2+
|
||||
All of these tools are available from
|
||||
@uref{ftp://gnudist.gnu.org/pub/gnu/,gnudist.gnu.org} via anonymous
|
||||
ftp, except CVS which is available from
|
||||
@uref{http://www.cvshome.org/,www.cvshome.org}. They are fully
|
||||
documented with texinfo manuals. Texinfo can be browsed with the
|
||||
Emacs editor, or with the text editor of your choice, or transformed
|
||||
into nicely printable Postscript.
|
||||
@uref{http://www.cvshome.org/,www.cvshome.org} and the Eclipse
|
||||
Compiler for Java, which is available from
|
||||
@uref{http://www.eclipse.org/jdt/core,www.eclipse.org/jdt/core}.
|
||||
|
||||
Except for the Eclipse Compiler for Java, they are fully documented
|
||||
with texinfo manuals. Texinfo can be browsed with the Emacs editor,
|
||||
or with the text editor of your choice, or transformed into nicely
|
||||
printable Postscript.
|
||||
|
||||
Here is a brief description of the purpose of those tools.
|
||||
|
||||
@table @b
|
||||
|
||||
@item make
|
||||
GNU make ("gmake") is required for building Classpath.
|
||||
|
||||
@item GCC
|
||||
The GNU Compiler Collection. This contains a C compiler (gcc) for
|
||||
compiling the native C code and a compiler for the java programming
|
||||
language (gcj). You will need at least gcj version 3.3 or higher. If
|
||||
that version is not available for your platform you can try the
|
||||
@uref{http://www.jikes.org/, jikes compiler}. We try to keep all code
|
||||
compilable with both gcj and jikes at all times.
|
||||
language (gcj). You will need at least gcc version 2.95 or higher
|
||||
in order to compile the native code. There is currently no
|
||||
released version of gcj that can compile the Java 1.5 programming
|
||||
language used by GNU Classpath.
|
||||
|
||||
@item ecj
|
||||
The Eclipse Compiler for Java. This is a compiler for the Java 1.5
|
||||
programming language. It translates source code to bytecode. The
|
||||
Eclipse Foundation makes ``ecj.jar'' available as the JDT Core Batch
|
||||
Compiler download.
|
||||
|
||||
@item CVS
|
||||
A version control system that maintains a centralized Internet
|
||||
repository of all code in the Classpath system.
|
||||
|
||||
@item automake
|
||||
This tool automatically creates Makefile.in files from Makefile.am
|
||||
files. The Makefile.in is turned into a Makefile by autoconf. Why
|
||||
use this? Because it automatically generates every makefile target
|
||||
you would ever want (clean, install, dist, etc) in full compliance
|
||||
with the GNU coding standards. It also simplifies Makefile creation
|
||||
in a number of ways that cannot be described here. Read the docs for
|
||||
more info.
|
||||
This tool automatically creates @file{Makefile.in} files from
|
||||
@file{Makefile.am} files. The @file{Makefile.in} is turned into a
|
||||
@file{Makefile} by @command{autoconf}.
|
||||
|
||||
Why use this? Because it automatically generates every makefile
|
||||
target you would ever want (@option{clean}, @option{install},
|
||||
@option{dist}, etc) in full compliance with the GNU coding standards.
|
||||
It also simplifies Makefile creation in a number of ways that cannot
|
||||
be described here. Read the docs for more info.
|
||||
|
||||
@item autoconf
|
||||
Automatically configures a package for the platform on which it is
|
||||
@@ -414,12 +436,29 @@ is revised, you need revise only that one document.
|
||||
|
||||
@end table
|
||||
|
||||
For any build environment involving native libraries, recent
|
||||
versions of @command{autoconf}, @command{automake}, and @command{libtool}
|
||||
are required if changes are made that require rebuilding @file{configure},
|
||||
@file{Makefile.in}, @file{aclocal.m4}, or @file{config.h.in}.
|
||||
|
||||
When working from CVS you can run those tools by executing
|
||||
@command{autogen.sh} in the source directory.
|
||||
|
||||
For building the Java bytecode (.class files), you can select
|
||||
which compiler should be employed using @option{--with-javac} or
|
||||
@option{--with-ecj} as argument to @command{configure};
|
||||
the present default is @command{ecj}.
|
||||
|
||||
Instead of @command{ecj}, you can also use @command{javac}, which is
|
||||
available at
|
||||
@uref{https://openjdk.dev.java.net/compiler, openjdk.dev.java.net/compiler}.
|
||||
|
||||
For compiling the native AWT libraries you need to have the following
|
||||
libraries installed:
|
||||
libraries installed (unless @option{--disable-gtk-peer} is used as an argument
|
||||
to @command{configure}):
|
||||
|
||||
@table @b
|
||||
@item GTK+ 2.2.x
|
||||
@item GTK+ 2.8.x
|
||||
@uref{http://www.gtk.org/,GTK+} is a multi-platform toolkit for
|
||||
creating graphical user interfaces. It is used as the basis of the
|
||||
GNU desktop project GNOME.
|
||||
@@ -427,8 +466,125 @@ GNU desktop project GNOME.
|
||||
@item gdk-pixbuf
|
||||
@uref{http://www.gnome.org/start/,gdk-pixbuf} is a GNOME library for
|
||||
representing images.
|
||||
|
||||
@item XTest
|
||||
@uref{http://www.x.org,www.x.org} hosts the XTest Extension (libXtst).
|
||||
It is necessary for GdkRobot support in java.awt.
|
||||
|
||||
@end table
|
||||
|
||||
There is a bug in earlier versions of at-spi, atk, and gail, which are
|
||||
used for GNOME accessibility. Prior to version 1.18.0 of these packages,
|
||||
gtk graphical applications should be run without accessibility (clear the
|
||||
GTK_MODULES environment variable).
|
||||
|
||||
For building the Qt AWT peer JNI native libraries you have to
|
||||
specify @option{--enable-qt-peer} and need the following library:
|
||||
|
||||
@table @b
|
||||
@item Qt
|
||||
@uref{http://www.trolltech.com/products/qt,Qt} version 4.0.1 or higher.
|
||||
The Qt library is a cros-platform graphics toolkit.
|
||||
|
||||
@end table
|
||||
|
||||
Please note that at the moment most operating systems do not
|
||||
ship Qt version 4.0.1 by default. We recommend using GNU Classpath' Qt
|
||||
support only for its developers and bug reporters. See
|
||||
@uref{http://developer.classpath.org/mediation/ClasspathShowcase, the wiki}
|
||||
for details on how to get it to work.
|
||||
|
||||
For building the X AWT peers you have to specify where to find the
|
||||
Escher library on your system using the @option{--with-escher=ABS.PATH} option.
|
||||
You will need the following library:
|
||||
|
||||
@table @b
|
||||
@item Escher
|
||||
@uref{http://escher.sourceforge.net,Escher} version 0.2.3 or higher.
|
||||
The Escher library is an implementation of X protocol and associated
|
||||
libraries written in the Java programming language.
|
||||
|
||||
@end table
|
||||
|
||||
For building the ALSA midi provider code you will need
|
||||
the following library:
|
||||
|
||||
|
||||
@table @b
|
||||
@item ALSA
|
||||
@uref{http://www.alsa-project.org,ALSA} libraries.
|
||||
|
||||
The ALSA project provides sound device drivers and associated
|
||||
libraries for the Linux kernel.
|
||||
|
||||
@end table
|
||||
|
||||
Building the ALSA midi provider code can be disabled by passing
|
||||
@option{--disable-alsa} to @command{configure}.
|
||||
|
||||
For building the DSSI midi synthesizer provider code you will
|
||||
need the following libraries:
|
||||
|
||||
@table @b
|
||||
@item DSSI
|
||||
@uref{http://dssi.sourceforge.net,DSSI} library for audio
|
||||
processing plugins.
|
||||
|
||||
@item liblo
|
||||
@uref{http://plugin.org.uk/liblo/,liblo}, the Lightweight OSC
|
||||
implementation.
|
||||
|
||||
@item LADSPA
|
||||
@uref{http://www.ladspa.org,LADSPA}, the Linux Audio Developer's
|
||||
Simple Plugin API.
|
||||
|
||||
@item JACK
|
||||
@uref{http://jackit.sourceforge.net,JACK}, a low latency audio
|
||||
server.
|
||||
|
||||
@item libsndfile
|
||||
@uref{http://www.mega-nerd.com/libsndfile/,libsndfile}, an audio
|
||||
file I/O library.
|
||||
|
||||
@item fluidsynth
|
||||
@uref{http://www.fluidsynth.org/,fluidsynth}, a real-time SoundFont
|
||||
2 based soft-synth.
|
||||
|
||||
@end table
|
||||
|
||||
The GConf-based backend for java.util.prefs needs the following
|
||||
library headers:
|
||||
|
||||
@table @b
|
||||
@item GConf
|
||||
@uref{http://www.gnome.org/projects/gconf/,GConf} version 2.11.2
|
||||
(or higher). GConf is used for storing dektop and application
|
||||
configuration settings in GNOME.
|
||||
|
||||
@end table
|
||||
|
||||
For building @command{gcjwebplugin} you'll need the Mozilla plugin
|
||||
support headers and libraries, which are available at
|
||||
@uref{http://www.mozilla.org,www.mozilla.org}.
|
||||
|
||||
For enabling the com.sun.tools.javac support in tools.zip you
|
||||
will a need jar file containing the Eclipse Java Compiler.
|
||||
Otherwise com.sun.tools.javac will not be included in @file{tools.zip}.
|
||||
|
||||
For building the xmlj JAXP implementation (disabled by default,
|
||||
use @command{configure --enable-xmlj}) you need the following libraries:
|
||||
|
||||
@table @b
|
||||
@item libxml2
|
||||
@uref{http://www.xmlsoft.org/,libxml2} version 2.6.8 or higher.
|
||||
|
||||
The libxml2 library is the XML C library for the Gnome desktop.
|
||||
|
||||
@item libxslt
|
||||
@uref{http://www.xmlsoft.org/XSLT/,libxslt} version 1.1.11 or higher.
|
||||
|
||||
The libxslt library if the XSLT C library for the Gnome desktop.
|
||||
@end table
|
||||
|
||||
GNU Classpath comes with a couple of libraries included in the source
|
||||
that are not part of GNU Classpath proper, but that have been included
|
||||
@@ -457,8 +613,167 @@ java.lang.StrictMath.
|
||||
|
||||
@end table
|
||||
|
||||
@node Installation, Building and running with the X AWT peers, Needed Tools and Libraries, Top
|
||||
@comment node-name, next, previous, up
|
||||
@chapter Installation instructions
|
||||
|
||||
@node Programming Standards, Hacking Code, Needed Tools and Libraries, Top
|
||||
This package was designed to use the GNU standard for configuration
|
||||
and makefiles. To build and install do the following:
|
||||
|
||||
@enumerate
|
||||
@item Configuration
|
||||
|
||||
Run the @command{configure} script to configure the package. There are
|
||||
various options you might want to pass to @command{configure} to control how the
|
||||
package is built. Consider the following options, @command{configure --help}
|
||||
gives a complete list.
|
||||
|
||||
@table @option
|
||||
@item --enable-java
|
||||
|
||||
compile Java source (default=@option{yes}).
|
||||
|
||||
@item --enable-jni
|
||||
|
||||
compile JNI source (default=@option{yes}).
|
||||
|
||||
@item --enable-gtk-peer
|
||||
|
||||
compile GTK native peers (default=@option{yes}).
|
||||
|
||||
@item --enable-qt-peer
|
||||
|
||||
compile Qt4 native peers (default=@option{no}).
|
||||
|
||||
@item --enable-default-toolkit
|
||||
|
||||
fully qualified class name of default AWT toolkit (default=@option{no}).
|
||||
|
||||
@item --enable-xmlj
|
||||
|
||||
compile native libxml/xslt library (default=@option{no}).
|
||||
|
||||
@item --enable-load-library
|
||||
|
||||
enable to use JNI native methods (default=@option{yes}).
|
||||
|
||||
@item --enable-local-sockets
|
||||
|
||||
enable build of local Unix sockets.
|
||||
|
||||
@item --with-glibj
|
||||
define what to install @option{(zip|flat|both|none)} (default=@option{zip}).
|
||||
|
||||
@item --with-escher=/path/to/escher
|
||||
|
||||
enable build of the X/Escher peers, with
|
||||
the escher library at @file{/path/to/escher}, either
|
||||
in the form of a JAR file, or a directory
|
||||
containing the .class files of Escher.
|
||||
|
||||
@item --enable-Werror
|
||||
|
||||
whether to compile C code with @option{-Werror} which turns
|
||||
any compiler warning into a compilation failure
|
||||
(default=@option{no}).
|
||||
|
||||
@item --with-gjdoc
|
||||
|
||||
generate documentation using @command{gjdoc} (default=@option{no}).
|
||||
|
||||
@item --with-jay
|
||||
|
||||
Regenerate the parsers with @command{jay}, must be given the
|
||||
path to the @command{jay} executable
|
||||
|
||||
@item --with-glibj-zip=ABS.PATH
|
||||
|
||||
use prebuilt glibj.zip class library
|
||||
|
||||
@item --with-ecj-jar=ABS.PATH
|
||||
|
||||
specify jar file containing the Eclipse Java Compiler
|
||||
|
||||
@end table
|
||||
|
||||
For more flags run @command{configure --help}.
|
||||
|
||||
@item Building
|
||||
|
||||
Type @command{gmake} to build the package. There is no longer a
|
||||
dependency problem and we aim to keep it that way.
|
||||
|
||||
@item Installation
|
||||
|
||||
Type @command{gmake install} to install everything. This may require
|
||||
being the superuser. The default install path is /usr/local/classpath
|
||||
you may change it by giving @command{configure} the
|
||||
@option{--prefix=<path>} option.
|
||||
|
||||
@end enumerate
|
||||
|
||||
Report bugs to @email{classpath@@gnu.org} or much better to the
|
||||
GNU Classpath bug tracker at
|
||||
@uref{http://savannah.gnu.org/support/?func=addsupport&group=classpath,Savannah}.
|
||||
|
||||
Happy Hacking!
|
||||
|
||||
Once installed, GNU Classpath is ready to be used by any VM that supports
|
||||
using the official version of GNU Classpath. Simply ensure that
|
||||
@file{/usr/local/classpath/share/classpath} is in your @env{CLASSPATH} environment
|
||||
variable. You'll also have to set your @env{LD_LIBRARY_PATH}
|
||||
variable (or similar system configuration) to include the Classpath
|
||||
native libraries in @file{/usr/local/classpath/lib/classpath}.
|
||||
|
||||
*NOTE* All example paths assume the default prefix is used with @command{configure}.
|
||||
If you don't know what this means then the examples are correct.
|
||||
|
||||
@example
|
||||
LD_LIBRARY_PATH=/usr/local/classpath/lib/classpath
|
||||
CLASSPATH=/usr/local/classpath/share/classpath/glibj.zip:.
|
||||
export LD_LIBRARY_PATH CLASSPATH
|
||||
@end example
|
||||
|
||||
More information about the VMs that use GNU Classpath can be found in the
|
||||
@file{README} file.
|
||||
|
||||
@node Building and running with the X AWT peers, Misc. Notes, Installation, Top
|
||||
@comment node-name, next, previous, up
|
||||
@chapter Building and running with the X AWT peers
|
||||
|
||||
In order build the X peers you need the Escher library version 0.2.3
|
||||
from @uref{http://escher.sourceforge.net,escher.sourceforge.net}.
|
||||
Unpack (and optionally build) the
|
||||
Escher library following the instructions in the downloaded
|
||||
package. Enable the build of the X peers by passing
|
||||
@option{--with-escher=/path/to/escher} to @command{configure} where @file{/path/to/escher}
|
||||
either points to a directory structure or JAR file containing the
|
||||
Escher classes. For Unix systems it is preferable to also build local
|
||||
socket support by passing @option{--enable-local-sockets}, which accelerates
|
||||
the network communication to the X server significantly.
|
||||
|
||||
In this release you have to enable the X peers at runtime by
|
||||
setting the system property awt.toolkit=gnu.java.awt.peer.x.XToolkit
|
||||
by passing @option{-Dawt.toolkit=gnu.java.awt.peer.x.XToolkit} to the @command{java}
|
||||
command when running an application.
|
||||
|
||||
@node Misc. Notes, Programming Standards, Building and running with the X AWT peers, Top
|
||||
@comment node-name, next, previous, up
|
||||
@chapter Misc. Notes
|
||||
|
||||
Compilation is accomplished using a compiler's @@file syntax. For our
|
||||
part, we avoid placing make style dependencies as rules upon the
|
||||
compilation of a particular class file and leave this up to the Java
|
||||
compiler instead.
|
||||
|
||||
The @option{--enable-maintainer-mode} option to @command{configure} currently does very
|
||||
little and shouldn't be used by ordinary developers or users anyway.
|
||||
|
||||
On Windows machines, the native libraries do not currently build, but
|
||||
the Java bytecode library will. Gcj trunk is beginning to work under
|
||||
Cygwin.
|
||||
|
||||
@node Programming Standards, Hacking Code, Misc. Notes, Top
|
||||
@comment node-name, next, previous, up
|
||||
@chapter Programming Standards
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
\input texinfo @c -*-texinfo-*-
|
||||
|
||||
@c %**start of header
|
||||
@setfilename vmintegration.info
|
||||
@setfilename cp-vmintegration.info
|
||||
@settitle GNU Classpath VM Integration Guide
|
||||
@c %**end of header
|
||||
|
||||
@@ -12,7 +12,7 @@ This file contains important information you will need to know if you
|
||||
are going to write an interface between GNU Classpath and a Virtual
|
||||
Machine.
|
||||
|
||||
Copyright (C) 1998-2002, 2004, 2005, 2006 Free Software Foundation, Inc.
|
||||
Copyright (C) 1998-2002, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
|
||||
|
||||
@ifnotplaintext
|
||||
@dircategory GNU Libraries
|
||||
@@ -1376,6 +1376,12 @@ time used by all threads.
|
||||
@item @code{gnu.java.lang.management.ThreadContentionSupport} --
|
||||
This property should be present if the VM supports thread contention
|
||||
monitoring.
|
||||
@item @code{gnu.java.lang.management.MonitorUsageMonitoringSupport} --
|
||||
This property should be present if the VM supports the monitoring
|
||||
of object monitor usage.
|
||||
@item @code{gnu.java.lang.management.OwnableSynchronizerUsageMonitoringSupport} --
|
||||
This property should be present if the VM supports the monitoring
|
||||
of ownable synchronizer usage.
|
||||
@end itemize
|
||||
|
||||
In addition, the property
|
||||
@@ -1386,11 +1392,18 @@ is enabled at startup.
|
||||
The methods are as follows:
|
||||
|
||||
@itemize @bullet
|
||||
@item @code{(findDeadlockedThreads())} -- This should return
|
||||
an array of thread identifiers which match threads involved in
|
||||
deadlock cycles (where each thread is waiting to obtain a lock
|
||||
held by one of the others) on object monitors or ownable
|
||||
synchronizers. This is specified as a native method in the
|
||||
reference implementation, and is optional. It is only called
|
||||
when the VM supports ownable synchronizer monitoring.
|
||||
@item @code{(findMonitorDeadlockedThreads())} -- This should return
|
||||
an array of thread identifiers which match threads involved in
|
||||
deadlock cycles (where each thread is waiting to obtain a lock
|
||||
held by one of the others). This is specified as a native method
|
||||
in the reference implementation.
|
||||
held by one of the others) on object monitors. This is specified
|
||||
as a native method in the reference implementation.
|
||||
@item @code{(getAllThreads())} -- This should return an array of
|
||||
all live threads and set the @code{filled} variable to the number
|
||||
found. A default implementation is provided.
|
||||
@@ -1408,6 +1421,16 @@ supporting time monitoring.
|
||||
@item @code{(getDaemonThreadCount())} -- This should return the number
|
||||
of live daemon threads. A default implementation is provided, based
|
||||
on @code{getAllThreads()}.
|
||||
@item @code{(getLockInfo(ThreadInfo))} -- This is an optional native
|
||||
method called when the VM supports ownable synchronizer usage monitoring
|
||||
and the user has requested information for a particular thread. The
|
||||
supplied @code{ThreadInfo} object should be filled out with an
|
||||
array of @code{LockInfo} objects, providing details on each lock.
|
||||
@item @code{(getMonitorInfo(ThreadInfo))} -- This is an optional native
|
||||
method called when the VM supports object monitor usage monitoring
|
||||
and the user has requested information for a particular thread. The
|
||||
supplied @code{ThreadInfo} object should be filled out with an
|
||||
array of @code{MonitorInfo} objects, providing details on each lock.
|
||||
@item @code{(getPeakThreadCount())} -- The VM should maintain a record
|
||||
of the peak number of live threads, and return it when this method is
|
||||
called. This is specified as a native method in the reference
|
||||
|
||||
Executable
+478
@@ -0,0 +1,478 @@
|
||||
#! /usr/bin/perl -w
|
||||
|
||||
# Copyright (C) 1999, 2000, 2001, 2003 Free Software Foundation, Inc.
|
||||
|
||||
# This file is part of GCC.
|
||||
|
||||
# GCC is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
|
||||
# GCC is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with GCC; see the file COPYING. If not, write to
|
||||
# the Free Software Foundation, 51 Franklin Street, Fifth Floor,
|
||||
# Boston MA 02110-1301, USA.
|
||||
|
||||
# This does trivial (and I mean _trivial_) conversion of Texinfo
|
||||
# markup to Perl POD format. It's intended to be used to extract
|
||||
# something suitable for a manpage from a Texinfo document.
|
||||
|
||||
$output = 0;
|
||||
$skipping = 0;
|
||||
%sects = ();
|
||||
$section = "";
|
||||
@icstack = ();
|
||||
@endwstack = ();
|
||||
@skstack = ();
|
||||
@instack = ();
|
||||
$shift = "";
|
||||
%defs = ();
|
||||
$fnno = 1;
|
||||
$inf = "";
|
||||
$ibase = "";
|
||||
@ipath = ();
|
||||
|
||||
while ($_ = shift) {
|
||||
if (/^-D(.*)$/) {
|
||||
if ($1 ne "") {
|
||||
$flag = $1;
|
||||
} else {
|
||||
$flag = shift;
|
||||
}
|
||||
$value = "";
|
||||
($flag, $value) = ($flag =~ /^([^=]+)(?:=(.+))?/);
|
||||
die "no flag specified for -D\n"
|
||||
unless $flag ne "";
|
||||
die "flags may only contain letters, digits, hyphens, dashes and underscores\n"
|
||||
unless $flag =~ /^[a-zA-Z0-9_-]+$/;
|
||||
$defs{$flag} = $value;
|
||||
} elsif (/^-I(.*)$/) {
|
||||
if ($1 ne "") {
|
||||
$flag = $1;
|
||||
} else {
|
||||
$flag = shift;
|
||||
}
|
||||
push (@ipath, $flag);
|
||||
} elsif (/^-/) {
|
||||
usage();
|
||||
} else {
|
||||
$in = $_, next unless defined $in;
|
||||
$out = $_, next unless defined $out;
|
||||
usage();
|
||||
}
|
||||
}
|
||||
|
||||
if (defined $in) {
|
||||
$inf = gensym();
|
||||
open($inf, "<$in") or die "opening \"$in\": $!\n";
|
||||
$ibase = $1 if $in =~ m|^(.+)/[^/]+$|;
|
||||
} else {
|
||||
$inf = \*STDIN;
|
||||
}
|
||||
|
||||
if (defined $out) {
|
||||
open(STDOUT, ">$out") or die "opening \"$out\": $!\n";
|
||||
}
|
||||
|
||||
while(defined $inf) {
|
||||
while(<$inf>) {
|
||||
# Certain commands are discarded without further processing.
|
||||
/^\@(?:
|
||||
[a-z]+index # @*index: useful only in complete manual
|
||||
|need # @need: useful only in printed manual
|
||||
|(?:end\s+)?group # @group .. @end group: ditto
|
||||
|page # @page: ditto
|
||||
|node # @node: useful only in .info file
|
||||
|(?:end\s+)?ifnottex # @ifnottex .. @end ifnottex: use contents
|
||||
)\b/x and next;
|
||||
|
||||
chomp;
|
||||
|
||||
# Look for filename and title markers.
|
||||
/^\@setfilename\s+([^.]+)/ and $fn = $1, next;
|
||||
/^\@settitle\s+([^.]+)/ and $tl = postprocess($1), next;
|
||||
|
||||
# Identify a man title but keep only the one we are interested in.
|
||||
/^\@c\s+man\s+title\s+([A-Za-z0-9-]+)\s+(.+)/ and do {
|
||||
if (exists $defs{$1}) {
|
||||
$fn = $1;
|
||||
$tl = postprocess($2);
|
||||
}
|
||||
next;
|
||||
};
|
||||
|
||||
# Look for blocks surrounded by @c man begin SECTION ... @c man end.
|
||||
# This really oughta be @ifman ... @end ifman and the like, but such
|
||||
# would require rev'ing all other Texinfo translators.
|
||||
/^\@c\s+man\s+begin\s+([A-Z]+)\s+([A-Za-z0-9-]+)/ and do {
|
||||
$output = 1 if exists $defs{$2};
|
||||
$sect = $1;
|
||||
next;
|
||||
};
|
||||
/^\@c\s+man\s+begin\s+([A-Z]+)/ and $sect = $1, $output = 1, next;
|
||||
/^\@c\s+man\s+end/ and do {
|
||||
$sects{$sect} = "" unless exists $sects{$sect};
|
||||
$sects{$sect} .= postprocess($section);
|
||||
$section = "";
|
||||
$output = 0;
|
||||
next;
|
||||
};
|
||||
|
||||
# handle variables
|
||||
/^\@set\s+([a-zA-Z0-9_-]+)\s*(.*)$/ and do {
|
||||
$defs{$1} = $2;
|
||||
next;
|
||||
};
|
||||
/^\@clear\s+([a-zA-Z0-9_-]+)/ and do {
|
||||
delete $defs{$1};
|
||||
next;
|
||||
};
|
||||
|
||||
next unless $output;
|
||||
|
||||
# Discard comments. (Can't do it above, because then we'd never see
|
||||
# @c man lines.)
|
||||
/^\@c\b/ and next;
|
||||
|
||||
# End-block handler goes up here because it needs to operate even
|
||||
# if we are skipping.
|
||||
/^\@end\s+([a-z]+)/ and do {
|
||||
# Ignore @end foo, where foo is not an operation which may
|
||||
# cause us to skip, if we are presently skipping.
|
||||
my $ended = $1;
|
||||
next if $skipping && $ended !~ /^(?:ifset|ifclear|ignore|menu|iftex|copying)$/;
|
||||
|
||||
die "\@end $ended without \@$ended at line $.\n" unless defined $endw;
|
||||
die "\@$endw ended by \@end $ended at line $.\n" unless $ended eq $endw;
|
||||
|
||||
$endw = pop @endwstack;
|
||||
|
||||
if ($ended =~ /^(?:ifset|ifclear|ignore|menu|iftex)$/) {
|
||||
$skipping = pop @skstack;
|
||||
next;
|
||||
} elsif ($ended =~ /^(?:example|smallexample|display)$/) {
|
||||
$shift = "";
|
||||
$_ = ""; # need a paragraph break
|
||||
} elsif ($ended =~ /^(?:itemize|enumerate|[fv]?table)$/) {
|
||||
$_ = "\n=back\n";
|
||||
$ic = pop @icstack;
|
||||
} elsif ($ended eq "multitable") {
|
||||
$_ = "\n=back\n";
|
||||
} else {
|
||||
die "unknown command \@end $ended at line $.\n";
|
||||
}
|
||||
};
|
||||
|
||||
# We must handle commands which can cause skipping even while we
|
||||
# are skipping, otherwise we will not process nested conditionals
|
||||
# correctly.
|
||||
/^\@ifset\s+([a-zA-Z0-9_-]+)/ and do {
|
||||
push @endwstack, $endw;
|
||||
push @skstack, $skipping;
|
||||
$endw = "ifset";
|
||||
$skipping = 1 unless exists $defs{$1};
|
||||
next;
|
||||
};
|
||||
|
||||
/^\@ifclear\s+([a-zA-Z0-9_-]+)/ and do {
|
||||
push @endwstack, $endw;
|
||||
push @skstack, $skipping;
|
||||
$endw = "ifclear";
|
||||
$skipping = 1 if exists $defs{$1};
|
||||
next;
|
||||
};
|
||||
|
||||
/^\@(ignore|menu|iftex|copying)\b/ and do {
|
||||
push @endwstack, $endw;
|
||||
push @skstack, $skipping;
|
||||
$endw = $1;
|
||||
$skipping = 1;
|
||||
next;
|
||||
};
|
||||
|
||||
next if $skipping;
|
||||
|
||||
# Character entities. First the ones that can be replaced by raw text
|
||||
# or discarded outright:
|
||||
s/\@copyright\{\}/(c)/g;
|
||||
s/\@dots\{\}/.../g;
|
||||
s/\@enddots\{\}/..../g;
|
||||
s/\@([.!? ])/$1/g;
|
||||
s/\@[:-]//g;
|
||||
s/\@bullet(?:\{\})?/*/g;
|
||||
s/\@TeX\{\}/TeX/g;
|
||||
s/\@pounds\{\}/\#/g;
|
||||
s/\@minus(?:\{\})?/-/g;
|
||||
s/\\,/,/g;
|
||||
|
||||
# Now the ones that have to be replaced by special escapes
|
||||
# (which will be turned back into text by unmunge())
|
||||
s/&/&/g;
|
||||
s/\@\{/{/g;
|
||||
s/\@\}/}/g;
|
||||
s/\@\@/&at;/g;
|
||||
|
||||
# Inside a verbatim block, handle @var specially.
|
||||
if ($shift ne "") {
|
||||
s/\@var\{([^\}]*)\}/<$1>/g;
|
||||
}
|
||||
|
||||
# POD doesn't interpret E<> inside a verbatim block.
|
||||
if ($shift eq "") {
|
||||
s/</</g;
|
||||
s/>/>/g;
|
||||
} else {
|
||||
s/</</g;
|
||||
s/>/>/g;
|
||||
}
|
||||
|
||||
# Single line command handlers.
|
||||
|
||||
/^\@include\s+(.+)$/ and do {
|
||||
push @instack, $inf;
|
||||
$inf = gensym();
|
||||
$file = postprocess($1);
|
||||
|
||||
# Try cwd and $ibase, then explicit -I paths.
|
||||
$done = 0;
|
||||
foreach $path ("", $ibase, @ipath) {
|
||||
$mypath = $file;
|
||||
$mypath = $path . "/" . $mypath if ($path ne "");
|
||||
open($inf, "<" . $mypath) and ($done = 1, last);
|
||||
}
|
||||
die "cannot find $file" if !$done;
|
||||
next;
|
||||
};
|
||||
|
||||
/^\@(?:section|unnumbered|unnumberedsec|center)\s+(.+)$/
|
||||
and $_ = "\n=head2 $1\n";
|
||||
/^\@subsection\s+(.+)$/
|
||||
and $_ = "\n=head3 $1\n";
|
||||
/^\@subsubsection\s+(.+)$/
|
||||
and $_ = "\n=head4 $1\n";
|
||||
|
||||
# Block command handlers:
|
||||
/^\@itemize(?:\s+(\@[a-z]+|\*|-))?/ and do {
|
||||
push @endwstack, $endw;
|
||||
push @icstack, $ic;
|
||||
if (defined $1) {
|
||||
$ic = $1;
|
||||
} else {
|
||||
$ic = '@bullet';
|
||||
}
|
||||
$_ = "\n=over 4\n";
|
||||
$endw = "itemize";
|
||||
};
|
||||
|
||||
/^\@enumerate(?:\s+([a-zA-Z0-9]+))?/ and do {
|
||||
push @endwstack, $endw;
|
||||
push @icstack, $ic;
|
||||
if (defined $1) {
|
||||
$ic = $1 . ".";
|
||||
} else {
|
||||
$ic = "1.";
|
||||
}
|
||||
$_ = "\n=over 4\n";
|
||||
$endw = "enumerate";
|
||||
};
|
||||
|
||||
/^\@multitable\s.*/ and do {
|
||||
push @endwstack, $endw;
|
||||
$endw = "multitable";
|
||||
$_ = "\n=over 4\n";
|
||||
};
|
||||
|
||||
/^\@([fv]?table)\s+(\@[a-z]+)/ and do {
|
||||
push @endwstack, $endw;
|
||||
push @icstack, $ic;
|
||||
$endw = $1;
|
||||
$ic = $2;
|
||||
$ic =~ s/\@(?:samp|strong|key|gcctabopt|env)/B/;
|
||||
$ic =~ s/\@(?:code|kbd)/C/;
|
||||
$ic =~ s/\@(?:dfn|var|emph|cite|i)/I/;
|
||||
$ic =~ s/\@(?:file)/F/;
|
||||
$_ = "\n=over 4\n";
|
||||
};
|
||||
|
||||
/^\@((?:small)?example|display)/ and do {
|
||||
push @endwstack, $endw;
|
||||
$endw = $1;
|
||||
$shift = "\t";
|
||||
$_ = ""; # need a paragraph break
|
||||
};
|
||||
|
||||
/^\@item\s+(.*\S)\s*$/ and $endw eq "multitable" and do {
|
||||
@columns = ();
|
||||
for $column (split (/\s*\@tab\s*/, $1)) {
|
||||
# @strong{...} is used a @headitem work-alike
|
||||
$column =~ s/^\@strong{(.*)}$/$1/;
|
||||
push @columns, $column;
|
||||
}
|
||||
$_ = "\n=item ".join (" : ", @columns)."\n";
|
||||
};
|
||||
|
||||
/^\@itemx?\s*(.+)?$/ and do {
|
||||
if (defined $1) {
|
||||
# Entity escapes prevent munging by the <> processing below.
|
||||
$_ = "\n=item $ic\<$1\>\n";
|
||||
} else {
|
||||
$_ = "\n=item $ic\n";
|
||||
$ic =~ y/A-Ya-y/B-Zb-z/;
|
||||
$ic =~ s/(\d+)/$1 + 1/eg;
|
||||
}
|
||||
};
|
||||
|
||||
$section .= $shift.$_."\n";
|
||||
}
|
||||
# End of current file.
|
||||
close($inf);
|
||||
$inf = pop @instack;
|
||||
}
|
||||
|
||||
die "No filename or title\n" unless defined $fn && defined $tl;
|
||||
|
||||
$sects{NAME} = "$fn \- $tl\n";
|
||||
$sects{FOOTNOTES} .= "=back\n" if exists $sects{FOOTNOTES};
|
||||
|
||||
for $sect (qw(NAME SYNOPSIS DESCRIPTION OPTIONS ENVIRONMENT FILES
|
||||
BUGS NOTES FOOTNOTES SEEALSO AUTHOR COPYRIGHT)) {
|
||||
if(exists $sects{$sect}) {
|
||||
$head = $sect;
|
||||
$head =~ s/SEEALSO/SEE ALSO/;
|
||||
print "=head1 $head\n\n";
|
||||
print scalar unmunge ($sects{$sect});
|
||||
print "\n";
|
||||
}
|
||||
}
|
||||
|
||||
sub usage
|
||||
{
|
||||
die "usage: $0 [-D toggle...] [infile [outfile]]\n";
|
||||
}
|
||||
|
||||
sub postprocess
|
||||
{
|
||||
local $_ = $_[0];
|
||||
|
||||
# @value{foo} is replaced by whatever 'foo' is defined as.
|
||||
while (m/(\@value\{([a-zA-Z0-9_-]+)\})/g) {
|
||||
if (! exists $defs{$2}) {
|
||||
print STDERR "Option $2 not defined\n";
|
||||
s/\Q$1\E//;
|
||||
} else {
|
||||
$value = $defs{$2};
|
||||
s/\Q$1\E/$value/;
|
||||
}
|
||||
}
|
||||
|
||||
# Formatting commands.
|
||||
# Temporary escape for @r.
|
||||
s/\@r\{([^\}]*)\}/R<$1>/g;
|
||||
s/\@(?:dfn|var|emph|cite|i)\{([^\}]*)\}/I<$1>/g;
|
||||
s/\@(?:code|kbd)\{([^\}]*)\}/C<$1>/g;
|
||||
s/\@(?:gccoptlist|samp|strong|key|option|env|command|b)\{([^\}]*)\}/B<$1>/g;
|
||||
s/\@sc\{([^\}]*)\}/\U$1/g;
|
||||
s/\@file\{([^\}]*)\}/F<$1>/g;
|
||||
s/\@w\{([^\}]*)\}/S<$1>/g;
|
||||
s/\@(?:dmn|math)\{([^\}]*)\}/$1/g;
|
||||
|
||||
# keep references of the form @ref{...}, print them bold
|
||||
s/\@(?:ref)\{([^\}]*)\}/B<$1>/g;
|
||||
|
||||
# Change double single quotes to double quotes.
|
||||
s/''/"/g;
|
||||
s/``/"/g;
|
||||
|
||||
# Cross references are thrown away, as are @noindent and @refill.
|
||||
# (@noindent is impossible in .pod, and @refill is unnecessary.)
|
||||
# @* is also impossible in .pod; we discard it and any newline that
|
||||
# follows it. Similarly, our macro @gol must be discarded.
|
||||
|
||||
s/\(?\@xref\{(?:[^\}]*)\}(?:[^.<]|(?:<[^<>]*>))*\.\)?//g;
|
||||
s/\s+\(\@pxref\{(?:[^\}]*)\}\)//g;
|
||||
s/;\s+\@pxref\{(?:[^\}]*)\}//g;
|
||||
s/\@noindent\s*//g;
|
||||
s/\@refill//g;
|
||||
s/\@gol//g;
|
||||
s/\@\*\s*\n?//g;
|
||||
|
||||
# Anchors are thrown away
|
||||
s/\@anchor\{(?:[^\}]*)\}//g;
|
||||
|
||||
# @uref can take one, two, or three arguments, with different
|
||||
# semantics each time. @url and @email are just like @uref with
|
||||
# one argument, for our purposes.
|
||||
s/\@(?:uref|url|email)\{([^\},]*)\}/<B<$1>>/g;
|
||||
s/\@uref\{([^\},]*),([^\},]*)\}/$2 (C<$1>)/g;
|
||||
s/\@uref\{([^\},]*),([^\},]*),([^\},]*)\}/$3/g;
|
||||
|
||||
# Un-escape <> at this point.
|
||||
s/</</g;
|
||||
s/>/>/g;
|
||||
|
||||
# Now un-nest all B<>, I<>, R<>. Theoretically we could have
|
||||
# indefinitely deep nesting; in practice, one level suffices.
|
||||
1 while s/([BIR])<([^<>]*)([BIR])<([^<>]*)>/$1<$2>$3<$4>$1</g;
|
||||
|
||||
# Replace R<...> with bare ...; eliminate empty markup, B<>;
|
||||
# shift white space at the ends of [BI]<...> expressions outside
|
||||
# the expression.
|
||||
s/R<([^<>]*)>/$1/g;
|
||||
s/[BI]<>//g;
|
||||
s/([BI])<(\s+)([^>]+)>/$2$1<$3>/g;
|
||||
s/([BI])<([^>]+?)(\s+)>/$1<$2>$3/g;
|
||||
|
||||
# Extract footnotes. This has to be done after all other
|
||||
# processing because otherwise the regexp will choke on formatting
|
||||
# inside @footnote.
|
||||
while (/\@footnote/g) {
|
||||
s/\@footnote\{([^\}]+)\}/[$fnno]/;
|
||||
add_footnote($1, $fnno);
|
||||
$fnno++;
|
||||
}
|
||||
|
||||
return $_;
|
||||
}
|
||||
|
||||
sub unmunge
|
||||
{
|
||||
# Replace escaped symbols with their equivalents.
|
||||
local $_ = $_[0];
|
||||
|
||||
s/</E<lt>/g;
|
||||
s/>/E<gt>/g;
|
||||
s/{/\{/g;
|
||||
s/}/\}/g;
|
||||
s/&at;/\@/g;
|
||||
s/&/&/g;
|
||||
return $_;
|
||||
}
|
||||
|
||||
sub add_footnote
|
||||
{
|
||||
unless (exists $sects{FOOTNOTES}) {
|
||||
$sects{FOOTNOTES} = "\n=over 4\n\n";
|
||||
}
|
||||
|
||||
$sects{FOOTNOTES} .= "=item $fnno.\n\n"; $fnno++;
|
||||
$sects{FOOTNOTES} .= $_[0];
|
||||
$sects{FOOTNOTES} .= "\n\n";
|
||||
}
|
||||
|
||||
# stolen from Symbol.pm
|
||||
{
|
||||
my $genseq = 0;
|
||||
sub gensym
|
||||
{
|
||||
my $name = "GEN" . $genseq++;
|
||||
my $ref = \*{$name};
|
||||
delete $::{$name};
|
||||
return $ref;
|
||||
}
|
||||
}
|
||||
+4099
-2958
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user