File:  [LON-CAPA] / loncom / build / readme.html
Revision 1.8: download - view: text, annotated - select for diffs
Wed Jan 17 11:57:59 2001 UTC (23 years, 4 months ago) by harris41
Branches: MAIN
CVS tags: HEAD
entering in documentation for 'make build' command -Scott

    1: <H1>LON-CAPA Software Developer Instructions</H1>
    2: 
    3: <OL>
    4: <LI><A HREF="#Using_CVS">Using CVS</A>
    5: <UL>
    6: <LI><A HREF="#cvslog">Logging in and out (cvs login; cvs logout)</A>
    7: <LI><A HREF="#cvsget">Getting files (cvs update -d)</A>
    8: <LI><A HREF="#cvsupdate">Updating files (cvs update -d)</A>
    9: <LI><A HREF="#cvssave">Saving files (cvs commit)</A>
   10: <LI><A HREF="#cvsadd">Adding files (cvs add)</A>
   11: <LI><A HREF="#cvsadddir">Adding directories (cvs add/import)</A>
   12: <LI><A HREF="#cvsnotsure">What to do when you're not sure about your files (cvs update)</A>
   13: </UL>
   14: <LI><A HREF="#makeHTML">Viewing the software (make HTML)</A>
   15: <LI><A HREF="#makebuild">Compiling the software (make build)</A>
   16: <LI><A HREF="#loncapafiles">Adding/removing files from the LON-CAPA installation (doc/loncapafiles/loncapafiles.html)</A>
   17: <LI><A HREF="#configversusnonconfig">Configurable files versus non-configurable files</A>
   18: <LI><A HREF="#makeinstall">Updating the non-configurable files on your machine (make install)</A>
   19: <LI><A HREF="#makeconfiginstall">Updating the configurable files on your machine (make configinstall)</A>
   20: <LI><A HREF="#makeRPM">Building RPMs (make RPM)</A>
   21: </OL>
   22: 
   23: <OL>
   24: <A NAME="Using_CVS">
   25: <LI><H2>Using CVS</H2>
   26: <UL>
   27: <LI><A NAME="cvslog">
   28:     <H3>Using CVS: Logging in and out (cvs login; cvs logout)</H3>
   29: <LI><A NAME="cvsget">
   30:     <H3>Using CVS: Getting files (cvs update -d)</H3>
   31: <LI><A NAME="cvsupdate">
   32:     <H3>Using CVS: Updating files (cvs update -d)</H3>
   33: <LI><A NAME="cvssave">
   34:     <H3>Using CVS: Saving files (cvs commit)</H3>
   35: <LI><A NAME="cvsadd">
   36:     <H3>Using CVS: Adding files (cvs add)</H3>
   37: <LI><A NAME="cvsadddir">
   38:     <H3>Using CVS: Adding directories (cvs add/import)</H3>
   39: <LI><A NAME="cvsnotsure">
   40:     <H3>Using CVS: What to do when you're not sure about your files (cvs update)</H3>
   41: </UL>
   42: <LI><A NAME="makeHTML">
   43:     <H2>Viewing the software (make HTML)</H2>
   44: <STRONG>Commands</STRONG>
   45: <FONT COLOR="#008800">
   46: <PRE>
   47: cd loncom/build
   48: rm -Rf HTML <I>(or alternatively, "make clean")</I>
   49: make HTML
   50: cd HTML
   51: <I>(look at the index.html file with a web browser such as Netscape)</I>
   52: </PRE>
   53: </FONT>
   54: <STRONG>General description of what happens</STRONG>
   55: <P>
   56: This is the actual make target code.
   57: <FONT COLOR="#880000">
   58: <PRE>
   59: <!-- LONCAPA MAKETARGET=HTML START -->
   60: HTML:
   61:         install -d HTML
   62:         cp ../../doc/loncapafiles/*.gif HTML
   63:         perl parse.pl ../../doc/loncapafiles/loncapafiles.html HTML > HTML/index.html
   64: <!-- LONCAPA MAKETARGET=HTML END -->
   65: </PRE>
   66: </FONT>
   67: What basically happens is that specially marked-up data in the LON-CAPA
   68: cvs repository file <TT>doc/loncapafiles.html</TT> is parsed into a more
   69: viewable format by <TT>loncom/build/parse.pl</TT>.  The resulting
   70: file gives a very well organized view of all the files, directories,
   71: links, ownerships, permissions, and brief documentation of what each
   72: file does.
   73: </P>
   74: <LI><A NAME="makebuild">
   75:     <H2>Compiling the software (make build)</H2>
   76: <STRONG>Commands</STRONG>
   77: <FONT COLOR="#008800">
   78: <PRE>
   79: cd loncom/build
   80: rm -Rf HTML <I>(or alternatively, "make clean")</I>
   81: make HTML
   82: cd HTML
   83: <I>(look at the index.html file with a web browser such as Netscape)</I>
   84: </PRE>
   85: </FONT>
   86: <STRONG>General description of what happens</STRONG>
   87: <P>
   88: This is the actual make target code.
   89: <FONT COLOR="#880000">
   90: <PRE>
   91: <!-- LONCAPA MAKETARGET=HTML START -->
   92: build:
   93:         perl parse.pl ../../doc/loncapafiles/loncapafiles.html build > Makefile.build
   94:         make -f Makefile.build all
   95: <!-- LONCAPA MAKETARGET=HTML END -->
   96: </PRE>
   97: </FONT>
   98: <TT>loncom/build/parse.pl</TT> reads in all the build information out
   99: of <TT>doc/loncapafiles/loncapafiles.html.  A new Makefile named
  100: <TT>loncom/build/Makefile.build</TT> is dynamically constructed.
  101: This dynamically generated Makefile is then run to build/compile
  102: all the software targets from source.  This currently takes 10 minutes
  103: (depends on the speed of the machine you compile with).
  104: </P>
  105: <STRONG>Example</STRONG>
  106: <P>
  107: Here is information for one file <TT>tth.so</TT> provided in
  108: <TT>doc/loncapafiles/loncapafiles.html</TT>.
  109: <FONT COLOR="#660033">
  110: <PRE>
  111: <BR>&lt;METAGROUP&gt;
  112: <BR>&lt;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"&gt;
  113: <BR>&lt;DESCRIPTION&gt;
  114: <BR>shared library file for dynamic loading and unloading of TeX-to-HTML functionality
  115: <BR>&lt;/DESCRIPTION&gt;
  116: <BR>&lt;BUILD&gt;
  117: <BR>loncom/modules/TexConvert/tthperl/commands
  118: <BR>&lt;/BUILD&gt;
  119: <BR>&lt;DEPENDENCIES&gt;
  120: <BR>../tthdynamic/tthfunc.c
  121: <BR>../ttmdynamic/ttmfunc.c
  122: <BR>&lt;/DEPENDENCIES&gt;
  123: </PRE>
  124: </FONT>
  125: <TT>loncom/build/parse.pl</TT> sees the <B>BUILD</B> tags and sets up
  126: a dynamic file <TT>Makefile.build</TT> to run the command inside the
  127: <B>BUILD</B> tags (currently, <B>DEPENDENCIES</B> is not used for anything
  128: besides documentation).
  129: </P>
  130: <P>
  131: Here is an example of a dynamically generated <TT>Makefile.build</TT>
  132: that builds two LON-CAPA files (one of which is <TT>tth.so</TT>.
  133: <FONT COLOR="#660033">
  134: <PRE>
  135: all: ../homework/caparesponse/capa.so ../modules/TexConvert/tthperl/tth.so 
  136: 
  137: ../homework/caparesponse/capa.so:  ../homework/caparesponse/caparesponse.c ../ho
  138: mework/caparesponse/caparesponse.pm alwaysrun
  139:         cd ../homework/caparesponse/; sh ./commands
  140: 
  141: ../modules/TexConvert/tthperl/tth.so:  ../modules/TexConvert/tthperl/../tthdynam
  142: ic/tthfunc.c ../modules/TexConvert/tthperl/../ttmdynamic/ttmfunc.c
  143:         cd ../modules/TexConvert/tthperl/; sh ./commands
  144: 
  145: alwaysrun:
  146: </PRE>
  147: </FONT>
  148: </P>
  149: <LI><A NAME="loncapafiles">
  150:     <H2>Adding/removing files from the LON-CAPA installation (doc/loncapafiles/loncapafiles.html)</H2>
  151: <LI><A NAME="configversusnonconfig">
  152:     <H2>Configurable files versus non-configurable files</H2>
  153: <LI><A NAME="makeinstall">
  154:     <H2>Updating the non-configurable files on your machine (make install)</H2>
  155: <LI><A NAME="makeconfiginstall">
  156:     <H2>Updating the configurable files on your machine (make configinstall)</H2>
  157: <LI><A NAME="makeRPM">
  158:     <H2>Building RPMs (make RPM)</H2>
  159: </OL>

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>