Diff for /loncom/build/Makefile between versions 1.50 and 1.123

version 1.50, 2001/12/19 21:27:46 version 1.123, 2002/06/18 06:43:09
Line 3 Line 3
 # Scott Harrison  # Scott Harrison
 # $Id$  # $Id$
   
 CDTARGET="."  DISTPROBE=`perl ./distprobe`
 CDFSLOC="/mnt/loncapacd/install.lon-capa.org/3.1/currentcdsource"  DIST=$(DISTPROBE)
 DIST="default"  
 CATEGORY="development"  CATEGORY="development"
   SOURCE=../..
   TARGET=""
   DIRTARGET=loncapa
   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=0.1
   
   help:
    @echo "*** You need to specify a valid target ***"
    @echo "NOTE: You can specify options to your Makefile target."
    @echo "(option) DIST can be redhat7, debian, redhat6.2, or default"
    @echo "(option) CATEGORY can be runtime or development"
    @echo "(option) SOURCE is an absolute or relative directory path"
    @echo "(option) TARGET is an absolute or relative directory path"
    @echo "build: compile the CVS source tree"
    @echo "install: install from a compiled CVS source tree to a "
    @echo "         specified TARGET destination on the filesystem"
    @echo "test: test different parts of the LON-CAPA system (TEST_*)"
    @echo "TEST_lpml_scripts: make sure that the system can process "
    @echo "                   the Linux Packaging Markup Language"
    @echo "TEST_system_dependencies: make sure that all needed system "
    @echo "                          components are active and present "
    @echo "                          on the server such as perl modules"
    @echo "                          and the MySQL database"
    @echo "TEST_web_layer: mimic a login and various system actions on "
    @echo "                a LON-CAPA system"
    @echo "HTML: generate an HTML-formatted description of the LON-CAPA"
    @echo "      CVS files"
    @echo "documentation_tree: compiles a documentation tree from the "
    @echo "                    CVS:doc directory"
    @echo "status: compare the TARGET filesystem with a compiled CVS "
    @echo "        source directory"
    @echo "statuspost: post the results of "make status" to "
    @echo "            TARGET/home/httpd/html/lon-status/filestatus.html"
    @echo "rpmstatus: compare the rpms on a system to defined lists "
    @echo "           CVS:doc/otherfiles/cd_rpms and "
    @echo "           CVS:doc/otherfiles/rpm_list.txt"
    @echo "rpmstatuspost: post the results of "make rpmstatus" to "
    @echo "            TARGET/home/httpd/html/lon-status/rpmstatus.html"
    @echo "RPM: build LON-CAPA-base RPM from CVS repository"
    @echo "setup_RPM: build LON-CAPA-setup RPM from CVS repository"
    @echo "           handy for CD-ROM generation"
    @echo "tardist: build a tarball that will upgrade the software on a "
    @echo "         system"
   
 all:   test: TEST_lpml_scripts TEST_system_dependencies TEST_web_layer
  # nothing yet here  
   
 test: TEST_lpml_scripts TEST_system_dependencies  
  @echo "ALL SYSTEM DEPENDENCY TESTS SUCCESSFUL"   @echo "ALL SYSTEM DEPENDENCY TESTS SUCCESSFUL"
   
 TEST_system_dependencies:  TEST_system_dependencies:
  echo "TESTING SYSTEM DEPENDENCIES";   @echo "TESTING SYSTEM DEPENDENCIES"
  cd system_dependencies; make   cd system_dependencies; make
   
 TEST_lpml_scripts:  TEST_lpml_scripts:
  echo "TESTING LPML INSTALLATION CODE";   @echo "TESTING LPML INSTALLATION CODE"
  cd ../test; perl filecomparetest.pl   cd ../test; perl filecomparetest.pl
   
 cd:   TEST_web_layer:
  # Build temporary script to get cd   @echo "TESTING WEB LAYER"
  # make sure there is enough disk space   cd weblayer_test; make
  @echo "# Automatically generated Makefile for LON-CAPA" > Makefile.cd.tmp  
  @/bin/df $(CDTARGET) | perl -e '@l=<>;split(/\s+/,$$l[1]);$$s=@_[3]*1024;if ($$s>1000000000) {print "\S=1\n";} else {print "\S=0\n";}' >> Makefile.cd.tmp  TEST_hosts_tab:
  @echo "cd:" >> Makefile.cd.tmp   @echo "Testing hosts.tab"
  @echo -e "ifeq (\$$(S),1)" >> Makefile.cd.tmp   @if (test -e ../hosts.tab); then \
  @echo -e "\t@echo \"There is enough disk space.  Good!\"" >> Makefile.cd.tmp   echo "there is a defined link; assume okay"; \
  # set up commands to copy cd image from install.lon-capa.org (wget -r)   else echo "**** ERROR **** hosts.tab not defined!" && \
  @echo -e "\tcd \$$(TARGET); wget -np -N -r -l 1000 http://install.lon-capa.org/3.1/currentcdsource" >> Makefile.cd.tmp       echo -n "You need to do one of the following within your " && \
  @echo -e "\tcd \$$(TARGET); find ./install.lon-capa.org -name index.html | xargs rm -f" >> Makefile.cd.tmp       echo "CVS repository (cd loncapa/loncom)" && \
  # set up cvs update commands       echo "   1) ln -s production_hosts.tab hosts.tab" && \
  # set up cd image compilation (mkisofs)       echo "   2) ln -s development_hosts.tab hosts.tab" && \
  @echo -e "\tcd \$$(TARGET)/install.lon-capa.org/3.1/currentcdsource/; mkisofs -v -R -T -V \"LON-CAPA and Red Hat 6.2\" -b images/boot.img -c boot.cat -o \$$(TARGET)/redhat.img ." >> Makefile.cd.tmp       echo "or 3) ln -s rawhide_hosts.tab hosts.tab" && \
  @echo -e "else" >> Makefile.cd.tmp       echo "(you most likely want option #1, production_hosts.tab)" && \
  @echo -e "\t@echo \"ERROR ******* Not enough disk space. There must be at least one gigabyte free\"" >> Makefile.cd.tmp       exit 1; \
  @echo -e "endif" >> Makefile.cd.tmp   fi
  @echo -e "\t@echo \"To mount this for something like an http network install; mount -t iso9660 -o ro,loop=/dev/loop0 /mnt/drive/redhat.img /home/harris41/public_html/mount\"" >> Makefile.cd.tmp  
  make -f Makefile.cd.tmp TARGET="$(CDTARGET)" cd  
   
 cd_cover:  NET_hosts_tab:
    make TIMESTAMP=`date +"%s"` METAMTARGET="TRANSPORT" \
    MTARGET="hosts_tab" HOSTNAME="$(HOSTNAME)" lpmladm
   
   hosts_tab: TEST_hosts_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 has changed, restart httpd and loncontrol:"
    @echo "   /etc/rc.d/init.d/httpd restart"
    @echo "   /etc/rc.d/init.d/loncontrol restart"
   
   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
   
 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 > HTML/index.html   cat $(SOURCE)/doc/loncapafiles/loncapafiles.lpml | \
    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
   
 oldstatus:  
  perl parse.pl ../../doc/loncapafiles/loncapafiles.html status > HTML/filestatus.html  
   
 statuspost: status  statuspost: status
  cp ../../doc/loncapafiles/*.gif /home/httpd/html/lon-status   cp $(SOURCE)/doc/loncapafiles/*.gif \
  cp HTML/filestatus.html /home/httpd/html/lon-status/filestatus.html   $(TARGET)/home/httpd/html/lon-status
    cp HTML/filestatus.html \
    $(TARGET)/home/httpd/html/lon-status/filestatus.html
   
 rpmstatus:  rpmstatus:
  install -d RPMSTATUS   install -d RPMSTATUS
  rpm -qa --queryformat '%{NAME}\t%{VERSION}\t%{RELEASE}\t%{BUILDTIME}\n' | sort > RPMSTATUS/current.tmp   rpm -qa --queryformat \
  cat ../../doc/otherfiles/cd_rpms.txt > RPMSTATUS/standard.tmp   '%{NAME}\t%{VERSION}\t%{RELEASE}\t%{BUILDTIME}\n' | sort > \
  cat ../../doc/otherfiles/rpm_list.txt > RPMSTATUS/expected.tmp   RPMSTATUS/current.tmp
  perl rpmparse.pl RPMSTATUS/standard.tmp RPMSTATUS/current.tmp RPMSTATUS/expected.tmp > RPMSTATUS/rpmstatus.html   cat $(SOURCE)/doc/otherfiles/cd_rpms.txt > RPMSTATUS/standard.tmp
    cat $(SOURCE)/doc/otherfiles/rpm_list.txt > RPMSTATUS/expected.tmp
    perl rpmparse.pl RPMSTATUS/standard.tmp RPMSTATUS/current.tmp \
    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
   
 LCMakefile:  
  perl parse.pl ../../doc/loncapafiles/loncapafiles.html LCMakefile > LCMakefile  
   
 SPEC:  
  perl parse.pl ../../doc/loncapafiles/loncapafiles.html SPEC  
   
 configinstall: Makefile.configinstall  configinstall: Makefile.configinstall
  make -f Makefile.configinstall SOURCE="../.." TARGET="" configfiles   make -f Makefile.configinstall SOURCE="$(SOURCE)" TARGET="$(TARGET)" \
  perl loncaparestoreconfigurations suffix .lpmlnew   configfiles
 # make -f Makefile.configinstall TARGET="" configpermissions   if (test "0" = $(NORESTORECONF)); then \
    perl loncaparestoreconfigurations suffix .lpmlnew; fi
 Makefile.configinstall: ../../doc/loncapafiles/loncapafiles.lpml lpml_parse.pl  
 # perl parse.pl ../../doc/loncapafiles/loncapafiles.html configinstall > Makefile.configinstall  Makefile.configinstall: $(SOURCE)/doc/loncapafiles/loncapafiles.lpml lpml_parse.pl
  cat ../../doc/loncapafiles/loncapafiles.lpml | \   cat $(SOURCE)/doc/loncapafiles/loncapafiles.lpml | \
  perl lpml_parse.pl configinstall $(CATEGORY) $(DIST) "../.." "" > \   perl lpml_parse.pl configinstall $(CATEGORY) $(DIST) "$(SOURCE)" \
  Makefile.configinstall   "$(TARGET)" > Makefile.configinstall
   
 warningnote:  warningnote:
  @if (test -s WARNINGS); then \   @if (test -s WARNINGS); then \
Line 103  warningnote: Line 189  warningnote:
  echo "!!!!  Please read the WARNINGS file !!!!"; \   echo "!!!!  Please read the WARNINGS file !!!!"; \
  echo "!!!!   to make sure everything is   !!!!"; \   echo "!!!!   to make sure everything is   !!!!"; \
  echo "!!!!    correct and taken care of   !!!!"; \   echo "!!!!    correct and taken care of   !!!!"; \
  echo "!!!!    (it is output below here)   !!!!"; \  
  echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"; \   echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"; \
  cat WARNINGS; \  
  fi   fi
   
 install: Makefile.install  NET_webserverconf:
    make TIMESTAMP=`date +"%s"` METAMTARGET="LAUNCH" \
    MTARGET="webserverconf" HOSTNAME="$(HOSTNAME)" lpmladm
   
   webserverconf:
    cat $(SOURCE)/doc/loncapafiles/webserver.piml | \
    perl piml_parse.pl $(CATEGORY) $(DIST) "$(TARGET)" $(LAUNCH)
   
   sanitycheck:
    cat $(SOURCE)/doc/loncapafiles/sanitycheck.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)
   
   postinstall:
    make webserverconf
    make sanitycheck
   
   NET_rawinstall:
    make TIMESTAMP=`date +"%s"` METAMTARGET="TRANSPORT" \
    MTARGET="rawinstall" HOSTNAME="$(HOSTNAME)" lpmladm
   
   VERSION:
    install -d $(TARGET)/etc
    echo -n "LON-CAPA release $(VERSION)-" > $(TARGET)/etc/loncapa-release
    date +"%Y%m%d" >> $(TARGET)/etc/loncapa-release
   
   aboutVERSION:
    cat $(SOURCE)/loncom/license/about.html | \
    perl -e '$$d=`date +"%Y%m%d"`;chomp($$d);while(<>){s/\<\!\-\- VERSION \-\-\>/$(VERSION)-$$d/; print;}' > \
    $(SOURCE)/loncom/license/about.html.new
    mv -v $(SOURCE)/loncom/license/about.html.new \
    $(SOURCE)/loncom/license/about.html
   
   install: VERSION TEST_hosts_tab Makefile.install Makefile
  echo -n "" > WARNINGS   echo -n "" > WARNINGS
  make -f Makefile.install SOURCE="../.." TARGET="" directories   make -f Makefile.install SOURCE="$(SOURCE)" TARGET="$(TARGET)" \
  make -f Makefile.install SOURCE="../.." TARGET="" files   directories
  make -f Makefile.install SOURCE="../.." TARGET="" links   make -f Makefile.install SOURCE="$(SOURCE)" TARGET="$(TARGET)" files
  make configinstall   make -f Makefile.install SOURCE="$(SOURCE)" TARGET="$(TARGET)" links
    make SOURCE="$(SOURCE)" TARGET="$(TARGET)" \
    NORESTORECONF="$(NORESTORECONF)" configinstall
    make postinstall
  make warningnote   make warningnote
    echo "You can 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"
   
 Makefile.install: ../../doc/loncapafiles/loncapafiles.lpml lpml_parse.pl  rawinstall: VERSION Makefile.install Makefile
  cat ../../doc/loncapafiles/loncapafiles.lpml | \   echo -n "" > WARNINGS
  perl lpml_parse.pl install $(CATEGORY) $(DIST) "../.." "" > \   make -f Makefile.install SOURCE="$(SOURCE)" TARGET="$(TARGET)" \
  Makefile.install   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
   
   Makefile.install: alwaysrun
    cat $(SOURCE)/doc/loncapafiles/loncapafiles.lpml | \
    perl lpml_parse.pl install $(CATEGORY) $(DIST) "$(SOURCE)" \
    "$(TARGET)" > Makefile.install
   
 build: Makefile.build pod2html.sh pod2man.sh  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   echo -n "" > WARNINGS
  make -f Makefile.build all   make -f Makefile.build all
  make warningnote   make warningnote
   
 Makefile.build: ../../doc/loncapafiles/loncapafiles.lpml lpml_parse.pl  Makefile.build: $(SOURCE)/doc/loncapafiles/loncapafiles.lpml lpml_parse.pl
  cat ../../doc/loncapafiles/loncapafiles.lpml | \   cat $(SOURCE)/doc/loncapafiles/loncapafiles.lpml | \
  perl lpml_parse.pl build $(CATEGORY) $(DIST) "../.." "" > \   perl lpml_parse.pl build $(CATEGORY) $(DIST) "$(SOURCE)" "$(TARGET)" \
  Makefile.build   > Makefile.build
   
 RPM: BinaryRoot  RPM: BinaryRoot base_rpm_file_list
  cat base_file_list.txt | perl make_rpm.pl base 3.1 '' '' BinaryRoot   cat $(SOURCE)/doc/loncapafiles/loncapafiles.lpml | \
  cat setup_file_list.txt | perl make_rpm.pl setup 3.1 '' '' BinaryRoot   perl lpml_parse.pl make_rpm $(CATEGORY) $(DIST) $(SOURCE) $(TARGET) \
  cp LON-CAPA-base-3.1-1.i386.rpm $(CDFSLOC)/RedHat/RPMS/.   > base_customizerpm.xml
  cp LON-CAPA-setup-3.1-1.i386.rpm $(CDFSLOC)/RedHat/RPMS/.   cat base_rpm_file_list.txt | perl make_rpm.pl base 3.2 '' '' \
    BinaryRoot base_customizerpm.xml
 BinaryRoot:  
  perl parse.pl ../../doc/loncapafiles/loncapafiles.html BinaryRoot  setup_RPM:
    echo "SetupBinaryRoot/etc/passwd" > setup_rpm_file_list.txt
 loncapaconfig:   echo "SetupBinaryRoot/etc/group" >> setup_rpm_file_list.txt
  rm -Rf LoncapaconfigRoot   echo "SetupBinaryRoot/etc/hosts.deny" >> setup_rpm_file_list.txt
  install -d LoncapaconfigRoot/usr/src/   echo "SetupBinaryRoot/home/www" >> setup_rpm_file_list.txt
  install -d LoncapaconfigRoot/usr/lib/python1.5/site-packages   echo "SetupBinaryRoot/etc/pam.d/passwd" >> setup_rpm_file_list.txt
  install /usr/lib/python1.5/site-packages/kudzumodule.so LoncapaconfigRoot/usr/lib/python1.5/site-packages/kudzumodule.so   echo "SetupBinaryRoot/etc/pam.d/login" >> setup_rpm_file_list.txt
  cd LoncapaconfigRoot/usr/src; cp -pR /mnt/drive/loncapaconfig .   perl setup_rpm_binaryroot.pl
  install -d LoncapaconfigRoot/usr/sbin   cat setup_rpm_file_list.txt | perl make_rpm.pl setup 3.2 '' '' \
  @echo -e "#!/bin/sh\ncd /usr/src/loncapaconfig/usr/bin; ./loncapaconfig\n" > LoncapaconfigRoot/usr/sbin/loncapaconfig   SetupBinaryRoot customizerpm.xml
  chmod u+x LoncapaconfigRoot/usr/sbin/loncapaconfig  
  find LoncapaconfigRoot -type d | xargs chmod o-wxr  DPKG:
  find LoncapaconfigRoot -type f | xargs chmod o-wxr   make TARGET='lon-capa-$(VERSION)' NORESTORECONF='1' install
  find LoncapaconfigRoot/ -type d | grep 'src/lon' > loncapaconfig_file_list.txt   @echo "You will next need to follow instructions at:"
  find LoncapaconfigRoot/ -type d | grep '^LoncapaconfigRoot/usr/lib/python1.5/site-packages' >> loncapaconfig_file_list.txt   @echo "http://people.debian.org/~jaldhar/make_package1.html"
  find LoncapaconfigRoot/ -type f >> loncapaconfig_file_list.txt   @echo "A directory with a snapshot of the debian package files"
  cat loncapaconfig_file_list.txt | perl make_rpm.pl loncapaconfig 3.1 '' '' LoncapaconfigRoot   @echo "is LON-CAPA-base."
  cp LON-CAPA-loncapaconfig-3.1-1.i386.rpm /mnt/drive/install.lon-capa.org/3.1/currentcdsource/RedHat/RPMS/.  # 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
   
 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 docs/3.1/instructions_with_cd.html   install -m 0644 $(SOURCE)/doc/icons/[^C][^V]* docs/icons
  install ../../doc/build/libraryserverconfiguration.gif docs/3.1/libraryserverconfiguration.gif   install -m 0755 -d docs/reconfig
  install ../../doc/build/librarysystemsettings.gif docs/3.1/librarysystemsettings.gif   cd docs; ln -fs installation_manual.pdf index.pdf
  install -d docs/cvsupgrade   cd docs/reconfig; ln -fs ../installation_manual.pdf index.pdf
  install ../../doc/build/cvsupgrade.html docs/cvsupgrade/index.html   perl doc_template.pl $(SOURCE)/doc/templates/template.html \
  install -d docs/upgrade   $(SOURCE)/doc/build/reconfig.html > docs/reconfig/index.html
  install ../../doc/build/upgrade.html docs/upgrade/index.html   install -m 0755 -d docs/reconfig/confexamples
  install -d docs/reconfig   install -m 0644 $(SOURCE)/doc/build/confexamples/[^C][^V]* \
  install ../../doc/build/reconfig.html docs/reconfig/index.html   docs/reconfig/confexamples
  install -d docs/3.1/otherfiles   perl doc_template.pl $(SOURCE)/doc/templates/template.html \
  install ../../doc/otherfiles/rpm_list.txt docs/3.1/otherfiles/rpm_list.txt   $(SOURCE)/doc/build/installindex.html > docs/index.html
  install ../../doc/build/loncapanetwork.html docs/loncapanetwork.html   install -m 0755 -d docs/license
  install ../../doc/build/loncapanfs.html docs/loncapanfs.html   cd docs/license; ln -fs ../installation_manual.pdf index.pdf
  install ../../doc/build/loncapaappleshares.html docs/loncapaappleshares.html   perl doc_template.pl $(SOURCE)/doc/templates/template.html \
  install ../../doc/build/loncapasqldatabase.html docs/loncapasqldatabase.html   $(SOURCE)/doc/build/license.html > docs/license/index.html
  install ../../doc/build/loncapapasswords.html docs/loncapapasswords.html   install -m 0755 -d docs/contact
  install ../../doc/build/loncapapasswordauthentication.html docs/loncapapasswordauthentication.html   cd docs/contact; ln -fs ../installation_manual.pdf index.pdf
  install ../../doc/build/loncapatimesync.html docs/loncapatimesync.html   perl doc_template.pl $(SOURCE)/doc/templates/template.html \
  install ../../doc/build/loncapamathequivalency.html docs/loncapamathequivalency.html   $(SOURCE)/doc/build/contact.html > docs/contact/index.html
  tar czvf install.lon-capa.org_docs.tar.gz docs   install -m 0755 -d docs/faq
  rm -Rf docs   cd docs/faq; ln -fs ../installation_manual.pdf index.pdf
    perl doc_template.pl $(SOURCE)/doc/templates/template.html \
    $(SOURCE)/doc/build/faq.html > docs/faq/index.html
    install -m 0755 -d docs/downloads
    cd docs/downloads; ln -fs ../installation_manual.pdf download.pdf
    perl doc_template.pl $(SOURCE)/doc/templates/template.html \
    $(SOURCE)/doc/build/download.html > docs/downloads/index.html
    install -m 0755 -d docs/install
    cd docs/install; ln -fs ../installation_manual.pdf install.pdf
    perl doc_template.pl $(SOURCE)/doc/templates/template.html \
    $(SOURCE)/doc/build/install.html > docs/install/index.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 .
   
   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
   
   tardist:
    # ----------- MANIFEST the building, testing and standard loncapa files
    cat $(SOURCE)/doc/loncapafiles/buildfiles.lpml | \
    perl lpml_parse.pl MANIFEST development default \
    '$(SOURCE)' '$(TARGET)' | grep '[[:alnum:]]' > $(SOURCE)/MANIFEST
    cat $(SOURCE)/doc/loncapafiles/testfiles.lpml | \
    perl lpml_parse.pl MANIFEST development default \
    '$(SOURCE)' '$(TARGET)' | grep '[[:alnum:]]' >> $(SOURCE)/MANIFEST
    cat $(SOURCE)/doc/loncapafiles/loncapafiles.lpml | \
    perl lpml_parse.pl MANIFEST development default \
    '$(SOURCE)' '$(TARGET)' | grep '[[:alnum:]]' >> $(SOURCE)/MANIFEST
    # ------ CVS/Entries directories to retain 'time-checking' intelligence
    cd $(SOURCE); find . -type f -name 'Entries' | grep 'CVS/Entries' >> \
    MANIFEST
    # ---- Files for top-level (the vanilla layer that the user first sees)
    echo 'README' >> $(SOURCE)/MANIFEST
    echo 'UPDATE' >> $(SOURCE)/MANIFEST
    echo 'TEST' >> $(SOURCE)/MANIFEST
    echo 'CHECKRPMS' >> $(SOURCE)/MANIFEST
    # ---------------------------------- 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
    # ------------------ 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
    # --------------------------- Point UPDATE to the internal make process
    echo '#!/bin/sh' > $(SOURCE)/UPDATE
    echo 'touch loncom/build/WARNINGS' >> $(SOURCE)/UPDATE;
    echo 'ln -s loncom/build/WARNINGS WARNINGS' >> $(SOURCE)/UPDATE;
    echo 'cd loncom/build; make build' >> $(SOURCE)/UPDATE
    echo 'make rawinstall' >> $(SOURCE)/UPDATE
    echo 'make configinstall' >> $(SOURCE)/UPDATE
    echo 'make updatequery' >> $(SOURCE)/UPDATE
    echo 'make hosts_tab' >> $(SOURCE)/UPDATE
    echo 'make postinstall' >> $(SOURCE)/UPDATE
    echo 'make aboutVERSION' >> $(SOURCE)/UPDATE
    echo 'make warningnote' >> $(SOURCE)/UPDATE
    # ----------------------------- Point TEST to the internal make process
    echo '#!/bin/sh' > $(SOURCE)/TEST
    echo 'cd loncom/build; make test' >> $(SOURCE)/TEST
    # ----------------------------- Copy CHECKRPMS to the vanilla top-level
    cp $(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 $(SOURCE)/doc/shortest_path_redhat7.2.txt $(SOURCE)/README
    # --------------------------------------------------- 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
    # -------------------------------------------------------- Make tardist
    @cd $(SOURCE); \
    if (test -h $(DIRTARGET)); then \
    echo "$(DIRTARGET) link already defined; assume okay"; \
    else \
    ln -s . $(DIRTARGET); \
    fi
    cp -v $(SOURCE)/loncom/license/about.html \
    $(SOURCE)/loncom/license/about.html.orig
    make aboutVERSION
    cd $(SOURCE); \
    tar --no-recursion --numeric-owner --files-from MANIFEST_loncapa \
    -h -czf loncapa.tar.gz 2>WARNINGS || [ "0" == "0" ]
    mv -v $(SOURCE)/loncom/license/about.html.orig \
    $(SOURCE)/loncom/license/about.html
    cat $(SOURCE)/WARNINGS | \
    xargs --replace=XXX echo '**** WARNING **** XXX' > WARNINGS
    rm -f $(SOURCE)/WARNINGS
    make warningnote
   
 cvsreport:  
  echo "<H1>Automatically generated CVS report</H1>" > ../../doc/build/cvsreport.html  
  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  
  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  
  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  
  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  
  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  
  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  
  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 -Rf HTML   rm -Rf HTML
  rm -f *.spec   rm -f installation_manual.pdf
  rm -f LCMakefile   rm -f Makefile.build
    rm -f Makefile.install
    rm -f Makefile.configinstall
  rm -Rf BinaryRoot   rm -Rf BinaryRoot
  rm -f Makefile.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 $(SOURCE)/loncom/build/hosts.tab
   
   reallyclean:
    rm -f $(SOURCE)/README
    rm -f $(SOURCE)/UPDATE
    rm -f $(SOURCE)/TEST
    rm -f $(SOURCE)/MANIFEST
    rm -f $(SOURCE)/loncapa
    rm -f $(SOURCE)/loncom/build/hosts.tab
    rm -f $(SOURCE)/loncapa.tar.gz
    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.install.tmp   rm -f Makefile.configinstall
  rm -f Makefile.cd.tmp   rm -Rf BinaryRoot
  rm -f *.rpm   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
   
   alwaysrun:

Removed from v.1.50  
changed lines
  Added in v.1.123


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