--- loncom/build/readme.html 2001/01/17 11:07:26 1.3 +++ loncom/build/readme.html 2001/01/17 12:02:00 1.10 @@ -29,20 +29,120 @@
  • Using CVS: Getting files (cvs update -d)

  • -

    Updating files (cvs update -d)

    +

    Using CVS: Updating files (cvs update -d)

  • -

    Saving files (cvs commit)

    +

    Using CVS: Saving files (cvs commit)

  • -

    Adding files (cvs add)

    +

    Using CVS: Adding files (cvs add)

  • -

    Adding directories (cvs add/import)

    +

    Using CVS: Adding directories (cvs add/import)

  • -

    What to do when you're not sure about your files (cvs update)

    +

    Using CVS: What to do when you're not sure about your files (cvs update)

  • Viewing the software (make HTML)

    +Commands + +
    +cd loncom/build
    +rm -Rf HTML (or alternatively, "make clean")
    +make HTML
    +cd HTML
    +(look at the index.html file with a web browser such as Netscape)
    +
    +
    +General description of what happens +

    +This is the actual make target code. + +

    +
    +HTML:
    +        install -d HTML
    +        cp ../../doc/loncapafiles/*.gif HTML
    +        perl parse.pl ../../doc/loncapafiles/loncapafiles.html HTML > HTML/index.html
    +
    +
    + +What basically happens is that specially marked-up data in the LON-CAPA +cvs repository file doc/loncapafiles.html is parsed into a more +viewable format by loncom/build/parse.pl. The resulting +file gives a very well organized view of all the files, directories, +links, ownerships, permissions, and brief documentation of what each +file does. +

  • Compiling the software (make build)

    +Commands + +
    +cd loncom/build
    +make build
    +
    +
    +General description of what happens +

    +This is the actual make target code. + +

    +
    +build:
    +        perl parse.pl ../../doc/loncapafiles/loncapafiles.html build > Makefile.build
    +        make -f Makefile.build all
    +
    +
    + +loncom/build/parse.pl reads in all the build information out +of doc/loncapafiles/loncapafiles.html. A new Makefile named +loncom/build/Makefile.build is dynamically constructed. +This dynamically generated Makefile is then run to build/compile +all the software targets from source. This currently takes 10 minutes +(depends on the speed of the machine you compile with). +

    +Example +

    +Here is information for one file tth.so provided in +doc/loncapafiles/loncapafiles.html. + +

    +
    <METAGROUP> +
    <LONCAPA TYPE=LOCATION DIST="redhat6.2" SOURCE="loncom/modules/TexConvert/tthperl/tth.so" TARGET="usr/lib/perl5/site_perl/5.005/tth.so" CATEGORY="system file"> +
    <DESCRIPTION> +
    shared library file for dynamic loading and unloading of TeX-to-HTML functionality +
    </DESCRIPTION> +
    <BUILD> +
    loncom/modules/TexConvert/tthperl/commands +
    </BUILD> +
    <DEPENDENCIES> +
    ../tthdynamic/tthfunc.c +
    ../ttmdynamic/ttmfunc.c +
    </DEPENDENCIES> +
    + +loncom/build/parse.pl sees the BUILD tags and sets up +a dynamic file Makefile.build to run the command inside the +BUILD tags (currently, DEPENDENCIES is not used for anything +besides documentation). +

    +

    +Here is an example of a dynamically generated Makefile.build +that builds two LON-CAPA files (one of which is tth.so. + +

    +all: ../homework/caparesponse/capa.so ../modules/TexConvert/tthperl/tth.so 
    +
    +../homework/caparesponse/capa.so:  ../homework/caparesponse/caparesponse.c ../ho
    +mework/caparesponse/caparesponse.pm alwaysrun
    +        cd ../homework/caparesponse/; sh ./commands
    +
    +../modules/TexConvert/tthperl/tth.so:  ../modules/TexConvert/tthperl/../tthdynam
    +ic/tthfunc.c ../modules/TexConvert/tthperl/../ttmdynamic/ttmfunc.c
    +        cd ../modules/TexConvert/tthperl/; sh ./commands
    +
    +alwaysrun:
    +
    + +

  • Adding/removing files from the LON-CAPA installation (doc/loncapafiles/loncapafiles.html)