diff --git a/bin/install.pike b/bin/install.pike index 7c177d14fb922a8670d6da62fb3354fc1a04bb8d..3eabe8d74af5326e9b59e3e08244e55c40bb078d 100644 --- a/bin/install.pike +++ b/bin/install.pike @@ -389,6 +389,7 @@ string fakeroot(string s) vars->TMP_BINDIR, vars->BASEDIR, vars->MANDIR_SRC, + vars->DOCDIR_SRC, vars->TMP_LIBDIR, vars->fakeroot, }),regquote))); @@ -456,6 +457,7 @@ void do_export() TRANSLATE(vars->SRCDIR,tmpdir+"/src"), TRANSLATE(vars->TMP_BINDIR,tmpdir+"/bin"), TRANSLATE(vars->MANDIR_SRC,tmpdir+"/man"), + TRANSLATE(vars->DOCDIR_SRC,tmpdir+"/refdoc"), TRANSLATE(vars->TMP_LIBDIR,tmpdir+"/build/lib"), "unpack_master.pike" : tmpdir+"/build/master.pike", "":tmpdir+"/build", @@ -514,6 +516,7 @@ void do_export() RELAY(SRCDIR) RELAY(TMP_BINDIR) RELAY(MANDIR_SRC) + RELAY(DOCDIR_SRC) RELAY(BASEDIR) " TMP_BUILDDIR="+translate("", translator)+ (((vars->PIKE_MODULE_RELOC||"") != "")? " PIKE_MODULE_RELOC=1":"")+ @@ -599,6 +602,7 @@ done " TMP_BINDIR=\\\"bin\\\"\\\n" " TMP_BUILDDIR=\\\"build\\\"\\\n" " MANDIR_SRC=\\\"man\\\"\\\n" + " DOCDIR_SRC=\\\"doc\\\"\\\n" " PIKE_MODULE_RELOC=\\\"" + vars->PIKE_MODULE_RELOC + "\\\"\\\n" " $ARGS\"\n" @@ -999,6 +1003,7 @@ int pre_install(array(string) argv) mklink(getcwd(),export_base_name+".dir/build"); mklink(vars->TMP_BINDIR,export_base_name+".dir/bin"); mklink(vars->MANDIR_SRC,export_base_name+".dir/man"); + mklink(vars->DOCDIR_SRC,export_base_name+".dir/refdoc"); cd(export_base_name+".dir"); @@ -1007,6 +1012,7 @@ int pre_install(array(string) argv) vars->SRCDIR="src"; vars->TMP_BINDIR="bin"; vars->MANDIR_SRC="man"; + vars->DOCDIR_SRC="refdoc"; vars->TMP_BUILDDIR="build"; #endif @@ -1140,6 +1146,7 @@ void dump_modules() vars->SRCDIR, vars->TMP_BINDIR, vars->MANDIR_SRC, + vars->DOCDIR_SRC, vars->TMP_LIBDIR, vars->BASEDIR, vars->fakeroot, @@ -1336,6 +1343,9 @@ void do_install() // create a directory for extracted module documentation mkdirhier(combine_path(doc_prefix, "src", "extracted")); + // copy the documentation source + install_dir(vars->DOCDIR_SRC, combine_path(doc_prefix, "src"), 0); + foreach(({"install_module", "precompile.pike", "smartlink", "fixdepends.sh", "mktestsuite", "test_pike.pike"}), string f) install_file(combine_path(vars->TMP_BINDIR,f), @@ -1452,6 +1462,7 @@ int main(int argc, array(string) argv) if(vars->BASEDIR[-1]!='/') vars->BASEDIR += "/"; if(!vars->LIBDIR_SRC) vars->LIBDIR_SRC=vars->BASEDIR+"lib"; if(!vars->MANDIR_SRC) vars->MANDIR_SRC=vars->BASEDIR+"man"; + if(!vars->DOCDIR_SRC) vars->DOCDIR_SRC=vars->BASEDIR+"refdoc"; if(!vars->SRCDIR) vars->SRCDIR=vars->BASEDIR+"src"; } else if(vars->SRCDIR) { diff --git a/lib/modules/Tools.pmod/Standalone.pmod/module.pike b/lib/modules/Tools.pmod/Standalone.pmod/module.pike index 1861aab2b7f501366180ad0e68648beb1f6245b0..a5bbf041916162132a8914fcb591a38a264d976d 100644 --- a/lib/modules/Tools.pmod/Standalone.pmod/module.pike +++ b/lib/modules/Tools.pmod/Standalone.pmod/module.pike @@ -1,10 +1,10 @@ // -*- Pike -*- -// $Id: module.pike,v 1.20 2003/10/31 11:39:50 grubba Exp $ +// $Id: module.pike,v 1.21 2003/11/04 22:24:39 bill Exp $ #pike __REAL_VERSION__ -constant version = ("$Revision: 1.20 $"/" ")[1]; +constant version = ("$Revision: 1.21 $"/" ")[1]; constant description = "Pike module installer."; // Source directory @@ -27,6 +27,10 @@ string local_module_path="$$HOME/lib/pike/modules"; // we prefer the last element, because if there are more than one // master() puts the lib/modules path last. string system_module_path=master()->system_module_path[-1]; + +// where do we install the documentation? +string system_doc_path; + #endif string run_pike; @@ -130,6 +134,16 @@ void do_make(array(string) cmd) lmp="./plib/modules"; else lmp = local_module_path; + // we should try to find the core autodoc file + if(file_stat(combine_path(system_module_path, "../../doc/src/core_autodoc.xml"))) + { + system_doc_path=combine_path(system_module_path, "../../doc"); + } + else if(file_stat(combine_path(system_module_path, "../../../doc/pike/src/core_autodoc.xml"))) + { + system_doc_path=combine_path(system_module_path, "../../../doc/pike"); + } + array(string) makecmd=( ({make})+ do_split_quoted_string(make_flags)+ @@ -145,6 +159,8 @@ void do_make(array(string) cmd) "SRCDIR="+fix("$src"), "TMP_MODULE_BASE=.", "PIKE_EXTERNAL_MODULE=pike_external_module", + "CORE_AUTODOC_PATH=" + combine_path(system_doc_path, "src/core_autodoc.xml"), + "SYSTEM_DOC_PATH=" + system_doc_path, "SYSTEM_MODULE_PATH=" + system_module_path, "LOCAL_MODULE_PATH=" + lmp, "RUNPIKE="+run_pike, diff --git a/refdoc/Makefile b/refdoc/Makefile index a7a080177f87580aa14abb71ad5b13023871f418..34d55089d9498d53018b4bf7203901129f71a9b8 100644 --- a/refdoc/Makefile +++ b/refdoc/Makefile @@ -1,7 +1,7 @@ # # Main Makefile for extracting AutoDoc mk II to XML # -# $Id: Makefile,v 1.57 2003/11/04 21:34:15 bill Exp $ +# $Id: Makefile,v 1.58 2003/11/04 22:24:39 bill Exp $ # # Henrik Grubbstr�m 2001-02-02 # @@ -20,14 +20,14 @@ caudium.net: modref caudium_modref traditional modref: $(BUILDDIR)/modref.xml structure/modref.css structure/modref.html \ presentation/make_html.pike presentation/tree-split-autodoc.pike - @$(MAKE) PIKE="$(PIKE)" BUILDDIR="$(BUILDDIR)" low_modref + @$(MAKE) PIKE="$(PIKE)" BUILDDIR="$(BUILDDIR)" DESTDIR="$(DESTDIR)" low_modref low_modref: rm -rf modref || /bin/true @mkdir modref @cp structure/modref.css modref/style.css @$(PIKE) presentation/tree-split-autodoc.pike \ - $(BUILDDIR)/modref.xml structure/modref.html modref predef + $(BUILDDIR)/modref.xml structure/modref.html $(DESTDIR)modref predef @mkdir $(DESTDIR)modref/images cp $(BUILDDIR)/doc_build/images/* $(DESTDIR)modref/images @for file in pike_logo.gif next.gif prev.gif unit.gif \ @@ -66,11 +66,11 @@ low_one_page: @$(PIKE) presentation/make_html.pike --img= $(BUILDDIR)/onepage.xml traditional: traditional_manual $(BUILDDIR)/traditional.xml presentation/make_html.pike - @$(MAKE) PIKE="$(PIKE)" BUILDDIR="$(BUILDDIR)" low_traditional + @$(MAKE) PIKE="$(PIKE)" BUILDDIR="$(BUILDDIR)" DESTDIR="$(DESTDIR)" low_traditional low_traditional: cp $(BUILDDIR)/doc_build/images/* $(DESTDIR)traditional_manual/images/ - @$(PIKE) presentation/make_html.pike --img=images/ $(BUILDDIR)/traditional.xml + @$(PIKE) presentation/make_html.pike --dest=$(DESTDIR) --img=images/ $(BUILDDIR)/traditional.xml # Sub targets used by the above targets. diff --git a/refdoc/presentation/make_html.pike b/refdoc/presentation/make_html.pike index 135e1be7079101696ddca8374f68ac1e0f3cd9a3..3ade551d00bbf7d2f29a36a215433c5f162015f7 100644 --- a/refdoc/presentation/make_html.pike +++ b/refdoc/presentation/make_html.pike @@ -6,6 +6,7 @@ function resolve_reference; string image_path = "images/"; +string dest_path; mapping lay = ([ "docgroup" : "\n\n<hr clear='all' size='1' noshadow='noshadow' />\n<dl>", @@ -1115,13 +1116,28 @@ string layout_toploop(Node n) { switch(c->get_any_name()) { case "dir": + string cwd; + if(dest_path) + { + cwd=getcwd(); + cd(dest_path); + } Stdio.mkdirhier(c->get_attributes()->name); layout_toploop(c); + if(cwd) + cd(cwd); break; case "file": + if(dest_path) + { + cwd=getcwd(); + cd(dest_path); + } Stdio.write_file( c->get_attributes()->name, frame_html(layout_toploop(c)) ); + if(cwd) + cd(cwd); break; case "appendix": @@ -1149,6 +1165,10 @@ int main(int num, array args) { image_path = tmp; args -= ({ arg }); } + if(sscanf(arg, "--dest=%s", tmp) && tmp!="") { + dest_path = tmp; + args -= ({ arg }); + } if(arg=="--help") { write(#"make_html.pike [args] <input file> --img=<image path> diff --git a/src/Makefile.in b/src/Makefile.in index fd9122f5bf2455fd06ac1248c3e5037d13d37a74..4cd6dc100b8a0aebd8775396f4041f81ef8730b1 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -1,5 +1,5 @@ # -# $Id: Makefile.in,v 1.364 2003/11/04 16:41:52 bill Exp $ +# $Id: Makefile.in,v 1.365 2003/11/04 22:24:39 bill Exp $ # # This line is needed on some machines. @@ -26,6 +26,7 @@ DOCDIR = @DOCDIR@ # These are used during binary exports and installation. MANDIR_SRC = @MANDIR@ +DOCDIR_SRC = @DOCDIR@ BASEDIR = @BASEDIR@ # These are used by the files generated by fixdepends.sh @@ -401,7 +402,8 @@ install: pike tools autodoc.xml @$(RUNPIKE) $(TMP_BINDIR)/install.pike \ exec_prefix="$(exec_prefix)" lib_prefix="$(lib_prefix)" \ TMP_LIBDIR="$(TMP_LIBDIR)" LIBDIR_SRC="$(LIBDIR_SRC)" \ - SRCDIR="$(SRCDIR)" prefix="$(prefix)" MANDIR_SRC="$(MANDIR_SRC)" \ + SRCDIR="$(SRCDIR)" prefix="$(prefix)" DOCDIR_SRC="$(DOCDIR_SRC)" \ + MANDIR_SRC="$(MANDIR_SRC)" \ man_prefix="$(man_prefix)" pike_name=$(pike_name) \ fakeroot="$(buildroot)" PIKE_MODULE_RELOC="$(PIKE_MODULE_RELOC)" \ $(INSTALLARGS) @@ -410,7 +412,8 @@ install_interactive: pike tools autodoc.xml @$(RUNPIKE) $(TMP_BINDIR)/install.pike --interactive \ exec_prefix="$(exec_prefix)" prefix=$(prefix) \ TMP_LIBDIR="$(TMP_LIBDIR)" LIBDIR_SRC="$(LIBDIR_SRC)" \ - SRCDIR="$(SRCDIR)" MANDIR_SRC="$(MANDIR_SRC)" \ + SRCDIR="$(SRCDIR)" DOCDIR_SRC="$(DOCDIR_SRC)" \ + MANDIR_SRC="$(MANDIR_SRC)" \ fakeroot="$(buildroot)" PIKE_MODULE_RELOC="$(PIKE_MODULE_RELOC)" # tidy up a bit @@ -500,7 +503,8 @@ tinstall: master-stamp -rm -rf test-install $(RUNPIKE) $(TMP_BINDIR)/install.pike lib_prefix="$(lib_prefix)" \ TMP_LIBDIR="$(TMP_LIBDIR)" LIBDIR_SRC="$(LIBDIR_SRC)" \ - SRCDIR="$(SRCDIR)" MANDIR_SRC="$(MANDIR_SRC)" \ + SRCDIR="$(SRCDIR)" DOCDIR_SRC="$(DOCDIR_SRC)" \ + MANDIR_SRC="$(MANDIR_SRC)" \ man_prefix="$(man_prefix)" fakeroot="$(buildroot)" \ PIKE_MODULE_RELOC="$(PIKE_MODULE_RELOC)" pike_name="test-pike" \ prefix="./test-install" $(INSTALLARGS) @@ -508,7 +512,8 @@ tinstall: master-stamp just-tinstall: master-stamp $(RUNPIKE) $(TMP_BINDIR)/install.pike lib_prefix="$(lib_prefix)" \ TMP_LIBDIR="$(TMP_LIBDIR)" LIBDIR_SRC="$(LIBDIR_SRC)" \ - SRCDIR="$(SRCDIR)" MANDIR_SRC="$(MANDIR_SRC)" \ + SRCDIR="$(SRCDIR)" DOCDIR_SRC="$(DOCDIR_SRC)" \ + MANDIR_SRC="$(MANDIR_SRC)" \ man_prefix="$(man_prefix)" fakeroot="$(buildroot)" \ PIKE_MODULE_RELOC="$(PIKE_MODULE_RELOC)" pike_name="test-pike" \ prefix="./test-install" $(INSTALLARGS) @@ -697,7 +702,8 @@ bin_export: @$(RUNPIKE) $(TMP_BINDIR)/install.pike --export \ exec_prefix="$(exec_prefix)" lib_prefix="$(lib_prefix)" \ TMP_LIBDIR="$(TMP_LIBDIR)" LIBDIR_SRC="$(LIBDIR_SRC)" \ - SRCDIR="$(SRCDIR)" prefix="$(prefix)" MANDIR_SRC="$(MANDIR_SRC)" \ + SRCDIR="$(SRCDIR)" prefix="$(prefix)" DOCDIR_SRC="$(DOCDIR_SRC)" \ + MANDIR_SRC="$(MANDIR_SRC)" \ BASEDIR="$(BASEDIR)" man_prefix="$(man_prefix)" \ pike_name=$(pike_name) PIKE_MODULE_RELOC="$(PIKE_MODULE_RELOC)" @case " $(CC)" in \ diff --git a/src/modules/common_module_makefile.in b/src/modules/common_module_makefile.in index 13584626ee8d2033636c9f5f41ca37e8c6af67df..c908d872131377748560a2394df7244bead2cfac 100644 --- a/src/modules/common_module_makefile.in +++ b/src/modules/common_module_makefile.in @@ -1,5 +1,5 @@ # -# $Id: common_module_makefile.in,v 1.13 2003/11/04 00:06:48 bill Exp $ +# $Id: common_module_makefile.in,v 1.14 2003/11/04 22:24:39 bill Exp $ # # Contains stuff common to both dynamic_module_makefile and # static_module_makefile. @@ -108,7 +108,7 @@ module.pmod: Makefile $(MODULE_PMOD_IN) @echo "Making module.pmod" ; \ if [ "x$(MODULE_PMOD_IN)" = "x" ]; then \ echo >module.pmod '// Generated automatically by'; \ - echo >>module.pmod '// $$Id: common_module_makefile.in,v 1.13 2003/11/04 00:06:48 bill Exp $$'; \ + echo >>module.pmod '// $$Id: common_module_makefile.in,v 1.14 2003/11/04 22:24:39 bill Exp $$'; \ echo >>module.pmod '#pike __REAL_VERSION__'; \ echo >>module.pmod 'inherit $(MODULE_PROGRAM);'; \ else \ @@ -194,3 +194,9 @@ gdb_verify: testsuite $(PIKE_EXTERNAL_MODULE) extract_autodoc: $(PIKE_EXTERNAL_MODULE) plib/refdoc $(RUNPIKE) -x extract_autodoc --builddir=plib/refdoc --srcdir=plib/modules + +join_autodoc: extract_autodoc + $(RUNPIKE) -x join_autodoc --quiet --post-process "plib/autodoc.xml" "$(CORE_AUTODOC_PATH)" "plib/refdoc" + +refdoc: join_autodoc + cd $(SYSTEM_DOC_PATH)/src && $(MAKE) $(MAKE_FLAGS) DESTDIR="$(SYSTEM_DOC_PATH)" modref