Diff for /loncom/build/Makefile between versions 1.52 and 1.216

version 1.52, 2002/01/06 04:23:11 version 1.216, 2019/07/26 19:16:23
Line 1 Line 1
 # The LearningOnline Network with CAPA  # The LearningOnline Network with CAPA
   
 # Scott Harrison  
 # $Id$  # $Id$
   
 DIST="default"  # TYPICAL USAGE of this Makefile is primarily for two targets:
   # "make build" and "make install".
   # Many other targets and features are supported (see the initial
   # help targets).
   
   # ======================================= Default settings for Makefile options
   DISTPROBE=`perl ./distprobe`
   DIST=$(DISTPROBE)
 CATEGORY="development"  CATEGORY="development"
 SOURCE="../.."  SOURCE=../..
 TARGET=""  TARGET=""
   CURRSHELL=`echo $(SHELL)`
 all:   ifneq ('/bin/bash',${CURRSHELL})
   CURRSHELL=/bin/bash
   endif
   NORESTORECONF="0"
   HOSTNAME=""
   LAUNCH=| perl
   QUERYLAUNCH=> /tmp/loncapa_query.pl; perl /tmp/loncapa_query.pl
   OUTSTREAM=>
   SAVE=program.pl.$(TIMESTAMP)
   LAUNCHSAVE=$(OUTSTREAM) $(SAVE)
   METAMTARGET=""
   MTARGET=""
   VERSION=CVS_HEAD
   SHOWVERSION=$(VERSION)
   NEXTVERSION=2.12
   ifeq (CVS_HEAD,${VERSION})
   SHOWVERSION=$(NEXTVERSION).$(VERSION)
   endif
   #
   # The current working definition for "RELEASE" is: changes not in the software,
   # but in the operating system dependent packaging of the software.  Thus, the
   # generic tarball releases do not need to have a release number specified.
   RELEASE=1 # As a general rule for now, this is always being set to "1".
   DIRTARGET=loncapa-$(VERSION)
   LOCALAUTHPATH=/home/httpd/lib/perl
   
   # =============================================== Help targets for the Makefile
   # If 'make' is run without any arguments, the 'help' target is called since
   # it is the first target.
   help:
  @echo "*** You need to specify a valid target ***"   @echo "*** You need to specify a valid target ***"
  @echo "NOTE: You can specify options to your Makefile target."   @echo "To get a list of valid targets: \"make help_TARGETS\""
  @echo "(option) DIST can be redhat7.1, debian, redhat6.2, or default"   @echo "To get a list of valid options: \"make help_OPTIONS\""
  @echo "(option) CATEGORY can be runtime or development"   @echo " "
  @echo "(option) SOURCE is an absolute or relative directory path"   @echo "Typically invoked targets are:"
  @echo "(option) TARGET is an absolute or relative directory path"   @echo "    make build"
  @echo "(option) DIST can be redhat7.1, debian, redhat6.2, or default"   @echo "    make install"
  @echo "build: compile the CVS source tree"   @echo "    make test"
  @echo "install: install from a compiled CVS source tree to a "   @echo "    make clean"
  @echo "         specified TARGET destination on the filesystem"  
  @echo "test: test different parts of the LON-CAPA system (TEST_*)"  help_OPTIONS:
  @echo "TEST_lpml_scripts: make sure that the system can process "   @echo "* ADJUSTABLE OPTIONS *"
  @echo "                   the Linux Packaging Markup Language"   @echo "(option) DIST can be centosN (N = 5, 6 or 7), rhesN (N = 4, 5, 6, 7 or 8),"
    @echo "         scientificN (N = 5, 6 or 7), oracleN (N = 5, 6, or 7)"
    @echo "         or slesN (N = 9, 10, 11, 12 or 15), or debianN (N = 5 or 6)," 
    @echo "         or ubuntuN (N= 6, 8, 10, 12, 14, 16 or 18), or fedoraN (N = 1 .. 30),"
    @echo "         or suseN.M (N.M: 9.2 .. 13.2), or default."
    @echo "         It is unlikely you would ever need to specify this,"
    @echo "         as it is automatically probed for."
    @echo "(option) CATEGORY can be 'runtime' or 'development'; currently"
    @echo "         the 'development' setting is the most reliable;"
    @echo "         eventually, production machines should be using the"
    @echo "         'runtime' settings"
    @echo "(option) SOURCE is an absolute or relative directory path."
    @echo "         SOURCE corresponds to the root directory of the"
    @echo "         loncapa source release"
    @echo "(option) TARGET is an absolute or relative directory path."
    @echo "         This is where files will be installed on your system."
    @echo "         Typically, this should be set to nothing (which"
    @echo "         corresponds to the '/' root of the entire filesystem)."
    @echo "(option) NORESTORECONF, when set to a non-zero value, stops"
    @echo "         filesystem upgrades from overwriting existing "
    @echo "         configuration files.  Ordinarily, NORESTORECONF=0, "
    @echo "         because the existing configuration files are safely"
    @echo "         dealt with (or so one hopes... :) )."
    @echo "(option) HOSTNAME specifies the name of a remote server for"
    @echo "         which a NET_* Makefile target should be launched"
    @echo "(option) VERSION; especially useful for the 'tardist' target"
    @echo "         this tags the tarball file and internal directories"
    @echo "         with a specific version string (conventionally "
    @echo "         numeric)"
   
   help_TARGETS:
    @echo "*** RUNNING TESTS TO ENSURE SOLID PERFORMANCE ***"
    @echo "test: test different parts of the LON-CAPA system (TEST_*)."
    @echo "      Makefile-dependent processes as well as horizontal and"
    @echo "      vertical aspects of the LON-CAPA system architecture"
    @echo "      are all tested."
    @echo "TEST_lpml_scripts: make sure that the system can process"
    @echo "                   the Linux Packaging Markup Language."
    @echo "                   This is neither horizontal or vertical"
    @echo "                   testing.  The idea is to make sure that"
    @echo "                   the installation software itself works"
    @echo "                   as expected."
  @echo "TEST_system_dependencies: make sure that all needed system "   @echo "TEST_system_dependencies: make sure that all needed system "
  @echo "                          components are active and present "   @echo "                          components are active and present "
  @echo "                          on the server such as perl modules"   @echo "                          on the server such as perl modules"
  @echo "                          and the MySQL database"   @echo "                          and the MySQL database"
  @echo "TEST_web_layer: mimic a login and various system actions on "   @echo "                          (horizontal testing)"
    @echo "TEST_web_layer: mimic a login and various vertical actions on "
  @echo "                a LON-CAPA system"   @echo "                a LON-CAPA system"
    @echo "TEST_hosts_and_domain_tab: make sure that a "
    @echo "        loncapa/loncom/hosts.tab and loncapa/loncom/domain.tab"
    @echo "        file is specified for installation"
    @echo "TEST_html2ps: test for the presence of html2ps which is needed"
    @echo "              for making a PDF compilation for pdfdoc"
    @echo "*** GENERAL TARGETS SUCH AS 'build' AND 'install' ***"
    @echo "build: compile the source tree"
    @echo "buildflag: a semaphore that helps educate the user to run"
    @echo "           'make build' first before running 'make install'"
    @echo "configinstall: install configuration files and restore with"
    @echo "               prior information"
    @echo "install: install from a ***compiled*** source tree"
    @echo "         (see make build) to a specified TARGET destination"
    @echo "         on the filesystem (default setting is TARGET=/)."
    @echo "rawinstall: just install files, links and directories without"
    @echo "            any bells or whistles (e.g. double-checking"
    @echo "            configurations, fine-tuning webserver, etc.)"
    @echo "hosts_and_domain_tab: install the hosts.tab and domain.tab" 
    @echo "                      to the filesystem"
    @echo "webserverconf: fine-tune the web server configuration;"
    @echo "               make sure the proper 'Include' statements"
    @echo "               are appended to httpd.conf"
    @echo "vanillatar: generate top-level files such as README, UPDATE,"
    @echo "            CHECKRPMS, and TEST (needed by tardist)"
    @echo "tardist: build a tarball that will upgrade the software on a "
    @echo "         system"
    @echo "sanitycheck: probe for common errors and recommend fixes to"
    @echo "             the user"
    @echo "logcleanup: clean spurious logfile entries"
    @echo "clean_file_permissions: Remove erroneous keys from the  "
    @echo "    file_permissions.db"
    @echo "accesscount_seed: Migrate the access counting mechanism from "
    @echo "    nohist_reseval.db to nohist_accesscount.db."
    @echo "modify_config_files: Perform automatic update of the "
    @echo "    configuration files for yum and MySQL."
    @echo "langcheck: test to see if root bash and OS are using English."
    @echo "ntpcheck: test to see if ntp is installed and running."
    @echo "html_parser_check: test functionality of HTML::Parser."
    @echo "math_random_check: test functionality of Math::Random."
    @echo "cron_lpmlcheck: remove cron file /etc/cron.d/loncapa.lpml."
    @echo "chkconfig: test runlevels of httpd and loncontrol."
    @echo "rpmcheck: test to see if rpms known to confict are installed."
    @echo "wrap_setuid: put a C wrapper around setuid scripts."
           @echo "latex_fixup: regenerate ls-R database for the latex base."
    @echo "picins_check: check for picins.sty, retrieve and rebuild"
    @echo "             filename databases used by LaTeX"
    @echo "mimetex_version_check: check if mimetex.cgi version has changed,"
    @echo "                      if so remove files from mimetexcache."
    @echo "latex_fmtutil: run utility to maintain TeX format files system-wide."
    @echo "lcmathcomplex: set nvsize in LCMathComplex, if different from default."
    @echo "removenolongerused: check if there are files from previous
    @echo "                    LON-CAPA version; if so, prompt for removal."
    @echo "updatequery: solicit the user for machine configuration"
    @echo "             information; to be incorporated during an update"
    @echo "             procedure (via the UPDATE command)"
    @echo "postinstall: double-check things after installation"
    @echo "VERSION: tag the filesystem with version information inside"
    @echo "         /etc/loncapa-release and"
    @echo "         /home/httpd/html/lon-status/version.txt"
    @echo "aboutVERSION: place version information inside about.html"
    @echo "              and loncapa_apache.conf"
    @echo "postaboutVERSION: restore default version <!-- VERSION --> to"
    @echo "                  about.html and loncapa_apache.conf"
    @echo "*** Makefile.* TARGETS BUILT DYNAMICALLY FROM loncapafiles.lpml ***"
    @echo "Makefile.configinstall: generate a Makefile for configuration"
    @echo "                        files; built dynamically from"
    @echo "                        loncapafiles.lpml"
    @echo "Makefile.build: generate a Makefile for compiling"
    @echo "                files inside the source directory; "
    @echo "                Makefile.build is generated from"
    @echo "                loncapafiles.lpml"
    @echo "Makefile.install: generate a Makefile for installing"
    @echo "                  files; built dynamically from"
    @echo "                  loncapafiles.lpml"
    @echo "*** TARGETS FOR OPERATING ON FILESYSTEMS ACROSS THE NETWORK ***"
    @echo "lpmladm: coordinates username=lpmladm mediated secure shell"
    @echo "         processes; needed for the NET_* targets"
    @echo "NET_hosts_and_domain_tab: install the hosts.tab and domain.tab"
    @echo "                          to a filesystem elsewhere"
    @echo "                          on the network"
    @echo "NET_webserverconf: fine-tune the web server configuration on a"
    @echo "                   filesystem elsewhere on the network"
    @echo "NET_rawinstall: launch the rawinstall target on a filesystem"
    @echo "                elsewhere on the network"
    @echo "*** TARGETS FOR MAKING LISTS (MANIFESTS) OF LON-CAPA FILES ***"
    @echo "MANIFEST_all: generate a list of all files to be included in"
    @echo "              the distributed tarball"
    @echo "MANIFEST_cvs: essentially a list of all CVS/Entries files used"
    @echo "              for 'time-checking' intelligence"
    @echo "MANIFEST_lpml: a list of all LON-CAPA files to be installed,"
    @echo "               compile from, used as building software, and"
    @echo "               testing"
    @echo "MANIFEST_vanillatar: 'README'-type top-level files that a user"
    @echo "                     of the distributed tarball would first"
    @echo "                     look at and work with"
    @echo "*** STATUS REPORT TARGETS ***"
    @echo "warningnote: analyze the WARNINGS file and produce a synopsis"
    @echo "             and recommended action to the user"
  @echo "HTML: generate an HTML-formatted description of the LON-CAPA"   @echo "HTML: generate an HTML-formatted description of the LON-CAPA"
  @echo "      CVS files"   @echo "      source files"
  @echo "status: compare the TARGET filesystem with a compiled CVS "   @echo "status: compare the TARGET filesystem with a compiled loncapa "
  @echo "        source directory"   @echo "        source directory"
  @echo "statuspost: post the results of "make status" to "   @echo "statuspost: post the results of "make status" to "
  @echo "            TARGET/home/httpd/html/lon-status/filestatus.html"   @echo "            TARGET/home/httpd/html/lon-status/filestatus.html"
  @echo "rpmstatus: compare the rpms on a system to defined lists "   @echo "rpmstatus: compare the rpms on a system to defined lists "
  @echo "           CVS:doc/otherfiles/cd_rpms and "   @echo "           loncapa/doc/otherfiles/cd_rpms and "
  @echo "           CVS:doc/otherfiles/rpm_list.txt"   @echo "           loncapa/doc/otherfiles/rpm_list.txt"
  @echo "rpmstatuspost: post the results of "make rpmstatus" to "   @echo "rpmstatuspost: post the results of 'make rpmstatus' to "
  @echo "            TARGET/home/httpd/html/lon-status/rpmstatus.html"   @echo "            TARGET/home/httpd/html/lon-status/rpmstatus.html"
  @echo "cvsreport: look at the latest changes over the last week"   @echo "*** ALTERNATIVE PACKAGING TARGETS ***"
    @echo "RPM: build LON-CAPA-base RPM from loncapa source repository"
    @echo "     (still under development)"
    @echo "DPKG: build a loncapa Debian package from loncapa source"
    @echo "      repository (still under development)"
    @echo "base_rpm_file_list: create a file listing to be used for"
    @echo "                    generating an RPM software package"
    @echo "BinaryRoot: create a BinaryRoot directory to be used for"
    @echo "            generating an RPM software package"
    @echo "*** MASTER DOCUMENTATION TARGETS ***"
    @echo "doc: generate web-page documentation for install.lon-capa.org"
    @echo "     (and eventually for documentation on installed machines)"
    @echo "pdfdoc: make a PDF-formatted compilation of all installation"
    @echo "        documentation"
    @echo "*** KEEPING THINGS CLEAN ***"
    @echo "clean: remove any files that might (even by remote chance)"
    @echo "       interfere with rebuilding/recompiling software"
    @echo "reallyclean: remove all files that were generated during"
    @echo "             building or compilation of the software"
    @echo "uninstall: remove all directories that do not contain files"
    @echo "           from other software packages and that do not contain"
    @echo "           student and instructor data; NOTE THAT THIS IS"
    @echo "           INTERACTIVE--you will be given a final chance"
    @echo "           to look at what will and will not be deleted."
    @echo "           Still, be careful.  This is a very new target and is"
    @echo "           an alpha-level software feature for now."
    @echo "backup: rolls a tarball backup of all important student and "
    @echo "        instructor data (NOT YET IMPLEMENTED)"
    @echo "restore: reseeds a LON-CAPA server with tarball backups "
    @echo "         generated by \"make backup\" (NOT YET IMPLEMENTED)"
    @echo "*** AUXILIARY TESTS ***"
    @echo "localauth: tests to see if localauth exists or not and run"
    @echo "           appropriate tests"
    @echo "*** A HELPFUL DEPENDENCY ***"
    @echo "alwaysrun: blank target that is a dependency for targets"
    @echo "           that should \"always run\""
   
   # =========================== *** RUNNING TESTS TO ENSURE SOLID PERFORMANCE ***
   
 test: TEST_lpml_scripts TEST_system_dependencies TEST_web_layer  test: TEST_lpml_scripts TEST_system_dependencies TEST_web_layer
  @echo "ALL SYSTEM DEPENDENCY TESTS SUCCESSFUL"   @echo "ALL SYSTEM DEPENDENCY TESTS SUCCESSFUL"
