--- loncom/build/Makefile 2001/01/25 18:43:52 1.24 +++ loncom/build/Makefile 2002/01/11 17:35:39 1.61 @@ -1,104 +1,252 @@ -# Makefile -# For LON-CAPA -# Scott Harrison -# November 2000 - -CDTARGET="." +# The LearningOnline Network with CAPA -all: - # nothing yet here +# Scott Harrison +# $Id: Makefile,v 1.61 2002/01/11 17:35:39 harris41 Exp $ -cd: - # Build temporary script to get cd - # make sure there is enough disk space - @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 - @echo "cd:" >> Makefile.cd.tmp - @echo -e "ifeq (\$$(S),1)" >> Makefile.cd.tmp - @echo -e "\t@echo \"There is enough disk space. Good!\"" >> Makefile.cd.tmp - # set up commands to copy cd image from install.lon-capa.org (wget -r) - @echo -e "\tcd \$$(TARGET); wget -np -N -r -l 1000 http://install.lon-capa.org/3.1/currentcdsource" >> Makefile.cd.tmp - @echo -e "\tcd \$$(TARGET); find ./install.lon-capa.org -name index.html | xargs rm -f" >> Makefile.cd.tmp - # set up cvs update commands - # set up cd image compilation (mkisofs) - @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 -e "else" >> Makefile.cd.tmp - @echo -e "\t@echo \"ERROR ******* Not enough disk space. There must be at least one gigabyte free\"" >> Makefile.cd.tmp - @echo -e "endif" >> Makefile.cd.tmp - @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 +DIST="default" +CATEGORY="development" +SOURCE="../.." +TARGET="" +NORESTORECONF="0" + +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) 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" + +test: TEST_lpml_scripts TEST_system_dependencies TEST_web_layer + @echo "ALL SYSTEM DEPENDENCY TESTS SUCCESSFUL" + +TEST_system_dependencies: + @echo "TESTING SYSTEM DEPENDENCIES" + cd system_dependencies; make + +TEST_lpml_scripts: + @echo "TESTING LPML INSTALLATION CODE" + cd ../test; perl filecomparetest.pl -cd_cover: +TEST_web_layer: + @echo "Testing of web layers is not yet implemented." HTML: install -d HTML cp ../../doc/loncapafiles/*.gif HTML - perl parse.pl ../../doc/loncapafiles/loncapafiles.html HTML > HTML/index.html + cat ../../doc/loncapafiles/loncapafiles.lpml | \ + perl lpml_parse.pl html development default ../.. '' > HTML/index.html status: install -d HTML cp ../../doc/loncapafiles/*.gif HTML - perl parse.pl ../../doc/loncapafiles/loncapafiles.html status > HTML/filestatus.html + cat ../../doc/loncapafiles/loncapafiles.lpml | \ + perl lpml_parse.pl html $(CATEGORY) $(DIST) "../.." "" | \ + perl lpml_html_posteval.pl > \ + HTML/filestatus.html statuspost: status - cp ../../doc/loncapafiles/*.gif /home/httpd/html/lon-status - cp HTML/filestatus.html /home/httpd/html/lon-status/filestatus.html - -LCMakefile: - perl parse.pl ../../doc/loncapafiles/loncapafiles.html LCMakefile > LCMakefile - -SPEC: - perl parse.pl ../../doc/loncapafiles/loncapafiles.html SPEC + cp ../../doc/loncapafiles/*.gif $(TARGET)/home/httpd/html/lon-status + cp HTML/filestatus.html \ + $(TARGET)/home/httpd/html/lon-status/filestatus.html + +rpmstatus: + install -d RPMSTATUS + rpm -qa --queryformat \ + '%{NAME}\t%{VERSION}\t%{RELEASE}\t%{BUILDTIME}\n' | sort > \ + RPMSTATUS/current.tmp + cat ../../doc/otherfiles/cd_rpms.txt > RPMSTATUS/standard.tmp + cat ../../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 + cp RPMSTATUS/rpmstatus.html /home/httpd/html/lon-status/rpmstatus.html + +configinstall: Makefile.configinstall + make -f Makefile.configinstall SOURCE="$(SOURCE)" TARGET="$(TARGET)" \ + configfiles + if (test "0" = $(NORESTORECONF)); then \ + perl loncaparestoreconfigurations suffix .lpmlnew; fi + +Makefile.configinstall: ../../doc/loncapafiles/loncapafiles.lpml lpml_parse.pl + cat ../../doc/loncapafiles/loncapafiles.lpml | \ + perl lpml_parse.pl configinstall $(CATEGORY) $(DIST) "$(SOURCE)" \ + "$(TARGET)" > 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 + 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 + make warningnote + +Makefile.install: ../../doc/loncapafiles/loncapafiles.lpml lpml_parse.pl + cat ../../doc/loncapafiles/loncapafiles.lpml | \ + perl lpml_parse.pl install $(CATEGORY) $(DIST) "$(SOURCE)" \ + "$(TARGET)" > Makefile.install -configinstall: - # there is a dependency on having directories in place, but oh well... - perl parse.pl ../../doc/loncapafiles/loncapafiles.html configinstall > Makefile.configinstall - make -f Makefile.configinstall SOURCE="../.." TARGET="" configfiles - perl loncaparestoreconfigurations lasttimestamp - make -f Makefile.configinstall TARGET="" configpermissions - -install: build - perl parse.pl ../../doc/loncapafiles/loncapafiles.html install > Makefile.install - make -f Makefile.install SOURCE="../.." TARGET="" directories - make -f Makefile.install SOURCE="../.." TARGET="" files - make -f Makefile.install SOURCE="../.." TARGET="" links - -build: - perl parse.pl ../../doc/loncapafiles/loncapafiles.html build > Makefile.build +build: Makefile.build pod2html.sh pod2man.sh + echo -n "" > WARNINGS make -f Makefile.build all + make warningnote -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 +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 base_rpm_file_list + cat ../../doc/loncapafiles/loncapafiles.lpml | perl lpml_parse.pl make_rpm $(CATEGORY) $(DIST) $(SOURCE) $(TARGET) > base_customizerpm.xml + cat base_rpm_file_list.txt | perl make_rpm.pl base 3.2 '' '' \ + BinaryRoot base_customizerpm.xml + +setup_RPM: + echo "SetupBinaryRoot/etc/passwd" > setup_rpm_file_list.txt + echo "SetupBinaryRoot/etc/group" >> setup_rpm_file_list.txt + echo "SetupBinaryRoot/etc/hosts.deny" >> setup_rpm_file_list.txt + echo "SetupBinaryRoot/home/www" >> setup_rpm_file_list.txt + echo "SetupBinaryRoot/etc/pam.d/passwd" >> setup_rpm_file_list.txt + echo "SetupBinaryRoot/etc/pam.d/login" >> setup_rpm_file_list.txt + perl setup_rpm_binaryroot.pl + cat setup_rpm_file_list.txt | perl make_rpm.pl setup 3.2 '' '' \ + SetupBinaryRoot customizerpm.xml + +DPKG: + make TARGET='LON-CAPA-base' 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." + +base_rpm_file_list: + cat ../../doc/loncapafiles/loncapafiles.lpml | \ + perl lpml_parse.pl rpm_file_list $(CATEGORY) $(DIST) $(SOURCE) \ + 'BinaryRoot' | sort > base_rpm_file_list.txt -BinaryRoot: - perl parse.pl ../../doc/loncapafiles/loncapafiles.html BinaryRoot +BinaryRoot: base_rpm_file_list + make TARGET='BinaryRoot' NORESTORECONF='1' install 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 + 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 + @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 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/. + 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/. + +documentation_tree: cvsreport + install -d docs + install ../../doc/build/cvsreport.html docs/cvsreport.html + install ../../doc/build/doc.html docs/index.html + install -d docs/hardware + install ../../doc/hardware/hardware.html docs/hardware/hardware.html + install -d docs/3.1 + install ../../doc/build/install.html docs/3.1/index.html + install ../../doc/build/instructions_with_cd.html \ + docs/3.1/instructions_with_cd.html + install ../../doc/build/libraryserverconfiguration.gif \ + docs/3.1/libraryserverconfiguration.gif + install ../../doc/build/librarysystemsettings.gif \ + docs/3.1/librarysystemsettings.gif + install -d docs/cvsupgrade + install ../../doc/build/cvsupgrade.html docs/cvsupgrade/index.html + install -d docs/upgrade + install ../../doc/build/upgrade.html docs/upgrade/index.html + install -d docs/reconfig + install ../../doc/build/reconfig.html docs/reconfig/index.html + install -d docs/3.1/otherfiles + install ../../doc/otherfiles/rpm_list.txt \ + docs/3.1/otherfiles/rpm_list.txt + install ../../doc/build/loncapanetwork.html docs/loncapanetwork.html + install ../../doc/build/loncapanfs.html docs/loncapanfs.html + install ../../doc/build/loncapaappleshares.html \ + docs/loncapaappleshares.html + install ../../doc/build/loncapasqldatabase.html \ + docs/loncapasqldatabase.html + install ../../doc/build/loncapapasswords.html \ + docs/loncapapasswords.html + install ../../doc/build/loncapapasswordauthentication.html \ + docs/loncapapasswordauthentication.html + install ../../doc/build/loncapatimesync.html docs/loncapatimesync.html + install ../../doc/build/loncapamathequivalency.html \ + docs/loncapamathequivalency.html + tar czvf install.lon-capa.org_docs.tar.gz docs + rm -Rf docs + +cvsreport: clean: rm -Rf HTML - rm -f *.spec - rm -f LCMakefile - rm -Rf BinaryRoot - rm -f Makefile.BinaryRoot rm -f Makefile.build rm -f Makefile.install - rm -f Makefile.install.tmp - rm -f Makefile.cd.tmp - rm -f *.rpm + rm -f Makefile.configinstall + rm -Rf BinaryRoot + rm -Rf SetupBinaryRoot + rm -f base_rpm_file_list.txt + rm -f base_customizerpm.xml + rm -f setup_rpm_file_list.txt 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.