Skip to content
Browse files

added System.doc from non-LLVM Kite to tree

  • Loading branch information...
1 parent 4a3d4e0 commit a78b6ac1f95ef838a1c8bc629ea07549feb2b291 @tmiw committed Dec 23, 2012
View
337 aclocal.m4
@@ -1,8 +1,7 @@
-# generated automatically by aclocal 1.11.6 -*- Autoconf -*-
+# generated automatically by aclocal 1.12.3 -*- Autoconf -*-
+
+# Copyright (C) 1996-2012 Free Software Foundation, Inc.
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-# 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation,
-# Inc.
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -18,27 +17,24 @@ m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],,
[m4_warning([this file was generated for autoconf 2.69.
You have another version of autoconf. It may work, but is not guaranteed to.
If you have problems, you may need to regenerate the build system entirely.
-To do so, use the procedure documented by the package, typically `autoreconf'.])])
+To do so, use the procedure documented by the package, typically 'autoreconf'.])])
-# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 2002-2012 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
-# serial 1
-
# AM_AUTOMAKE_VERSION(VERSION)
# ----------------------------
# Automake X.Y traces this macro to ensure aclocal.m4 has been
# generated from the m4 files accompanying Automake X.Y.
# (This private macro should not be called outside this file.)
AC_DEFUN([AM_AUTOMAKE_VERSION],
-[am__api_version='1.11'
+[am__api_version='1.12'
dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
dnl require some minimum version. Point them to the right macro.
-m4_if([$1], [1.11.6], [],
+m4_if([$1], [1.12.3], [],
[AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
])
@@ -54,24 +50,22 @@ m4_define([_AM_AUTOCONF_VERSION], [])
# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-[AM_AUTOMAKE_VERSION([1.11.6])dnl
+[AM_AUTOMAKE_VERSION([1.12.3])dnl
m4_ifndef([AC_AUTOCONF_VERSION],
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
# AM_AUX_DIR_EXPAND -*- Autoconf -*-
-# Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc.
+# Copyright (C) 2001-2012 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
-# serial 1
-
# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
-# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to
-# `$srcdir', `$srcdir/..', or `$srcdir/../..'.
+# $ac_aux_dir to '$srcdir/foo'. In other projects, it is set to
+# '$srcdir', '$srcdir/..', or '$srcdir/../..'.
#
# Of course, Automake must honor this variable whenever it calls a
# tool from the auxiliary directory. The problem is that $srcdir (and
@@ -90,7 +84,7 @@ _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
#
# The reason of the latter failure is that $top_srcdir and $ac_aux_dir
# are both prefixed by $srcdir. In an in-source build this is usually
-# harmless because $srcdir is `.', but things will broke when you
+# harmless because $srcdir is '.', but things will broke when you
# start a VPATH build or use an absolute $srcdir.
#
# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
@@ -116,22 +110,19 @@ am_aux_dir=`cd $ac_aux_dir && pwd`
# AM_CONDITIONAL -*- Autoconf -*-
-# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008
-# Free Software Foundation, Inc.
+# Copyright (C) 1997-2012 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
-# serial 9
-
# AM_CONDITIONAL(NAME, SHELL-CONDITION)
# -------------------------------------
# Define a conditional.
AC_DEFUN([AM_CONDITIONAL],
-[AC_PREREQ(2.52)dnl
- ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])],
- [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
+[AC_PREREQ([2.52])dnl
+ m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])],
+ [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
AC_SUBST([$1_TRUE])dnl
AC_SUBST([$1_FALSE])dnl
_AM_SUBST_NOTMAKE([$1_TRUE])dnl
@@ -150,16 +141,14 @@ AC_CONFIG_COMMANDS_PRE(
Usually this means the macro was only invoked conditionally.]])
fi])])
-# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009,
-# 2010, 2011 Free Software Foundation, Inc.
+# Copyright (C) 1999-2012 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
-# serial 12
-# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
+# There are a few dirty hacks below to avoid letting 'AC_PROG_CC' be
# written in clear, in which case automake, when reading aclocal.m4,
# will think it sees a *use*, and therefore will trigger all it's
# C support machinery. Also note that it means that autoscan, seeing
@@ -169,7 +158,7 @@ fi])])
# _AM_DEPENDENCIES(NAME)
# ----------------------
# See how the compiler implements dependency checking.
-# NAME is "CC", "CXX", "GCJ", or "OBJC".
+# NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC".
# We try a few techniques and use that to set a single cache variable.
#
# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
@@ -182,21 +171,22 @@ AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
AC_REQUIRE([AM_MAKE_INCLUDE])dnl
AC_REQUIRE([AM_DEP_TRACK])dnl
-ifelse([$1], CC, [depcc="$CC" am_compiler_list=],
- [$1], CXX, [depcc="$CXX" am_compiler_list=],
- [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
- [$1], UPC, [depcc="$UPC" am_compiler_list=],
- [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'],
- [depcc="$$1" am_compiler_list=])
+m4_if([$1], [CC], [depcc="$CC" am_compiler_list=],
+ [$1], [CXX], [depcc="$CXX" am_compiler_list=],
+ [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
+ [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'],
+ [$1], [UPC], [depcc="$UPC" am_compiler_list=],
+ [$1], [GCJ], [depcc="$GCJ" am_compiler_list='gcc3 gcc'],
+ [depcc="$$1" am_compiler_list=])
AC_CACHE_CHECK([dependency style of $depcc],
[am_cv_$1_dependencies_compiler_type],
[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
# We make a subdir and do the tests there. Otherwise we can end up
# making bogus files that we don't know about and never remove. For
# instance it was reported that on HP-UX the gcc test will end up
- # making a dummy file named `D' -- because `-MD' means `put the output
- # in D'.
+ # making a dummy file named 'D' -- because '-MD' means "put the output
+ # in D".
rm -rf conftest.dir
mkdir conftest.dir
# Copy depcomp to subdir because otherwise we won't find it if we're
@@ -236,16 +226,16 @@ AC_CACHE_CHECK([dependency style of $depcc],
: > sub/conftest.c
for i in 1 2 3 4 5 6; do
echo '#include "conftst'$i'.h"' >> sub/conftest.c
- # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
- # Solaris 8's {/usr,}/bin/sh.
- touch sub/conftst$i.h
+ # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
+ # Solaris 10 /bin/sh.
+ echo '/* dummy */' > sub/conftst$i.h
done
echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
- # We check with `-c' and `-o' for the sake of the "dashmstdout"
+ # We check with '-c' and '-o' for the sake of the "dashmstdout"
# mode. It turns out that the SunPro C++ compiler does not properly
- # handle `-M -o', and we need to detect this. Also, some Intel
- # versions had trouble with output in subdirs
+ # handle '-M -o', and we need to detect this. Also, some Intel
+ # versions had trouble with output in subdirs.
am__obj=sub/conftest.${OBJEXT-o}
am__minus_obj="-o $am__obj"
case $depmode in
@@ -254,16 +244,16 @@ AC_CACHE_CHECK([dependency style of $depcc],
test "$am__universal" = false || continue
;;
nosideeffect)
- # after this tag, mechanisms are not by side-effect, so they'll
- # only be used when explicitly requested
+ # After this tag, mechanisms are not by side-effect, so they'll
+ # only be used when explicitly requested.
if test "x$enable_dependency_tracking" = xyes; then
continue
else
break
fi
;;
msvc7 | msvc7msys | msvisualcpp | msvcmsys)
- # This compiler won't grok `-c -o', but also, the minuso test has
+ # This compiler won't grok '-c -o', but also, the minuso test has
# not run yet. These depmodes are late enough in the game, and
# so weak that their functioning should not be impacted.
am__obj=conftest.${OBJEXT-o}
@@ -311,7 +301,7 @@ AM_CONDITIONAL([am__fastdep$1], [
# AM_SET_DEPDIR
# -------------
# Choose a directory name for dependency files.
-# This macro is AC_REQUIREd in _AM_DEPENDENCIES
+# This macro is AC_REQUIREd in _AM_DEPENDENCIES.
AC_DEFUN([AM_SET_DEPDIR],
[AC_REQUIRE([AM_SET_LEADING_DOT])dnl
AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
@@ -321,9 +311,13 @@ AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
# AM_DEP_TRACK
# ------------
AC_DEFUN([AM_DEP_TRACK],
-[AC_ARG_ENABLE(dependency-tracking,
-[ --disable-dependency-tracking speeds up one-time build
- --enable-dependency-tracking do not reject slow dependency extractors])
+[AC_ARG_ENABLE([dependency-tracking], [dnl
+AS_HELP_STRING(
+ [--enable-dependency-tracking],
+ [do not reject slow dependency extractors])
+AS_HELP_STRING(
+ [--disable-dependency-tracking],
+ [speeds up one-time build])])
if test "x$enable_dependency_tracking" != xno; then
am_depcomp="$ac_aux_dir/depcomp"
AMDEPBACKSLASH='\'
@@ -338,14 +332,12 @@ _AM_SUBST_NOTMAKE([am__nodep])dnl
# Generate code to set up dependency tracking. -*- Autoconf -*-
-# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008
-# Free Software Foundation, Inc.
+# Copyright (C) 1999-2012 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
-#serial 5
# _AM_OUTPUT_DEPENDENCY_COMMANDS
# ------------------------------
@@ -364,7 +356,7 @@ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
# Strip MF so we end up with the name of the file.
mf=`echo "$mf" | sed -e 's/:.*$//'`
# Check whether this is an Automake generated Makefile or not.
- # We used to match only the files named `Makefile.in', but
+ # We used to match only the files named 'Makefile.in', but
# some people rename them; so instead we look at the file content.
# Grep'ing the first line is not enough: some people post-process
# each Makefile.in and add a new line on top of each file to say so.
@@ -376,21 +368,19 @@ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
continue
fi
# Extract the definition of DEPDIR, am__include, and am__quote
- # from the Makefile without running `make'.
+ # from the Makefile without running 'make'.
DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
test -z "$DEPDIR" && continue
am__include=`sed -n 's/^am__include = //p' < "$mf"`
test -z "am__include" && continue
am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
- # When using ansi2knr, U may be empty or an underscore; expand it
- U=`sed -n 's/^U = //p' < "$mf"`
# Find all dependency output files, they are included files with
# $(DEPDIR) in their names. We invoke sed twice because it is the
# simplest approach to changing $(DEPDIR) to its actual value in the
# expansion.
for file in `sed -n "
s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
- sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
+ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do
# Make sure the directory exists.
test -f "$dirpart/$file" && continue
fdir=`AS_DIRNAME(["$file"])`
@@ -408,7 +398,7 @@ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
# This macro should only be invoked once -- use via AC_REQUIRE.
#
# This code is only required when automatic dependency tracking
-# is enabled. FIXME. This creates each `.P' file that we will
+# is enabled. FIXME. This creates each '.P' file that we will
# need in order to bootstrap the dependency handling code.
AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
[AC_CONFIG_COMMANDS([depfiles],
@@ -418,15 +408,12 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
# Do all the work for Automake. -*- Autoconf -*-
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-# 2005, 2006, 2008, 2009 Free Software Foundation, Inc.
+# Copyright (C) 1996-2012 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
-# serial 16
-
# This macro actually does too much. Some checks are only needed if
# your package does certain things. But this isn't really a big deal.
@@ -471,31 +458,41 @@ AC_SUBST([CYGPATH_W])
# Define the identity of the package.
dnl Distinguish between old-style and new-style calls.
m4_ifval([$2],
-[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
+[AC_DIAGNOSE([obsolete],
+[$0: two- and three-arguments forms are deprecated. For more info, see:
+http://www.gnu.org/software/automake/manual/automake.html#Modernize-AM_INIT_AUTOMAKE-invocation])
+m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
AC_SUBST([PACKAGE], [$1])dnl
AC_SUBST([VERSION], [$2])],
[_AM_SET_OPTIONS([$1])dnl
dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT.
-m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,,
+m4_if(
+ m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]),
+ [ok:ok],,
[m4_fatal([AC_INIT should be called with package and version arguments])])dnl
AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
_AM_IF_OPTION([no-define],,
-[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
- AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl
+[AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package])
+ AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl
# Some tools Automake needs.
AC_REQUIRE([AM_SANITY_CHECK])dnl
AC_REQUIRE([AC_ARG_PROGRAM])dnl
-AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version})
-AM_MISSING_PROG(AUTOCONF, autoconf)
-AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version})
-AM_MISSING_PROG(AUTOHEADER, autoheader)
-AM_MISSING_PROG(MAKEINFO, makeinfo)
+AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}])
+AM_MISSING_PROG([AUTOCONF], [autoconf])
+AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}])
+AM_MISSING_PROG([AUTOHEADER], [autoheader])
+AM_MISSING_PROG([MAKEINFO], [makeinfo])
AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl
-AC_REQUIRE([AM_PROG_MKDIR_P])dnl
+AC_REQUIRE([AC_PROG_MKDIR_P])dnl
+# For better backward compatibility. To be removed once Automake 1.9.x
+# dies out for good. For more background, see:
+# <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
+# <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
+AC_SUBST([mkdir_p], ['$(MKDIR_P)'])
# We need awk for the "check" target. The system "awk" is bad on
# some platforms.
AC_REQUIRE([AC_PROG_AWK])dnl
@@ -506,28 +503,35 @@ _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
[_AM_PROG_TAR([v7])])])
_AM_IF_OPTION([no-dependencies],,
[AC_PROVIDE_IFELSE([AC_PROG_CC],
- [_AM_DEPENDENCIES(CC)],
- [define([AC_PROG_CC],
- defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl
+ [_AM_DEPENDENCIES([CC])],
+ [m4_define([AC_PROG_CC],
+ m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl
AC_PROVIDE_IFELSE([AC_PROG_CXX],
- [_AM_DEPENDENCIES(CXX)],
- [define([AC_PROG_CXX],
- defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
+ [_AM_DEPENDENCIES([CXX])],
+ [m4_define([AC_PROG_CXX],
+ m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl
AC_PROVIDE_IFELSE([AC_PROG_OBJC],
- [_AM_DEPENDENCIES(OBJC)],
- [define([AC_PROG_OBJC],
- defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl
+ [_AM_DEPENDENCIES([OBJC])],
+ [m4_define([AC_PROG_OBJC],
+ m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl
+dnl Support for Objective C++ was only introduced in Autoconf 2.65,
+dnl but we still cater to Autoconf 2.62.
+m4_ifdef([AC_PROG_OBJCXX],
+[AC_PROVIDE_IFELSE([AC_PROG_OBJCXX],
+ [_AM_DEPENDENCIES([OBJCXX])],
+ [m4_define([AC_PROG_OBJCXX],
+ m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])])dnl
])
_AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl
-dnl The `parallel-tests' driver may need to know about EXEEXT, so add the
-dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro
+dnl The 'parallel-tests' driver may need to know about EXEEXT, so add the
+dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro
dnl is hooked onto _AC_COMPILER_EXEEXT early, see below.
AC_CONFIG_COMMANDS_PRE(dnl
[m4_provide_if([_AM_COMPILER_EXEEXT],
[AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
])
-dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion. Do not
+dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not
dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further
dnl mangled by Autoconf and run in a shell conditional statement.
m4_define([_AC_COMPILER_EXEEXT],
@@ -555,15 +559,12 @@ for _am_header in $config_headers :; do
done
echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
-# Copyright (C) 2001, 2003, 2005, 2008, 2011 Free Software Foundation,
-# Inc.
+# Copyright (C) 2001-2012 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
-# serial 1
-
# AM_PROG_INSTALL_SH
# ------------------
# Define $install_sh.
@@ -577,16 +578,14 @@ if test x"${install_sh}" != xset; then
install_sh="\${SHELL} $am_aux_dir/install-sh"
esac
fi
-AC_SUBST(install_sh)])
+AC_SUBST([install_sh])])
-# Copyright (C) 2003, 2005 Free Software Foundation, Inc.
+# Copyright (C) 2003-2012 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
-# serial 2
-
# Check whether the underlying file-system supports filenames
# with a leading dot. For instance MS-DOS doesn't.
AC_DEFUN([AM_SET_LEADING_DOT],
@@ -602,14 +601,12 @@ AC_SUBST([am__leading_dot])])
# Check to see how 'make' treats includes. -*- Autoconf -*-
-# Copyright (C) 2001, 2002, 2003, 2005, 2009 Free Software Foundation, Inc.
+# Copyright (C) 2001-2012 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
-# serial 4
-
# AM_MAKE_INCLUDE()
# -----------------
# Check to see how make treats includes.
@@ -627,7 +624,7 @@ am__quote=
_am_result=none
# First try GNU make style include.
echo "include confinc" > confmf
-# Ignore all kinds of additional output from `make'.
+# Ignore all kinds of additional output from 'make'.
case `$am_make -s -f confmf 2> /dev/null` in #(
*the\ am__doit\ target*)
am__include=include
@@ -654,23 +651,19 @@ rm -f confinc confmf
# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
-# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008
-# Free Software Foundation, Inc.
+# Copyright (C) 1997-2012 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
-# serial 6
-
# AM_MISSING_PROG(NAME, PROGRAM)
# ------------------------------
AC_DEFUN([AM_MISSING_PROG],
[AC_REQUIRE([AM_MISSING_HAS_RUN])
$1=${$1-"${am_missing_run}$2"}
AC_SUBST($1)])
-
# AM_MISSING_HAS_RUN
# ------------------
# Define MISSING if not defined so far and test if it supports --run.
@@ -691,50 +684,18 @@ if eval "$MISSING --run true"; then
am_missing_run="$MISSING --run "
else
am_missing_run=
- AC_MSG_WARN([`missing' script is too old or missing])
+ AC_MSG_WARN(['missing' script is too old or missing])
fi
])
-# Copyright (C) 2003, 2004, 2005, 2006, 2011 Free Software Foundation,
-# Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# serial 1
-
-# AM_PROG_MKDIR_P
-# ---------------
-# Check for `mkdir -p'.
-AC_DEFUN([AM_PROG_MKDIR_P],
-[AC_PREREQ([2.60])dnl
-AC_REQUIRE([AC_PROG_MKDIR_P])dnl
-dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P,
-dnl while keeping a definition of mkdir_p for backward compatibility.
-dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile.
-dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of
-dnl Makefile.ins that do not define MKDIR_P, so we do our own
-dnl adjustment using top_builddir (which is defined more often than
-dnl MKDIR_P).
-AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl
-case $mkdir_p in
- [[\\/$]]* | ?:[[\\/]]*) ;;
- */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
-esac
-])
-
# Helper functions for option handling. -*- Autoconf -*-
-# Copyright (C) 2001, 2002, 2003, 2005, 2008, 2010 Free Software
-# Foundation, Inc.
+# Copyright (C) 2001-2012 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
-# serial 5
-
# _AM_MANGLE_OPTION(NAME)
# -----------------------
AC_DEFUN([_AM_MANGLE_OPTION],
@@ -744,7 +705,7 @@ AC_DEFUN([_AM_MANGLE_OPTION],
# --------------------
# Set option NAME. Presently that only means defining a flag for this option.
AC_DEFUN([_AM_SET_OPTION],
-[m4_define(_AM_MANGLE_OPTION([$1]), 1)])
+[m4_define(_AM_MANGLE_OPTION([$1]), [1])])
# _AM_SET_OPTIONS(OPTIONS)
# ------------------------
@@ -760,22 +721,16 @@ AC_DEFUN([_AM_IF_OPTION],
# Check to make sure that the build environment is sane. -*- Autoconf -*-
-# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008
-# Free Software Foundation, Inc.
+# Copyright (C) 1996-2012 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
-# serial 5
-
# AM_SANITY_CHECK
# ---------------
AC_DEFUN([AM_SANITY_CHECK],
[AC_MSG_CHECKING([whether build environment is sane])
-# Just in case
-sleep 1
-echo timestamp > conftest.file
# Reject unsafe characters in $srcdir or the absolute working directory
# name. Accept space and tab only in the latter.
am_lf='
@@ -786,32 +741,40 @@ case `pwd` in
esac
case $srcdir in
*[[\\\"\#\$\&\'\`$am_lf\ \ ]]*)
- AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);;
+ AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);;
esac
-# Do `set' in a subshell so we don't clobber the current shell's
+# Do 'set' in a subshell so we don't clobber the current shell's
# arguments. Must try -L first in case configure is actually a
# symlink; some systems play weird games with the mod time of symlinks
# (eg FreeBSD returns the mod time of the symlink's containing
# directory).
if (
- set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
- if test "$[*]" = "X"; then
- # -L didn't work.
- set X `ls -t "$srcdir/configure" conftest.file`
- fi
- rm -f conftest.file
- if test "$[*]" != "X $srcdir/configure conftest.file" \
- && test "$[*]" != "X conftest.file $srcdir/configure"; then
-
- # If neither matched, then we have a broken ls. This can happen
- # if, for instance, CONFIG_SHELL is bash and it inherits a
- # broken ls alias from the environment. This has actually
- # happened. Such a system could not be considered "sane".
- AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
-alias in your environment])
- fi
-
+ am_has_slept=no
+ for am_try in 1 2; do
+ echo "timestamp, slept: $am_has_slept" > conftest.file
+ set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
+ if test "$[*]" = "X"; then
+ # -L didn't work.
+ set X `ls -t "$srcdir/configure" conftest.file`
+ fi
+ if test "$[*]" != "X $srcdir/configure conftest.file" \
+ && test "$[*]" != "X conftest.file $srcdir/configure"; then
+
+ # If neither matched, then we have a broken ls. This can happen
+ # if, for instance, CONFIG_SHELL is bash and it inherits a
+ # broken ls alias from the environment. This has actually
+ # happened. Such a system could not be considered "sane".
+ AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
+ alias in your environment])
+ fi
+ if test "$[2]" = conftest.file || test $am_try -eq 2; then
+ break
+ fi
+ # Just in case.
+ sleep 1
+ am_has_slept=yes
+ done
test "$[2]" = conftest.file
)
then
@@ -821,46 +784,58 @@ else
AC_MSG_ERROR([newly created file is older than distributed files!
Check your system clock])
fi
-AC_MSG_RESULT(yes)])
+AC_MSG_RESULT([yes])
+# If we didn't sleep, we still need to ensure time stamps of config.status and
+# generated files are strictly newer.
+am_sleep_pid=
+if grep 'slept: no' conftest.file >/dev/null 2>&1; then
+ ( sleep 1 ) &
+ am_sleep_pid=$!
+fi
+AC_CONFIG_COMMANDS_PRE(
+ [AC_MSG_CHECKING([that generated files are newer than configure])
+ if test -n "$am_sleep_pid"; then
+ # Hide warnings about reused PIDs.
+ wait $am_sleep_pid 2>/dev/null
+ fi
+ AC_MSG_RESULT([done])])
+rm -f conftest.file
+])
-# Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc.
+# Copyright (C) 2001-2012 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
-# serial 1
-
# AM_PROG_INSTALL_STRIP
# ---------------------
-# One issue with vendor `install' (even GNU) is that you can't
+# One issue with vendor 'install' (even GNU) is that you can't
# specify the program used to strip binaries. This is especially
# annoying in cross-compiling environments, where the build's strip
# is unlikely to handle the host's binaries.
# Fortunately install-sh will honor a STRIPPROG variable, so we
-# always use install-sh in `make install-strip', and initialize
+# always use install-sh in "make install-strip", and initialize
# STRIPPROG with the value of the STRIP variable (set by the user).
AC_DEFUN([AM_PROG_INSTALL_STRIP],
[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
-# Installed binaries are usually stripped using `strip' when the user
-# run `make install-strip'. However `strip' might not be the right
+# Installed binaries are usually stripped using 'strip' when the user
+# run "make install-strip". However 'strip' might not be the right
# tool to use in cross-compilation environments, therefore Automake
-# will honor the `STRIP' environment variable to overrule this program.
-dnl Don't test for $cross_compiling = yes, because it might be `maybe'.
+# will honor the 'STRIP' environment variable to overrule this program.
+dnl Don't test for $cross_compiling = yes, because it might be 'maybe'.
if test "$cross_compiling" != no; then
AC_CHECK_TOOL([STRIP], [strip], :)
fi
INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
AC_SUBST([INSTALL_STRIP_PROGRAM])])
-# Copyright (C) 2006, 2008, 2010 Free Software Foundation, Inc.
+# Copyright (C) 2006-2012 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
-# serial 3
-
# _AM_SUBST_NOTMAKE(VARIABLE)
# ---------------------------
# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in.
@@ -874,18 +849,16 @@ AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
# Check how to create a tarball. -*- Autoconf -*-
-# Copyright (C) 2004, 2005, 2012 Free Software Foundation, Inc.
+# Copyright (C) 2004-2012 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
-# serial 2
-
# _AM_PROG_TAR(FORMAT)
# --------------------
# Check how to create a tarball in format FORMAT.
-# FORMAT should be one of `v7', `ustar', or `pax'.
+# FORMAT should be one of 'v7', 'ustar', or 'pax'.
#
# Substitute a variable $(am__tar) that is a command
# writing to stdout a FORMAT-tarball containing the directory
@@ -908,7 +881,7 @@ AC_MSG_CHECKING([how to create a $1 tar archive])
_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
_am_tools=${am_cv_prog_tar_$1-$_am_tools}
# Do not fold the above two line into one, because Tru64 sh and
-# Solaris sh will not grok spaces in the rhs of `-'.
+# Solaris sh will not grok spaces in the rhs of '-'.
for _am_tool in $_am_tools
do
case $_am_tool in
View
7 src/stdlib/Makefile.am
@@ -9,4 +9,9 @@ libkitestdlib_la_SOURCES = \
api.h \
System.cpp \
System.h
-libkitestdlib_la_LIBADD = System/libkitestdlib_System.la language/libkitestdlib_language.la
+libkitestdlib_la_LIBADD = System/libkitestdlib_System.la language/libkitestdlib_language.la
+
+nobase_dist_pkgdata_DATA = System/doc.kt System/doc/outputters.kt
+
+install-exec-hook:
+ mkdir -p $(DESTDIR)$(pkglibdir)/local-pkgs
View
485 src/stdlib/System/doc.kt
@@ -0,0 +1,485 @@
+##############################################################################
+# Copyright (c) 2008, Mooneer Salem
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+# * Neither the name of the Kite Language organization nor the
+# names of its contributors may be used to endorse or promote products
+# derived from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY MOONEER SALEM ``AS IS'' AND ANY
+# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+# DISCLAIMED. IN NO EVENT SHALL MOONEER SALEM BE LIABLE FOR ANY
+# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+##############################################################################
+
+/[The Kite documentation system.]/
+
+import "System.exceptions.NotImplemented";
+import "System.doc.outputters";
+
+class doc_node
+ /[Common interface for documentation nodes.]/
+[
+ property name /[Full name of current node]/,
+ property children /[Child nodes of the current node.]/,
+ property description /[Description of current node.]/,
+
+ construct(
+ name /[Name of node.]/
+ ) /[Construct new document node object.]/
+ [
+ this.children = [];
+ this.name = name;
+ ],
+
+ method output(
+ formatter /[The System.doc.outputters object to use.]/
+ ) /[Outputs documentation for the given node.]/
+ [
+ (make System.exceptions.NotImplemented())|throw;
+ ],
+
+ method add(
+ child /[Child node to add.]/
+ ) /[Add node to current node's list of children.]/
+ [
+ this.children << child;
+ ]
+];
+
+class method_argument_node from doc_node
+ /[Document node corresponding to a method argument.]/
+[
+ construct(
+ name /[Name of method argument.]/,
+ description /[Description of method argument.]/
+ ) /[Construct new method argument node.]/
+ [
+ base|__construct__(name);
+ this.description = description;
+ ]
+];
+
+class method_node from doc_node
+ /[Document node corresponding to a method.]/
+[
+ construct(
+ name /[Name of method.]/,
+ description /[Description of method.]/
+ ) /[Construct new method node.]/
+ [
+ base|__construct__(name);
+ this.description = description;
+ ],
+
+ method output(
+ formatter /[The System.doc.outputters object to use.]/
+ ) /[Outputs documentation for the given method.]/
+ [
+ property names;
+ property descrs;
+ property name_str;
+ property i;
+ property child;
+
+ names = [];
+ descrs = [];
+ name_str = this.name + "(";
+
+ i = 0;
+ while (i < this.children|count) [
+ child = this.children[i];
+ names|append(child.name);
+ descrs|append(child.description);
+ name_str = name_str + child.name;
+ i = i + 1;
+ decide [ (i < this.children|count) [ name_str = name_str + ", "; ] ];
+ ];
+ name_str = name_str + ")";
+
+ formatter|begin_list_entry(name_str, this.description);
+ i = 0;
+ while (i < names|count) [
+ formatter|sub_list_entry(names[i], descrs[i]);
+ i = i + 1;
+ ];
+ formatter|end_list_entry;
+ ]
+];
+
+class property_node from doc_node
+ /[Document node corresponding to a property.]/
+[
+ construct(
+ name /[Name of property.]/,
+ description /[Description of property.]/
+ ) /[Construct new method node.]/
+ [
+ base|__construct__(name);
+ this.description = description;
+ ],
+
+ method output(
+ formatter /[The System.doc.outputters object to use.]/
+ ) /[Outputs documentation for the given property.]/
+ [
+ formatter|begin_list_entry(this.name, this.description);
+ formatter|end_list_entry;
+ ]
+];
+
+class constructor_node from method_node
+ /[Document node corresponding to a constructor.]/
+[
+ construct(
+ name /[Name of class.]/,
+ description /[Description of constructor.]/
+ ) /[Construct new constructor node.]/
+ [
+ base|__construct__("make " + name, description);
+ ]
+];
+
+class destructor_node from method_node
+ /[Document node corresponding to a destructor.]/
+[
+ construct(
+ name /[Class name.]/,
+ description /[Description of destructor.]/
+ ) /[Construct new destructor node.]/
+ [
+ base|__construct__("destruct " + name);
+ this.description = description;
+ ]
+];
+
+class operator_node from method_node
+ /[Document node corresponding to an operator.]/
+[
+ construct(
+ name /[Name of operator.]/,
+ description /[Description of operator.]/
+ ) /[Construct new operator node.]/
+ [
+ base|__construct__("operator " + name);
+ this.description = description;
+ ]
+];
+
+class class_node from doc_node
+ /[Documentation node corresponding to a class.]/
+[
+ property inherits /[Name of inherited class]/,
+
+ construct(
+ name /[Full name of class]/,
+ inherits /[Inherited class name]/
+ ) /[Construct new class node.]/
+ [
+ base|__construct__(name);
+ this.inherits = inherits;
+ ],
+
+ method output(
+ formatter /[The System.doc.outputters object to use.]/
+ ) /[Outputs documentation for the given class.]/
+ [
+ property doc;
+ property i;
+
+ doc = formatter|new_document(name, "Class documentation: " + name);
+
+ doc|paragraph(description);
+
+ doc|section("Inherits");
+ decide [
+ (this.inherits is System.null) [
+ doc|paragraph("Nothing");
+ ],
+ true [
+ doc|paragraph(doc|link(this.inherits, doc|file_name(this.inherits)));
+ ]
+ ];
+
+ doc|section("Classes contained");
+ doc|begin_list;
+ i = 0;
+ while (i < this.children|count) [
+ child = this.children[i];
+ decide [
+ (child is System.doc.class_node) [
+ doc|begin_list_entry(
+ doc|link(child.name, doc|file_name(child.name)),
+ child.description
+ );
+ doc|end_list_entry;
+ child|output(formatter);
+ ]
+ ];
+ i = i + 1;
+ ];
+ doc|end_list;
+
+ doc|section("Constructors");
+ doc|begin_list;
+ i = 0;
+ while (i < this.children|count) [
+ child = this.children[i];
+ decide [
+ (child is System.doc.constructor_node) [
+ child|output(doc);
+ ]
+ ];
+ i = i + 1;
+ ];
+ doc|end_list;
+
+ doc|section("Destructor");
+ doc|begin_list;
+ i = 0;
+ while (i < this.children|count) [
+ child = this.children[i];
+ decide [
+ (child is System.doc.destructor_node) [
+ child|output(doc);
+ ]
+ ];
+ i = i + 1;
+ ];
+ doc|end_list;
+
+ doc|section("Operators");
+ doc|begin_list;
+ i = 0;
+ while (i < this.children|count) [
+ child = this.children[i];
+ decide [
+ (child is System.doc.operator_node) [
+ child|output(doc);
+ ]
+ ];
+ i = i + 1;
+ ];
+ doc|end_list;
+
+ doc|section("Properties");
+ doc|begin_list;
+ i = 0;
+ while (i < this.children|count) [
+ child = this.children[i];
+ decide [
+ (child is System.doc.property_node) [
+ child|output(doc);
+ ]
+ ];
+ i = i + 1;
+ ];
+ doc|end_list;
+
+ doc|section("Methods");
+ doc|begin_list;
+ i = 0;
+ while (i < this.children|count) [
+ child = this.children[i];
+ decide [
+ (child is System.doc.method_node) [
+ child|output(doc);
+ ]
+ ];
+ i = i + 1;
+ ];
+ doc|end_list;
+
+ doc|close;
+ ]
+];
+
+##############################################################################
+# Public interface to kdoc.
+##############################################################################
+import "System.collections";
+
+method generate_property(
+ cls /[Class object property belongs to.]/,
+ name /[Property name.]/
+) /[Generate documentation for a property.]/
+[
+ make System.doc.property_node(name, cls|get_property_string(name));
+];
+
+method generate_method_arguments(
+ method_doc /[System.doc.method_node object.]/,
+ method_obj /[System.method object corresponding to the method to generate arguments for.]/
+) /[Generate documentation for method arguments.]/
+[
+ property args;
+ property i;
+
+ args = method_obj|get_param_names;
+ i = 0;
+ while (i < args|count) [
+ method_doc|add(
+ make System.doc.method_argument_node(
+ args[i],
+ method_obj|get_param_doc(args[i])
+ )
+ );
+ i = i + 1;
+ ];
+];
+
+method generate_constructor(
+ class_name /[Name of class.]/,
+ method_obj /[System.method object corresponding to constructor.]/
+) /[Generate documentation for a constructor.]/
+[
+ property ret;
+
+ ret = make System.doc.constructor_node(class_name, method_obj|doc);
+ generate_method_arguments(ret, method_obj);
+ ret;
+];
+
+method generate_method(
+ method_name /[Name of method.]/,
+ method_obj /[System.method object corresponding to a method.]/
+) /[Generate documentation for a method.]/
+[
+ property ret;
+
+ ret = make System.doc.method_node(method_name, method_obj|doc);
+ generate_method_arguments(ret, method_obj);
+ ret;
+];
+
+method generate_destructor(
+ class_name /[Name of class.]/,
+ method_obj /[System.method object corresponding to destructor.]/
+) /[Generate documentation for a destructor.]/
+[
+ property ret;
+
+ ret = make System.doc.destructor_node(class_name, method_obj|doc);
+ ret;
+];
+
+method generate_operator(
+ op_name /[Name of operator.]/,
+ op_method /[System.method object corresponding to operator.]/
+) /[Generate documentation for an operator.]/
+[
+ property ret;
+
+ ret = make System.doc.operator_node(op_name, op_method|doc);
+ generate_method_arguments(ret, op_method);
+ ret;
+];
+
+method generate_doc_helper(
+ cls /[Class object to generate documentation for.]/,
+ done_list /[System.collections.binary_tree object with list of generated classes.]/
+) /[Helper method for generating documentation (not intended for public use)]/
+[
+ decide [
+ (done_list[cls|type] is System.null) [
+ property ret;
+ property tmp;
+ property i;
+ property j;
+ property tmp_method;
+
+ decide [
+ (cls|get_base_object is System.null) [
+ ret = make System.doc.class_node(cls|type, null);
+ ],
+ true [
+ ret = make System.doc.class_node(cls|type, cls|get_base_object|type);
+ ]
+ ];
+
+ ret.description = cls|doc;
+
+ done_list|set(cls|type, ret);
+
+ # Properties first.
+ tmp = cls|list_properties;
+ i = 0;
+ while (i < tmp|count) [
+ j = cls|get_property(tmp[i]);
+ decide [
+ (j|is_class) [
+ ret|add(generate_doc_helper(j, done_list));
+ ],
+ true [
+ ret|add(System.doc|generate_property(cls, tmp[i]));
+ ]
+ ];
+ i = i + 1;
+ ];
+
+ # Methods/constructors.
+ tmp = cls|list_methods;
+ i = 0;
+ while (i < tmp|count) [
+ j = 0;
+ tmp_method = tmp[i + 1];
+ while (j < tmp_method|count) [
+ decide [
+ (tmp[i] == "__construct__") [
+ ret|add(System.doc|generate_constructor(cls|type, cls|get_method(tmp[i], tmp_method[j])));
+ ],
+ true [
+ ret|add(System.doc|generate_method(tmp[i], cls|get_method(tmp[i], tmp_method[j])));
+ ]
+ ];
+ j = j + 1;
+ ];
+ i = i + 2;
+ ];
+
+ # Destructor
+ decide [
+ (not (cls|get_destructor is System.null)) [
+ ret|add(System.doc|generate_destructor(cls|type, cls|get_destructor));
+ ]
+ ];
+
+ # Operators
+ i = 0;
+ while (i < System.object.operators.number_of_operators) [
+ decide [
+ (not (cls|get_operator_method(i) is System.null)) [
+ ret|add(System.doc|generate_operator(cls.operators|to_str(i), cls|get_operator_method(i)));
+ ]
+ ];
+ i = i + 1;
+ ];
+
+ ret;
+ ],
+ true [ done_list[cls|type]; ]
+ ];
+];
+
+method generate_doc(
+ cls /[Class object to generate documentation for.]/
+) /[Generate documentation objects for the given class.]/
+[
+ property tmp;
+
+ tmp = make System.collections.binary_tree();
+ generate_doc_helper(cls, tmp);
+];
View
281 src/stdlib/System/doc/outputters.kt
@@ -0,0 +1,281 @@
+##############################################################################
+# Copyright (c) 2008, Mooneer Salem
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+# * Neither the name of the Kite Language organization nor the
+# names of its contributors may be used to endorse or promote products
+# derived from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY MOONEER SALEM ``AS IS'' AND ANY
+# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+# DISCLAIMED. IN NO EVENT SHALL MOONEER SALEM BE LIABLE FOR ANY
+# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+##############################################################################
+
+/[Output methods for the Kite documentation system.]/
+
+import "System.file";
+
+class base_outputter
+ /[Base outputter class.]/
+[
+ method new_document(
+ filename /[Document's filename.]/,
+ title /[Title of document.]/
+ ) /[Create new document.]/
+ [
+ (make System.exceptions.NotImplemented())|throw;
+ ]
+];
+
+class html_outputter from base_outputter
+ /[Output HTML documents to file.]/
+[
+ method new_document(
+ filename /[Document's filename.]/,
+ title /[Title of document.]/
+ ) /[Create new document.]/
+ [
+ (make System.doc.outputters.html_document(filename, title));
+ ]
+];
+
+class base_document
+ /[Base document class.]/
+[
+ method close()
+ /[Close document.]/
+ [
+ (make System.exceptions.NotImplemented())|throw;
+ ],
+
+ method file_name(
+ name /[Name of document]/
+ ) /[Return actual file name of document]/
+ [
+ (make System.exceptions.NotImplemented())|throw;
+ ],
+
+ method section(
+ name /[Name of section]/
+ ) /[Output section to file.]/
+ [
+ (make System.exceptions.NotImplemented())|throw;
+ ],
+
+ method link(
+ name /[Name of section]/,
+ location /[Location to link to]/
+ ) /[Output link to given location.]/
+ [
+ (make System.exceptions.NotImplemented())|throw;
+ ],
+
+ method subsection(
+ name /[Name of subsection]/
+ ) /[Output subsection to file.]/
+ [
+ (make System.exceptions.NotImplemented())|throw;
+ ],
+
+ method subsubsection(
+ name /[Name of sub-sub-section]/
+ ) /[Output sub-sub-section to file.]/
+ [
+ (make System.exceptions.NotImplemented())|throw;
+ ],
+
+ method begin_list()
+ /[Begin list of items.]/
+ [
+ (make System.exceptions.NotImplemented())|throw;
+ ],
+
+ method end_list()
+ /[End list of items.]/
+ [
+ (make System.exceptions.NotImplemented())|throw;
+ ],
+
+ method begin_list_entry(
+ name /[Name of list entry.]/,
+ description /[Description of list entry.]/
+ ) /[Begin list entry.]/
+ [
+ (make System.exceptions.NotImplemented())|throw;
+ ],
+
+ method end_list_entry()
+ /[End list entry.]/
+ [
+ (make System.exceptions.NotImplemented())|throw;
+ ],
+
+ method sub_list_entry(
+ name /[Name of sublist entry.]/,
+ description /[Description of sublist entry.]/
+ ) /[Begin sublist entry.]/
+ [
+ (make System.exceptions.NotImplemented())|throw;
+ ],
+
+ method paragraph(
+ text /[Text for paragraph.]/
+ ) /[Output paragraph of text.]/
+ [
+ (make System.exceptions.NotImplemented())|throw;
+ ]
+];
+
+class html_document from base_document
+ /[HTML document class.]/
+[
+ property filehandle /[HTML document's file object.]/,
+ global property header /[HTML header to include on generated documentation]/,
+ global property footer /[HTML footer to include on generated documentation]/,
+
+ this.header = "
+<html>
+<head>
+<title>%s</title>
+</head>
+<body>
+<h1>%s</h1>
+<hr noshade=\"noshade\" />
+
+",
+
+ this.footer = "
+</body>
+</html>
+",
+
+ construct(
+ filename /[File to create (excluding .html)]/,
+ title /[Title of document.]/
+ )
+ /[Create new HTML document.]/
+ [
+ this.filehandle = make System.file(filename + ".html", "w");
+ this.filehandle|write(
+ this.header|format([title, title])
+ );
+ ],
+
+ method close()
+ /[Close document.]/
+ [
+ this.filehandle|write(
+ this.footer
+ );
+ this.filehandle|close;
+ ],
+
+ method section(
+ name /[Name of section]/
+ ) /[Output section to file.]/
+ [
+ this.filehandle|write(
+ "<h2>%s</h2>\n"|format([name])
+ );
+ ],
+
+ method subsection(
+ name /[Name of subsection]/
+ ) /[Output subsection to file.]/
+ [
+ this.filehandle|write(
+ "<h3>%s</h3>\n"|format([name])
+ );
+ ],
+
+ method subsubsection(
+ name /[Name of sub-sub-section]/
+ ) /[Output sub-sub-section to file.]/
+ [
+ this.filehandle|write(
+ "<h4>%s</h4>\n"|format([name])
+ );
+ ],
+
+ method begin_list()
+ /[Begin list of items.]/
+ [
+ this.filehandle|write(
+ "<ul>\n"
+ );
+ ],
+
+ method end_list()
+ /[End list of items.]/
+ [
+ this.filehandle|write(
+ "</ul>\n"
+ );
+ ],
+
+ method begin_list_entry(
+ name /[Name of list entry.]/,
+ description /[Description of list entry.]/
+ ) /[Begin list entry.]/
+ [
+ this.filehandle|write(
+ "<li><code>%s</code>: %s<ul>\n"|format([name, description])
+ );
+ ],
+
+ method end_list_entry()
+ /[End list entry.]/
+ [
+ this.filehandle|write(
+ "</ul></li>\n"
+ );
+ ],
+
+ method sub_list_entry(
+ name /[Name of sublist entry.]/,
+ description /[Description of sublist entry.]/
+ ) /[Begin sublist entry.]/
+ [
+ this.filehandle|write(
+ "<li><code>%s</code>: %s</li>\n"|format([name, description])
+ );
+ ],
+
+ method paragraph(
+ text /[Text for paragraph.]/
+ ) /[Output paragraph of text.]/
+ [
+ this.filehandle|write(
+ "<p>%s</p>\n"|format([text])
+ );
+ ],
+
+ method link(
+ name /[Name of section]/,
+ location /[Location to link to]/
+ ) /[Output link to given location.]/
+ [
+ "<a href=\"%s\">%s</a>"|format([location, name]);
+ ],
+
+ method file_name(
+ name /[Name of document]/
+ ) /[Return actual file name of document]/
+ [
+ (name + ".html");
+ ]
+];
View
2 src/stdlib/System/vm/Makefile.am
@@ -1,4 +1,4 @@
-AM_CXXFLAGS = $(LLVM_CPPFLAGS) $(BOOST_CPPFLAGS) -fexceptions -frtti -I../../../ -DDATADIR='"$(datadir)"'
+AM_CXXFLAGS = $(LLVM_CPPFLAGS) $(BOOST_CPPFLAGS) -fexceptions -frtti -I../../../ -DDATADIR='"$(pkgdatadir)"'
AM_LDFLAGS = $(LLVM_LDFLAGS) $(BOOST_LDFLAGS) $(OPENSSL_LDFLAGS) $(BOOST_SYSTEM_LIB) $(BOOST_FILESYSTEM_LIB)
noinst_LTLIBRARIES = libkitestdlib_System_vm.la
View
2 src/stdlib/language/Makefile.am
@@ -1,6 +1,6 @@
SUBDIRS = kite
-AM_CXXFLAGS = $(LLVM_CPPFLAGS) $(BOOST_CPPFLAGS) -fexceptions -frtti -I../.. -DDATADIR='"$(datadir)"'
+AM_CXXFLAGS = $(LLVM_CPPFLAGS) $(BOOST_CPPFLAGS) -fexceptions -frtti -I../.. -DDATADIR='"$(pkgdatadir)"'
AM_LDFLAGS = $(LLVM_LDFLAGS) $(BOOST_LDFLAGS) $(OPENSSL_LDFLAGS) $(BOOST_SYSTEM_LIB) $(BOOST_FILESYSTEM_LIB)
noinst_LTLIBRARIES = libkitestdlib_language.la

0 comments on commit a78b6ac

Please sign in to comment.
Something went wrong with that request. Please try again.