Line 53  TEST_lpml_scripts: Line 265  TEST_lpml_scripts:
  cd ../test; perl filecomparetest.pl   cd ../test; perl filecomparetest.pl
   
 TEST_web_layer:  TEST_web_layer:
  @echo "Testing of web layers is not yet implemented."   @echo "TESTING WEB LAYER"
    cd weblayer_test; make
   
   TEST_hosts_tab:
    @echo "Testing hosts.tab"
    @if (test -e ../hosts.tab); then \
    echo "there is a defined link or file; assume okay"; \
    else echo "**** ERROR **** hosts.tab not defined!" && \
        echo -n "You need to do one of the following within your " && \
        echo "CVS repository (cd loncapa/loncom)" && \
        echo "   1) ln -s production_hosts.tab hosts.tab" && \
        echo "   2) ln -s development_hosts.tab hosts.tab" && \
        echo "or 3) ln -s rawhide_hosts.tab hosts.tab" && \
        echo "(you most likely want option #1, production_hosts.tab)" && \
        echo " and also one of the following within your " && \
        echo "CVS repository (cd loncapa/loncom)" && \
        echo "   1) ln -s production_dns_hosts.tab dns_hosts.tab" && \
        echo "   2) ln -s development_dns_hosts.tab dns_hosts.tab" && \
        echo "(you most likely want option #1, production_dns_hosts.tab)" && \
        exit 1; \
    fi
   
   TEST_domain_tab:
    @echo "Testing domain.tab"
    @if (test -e ../domain.tab); then \
    echo "there is a defined link or file; assume okay"; \
    else echo "**** ERROR **** domain.tab not defined!" && \
        echo -n "You need to do one of the following within your " && \
        echo "CVS repository (cd loncapa/loncom)" && \
        echo "   1) ln -s production_domain.tab domain.tab" && \
        echo "   2) ln -s development_domain.tab domain.tab" && \
        echo "or 3) ln -s rawhide_domain.tab domain.tab" && \
        echo "(you most likely want option #1, production_domain.tab)" && \
        echo " and also one of the following within your " && \
        echo "CVS repository (cd loncapa/loncom)" && \
        echo "   1) ln -s production_dns_domain.tab dns_domain.tab" && \
        echo "   2) ln -s development_dns_domain.tab dns_domain.tab" && \
        echo "(you most likely want option #1, production_dns_domain.tab)" && \
        exit 1; \
    fi
   
   TEST_html2ps:
    @if (test -e /usr/local/html2ps/bin/html2ps); then \
    echo "I can find html2ps; assume okay"; \
    else \
    echo "**** ERROR **** cannot find /usr/local/html2ps/bin/html2ps!" && \
           echo "Please visit http://www.tdb.uu.se/~jan/html2ps.html" && \
    exit 1; \
    fi
   
   # ======================= *** GENERAL TARGETS SUCH AS 'build' AND 'install' ***
   
   build: Makefile.build pod2html.sh pod2man.sh
    install -d $(SOURCE)/doc/man
    install -d $(SOURCE)/doc/scripts
    install -d $(SOURCE)/doc/lib/perl/Apache
    echo -n "" > WARNINGS
    make -f Makefile.build all
    echo '1' > buildflag
    make warningnote
   
   buildflag:
    @echo "**** ERROR **** You need to run 'make build' first" > WARNINGS
    make warningnote
    @need_to_run_make_build_first 2>/dev/null
   
   configinstall: Makefile.configinstall
    make -f Makefile.configinstall SOURCE="$(SOURCE)" TARGET="$(TARGET)" \
    configfiles
    if (test "0" = $(NORESTORECONF)); then \
    perl loncaparestoreconfigurations suffix .lpmlnew; fi
   
   install: buildflag VERSION TEST_hosts_tab TEST_domain_tab Makefile.install Makefile
    echo -n "" > WARNINGS
    make aboutVERSION
    make -f Makefile.install SOURCE="$(SOURCE)" TARGET="$(TARGET)" \
    directories
    make -f Makefile.install SOURCE="$(SOURCE)" TARGET="$(TARGET)" files
    make -f Makefile.install SOURCE="$(SOURCE)" TARGET="$(TARGET)" links
    make SOURCE="$(SOURCE)" TARGET="$(TARGET)" \
    NORESTORECONF="$(NORESTORECONF)" configinstall
    make postinstall
    make warningnote
   # @echo "You can now run 'make test' to see if your system is ready to go!"
   # @echo "NOTE THAT YOUR SYSTEM MUST HAVE MYSQL WITH A USER=\"www\" AND"
   # @echo -n "PASSWORD=\"localhostkey\" FOR www\@localhost"
   # @echo -n "(YOU MAY NEED TO REINITIALIZE YOUR MYSQL www\@localhost USER)"
   # @echo -n "Please see http://install.lon-capa.org/ for more information"
   
   rawinstall: VERSION Makefile.install Makefile
    echo -n "" > WARNINGS
    make -f Makefile.install SOURCE="$(SOURCE)" TARGET="$(TARGET)" \
    directories
    make -f Makefile.install SOURCE="$(SOURCE)" TARGET="$(TARGET)" files
    make -f Makefile.install SOURCE="$(SOURCE)" TARGET="$(TARGET)" links
    make SOURCE="$(SOURCE)" TARGET="$(TARGET)" \
    NORESTORECONF="$(NORESTORECONF)" configinstall
   
   hosts_and_domain_tab: TEST_hosts_tab TEST_domain_tab
    cat $(SOURCE)/doc/loncapafiles/loncapafiles.lpml | \
    perl xfml_parse.pl $(SOURCE)/doc/loncapafiles/valid_hosts.xfml | \
    perl lpml_parse.pl install $(CATEGORY) $(DIST) "$(SOURCE)" \
    "$(TARGET)" > Makefile.install
    make -f Makefile.install directories
    make -f Makefile.install files
    @echo "If hosts.tab or domain.tab has changed, restart httpd and loncontrol:"
    @echo "   /etc/rc.d/init.d/httpd restart"
    @echo "   /etc/rc.d/init.d/loncontrol restart"
   
   webserverconf:
    cat $(SOURCE)/doc/loncapafiles/webserver.piml | \
    perl piml_parse.pl $(CATEGORY) $(DIST) "$(TARGET)" $(LAUNCH) | \
    tee -a WARNINGS
   
   # ---------------- Top-level files such as README, UPDATE, CHECKRPMS, and TEST
   vanillatar:
    # --------------------------- Point UPDATE to the internal make process
    cp  $(SOURCE)/loncom/UPDATE $(SOURCE)/UPDATE
    # ----------------------------- Point TEST to the internal make process
    echo '#!/bin/sh' > $(SOURCE)/TEST
    echo 'cd loncom/build; make test' >> $(SOURCE)/TEST
    echo 'cd system_dependencies || cd loncom/build/system_dependencies; cp -v CPAN_STATUS_REPORT ../../../CPAN_STATUS_REPORT' >> $(SOURCE)/TEST
    # ----------------------------- Copy CHECKRPMS to the vanilla top-level
    cp -v $(SOURCE)/loncom/build/CHECKRPMS $(SOURCE)/CHECKRPMS
    # ----------------------- vanilla executables must indeed be executable
    chmod a+rx $(SOURCE)/UPDATE
    chmod a+rx $(SOURCE)/TEST
    chmod a+rx $(SOURCE)/CHECKRPMS
    # -------------------------------- Copy README to the vanilla top-level
    #cp -v $(SOURCE)/doc/shortest_path_redhat7.2.txt $(SOURCE)/README
   
   tardist:
    make MANIFEST_all
    make vanillatar
    # -------------------------------------------------------- Make tardist
    @cd $(SOURCE); \
    if (test -h $(DIRTARGET)); then \
    echo "$(DIRTARGET) link already defined; assume okay"; \
    else \
    ln -s . $(DIRTARGET); \
    fi
    make aboutVERSION
    cd $(SOURCE); \
    tar --no-recursion --numeric-owner --files-from MANIFEST \
    -h -czf $(DIRTARGET).tar.gz 2>tar_WARNINGS || [ "0" == "0" ]
    make postaboutVERSION
    cat $(SOURCE)/tar_WARNINGS | \
    xargs --replace=XXX echo '**** WARNING **** XXX' > WARNINGS
    rm -f $(SOURCE)/tar_WARNINGS
    make warningnote
   
   langcheck:
    cat $(SOURCE)/doc/loncapafiles/langcheck.piml | \
    perl piml_parse.pl $(CATEGORY) $(DIST) "$(TARGET)" $(LAUNCH) | \
    tee -a WARNINGS
   
   ntpcheck:
    cat $(SOURCE)/doc/loncapafiles/ntpcheck.piml | \
    perl piml_parse.pl $(CATEGORY) $(DIST) "$(TARGET)" $(LAUNCH) | \
    tee -a WARNINGS
   
   html_parser_check:
    cat $(SOURCE)/doc/loncapafiles/html_parser_check.piml | \
    perl piml_parse.pl $(CATEGORY) $(DIST) "$(TARGET)" $(LAUNCH) | \
    tee -a WARNINGS
   
   math_random_check:
    cat $(SOURCE)/doc/loncapafiles/math_random_check.piml | \
    perl piml_parse.pl $(CATEGORY) $(DIST) "$(TARGET)" $(LAUNCH) | \
    tee -a WARNINGS
   
   cron_lpmlcheck:
    cat $(SOURCE)/doc/loncapafiles/cron_lpmlcheck.piml | \
    perl piml_parse.pl $(CATEGORY) $(DIST) "$(TARGET)" $(LAUNCH) | \
    tee -a WARNINGS
   
   chkconfig:
    cat $(SOURCE)/doc/loncapafiles/chkconfig.piml | \
    perl piml_parse.pl $(CATEGORY) $(DIST) "$(TARGET)" $(LAUNCH) | \
    tee -a WARNINGS
   
   rpmcheck:
    cat $(SOURCE)/doc/loncapafiles/rpmcheck.piml | \
    perl piml_parse.pl $(CATEGORY) $(DIST) "$(TARGET)" $(LAUNCH) | \
    tee -a WARNINGS
   
   sanitycheck:
    cat $(SOURCE)/doc/loncapafiles/sanitycheck.piml | \
    perl piml_parse.pl $(CATEGORY) $(DIST) "$(TARGET)" $(LAUNCH) | \
    tee -a WARNINGS
   
   logcleanup:
    cat $(SOURCE)/doc/loncapafiles/logcleanup.piml | \
    perl piml_parse.pl $(CATEGORY) $(DIST) "$(TARGET)" $(LAUNCH) | \
    tee -a WARNINGS
   
   updatequery:
    cat $(SOURCE)/doc/loncapafiles/updatequery.piml | \
    perl piml_parse.pl $(CATEGORY) $(DIST) "$(TARGET)" $(QUERYLAUNCH)
   
   run_searchcat:
    cat $(SOURCE)/doc/loncapafiles/run_searchcat.piml | \
    perl piml_parse.pl $(CATEGORY) $(DIST) "$(TARGET)" $(QUERYLAUNCH)
   
   clean_file_permissions:
    cat $(SOURCE)/doc/loncapafiles/clean_file_permissions.piml | \
    perl piml_parse.pl $(CATEGORY) $(DIST) "$(TARGET)" $(LAUNCH) | \
    tee -a WARNINGS
   
   accesscount_seed:
    cat $(SOURCE)/doc/loncapafiles/accesscount_seed.piml | \
    perl piml_parse.pl $(CATEGORY) $(DIST) "$(TARGET)" $(LAUNCH) | \
    tee -a WARNINGS
   
   modify_config_files:
    cat $(SOURCE)/doc/loncapafiles/modify_config_files.piml | \
    perl piml_parse.pl $(CATEGORY) $(DIST) "$(TARGET)" $(LAUNCH) | \
    tee -a WARNINGS
   
   reseval_fixup:
    cat $(SOURCE)/doc/loncapafiles/reseval_fixup.piml | \
    perl piml_parse.pl $(CATEGORY) $(DIST) "$(TARGET)" $(LAUNCH) | \
    tee -a WARNINGS
   
   update_queue_slots:
    cat $(SOURCE)/doc/loncapafiles/update_queue_slots.piml | \
    perl piml_parse.pl $(CATEGORY) $(DIST) "$(TARGET)" $(LAUNCH) | \
    tee -a WARNINGS
   
   clearoutoldspreadsheetcache:
    cat $(SOURCE)/doc/loncapafiles/clearoutoldspreadsheetcache.piml | \
    perl piml_parse.pl $(CATEGORY) $(DIST) "$(TARGET)" $(LAUNCH) | \
    tee -a WARNINGS
   
   sendmail_fix:
    cat $(SOURCE)/doc/loncapafiles/sendmail_fix.piml | \
    perl piml_parse.pl $(CATEGORY) $(DIST) "$(TARGET)" $(LAUNCH) | \
    tee -a WARNINGS
   
   ownership_fix:
    cat $(SOURCE)/doc/loncapafiles/ownership_fix.piml | \
    perl piml_parse.pl $(CATEGORY) $(DIST) "$(TARGET)" $(LAUNCH) | \
    tee -a WARNINGS
   
   wrap_setuid:
    cat $(SOURCE)/doc/loncapafiles/wrap_setuid.piml | \
    perl piml_parse.pl $(CATEGORY) $(DIST) "$(TARGET)" $(LAUNCH) | \
    tee -a WARNINGS
   
   latex_fixup:
    cat $(SOURCE)/doc/loncapafiles/latex_fixup.piml | \
           perl piml_parse.pl $(CATEGORY) $(DIST) "$(TARGET)" $(LAUNCH) | \
           tee -a WARNINGS
   
   picins_check:
    cat $(SOURCE)/doc/loncapafiles/picins_check.piml | \
    perl piml_parse.pl $(CATEGORY) $(DIST) "$(TARGET)" $(LAUNCH) | \
    tee -a WARNINGS
   
   mimetex_version_check:
    cat $(SOURCE)/doc/loncapafiles/mimetex_version_check.piml | \
    perl piml_parse.pl  $(CATEGORY) $(DIST) "$(TARGET)" $(LAUNCH) | \
    tee -a WARNINGS
   
   verify_domconfiguser:
    cat $(SOURCE)/doc/loncapafiles/verify_domconfiguser.piml | \
    perl piml_parse.pl  $(CATEGORY) $(DIST) "$(TARGET)" $(LAUNCH) | \
    tee -a WARNINGS
   
   latex_fmtutil:
    cat $(SOURCE)/doc/loncapafiles/latex_fmtutil.piml | \
    perl piml_parse.pl  $(CATEGORY) $(DIST) "$(TARGET)" $(LAUNCH) | \
    tee -a WARNINGS
   
   lcmathcomplex:
    cat $(SOURCE)/doc/loncapafiles/lcmathcomplex.piml | \
           perl piml_parse.pl  $(CATEGORY) $(DIST) "$(TARGET)" $(LAUNCH) | \
           tee -a WARNINGS
   
   removenolongerused:
    cat $(SOURCE)/doc/loncapafiles/removenolongerused.piml | \
    perl piml_parse.pl  $(CATEGORY) $(DIST) "$(TARGET)" $(QUERYLAUNCH)
   
   postinstall:
    make postaboutVERSION
    make webserverconf
    make reseval_fixup
    make clean_file_permissions
    make accesscount_seed
    make update_queue_slots
    make modify_config_files
    make clearoutoldspreadsheetcache
    make langcheck
    make chkconfig
    make rpmcheck
    make ntpcheck
    make html_parser_check
    make cron_lpmlcheck
    make sanitycheck
    make logcleanup
    make sendmail_fix
    make wrap_setuid
    make latex_fixup
    make picins_check
    make mimetex_version_check
    make verify_domconfiguser
    make latex_fmtutil
    make lcmathcomplex
    sed -i "s/\x08\x08*/.../g" WARNINGS
   VERSION:
    install -d $(TARGET)/etc
    if (test -e /etc/loncapa-release); then \
    cp -p -v /etc/loncapa-release /etc/loncapa-release.prev; \
    fi
    echo -n "LON-CAPA release $(VERSION)-" > $(TARGET)/etc/loncapa-release
    date +"%Y%m%d" >> $(TARGET)/etc/loncapa-release
    install -d $(TARGET)/home/httpd/html/lon-status
    echo -n "$(VERSION)-" > $(TARGET)/home/httpd/html/lon-status/version.txt
    date +"%Y%m%d" >> $(TARGET)/home/httpd/html/lon-status/version.txt
   
   aboutVERSION:
    cp -p -v $(SOURCE)/loncom/license/about.html \
    $(SOURCE)/loncom/license/about.html.orig
    cat $(SOURCE)/loncom/license/about.html | \
    perl -e '$$d=`date +"%Y%m%d%H"`;chomp($$d);while(<>){s/(\<\!\-\- VERSION \-\-\>|\d+\.\d+\.CVS_HEAD\-\d{10})/$(SHOWVERSION)-$$d/; print;}' > \
    $(SOURCE)/loncom/license/about.html.new
    mv -v $(SOURCE)/loncom/license/about.html.new \
    $(SOURCE)/loncom/license/about.html
    touch --date="$(shell echo `perl getcvsdate.pl \
    $(SOURCE)/loncom/license/CVS/Entries about.html`)" \
    $(SOURCE)/loncom/license/about.html
    cp -p -v $(SOURCE)/loncom/loncapa_apache.conf \
    $(SOURCE)/loncom/loncapa_apache.conf.orig
    cat $(SOURCE)/loncom/loncapa_apache.conf | \
    perl -e '$$d=`date +"%Y%m%d%H"`;chomp($$d);while(<>){s/(\<\!\-\- VERSION \-\-\>|\d+\.\d+\.CVS_HEAD\-\d{10})/$(SHOWVERSION)-$$d/; print;}' > \
    $(SOURCE)/loncom/loncapa_apache.conf.new
    mv -v $(SOURCE)/loncom/loncapa_apache.conf.new \
    $(SOURCE)/loncom/loncapa_apache.conf
    touch --date="$(shell echo `perl getcvsdate.pl \
    $(SOURCE)/loncom/CVS/Entries loncapa_apache.conf`)" \
    $(SOURCE)/loncom/loncapa_apache.conf
   
   postaboutVERSION:
    if (test -e $(SOURCE)/loncom/license/about.html.orig) && \
    (diff $(SOURCE)/loncom/license/about.html.orig \
    $(SOURCE)/loncom/license/about.html > /dev/null); then \
    mv -v $(SOURCE)/loncom/license/about.html.orig \
    $(SOURCE)/loncom/license/about.html; \
    elif (test -e $(SOURCE)/loncom/license/about.html.orig) && \
    !(diff $(SOURCE)/loncom/license/about.html.orig \
    $(SOURCE)/loncom/license/about.html > /dev/null); then \
    rm -f $(SOURCE)/loncom/license/about.html.orig; \
    fi
    touch --date="$(shell echo `perl getcvsdate.pl \
    $(SOURCE)/loncom/license/CVS/Entries about.html`)" \
    $(SOURCE)/loncom/license/about.html
    if (test -e $(SOURCE)/loncom/loncapa_apache.conf.orig) && \
    (diff $(SOURCE)/loncom/loncapa_apache.conf.orig \
    $(SOURCE)/loncom/loncapa_apache.conf > /dev/null); then \
    mv -v $(SOURCE)/loncom/loncapa_apache.conf.orig \
    $(SOURCE)/loncom/loncapa_apache.conf; \
    elif (test -e $(SOURCE)/loncom/loncapa_apache.conf.orig) && \
    !(diff $(SOURCE)/loncom/loncapa_apache.conf.orig \
    $(SOURCE)/loncom/loncapa_apache.conf > /dev/null); then \
    rm -f $(SOURCE)/loncom/loncapa_apache.conf.orig; \
    fi
    touch --date="$(shell echo `perl getcvsdate.pl \
    $(SOURCE)/loncom/CVS/Entries loncapa_apache.conf`)" \
    $(SOURCE)/loncom/loncapa_apache.conf
   
   # ========= *** Makefile.* TARGETS BUILT DYNAMICALLY FROM loncapafiles.lpml ***
   
   Makefile.configinstall: $(SOURCE)/doc/loncapafiles/loncapafiles.lpml \
                           lpml_parse.pl
    cat $(SOURCE)/doc/loncapafiles/loncapafiles.lpml | \
    perl lpml_parse.pl configinstall $(CATEGORY) $(DIST) "$(SOURCE)" \
    "$(TARGET)" > Makefile.configinstall
   
   Makefile.build: $(SOURCE)/doc/loncapafiles/loncapafiles.lpml lpml_parse.pl
    cat $(SOURCE)/doc/loncapafiles/loncapafiles.lpml | \
    perl lpml_parse.pl build $(CATEGORY) $(DIST) "$(SOURCE)" "$(TARGET)" \
    "$(CURRSHELL)" > Makefile.build
   
   Makefile.install: alwaysrun
    cat $(SOURCE)/doc/loncapafiles/loncapafiles.lpml | \
    perl lpml_parse.pl install $(CATEGORY) $(DIST) "$(SOURCE)" \
    "$(TARGET)" > Makefile.install
   
   # ============= *** TARGETS FOR OPERATING ON FILESYSTEMS ACROSS THE NETWORK ***
   
   lpmladm:
    @if (test $(METAMTARGET) = "TRANSPORT"); then \
    echo "Transporting to $(HOSTNAME)"; \
    sudo make DIST=$(DIST) CATEGORY=$(CATEGORY) \
    SOURCE="$(SOURCE)" \
    TARGET="lpmladm.$(TIMESTAMP)" \
    NORESTORECONF="$(NORESTORECONF)" "$(MTARGET)"; \
    cd lpmladm.$(TIMESTAMP); \
    sudo tar czvf ../tarball$(TIMESTAMP).tar.gz .; \
    cd ..; scp tarball$(TIMESTAMP).tar.gz \
    lpmladm@$(HOSTNAME):~/tarball$(TIMESTAMP).tar.gz; \
    ssh lpmladm@$(HOSTNAME) sudo mv tarball$(TIMESTAMP).tar.gz /; \
    ssh lpmladm@$(HOSTNAME) sudo tar -x -z -v -C / \
    -p --same-owner -f \
    /tarball$(TIMESTAMP).tar.gz; \
    ssh lpmladm@$(HOSTNAME) sudo rm -f \
    /tarball$(TIMESTAMP).tar.gz; \
    elif (test $(METAMTARGET) = "LAUNCH"); then \
    echo "Launching process on $(HOSTNAME)"; \
    LAUNCHSAVE=$(OUTSTREAM) $(SAVE); \
    make DIST=$(DIST) CATEGORY=$(CATEGORY) SOURCE="$(SOURCE)" \
    TARGET="$(TARGET)" NORESTORECONF="$(NORESTORECONF)" \
    LAUNCH="$(LAUNCHSAVE)" "$(MTARGET)"; \
    scp $(SAVE) lpmladm@$(HOSTNAME):~/$(SAVE); \
    ssh lpmladm@$(HOSTNAME) sudo perl $(SAVE); \
    ssh lpmladm@$(HOSTNAME) sudo rm -f $(SAVE); \
    else \
    echo "**** ERROR **** Incorrect METAMTARGET"; \
    fi
   
   NET_hosts_and_domain_tab:
    make TIMESTAMP=`date +"%s"` METAMTARGET="TRANSPORT" \
    MTARGET="hosts_and_domain_tab" HOSTNAME="$(HOSTNAME)" lpmladm
   
   NET_webserverconf:
    make TIMESTAMP=`date +"%s"` METAMTARGET="LAUNCH" \
    MTARGET="webserverconf" HOSTNAME="$(HOSTNAME)" lpmladm
   
   NET_rawinstall:
    make TIMESTAMP=`date +"%s"` METAMTARGET="TRANSPORT" \
    MTARGET="rawinstall" HOSTNAME="$(HOSTNAME)" lpmladm
   
   # ============== *** TARGETS FOR MAKING LISTS (MANIFESTS) OF LON-CAPA FILES ***
   
   MANIFEST_all:
    # --------------------------------------------------------- start clean
    rm -f $(SOURCE)/MANIFEST
    make MANIFEST_lpml
    make MANIFEST_vanillatar
    make MANIFEST_cvs
    # ---------------------------------- might as well include the MANIFEST
    echo 'MANIFEST' >> $(SOURCE)/MANIFEST
    # ------------------------------------------ hosts.tab are belong to us
    echo 'loncom/rawhide_hosts.tab' >> $(SOURCE)/MANIFEST
    echo 'loncom/production_hosts.tab' >> $(SOURCE)/MANIFEST
    echo 'loncom/development_hosts.tab' >> $(SOURCE)/MANIFEST
    echo 'loncom/production_domain.tab' >> $(SOURCE)/MANIFEST
    echo 'loncom/development_domain.tab' >> $(SOURCE)/MANIFEST
    echo 'loncom/production_dns_hosts.tab' >> $(SOURCE)/MANIFEST
    echo 'loncom/development_dns_hosts.tab' >> $(SOURCE)/MANIFEST
    echo 'loncom/production_dns_domain.tab' >> $(SOURCE)/MANIFEST
    echo 'loncom/development_dns_domain.tab' >> $(SOURCE)/MANIFEST
    # ------------------ Files needed for dynamically generated directories
    echo 'doc/man' >> $(SOURCE)/MANIFEST
    echo 'doc/lib' >> $(SOURCE)/MANIFEST
    echo 'doc/lib/perl' >> $(SOURCE)/MANIFEST
    echo 'doc/lib/perl/Apache' >> $(SOURCE)/MANIFEST
    echo 'doc/scripts' >> $(SOURCE)/MANIFEST
    # --------------------------------------------------- Clean up MANIFEST
    cd $(SOURCE); \
    sort MANIFEST | perl -nle 'print "$(DIRTARGET)/$$_"' | \
    perl -nle 's/\w+\/\.\.\///g;s/\w+\/\.\.\///g;print' | \
    perl -nle 's/\w+\/\.\.\///g;s/\w+\/\.\.\///g;print' | \
    perl -nle 's/\w+\/\.\.\///g;s/\w+\/\.\.\///g;print' | \
    perl -nle 's/\/\.\//\//g;print' | sort | uniq > \
    MANIFEST_loncapa
    cd $(SOURCE); mv -v MANIFEST_loncapa MANIFEST
   
   # --------------- MANIFEST files with important CVS versioning/date information
   MANIFEST_cvs:
    # ------ CVS/Entries directories to retain 'time-checking' intelligence
    cd $(SOURCE); find . -type f -name 'Entries' | grep 'CVS/Entries' >> \
    MANIFEST
   
   # ------------------- MANIFEST the building, testing and standard loncapa files
   MANIFEST_lpml:
    cat $(SOURCE)/doc/loncapafiles/buildfiles.lpml | \
    perl lpml_parse.pl MANIFEST development $(DIST) \
    '$(SOURCE)' '$(TARGET)' | grep '[[:alnum:]]' >> $(SOURCE)/MANIFEST
    cat $(SOURCE)/doc/loncapafiles/testfiles.lpml | \
    perl lpml_parse.pl MANIFEST development $(DIST) \
    '$(SOURCE)' '$(TARGET)' | grep '[[:alnum:]]' >> $(SOURCE)/MANIFEST
    cat $(SOURCE)/doc/loncapafiles/installfiles.lpml | \
    perl lpml_parse.pl MANIFEST development $(DIST) \
    '$(SOURCE)' '$(TARGET)' | grep '[[:alnum:]]' >> $(SOURCE)/MANIFEST
    cat $(SOURCE)/doc/loncapafiles/loncapafiles.lpml | \
    perl lpml_parse.pl MANIFEST development $(DIST) \
    '$(SOURCE)' '$(TARGET)' | grep '[[:alnum:]]' >> $(SOURCE)/MANIFEST
   
   # ------------ Files for top-level (the vanilla layer that the user first sees)
   MANIFEST_vanillatar:
    echo 'README' >> $(SOURCE)/MANIFEST
    echo 'UPDATE' >> $(SOURCE)/MANIFEST
    echo 'TEST' >> $(SOURCE)/MANIFEST
    echo 'CHECKRPMS' >> $(SOURCE)/MANIFEST
   
   # =============================================== *** STATUS REPORT TARGETS ***
   
   warningnote:
    @if (test -s WARNINGS); then \
    W=`grep -c '\*\*\*\* WARNING' WARNINGS`; \
    E=`grep -c '\*\*\*\* ERROR' WARNINGS`; \
    N=`grep -c '\*\*\*\* NOTE' WARNINGS`; \
    echo "--->  $$W WARNINGS ENCOUNTERED!       "; \
    echo "--->  $$E ERRORS ENCOUNTERED!         "; \
    echo "--->  $$N NOTES ENCOUNTERED!          "; \
    echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"; \
    echo "!!!!  Please read the WARNINGS file !!!!"; \
    echo "!!!!   to make sure everything is   !!!!"; \
    echo "!!!!    correct and taken care of   !!!!"; \
    echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"; \
    fi
   
 HTML:  HTML:
  install -d HTML   install -d HTML
  cp ../../doc/loncapafiles/*.gif HTML   cp $(SOURCE)/doc/loncapafiles/*.gif HTML
  perl parse.pl ../../doc/loncapafiles/loncapafiles.html HTML > \   cat $(SOURCE)/doc/loncapafiles/loncapafiles.lpml | \
  HTML/index.html   perl lpml_parse.pl html development default "$(SOURCE)" '$(TARGET)' \
    > HTML/index.html
   
 status:  status:
  install -d HTML   install -d HTML
  cp ../../doc/loncapafiles/*.gif HTML   cp $(SOURCE)/doc/loncapafiles/*.gif HTML
  cat ../../doc/loncapafiles/loncapafiles.lpml | \   cat $(SOURCE)/doc/loncapafiles/loncapafiles.lpml | \
  perl lpml_parse.pl html $(CATEGORY) $(DIST) "../.." "" | \   perl lpml_parse.pl html $(CATEGORY) $(DIST) "$(SOURCE)" "($TARGET)" | \
  perl lpml_html_posteval.pl > \   perl lpml_html_posteval.pl > \
  HTML/filestatus.html   HTML/filestatus.html
   
 statuspost: status  statuspost: status
  cp ../../doc/loncapafiles/*.gif $(TARGET)/home/httpd/html/lon-status   cp $(SOURCE)/doc/loncapafiles/*.gif \
    $(TARGET)/home/httpd/html/lon-status
  cp HTML/filestatus.html \   cp HTML/filestatus.html \
  $(TARGET)/home/httpd/html/lon-status/filestatus.html   $(TARGET)/home/httpd/html/lon-status/filestatus.html
   
Line 79  rpmstatus: Line 804  rpmstatus:
  rpm -qa --queryformat \   rpm -qa --queryformat \
  '%{NAME}\t%{VERSION}\t%{RELEASE}\t%{BUILDTIME}\n' | sort > \   '%{NAME}\t%{VERSION}\t%{RELEASE}\t%{BUILDTIME}\n' | sort > \
  RPMSTATUS/current.tmp   RPMSTATUS/current.tmp
  cat ../../doc/otherfiles/cd_rpms.txt > RPMSTATUS/standard.tmp   cat $(SOURCE)/doc/otherfiles/cd_rpms.txt > RPMSTATUS/standard.tmp
  cat ../../doc/otherfiles/rpm_list.txt > RPMSTATUS/expected.tmp   cat $(SOURCE)/doc/otherfiles/rpm_list.txt > RPMSTATUS/expected.tmp
  perl rpmparse.pl RPMSTATUS/standard.tmp RPMSTATUS/current.tmp \   perl rpmparse.pl RPMSTATUS/standard.tmp RPMSTATUS/current.tmp \
  RPMSTATUS/expected.tmp > RPMSTATUS/rpmstatus.html   RPMSTATUS/expected.tmp > RPMSTATUS/rpmstatus.html
   
 rpmstatuspost: rpmstatus  rpmstatuspost: rpmstatus
  cp RPMSTATUS/rpmstatus.html /home/httpd/html/lon-status/rpmstatus.html   cp RPMSTATUS/rpmstatus.html /home/httpd/html/lon-status/rpmstatus.html
   
 configinstall: Makefile.configinstall  # ======================================= *** ALTERNATIVE PACKAGING TARGETS ***
  make -f Makefile.configinstall SOURCE="../.." TARGET="" configfiles  
  perl loncaparestoreconfigurations suffix .lpmlnew  
   
 Makefile.configinstall: ../../doc/loncapafiles/loncapafiles.lpml lpml_parse.pl  
  cat ../../doc/loncapafiles/loncapafiles.lpml | \  
  perl lpml_parse.pl configinstall $(CATEGORY) $(DIST) "../.." "" > \  
  Makefile.configinstall  
   
 warningnote:  
  @if (test -s WARNINGS); then \  
  W=`grep -c '\*\*\*\* WARNING' WARNINGS`; \  
  E=`grep -c '\*\*\*\* ERROR' WARNINGS`; \  
  N=`grep -c '\*\*\*\* NOTE' WARNINGS`; \  
  echo "--->  $$W WARNINGS ENCOUNTERED!       "; \  
  echo "--->  $$E ERRORS ENCOUNTERED!         "; \  
  echo "--->  $$N NOTES ENCOUNTERED!          "; \  
  echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"; \  
  echo "!!!!  Please read the WARNINGS file !!!!"; \  
  echo "!!!!   to make sure everything is   !!!!"; \  
  echo "!!!!    correct and taken care of   !!!!"; \  
  echo "!!!!    (it is output below here)   !!!!"; \  
  echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"; \  
  cat WARNINGS; \  
  fi  
   
 install: Makefile.install Makefile  RPM: BinaryRoot base_rpm_file_list
  echo -n "" > WARNINGS   cat $(SOURCE)/doc/loncapafiles/loncapafiles.lpml | \
  make -f Makefile.install SOURCE="$(SOURCE)" TARGET="$(TARGET)" \   perl lpml_parse.pl make_rpm $(CATEGORY) $(DIST) $(SOURCE) $(TARGET) \
  directories   > base_customizerpm.xml
  make -f Makefile.install SOURCE="$(SOURCE)" TARGET="$(TARGET)" files   cat base_rpm_file_list.txt | perl make_rpm.pl base $(VERSION) \
  make -f Makefile.install SOURCE="$(SOURCE)" TARGET="$(TARGET)" links   $(RELEASE) '' '' BinaryRoot base_customizerpm.xml
  make configinstall  
  make warningnote  DPKG:
    make TARGET='lon-capa-$(VERSION)' NORESTORECONF='1' install
    @echo "You will next need to follow instructions at:"
    @echo "http://people.debian.org/~jaldhar/make_package1.html"
    @echo "A directory with a snapshot of the debian package files"
    @echo "is LON-CAPA-base."
   # What DPKG steps need to happen (for future implementation):
   # export EMAIL="" ... probably sharrison@mail.lon-capa.org
   # deb-make
   # edit debian/control
   # make debian/dirs file
   # make debian/copyright file
   # debian/README.debian... point them to LON-CAPA URLS
   # debian/changelog
   # debian/conffiles
   # debuild
   # and maybe do some GPG-related steps around here
   
   base_rpm_file_list:
    cat $(SOURCE)/doc/loncapafiles/loncapafiles.lpml | \
    perl lpml_parse.pl rpm_file_list $(CATEGORY) $(DIST) $(SOURCE) \
    'BinaryRoot' | sort > base_rpm_file_list.txt
   
   BinaryRoot: base_rpm_file_list
    make TARGET='BinaryRoot' NORESTORECONF='1' install
   
 Makefile.install: ../../doc/loncapafiles/loncapafiles.lpml lpml_parse.pl  # ======================================== *** MASTER DOCUMENTATION TARGETS ***
  cat ../../doc/loncapafiles/loncapafiles.lpml | \  
  perl lpml_parse.pl install $(CATEGORY) $(DIST) "$(SOURCE)" \  
  "$(TARGET)" > Makefile.install  
   
 build: Makefile.build pod2html.sh pod2man.sh  buildwebsite:
  echo -n "" > WARNINGS   cd ../../doc/build; perl ./generate_web_pages.pl
  make -f Makefile.build all  
  make warningnote  
   
 Makefile.build: ../../doc/loncapafiles/loncapafiles.lpml lpml_parse.pl  
  cat ../../doc/loncapafiles/loncapafiles.lpml | \  
  perl lpml_parse.pl build $(CATEGORY) $(DIST) "../.." "" > \  
  Makefile.build  
   
 RPM: BinaryRoot  
  cat base_file_list.txt | perl make_rpm.pl base 3.1 '' '' BinaryRoot  
  cat setup_file_list.txt | perl make_rpm.pl setup 3.1 '' '' BinaryRoot  
   
 BinaryRoot:  
  perl parse.pl ../../doc/loncapafiles/loncapafiles.html BinaryRoot  
   
 loncapaconfig:  
  rm -Rf LoncapaconfigRoot  
  install -d LoncapaconfigRoot/usr/src/  
  install -d LoncapaconfigRoot/usr/lib/python1.5/site-packages  
  install /usr/lib/python1.5/site-packages/kudzumodule.so \  
  LoncapaconfigRoot/usr/lib/python1.5/site-packages/kudzumodule.so  
  cd LoncapaconfigRoot/usr/src; cp -pR /mnt/drive/loncapaconfig .  
  install -d LoncapaconfigRoot/usr/sbin  
  @echo -e "#!/bin/sh\ncd /usr/src/loncapaconfig/usr/bin; \  
  ./loncapaconfig\n" > LoncapaconfigRoot/usr/sbin/loncapaconfig  
  chmod u+x LoncapaconfigRoot/usr/sbin/loncapaconfig  
  find LoncapaconfigRoot -type d | xargs chmod o-wxr  
  find LoncapaconfigRoot -type f | xargs chmod o-wxr  
  find LoncapaconfigRoot/ -type d | grep 'src/lon' > \  
  loncapaconfig_file_list.txt  
  find LoncapaconfigRoot/ -type d | grep \  
  '^LoncapaconfigRoot/usr/lib/python1.5/site-packages' >> \  
  loncapaconfig_file_list.txt  
  find LoncapaconfigRoot/ -type f >> loncapaconfig_file_list.txt  
  cat loncapaconfig_file_list.txt | perl make_rpm.pl loncapaconfig 3.1 \  
  '' '' LoncapaconfigRoot  
  cp LON-CAPA-loncapaconfig-3.1-1.i386.rpm \  
  /mnt/drive/install.lon-capa.org/3.1/currentcdsource/RedHat/RPMS/.  
   
 install.lon-capa.org: cvsreport  # Generates CVS:loncom/build/docs; root location of install.lon-capa.org
   doc:
  install -d docs   install -d docs
  install ../../doc/build/cvsreport.html docs/cvsreport.html   @if (test -e installation_manual.pdf); then \
  install ../../doc/build/doc.html docs/index.html   cp -vf installation_manual.pdf docs/.; \
  install -d docs/hardware   else \
  install ../../doc/hardware/hardware.html docs/hardware/hardware.html   touch docs/installation_manual.pdf; \
  install -d docs/3.1   fi
  install ../../doc/build/install.html docs/3.1/index.html   install -m 0755 -d docs/icons
  install ../../doc/build/instructions_with_cd.html \   install -m 0644 $(SOURCE)/doc/icons/[^C][^V]* docs/icons
  docs/3.1/instructions_with_cd.html   install -m 0755 -d docs/reconfig
  install ../../doc/build/libraryserverconfiguration.gif \   cd docs; ln -fs installation_manual.pdf index.pdf
  docs/3.1/libraryserverconfiguration.gif   cd docs/reconfig; ln -fs ../installation_manual.pdf index.pdf
  install ../../doc/build/librarysystemsettings.gif \   perl doc_template.pl $(SOURCE)/doc/templates/template.html \
  docs/3.1/librarysystemsettings.gif   $(SOURCE)/doc/build/reconfig.html > docs/reconfig/index.html
  install -d docs/cvsupgrade   install -m 0755 -d docs/reconfig/confexamples
  install ../../doc/build/cvsupgrade.html docs/cvsupgrade/index.html   install -m 0644 $(SOURCE)/doc/build/confexamples/[^C][^V]* \
  install -d docs/upgrade   docs/reconfig/confexamples
  install ../../doc/build/upgrade.html docs/upgrade/index.html   perl doc_template.pl $(SOURCE)/doc/templates/template.html \
  install -d docs/reconfig   $(SOURCE)/doc/build/installindex.html > docs/index.html
  install ../../doc/build/reconfig.html docs/reconfig/index.html   install -m 0755 -d docs/license
  install -d docs/3.1/otherfiles   cd docs/license; ln -fs ../installation_manual.pdf index.pdf
  install ../../doc/otherfiles/rpm_list.txt \   perl doc_template.pl $(SOURCE)/doc/templates/template.html \
  docs/3.1/otherfiles/rpm_list.txt   $(SOURCE)/doc/build/license.html > docs/license/index.html
  install ../../doc/build/loncapanetwork.html docs/loncapanetwork.html   install -m 0755 -d docs/contact
  install ../../doc/build/loncapanfs.html docs/loncapanfs.html   cd docs/contact; ln -fs ../installation_manual.pdf index.pdf
  install ../../doc/build/loncapaappleshares.html \   perl doc_template.pl $(SOURCE)/doc/templates/template.html \
  docs/loncapaappleshares.html   $(SOURCE)/doc/build/contact.html > docs/contact/index.html
  install ../../doc/build/loncapasqldatabase.html \   install -m 0755 -d docs/faq
  docs/loncapasqldatabase.html   cd docs/faq; ln -fs ../installation_manual.pdf index.pdf
  install ../../doc/build/loncapapasswords.html \   perl doc_template.pl $(SOURCE)/doc/templates/template.html \
  docs/loncapapasswords.html   $(SOURCE)/doc/build/faq.html > docs/faq/index.html
  install ../../doc/build/loncapapasswordauthentication.html \   install -m 0755 -d docs/downloads
  docs/loncapapasswordauthentication.html   cd docs/downloads; ln -fs ../installation_manual.pdf download.pdf
  install ../../doc/build/loncapatimesync.html docs/loncapatimesync.html   perl doc_template.pl $(SOURCE)/doc/templates/template.html \
  install ../../doc/build/loncapamathequivalency.html \   $(SOURCE)/doc/build/download.html > docs/downloads/index.html
  docs/loncapamathequivalency.html   install -m 0755 -d docs/install
  tar czvf install.lon-capa.org_docs.tar.gz docs   cd docs/install; ln -fs ../installation_manual.pdf install.pdf
  rm -Rf docs   perl doc_template.pl $(SOURCE)/doc/templates/template.html \
    $(SOURCE)/doc/build/install.html > docs/install/index.html
    cp -v $(SOURCE)/doc/install/redhat7.3/new_install_rh73.html \
    docs/install/rh73.html
    cp -v $(SOURCE)/doc/install/redhat7.3/new_install_rh73.html \
    docs/downloads/rh73.html
    install -m 0755 -d docs/upgrade
    cd docs/upgrade; ln -fs ../installation_manual.pdf upgrade.pdf
    perl doc_template.pl $(SOURCE)/doc/templates/template.html \
    $(SOURCE)/doc/build/upgrade.html > docs/upgrade/index.html
    cd docs; tar czvpf ../docs.tar.gz .
   
   pdfdoc: TEST_html2ps
    install -d pdfdoc
    /usr/local/html2ps/bin/html2ps -D \
    $(SOURCE)/doc/build/installindex_noform.html > pdfdoc/installindex.ps
    /usr/local/html2ps/bin/html2ps -D \
    $(SOURCE)/doc/build/reconfig.html | \
    perl -nle 's/\[EXAMPLE\]/\[EXAMPLE \(at end of document\)\]/g;print' \
    > pdfdoc/reconfig.ps
    /usr/local/html2ps/bin/html2ps -D \
    $(SOURCE)/doc/build/install.html > pdfdoc/install.ps
    /usr/local/html2ps/bin/html2ps -D \
    $(SOURCE)/doc/build/upgrade.html > pdfdoc/upgrade.ps
    /usr/local/html2ps/bin/html2ps -D \
    $(SOURCE)/doc/build/faq.html > pdfdoc/faq.ps
    /usr/local/html2ps/bin/html2ps -D \
    $(SOURCE)/doc/build/download.html > pdfdoc/download.ps
    /usr/local/html2ps/bin/html2ps -D \
    $(SOURCE)/doc/build/contact.html > pdfdoc/contact.ps
    /usr/local/html2ps/bin/html2ps -D \
    $(SOURCE)/doc/build/license.html > pdfdoc/license.ps
   #       This creates a bad confexamples.ps... so take the long way around
   # cd $(SOURCE)/doc/build/confexamples; \
   # mpage -P- -1 -H [^C]* > ../../../loncom/build/pdfdoc/confexamples.ps
    install -d pdfdoc/confexamples
    cd $(SOURCE)/doc/build/confexamples; \
    find . -type f | cut -b3- | grep -v '^C' | grep -v 'keyword' | \
    perl -nle \
    '`mpage -P- -1 -H $$_ > ../../../loncom/build/pdfdoc/confexamples/$$_.ps`;'
    echo '' > pdfdoc/contents.txt
    echo '' >> pdfdoc/contents.txt
    echo '          The Learning Online Network' >> pdfdoc/contents.txt
    echo '                    with the' >> pdfdoc/contents.txt
    echo '     Computer-Assisted Personalized Approach' >> \
    pdfdoc/contents.txt
    echo '' >> pdfdoc/contents.txt
    echo '' >> pdfdoc/contents.txt
    echo 'CONTENTS' >> pdfdoc/contents.txt
    echo '--------' >> pdfdoc/contents.txt
    echo 'Opening' >> pdfdoc/contents.txt
    echo 'Configuration' >> pdfdoc/contents.txt
    echo 'Installation' >> pdfdoc/contents.txt
    echo 'Upgrading a LON-CAPA Server' >> pdfdoc/contents.txt
    echo 'FAQ' >> pdfdoc/contents.txt
    echo 'Download' >> pdfdoc/contents.txt
    echo 'Contact Information' >> pdfdoc/contents.txt
    echo 'License Information' >> pdfdoc/contents.txt
    echo 'Configuration Examples' >> pdfdoc/contents.txt
    mpage -P- -1 \
    pdfdoc/contents.txt \
    pdfdoc/installindex.ps \
    pdfdoc/reconfig.ps \
    pdfdoc/install.ps \
    pdfdoc/upgrade.ps \
    pdfdoc/faq.ps \
    pdfdoc/download.ps \
    pdfdoc/contact.ps \
    pdfdoc/license.ps \
    pdfdoc/confexamples/*.ps \
    > pdfdoc/installation_manual.ps
    ps2pdf pdfdoc/installation_manual.ps pdfdoc/installation_manual.pdf
    mv -vf pdfdoc/installation_manual.pdf .
   
 cvsreport:  # ================================================ *** KEEPING THINGS CLEAN ***
  # Header  
  echo "<H1>Automatically generated CVS report</H1>" > \  
  ../../doc/build/cvsreport.html  
  # General Date Info  
  echo "<H1>LON-CAPA Software Changes from `date --date='7 days ago' \  
  +\"%Y-%m-%d\"` to `date +\"%Y-%m-%d\"`</H1>" >> \  
  ../../doc/build/cvsreport.html  
  # General Alteration Info  
  echo "<P>Number of altered files:" >> ../../doc/build/cvsreport.html  
  cd ../..; cvs log -d ">`date --date='8 days ago' +\"%Y-%m-%d\"`" \  
  loncom CAPA doc packaging 2>/dev/null | perl \  
  loncom/build/cvsfilter.pl | grep '^Working file:' | cut -b15- | \  
  wc -l >> doc/build/cvsreport.html  
  # Listing of Altered Files  
  echo "</P><P>Altered files:</P><P><PRE>" >> \  
  ../../doc/build/cvsreport.html  
  cd ../..; cvs log -d ">`date --date='8 days ago' +\"%Y-%m-%d\"`" \  
  loncom CAPA doc packaging 2>/dev/null | \  
  perl loncom/build/cvsfilter.pl | grep '^Working file:' | cut -b15- \  
  >> doc/build/cvsreport.html  
  # Log entries for loncom  
  echo "</PRE></P><P>Log entries for <B>loncom</B>:</P><PRE>" >> \  
  ../../doc/build/cvsreport.html  
  cd ../../loncom; cvs log -d ">`date --date='8 days ago' \  
  +\"%Y-%m-%d\"`" . 2>/dev/null | perl ../loncom/build/cvsfilter.pl >> \  
  ../doc/build/cvsreport.html  
  # Log entries for CAPA  
  echo "</PRE></P><P>Log entries for <B>CAPA</B>:</P><PRE>" >> \  
  ../../doc/build/cvsreport.html  
  cd ../../CAPA; cvs log -d ">`date --date='8 days ago' \  
  +\"%Y-%m-%d\"`" . 2>/dev/null | perl ../loncom/build/cvsfilter.pl >> \  
  ../doc/build/cvsreport.html  
  # Log entries for doc  
  echo "</PRE></P><P>Log entries for <B>doc</B>:</P><PRE>" >> \  
  ../../doc/build/cvsreport.html  
  cd ../../doc; cvs log -d ">`date --date='8 days ago' \  
  +\"%Y-%m-%d\"`" . 2>/dev/null | perl ../loncom/build/cvsfilter.pl >> \  
  ../doc/build/cvsreport.html  
  # Log entries for packaging  
  echo "</PRE></P><P>Log entries for <B>packaging</B>:</P><PRE>" >> \  
  ../../doc/build/cvsreport.html  
  cd ../../packaging; cvs log -d ">`date --date='8 days ago' \  
  +\"%Y-%m-%d\"`" . 2>/dev/null | perl ../loncom/build/cvsfilter.pl >> \  
  ../doc/build/cvsreport.html  
  echo "</PRE></P>" >> ../../doc/build/cvsreport.html  
   
 clean:  clean:
    rm -f buildflag
    rm -Rf HTML
    rm -f installation_manual.pdf
    rm -f Makefile.build
    rm -f Makefile.install
    rm -f Makefile.configinstall
    rm -Rf BinaryRoot
    rm -Rf SetupBinaryRoot
    rm -Rf LON-CAPA-base
    rm -f base_rpm_file_list.txt
    rm -f base_customizerpm.xml
    rm -f setup_rpm_file_list.txt
    rm -f docs.tar.gz
    rm -Rf docs
    rm -Rf pdfdoc
    rm -f program.pl*
    rm -Rf lpmladm.*
    rm -f WARNINGS
    rm -f CPAN_STATUS_REPORT
    rm -f $(SOURCE)/loncom/build/hosts.tab
   
   reallyclean:
    rm -f buildflag
    rm -f $(SOURCE)/README
    rm -f $(SOURCE)/UPDATE
    rm -f $(SOURCE)/TEST
    rm -f $(SOURCE)/MANIFEST
    rm -f $(SOURCE)/MANIFEST_loncapa
    rm -f $(SOURCE)/loncapa
    rm -f $(SOURCE)/loncom/build/hosts.tab
    rm -f $(SOURCE)/loncapa.tar.gz
  rm -Rf HTML   rm -Rf HTML
    rm -f installation_manual.pdf
  rm -f Makefile.build   rm -f Makefile.build
  rm -f Makefile.install   rm -f Makefile.install
    rm -f Makefile.configinstall
    rm -Rf BinaryRoot
    rm -Rf SetupBinaryRoot
    rm -Rf LON-CAPA-base
    rm -f base_rpm_file_list.txt
    rm -f base_customizerpm.xml
    rm -f setup_rpm_file_list.txt
    rm -f docs.tar.gz
    rm -Rf docs
    rm -Rf pdfdoc
    rm -f program.pl*
    rm -Rf lpmladm.*
    make -f Makefile.cvs clean
    rm -f WARNINGS
   
   uninstall:
    rm -f UNINSTALL_SHELL_COMMANDS
    cat $(SOURCE)/doc/loncapafiles/loncapafiles.lpml | \
    perl lpml_parse.pl uninstall_shell_commands $(CATEGORY) $(DIST) \
    "$(SOURCE)" "$(TARGET)" > UNINSTALL_SHELL_COMMANDS
    @echo -n "**** NOTE **** A file \"UNINSTALL_SHELL_COMMANDS\" has been "
    @echo "generated."
    @echo "First, you should view the contents of this file."
    @echo "If you are happy with the 'rm -Rf'! commands (or at least"
    @echo "have another job lined up in case of catastrophe), then you "
    @echo "can execute the following: sh ./UNINSTALL_SHELL_COMMANDS"
   
   backup:
    @echo "Not yet implemented"
   
   restore:
    @echo "Not yet implemented"
   
   # ===================================================== *** AUXILIARY TESTS ***
   localauth:
    @if (test -e $(LOCALAUTHPATH)/localauth.pm) && \
                !(diff $(LOCALAUTHPATH)/localauth-std.pm \
                 $(LOCALAUTHPATH)/localauth.pm > /dev/null); then \
    echo "**** WARNING **** $(LOCALAUTHPATH)/localauth.pm is different than the $(LOCALAUTHPATH)/localauth-std.pm; if you have not customized localauth.pm, then please manually overwrite localauth.pm (rm $(LOCALAUTHPATH)/localauth.pm; ln -s $(LOCALAUTHPATH)/localauth-std.pm $(LOCALAUTHPATH)/localauth.pm); if you have customized localauth.pm, then please double-check to see that your customized localauth.pm is compatible with any localauth-std.pm changes for this version of LON-CAPA"| tee -a WARNINGS; \
    elif (test -e $(LOCALAUTHPATH)/localauth.pm) && \
                 (diff $(LOCALAUTHPATH)/localauth-std.pm \
                 $(LOCALAUTHPATH)/localauth.pm > /dev/null); then \
    echo "**** NOTE **** LOCAL AUTH IS IDENTICAL WITH STANDARD TEMPLATE"| tee -a WARNINGS; \
    elif !(test -e $(LOCALAUTHPATH)/localauth.pm) && \
         (test -e $(LOCALAUTHPATH)/localauth-std.pm); then \
    ln -s $(LOCALAUTHPATH)/localauth-std.pm $(LOCALAUTHPATH)/localauth.pm; \
    fi
   
   # ================================================ *** A HELPFUL DEPENDENCY ***
   alwaysrun:

Removed from v.1.52  
changed lines
  Added in v.1.216


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>
500 Internal Server Error

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator at root@localhost to inform them of the time this error occurred, and the actions you performed just before this error.

More information about this error may be available in the server error log.