--- loncom/build/Makefile 2002/05/08 22:12:31 1.103 +++ loncom/build/Makefile 2002/06/17 05:51:00 1.122 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Scott Harrison -# $Id: Makefile,v 1.103 2002/05/08 22:12:31 harris41 Exp $ +# $Id: Makefile,v 1.122 2002/06/17 05:51:00 harris41 Exp $ DISTPROBE=`perl ./distprobe` DIST=$(DISTPROBE) @@ -12,6 +12,7 @@ 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) @@ -19,10 +20,10 @@ METAMTARGET="" MTARGET="" VERSION=0.1 -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" @@ -41,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 " @@ -74,7 +75,7 @@ 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 " && \ @@ -206,14 +207,22 @@ sanitycheck: updatequery: cat $(SOURCE)/doc/loncapafiles/updatequery.piml | \ - perl piml_parse.pl $(CATEGORY) $(DIST) "$(TARGET)" $(LAUNCH) | \ - tee -a WARNINGS + 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 + +install: VERSION TEST_hosts_tab Makefile.install Makefile echo -n "" > WARNINGS make -f Makefile.install SOURCE="$(SOURCE)" TARGET="$(TARGET)" \ directories @@ -224,8 +233,21 @@ 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 @@ -358,7 +380,7 @@ pdfdoc: TEST_html2ps # 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' | perl -nle \ + 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 @@ -404,6 +426,7 @@ TEST_html2ps: 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 @@ -413,35 +436,64 @@ tardist: 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 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;s/\w+\/\.\.\///g;s/\w+\/\.\.\///g;s/\w+\/\.\.\///g;s/\/\.\//\//g;print' | sort | uniq > \ - MANIFEST_loncapa; \ - ln -s . $(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 + cd $(SOURCE); \ tar --no-recursion --numeric-owner --files-from MANIFEST_loncapa \ -h -czf loncapa.tar.gz 2>WARNINGS || [ "0" == "0" ] cat $(SOURCE)/WARNINGS | \ @@ -450,9 +502,32 @@ tardist: make warningnote 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 @@ -472,3 +547,5 @@ clean: rm -Rf lpmladm.* make -f Makefile.cvs clean rm -f WARNINGS + +alwaysrun: