--- loncom/build/Makefile 2002/04/22 17:41:20 1.82 +++ loncom/build/Makefile 2002/07/18 21:28:35 1.127 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Scott Harrison -# $Id: Makefile,v 1.82 2002/04/22 17:41:20 harris41 Exp $ +# $Id: Makefile,v 1.127 2002/07/18 21:28:35 harris41 Exp $ DISTPROBE=`perl ./distprobe` DIST=$(DISTPROBE) @@ -11,17 +11,19 @@ TARGET="" 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 +VERSION=0.4 +DIRTARGET=loncapa-$(VERSION) -help: +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.1, debian, redhat6.2, or default" + @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" @@ -40,7 +42,7 @@ help: @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 " 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 " @@ -53,6 +55,8 @@ help: @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" test: TEST_lpml_scripts TEST_system_dependencies TEST_web_layer @echo "ALL SYSTEM DEPENDENCY TESTS SUCCESSFUL" @@ -71,14 +75,14 @@ TEST_web_layer: TEST_hosts_tab: @echo "Testing hosts.tab" - @if (test -h ../hosts.tab); then \ + @if (test -e ../hosts.tab); then \ echo "there is a defined link; assume okay"; \ else echo "**** ERROR **** hosts.tab not defined!" && \ echo -n "You need to do one of the following within your " && \ - echo "CVS repository" && \ - echo " 1) cd ../; ln -s production_hosts.tab hosts.tab" && \ - echo " 2) cd ../; ln -s development_hosts.tab hosts.tab" && \ - echo "or 3) cd ../; ln -s rawhide_hosts.tab hosts.tab" && \ + 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)" && \ exit 1; \ fi @@ -201,11 +205,31 @@ sanitycheck: 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 -install: TEST_hosts_tab Makefile.install Makefile +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 make -f Makefile.install SOURCE="$(SOURCE)" TARGET="$(TARGET)" \ directories @@ -216,13 +240,29 @@ install: TEST_hosts_tab Makefile.install make postinstall 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" + +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 -Makefile.install: $(SOURCE)/doc/loncapafiles/loncapafiles.lpml lpml_parse.pl +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 + 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 make warningnote @@ -279,9 +319,16 @@ BinaryRoot: base_rpm_file_list # Generates CVS:loncom/build/docs; root location of install.lon-capa.org doc: install -d docs + @if (test -e installation_manual.pdf); then \ + cp -vf installation_manual.pdf docs/.; \ + else \ + touch docs/installation_manual.pdf; \ + fi install -m 0755 -d docs/icons install -m 0644 $(SOURCE)/doc/icons/[^C][^V]* docs/icons install -m 0755 -d docs/reconfig + cd docs; ln -fs installation_manual.pdf index.pdf + cd docs/reconfig; ln -fs ../installation_manual.pdf index.pdf perl doc_template.pl $(SOURCE)/doc/templates/template.html \ $(SOURCE)/doc/build/reconfig.html > docs/reconfig/index.html install -m 0755 -d docs/reconfig/confexamples @@ -290,100 +337,217 @@ doc: perl doc_template.pl $(SOURCE)/doc/templates/template.html \ $(SOURCE)/doc/build/installindex.html > docs/index.html install -m 0755 -d docs/license + cd docs/license; ln -fs ../installation_manual.pdf index.pdf perl doc_template.pl $(SOURCE)/doc/templates/template.html \ $(SOURCE)/doc/build/license.html > docs/license/index.html install -m 0755 -d docs/contact + cd docs/contact; ln -fs ../installation_manual.pdf index.pdf perl doc_template.pl $(SOURCE)/doc/templates/template.html \ $(SOURCE)/doc/build/contact.html > docs/contact/index.html install -m 0755 -d docs/faq + 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 + 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/download/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 . -documentation_tree: cvsreport - install -d docs - install $(SOURCE)/doc/build/cvsreport.html docs/cvsreport.html - install $(SOURCE)/doc/build/doc.html docs/index.html - install -d docs/hardware - install $(SOURCE)/doc/hardware/hardware.html \ - docs/hardware/hardware.html - install -d docs/3.1 - install $(SOURCE)/doc/build/install.html docs/3.1/index.html - install $(SOURCE)/doc/build/instructions_with_cd.html \ - docs/3.1/instructions_with_cd.html - install $(SOURCE)/doc/build/libraryserverconfiguration.gif \ - docs/3.1/libraryserverconfiguration.gif - install $(SOURCE)/doc/build/librarysystemsettings.gif \ - docs/3.1/librarysystemsettings.gif - install -d docs/cvsupgrade - install $(SOURCE)/doc/build/cvsupgrade.html docs/cvsupgrade/index.html - install -d docs/upgrade - install $(SOURCE)/doc/build/upgrade.html docs/upgrade/index.html - install -d docs/reconfig - install $(SOURCE)/doc/build/reconfig.html docs/reconfig/index.html - install -d docs/3.1/otherfiles - install $(SOURCE)/doc/otherfiles/rpm_list.txt \ - docs/3.1/otherfiles/rpm_list.txt - install $(SOURCE)/doc/build/loncapanetwork.html \ - docs/loncapanetwork.html - install $(SOURCE)/doc/build/loncapanfs.html docs/loncapanfs.html - install $(SOURCE)/doc/build/loncapaappleshares.html \ - docs/loncapaappleshares.html - install $(SOURCE)/doc/build/loncapasqldatabase.html \ - docs/loncapasqldatabase.html - install $(SOURCE)/doc/build/loncapapasswords.html \ - docs/loncapapasswords.html - install $(SOURCE)/doc/build/loncapapasswordauthentication.html \ - docs/loncapapasswordauthentication.html - install $(SOURCE)/doc/build/loncapatimesync.html \ - docs/loncapatimesync.html - install $(SOURCE)/doc/build/loncapamathequivalency.html \ - docs/loncapamathequivalency.html - tar czvf install.lon-capa.org_docs.tar.gz docs - rm -Rf docs +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: - cat $(SOURCE)/doc/loncapafiles/loncapafiles.lpml | \ + # ----------- 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/buildfiles.lpml | \ + 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 'cd loncom/build; make build; make install' >> $(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 --numeric-owner --files-from MANIFEST -czf loncapa.tar.gz \ - 2>WARNINGS || [ "0" == "0" ] + tar --no-recursion --numeric-owner --files-from MANIFEST_loncapa \ + -h -czf $(DIRTARGET).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: - clean: + 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 $(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.install rm -f Makefile.configinstall @@ -395,7 +559,10 @@ clean: 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: 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.