--- loncom/build/Makefile 2002/05/08 22:12:31 1.103 +++ loncom/build/Makefile 2002/05/22 20:20:41 1.113 @@ -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.113 2002/05/22 20:20:41 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" @@ -206,8 +207,7 @@ 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 @@ -225,6 +225,15 @@ install: TEST_hosts_tab Makefile.install make warningnote echo "You can run 'make test' to see if your system is ready to go!" +rawinstall: 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 cat $(SOURCE)/doc/loncapafiles/loncapafiles.lpml | \ perl lpml_parse.pl install $(CATEGORY) $(DIST) "$(SOURCE)" \ @@ -404,6 +413,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 +423,63 @@ 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 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 +488,30 @@ 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 + +reallyclean: rm -f $(SOURCE)/README rm -f $(SOURCE)/UPDATE rm -f $(SOURCE)/TEST + rm -f $(SOURCE)/MANIFEST + rm -f $(SOURCE)/loncapa rm -f $(SOURCE)/loncapa.tar.gz rm -Rf HTML rm -f installation_manual.pdf