File:  [LON-CAPA] / loncom / build / Makefile
Revision 1.110: download - view: text, annotated - select for diffs
Mon May 13 17:35:20 2002 UTC (22 years, 1 month ago) by harris41
Branches: MAIN
CVS tags: HEAD
make sure that files attempt to install off the tarball irrespective of
status of build (eventually we either distribute precompiled builds
or have some sort of interactive pause that tells the user about the build
BUG 431  (the problem was that make build; make install... introduces
a serial dependency whereas splitting them onto two different lines
removes that dependency)

    1: # The LearningOnline Network with CAPA
    2: 
    3: # Scott Harrison
    4: # $Id: Makefile,v 1.110 2002/05/13 17:35:20 harris41 Exp $
    5: 
    6: DISTPROBE=`perl ./distprobe`
    7: DIST=$(DISTPROBE)
    8: CATEGORY="development"
    9: SOURCE=../..
   10: TARGET=""
   11: DIRTARGET=loncapa
   12: NORESTORECONF="0"
   13: HOSTNAME=""
   14: LAUNCH=| perl
   15: QUERYLAUNCH=> /tmp/loncapa_query.pl; perl /tmp/loncapa_query.pl
   16: OUTSTREAM=>
   17: SAVE=program.pl.$(TIMESTAMP)
   18: LAUNCHSAVE=$(OUTSTREAM) $(SAVE)
   19: METAMTARGET=""
   20: MTARGET=""
   21: VERSION=0.1
   22: 
   23: help:
   24: 	@echo "*** You need to specify a valid target ***"
   25: 	@echo "NOTE: You can specify options to your Makefile target."
   26: 	@echo "(option) DIST can be redhat7, debian, redhat6.2, or default"
   27: 	@echo "(option) CATEGORY can be runtime or development"
   28: 	@echo "(option) SOURCE is an absolute or relative directory path"
   29: 	@echo "(option) TARGET is an absolute or relative directory path"
   30: 	@echo "build: compile the CVS source tree"
   31: 	@echo "install: install from a compiled CVS source tree to a "
   32: 	@echo "         specified TARGET destination on the filesystem"
   33: 	@echo "test: test different parts of the LON-CAPA system (TEST_*)"
   34: 	@echo "TEST_lpml_scripts: make sure that the system can process "
   35: 	@echo "                   the Linux Packaging Markup Language"
   36: 	@echo "TEST_system_dependencies: make sure that all needed system "
   37: 	@echo "                          components are active and present "
   38: 	@echo "                          on the server such as perl modules"
   39: 	@echo "                          and the MySQL database"
   40: 	@echo "TEST_web_layer: mimic a login and various system actions on "
   41: 	@echo "                a LON-CAPA system"
   42: 	@echo "HTML: generate an HTML-formatted description of the LON-CAPA"
   43: 	@echo "      CVS files"
   44: 	@echo "documentation_tree: compiles a documentation tree from the "
   45:         @echo "                    CVS:doc directory"
   46: 	@echo "status: compare the TARGET filesystem with a compiled CVS "
   47: 	@echo "        source directory"
   48: 	@echo "statuspost: post the results of "make status" to "
   49: 	@echo "            TARGET/home/httpd/html/lon-status/filestatus.html"
   50: 	@echo "rpmstatus: compare the rpms on a system to defined lists "
   51: 	@echo "           CVS:doc/otherfiles/cd_rpms and "
   52: 	@echo "           CVS:doc/otherfiles/rpm_list.txt"
   53: 	@echo "rpmstatuspost: post the results of "make rpmstatus" to "
   54: 	@echo "            TARGET/home/httpd/html/lon-status/rpmstatus.html"
   55: 	@echo "RPM: build LON-CAPA-base RPM from CVS repository"
   56: 	@echo "setup_RPM: build LON-CAPA-setup RPM from CVS repository"
   57: 	@echo "           handy for CD-ROM generation"
   58: 	@echo "tardist: build a tarball that will upgrade the software on a "
   59: 	@echo "         system"
   60: 
   61: test: TEST_lpml_scripts TEST_system_dependencies TEST_web_layer
   62: 	@echo "ALL SYSTEM DEPENDENCY TESTS SUCCESSFUL"
   63: 
   64: TEST_system_dependencies:
   65: 	@echo "TESTING SYSTEM DEPENDENCIES"
   66: 	cd system_dependencies; make
   67: 
   68: TEST_lpml_scripts:
   69: 	@echo "TESTING LPML INSTALLATION CODE"
   70: 	cd ../test; perl filecomparetest.pl
   71: 
   72: TEST_web_layer:
   73: 	@echo "TESTING WEB LAYER"
   74: 	cd weblayer_test; make
   75: 
   76: TEST_hosts_tab:
   77: 	@echo "Testing hosts.tab"
   78: 	@if (test -h ../hosts.tab); then \
   79: 		echo "there is a defined link; assume okay"; \
   80: 	else echo "**** ERROR **** hosts.tab not defined!" && \
   81: 	     echo -n "You need to do one of the following within your " && \
   82: 	     echo "CVS repository (cd loncapa/loncom)" && \
   83: 	     echo "   1) ln -s production_hosts.tab hosts.tab" && \
   84: 	     echo "   2) ln -s development_hosts.tab hosts.tab" && \
   85: 	     echo "or 3) ln -s rawhide_hosts.tab hosts.tab" && \
   86: 	     echo "(you most likely want option #1, production_hosts.tab)" && \
   87: 	     exit 1; \
   88: 	fi
   89: 
   90: NET_hosts_tab:
   91: 	make TIMESTAMP=`date +"%s"` METAMTARGET="TRANSPORT" \
   92: 	MTARGET="hosts_tab" HOSTNAME="$(HOSTNAME)" lpmladm
   93: 
   94: hosts_tab: TEST_hosts_tab
   95: 	cat $(SOURCE)/doc/loncapafiles/loncapafiles.lpml | \
   96: 	perl xfml_parse.pl $(SOURCE)/doc/loncapafiles/valid_hosts.xfml | \
   97: 	perl lpml_parse.pl install $(CATEGORY) $(DIST) "$(SOURCE)" \
   98: 	"$(TARGET)" > Makefile.install
   99: 	make -f Makefile.install directories
  100: 	make -f Makefile.install files
  101: 	@echo "If hosts.tab has changed, restart httpd and loncontrol:"
  102: 	@echo "   /etc/rc.d/init.d/httpd restart"
  103: 	@echo "   /etc/rc.d/init.d/loncontrol restart"
  104: 
  105: lpmladm:
  106: 	@if (test $(METAMTARGET) = "TRANSPORT"); then \
  107: 		echo "Transporting to $(HOSTNAME)"; \
  108: 		sudo make DIST=$(DIST) CATEGORY=$(CATEGORY) \
  109: 		SOURCE="$(SOURCE)" \
  110: 		TARGET="lpmladm.$(TIMESTAMP)" \
  111: 		NORESTORECONF="$(NORESTORECONF)" "$(MTARGET)"; \
  112: 		cd lpmladm.$(TIMESTAMP); \
  113: 		sudo tar czvf ../tarball$(TIMESTAMP).tar.gz .; \
  114: 		cd ..; scp tarball$(TIMESTAMP).tar.gz \
  115: 		lpmladm@$(HOSTNAME):~/tarball$(TIMESTAMP).tar.gz; \
  116: 		ssh lpmladm@$(HOSTNAME) sudo mv tarball$(TIMESTAMP).tar.gz /; \
  117: 		ssh lpmladm@$(HOSTNAME) sudo tar -x -z -v -C / \
  118: 		-p --same-owner -f \
  119: 		/tarball$(TIMESTAMP).tar.gz; \
  120: 		ssh lpmladm@$(HOSTNAME) sudo rm -f \
  121: 		/tarball$(TIMESTAMP).tar.gz; \
  122: 	elif (test $(METAMTARGET) = "LAUNCH"); then \
  123: 		echo "Launching process on $(HOSTNAME)"; \
  124: 		LAUNCHSAVE=$(OUTSTREAM) $(SAVE); \
  125: 		make DIST=$(DIST) CATEGORY=$(CATEGORY) SOURCE="$(SOURCE)" \
  126: 		TARGET="$(TARGET)" NORESTORECONF="$(NORESTORECONF)" \
  127: 		LAUNCH="$(LAUNCHSAVE)" "$(MTARGET)"; \
  128: 		scp $(SAVE) lpmladm@$(HOSTNAME):~/$(SAVE); \
  129: 		ssh lpmladm@$(HOSTNAME) sudo perl $(SAVE); \
  130: 		ssh lpmladm@$(HOSTNAME) sudo rm -f $(SAVE); \
  131: 	else \
  132: 		echo "**** ERROR **** Incorrect METAMTARGET"; \
  133: 	fi
  134: 
  135: HTML:
  136: 	install -d HTML
  137: 	cp $(SOURCE)/doc/loncapafiles/*.gif HTML
  138: 	cat $(SOURCE)/doc/loncapafiles/loncapafiles.lpml | \
  139: 	perl lpml_parse.pl html development default "$(SOURCE)" '$(TARGET)' \
  140: 	> HTML/index.html
  141: 
  142: status:
  143: 	install -d HTML
  144: 	cp $(SOURCE)/doc/loncapafiles/*.gif HTML
  145: 	cat $(SOURCE)/doc/loncapafiles/loncapafiles.lpml | \
  146: 	perl lpml_parse.pl html $(CATEGORY) $(DIST) "$(SOURCE)" "($TARGET)" | \
  147: 	perl lpml_html_posteval.pl > \
  148: 	HTML/filestatus.html
  149: 
  150: statuspost: status
  151: 	cp $(SOURCE)/doc/loncapafiles/*.gif \
  152: 	$(TARGET)/home/httpd/html/lon-status
  153: 	cp HTML/filestatus.html \
  154: 	$(TARGET)/home/httpd/html/lon-status/filestatus.html
  155: 
  156: rpmstatus:
  157: 	install -d RPMSTATUS
  158: 	rpm -qa --queryformat \
  159: 	'%{NAME}\t%{VERSION}\t%{RELEASE}\t%{BUILDTIME}\n' | sort > \
  160: 	RPMSTATUS/current.tmp
  161: 	cat $(SOURCE)/doc/otherfiles/cd_rpms.txt > RPMSTATUS/standard.tmp
  162: 	cat $(SOURCE)/doc/otherfiles/rpm_list.txt > RPMSTATUS/expected.tmp
  163: 	perl rpmparse.pl RPMSTATUS/standard.tmp RPMSTATUS/current.tmp \
  164: 	RPMSTATUS/expected.tmp > RPMSTATUS/rpmstatus.html
  165: 
  166: rpmstatuspost: rpmstatus
  167: 	cp RPMSTATUS/rpmstatus.html /home/httpd/html/lon-status/rpmstatus.html
  168: 
  169: configinstall: Makefile.configinstall
  170: 	make -f Makefile.configinstall SOURCE="$(SOURCE)" TARGET="$(TARGET)" \
  171: 	configfiles
  172: 	if (test "0" = $(NORESTORECONF)); then \
  173: 	perl loncaparestoreconfigurations suffix .lpmlnew; fi
  174: 
  175: Makefile.configinstall: $(SOURCE)/doc/loncapafiles/loncapafiles.lpml lpml_parse.pl
  176: 	cat $(SOURCE)/doc/loncapafiles/loncapafiles.lpml | \
  177: 	perl lpml_parse.pl configinstall $(CATEGORY) $(DIST) "$(SOURCE)" \
  178: 	"$(TARGET)" > Makefile.configinstall
  179: 
  180: warningnote:
  181: 	@if (test -s WARNINGS); then \
  182: 		W=`grep -c '\*\*\*\* WARNING' WARNINGS`; \
  183: 		E=`grep -c '\*\*\*\* ERROR' WARNINGS`; \
  184: 		N=`grep -c '\*\*\*\* NOTE' WARNINGS`; \
  185: 		echo "--->  $$W WARNINGS ENCOUNTERED!       "; \
  186: 		echo "--->  $$E ERRORS ENCOUNTERED!         "; \
  187: 		echo "--->  $$N NOTES ENCOUNTERED!          "; \
  188: 		echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"; \
  189: 		echo "!!!!  Please read the WARNINGS file !!!!"; \
  190: 		echo "!!!!   to make sure everything is   !!!!"; \
  191: 		echo "!!!!    correct and taken care of   !!!!"; \
  192: 		echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"; \
  193: 	fi
  194: 
  195: NET_webserverconf:
  196: 	make TIMESTAMP=`date +"%s"` METAMTARGET="LAUNCH" \
  197: 	MTARGET="webserverconf" HOSTNAME="$(HOSTNAME)" lpmladm
  198: 
  199: webserverconf:
  200: 	cat $(SOURCE)/doc/loncapafiles/webserver.piml | \
  201: 	perl piml_parse.pl $(CATEGORY) $(DIST) "$(TARGET)" $(LAUNCH)
  202: 
  203: sanitycheck:
  204: 	cat $(SOURCE)/doc/loncapafiles/sanitycheck.piml | \
  205: 	perl piml_parse.pl $(CATEGORY) $(DIST) "$(TARGET)" $(LAUNCH) | \
  206: 	tee -a WARNINGS
  207: 
  208: updatequery:
  209: 	cat $(SOURCE)/doc/loncapafiles/updatequery.piml | \
  210: 	perl piml_parse.pl $(CATEGORY) $(DIST) "$(TARGET)" $(QUERYLAUNCH) | \
  211: 	tee -a WARNINGS
  212: 
  213: postinstall:
  214: 	make webserverconf
  215: 	make sanitycheck
  216: 
  217: install: TEST_hosts_tab Makefile.install Makefile
  218: 	echo -n "" > WARNINGS
  219: 	make -f Makefile.install SOURCE="$(SOURCE)" TARGET="$(TARGET)" \
  220: 	directories
  221: 	make -f Makefile.install SOURCE="$(SOURCE)" TARGET="$(TARGET)" files
  222: 	make -f Makefile.install SOURCE="$(SOURCE)" TARGET="$(TARGET)" links
  223: 	make SOURCE="$(SOURCE)" TARGET="$(TARGET)" \
  224: 	NORESTORECONF="$(NORESTORECONF)" configinstall
  225: 	make postinstall
  226: 	make warningnote
  227: 	echo "You can run 'make test' to see if your system is ready to go!"
  228: 
  229: Makefile.install: $(SOURCE)/doc/loncapafiles/loncapafiles.lpml lpml_parse.pl
  230: 	cat $(SOURCE)/doc/loncapafiles/loncapafiles.lpml | \
  231: 	perl lpml_parse.pl install $(CATEGORY) $(DIST) "$(SOURCE)" \
  232: 	"$(TARGET)" > Makefile.install
  233: 
  234: build: Makefile.build pod2html.sh pod2man.sh
  235: 	install -d $(SOURCE)/doc/man
  236: 	install -d $(SOURCE)/doc/scripts
  237: 	install -d $(SOURCE)/doc/lib/perl/Apache
  238: 	echo -n "" > WARNINGS
  239: 	make -f Makefile.build all
  240: 	make warningnote
  241: 
  242: Makefile.build: $(SOURCE)/doc/loncapafiles/loncapafiles.lpml lpml_parse.pl
  243: 	cat $(SOURCE)/doc/loncapafiles/loncapafiles.lpml | \
  244: 	perl lpml_parse.pl build $(CATEGORY) $(DIST) "$(SOURCE)" "$(TARGET)" \
  245: 	> Makefile.build
  246: 
  247: RPM: BinaryRoot base_rpm_file_list
  248: 	cat $(SOURCE)/doc/loncapafiles/loncapafiles.lpml | \
  249: 	perl lpml_parse.pl make_rpm $(CATEGORY) $(DIST) $(SOURCE) $(TARGET) \
  250: 	> base_customizerpm.xml
  251: 	cat base_rpm_file_list.txt | perl make_rpm.pl base 3.2 '' '' \
  252: 	BinaryRoot base_customizerpm.xml
  253: 
  254: setup_RPM:
  255: 	echo "SetupBinaryRoot/etc/passwd" > setup_rpm_file_list.txt
  256: 	echo "SetupBinaryRoot/etc/group" >> setup_rpm_file_list.txt
  257: 	echo "SetupBinaryRoot/etc/hosts.deny" >> setup_rpm_file_list.txt
  258: 	echo "SetupBinaryRoot/home/www" >> setup_rpm_file_list.txt
  259: 	echo "SetupBinaryRoot/etc/pam.d/passwd" >> setup_rpm_file_list.txt
  260: 	echo "SetupBinaryRoot/etc/pam.d/login" >> setup_rpm_file_list.txt
  261: 	perl setup_rpm_binaryroot.pl
  262: 	cat setup_rpm_file_list.txt | perl make_rpm.pl setup 3.2 '' '' \
  263: 	SetupBinaryRoot customizerpm.xml
  264: 
  265: DPKG:
  266: 	make TARGET='lon-capa-$(VERSION)' NORESTORECONF='1' install
  267: 	@echo "You will next need to follow instructions at:"
  268: 	@echo "http://people.debian.org/~jaldhar/make_package1.html"
  269: 	@echo "A directory with a snapshot of the debian package files"
  270: 	@echo "is LON-CAPA-base."
  271: # What DPKG steps need to happen (for future implementation):
  272: # export EMAIL="" ... probably sharrison@mail.lon-capa.org
  273: # deb-make
  274: # edit debian/control
  275: # make debian/dirs file
  276: # make debian/copyright file
  277: # debian/README.debian... point them to LON-CAPA URLS
  278: # debian/changelog
  279: # debian/conffiles
  280: # debuild
  281: # and maybe do some GPG-related steps around here
  282: 
  283: base_rpm_file_list:
  284: 	cat $(SOURCE)/doc/loncapafiles/loncapafiles.lpml | \
  285: 	perl lpml_parse.pl rpm_file_list $(CATEGORY) $(DIST) $(SOURCE) \
  286: 	'BinaryRoot' | sort > base_rpm_file_list.txt
  287: 
  288: BinaryRoot: base_rpm_file_list
  289: 	make TARGET='BinaryRoot' NORESTORECONF='1' install
  290: 
  291: # Generates CVS:loncom/build/docs; root location of install.lon-capa.org
  292: doc:
  293: 	install -d docs
  294: 	@if (test -e installation_manual.pdf); then \
  295: 		cp -vf installation_manual.pdf docs/.; \
  296: 	else \
  297: 		touch docs/installation_manual.pdf; \
  298: 	fi
  299: 	install -m 0755 -d docs/icons
  300: 	install -m 0644 $(SOURCE)/doc/icons/[^C][^V]* docs/icons
  301: 	install -m 0755 -d docs/reconfig
  302: 	cd docs; ln -fs installation_manual.pdf index.pdf
  303: 	cd docs/reconfig; ln -fs ../installation_manual.pdf index.pdf
  304: 	perl doc_template.pl $(SOURCE)/doc/templates/template.html \
  305: 		$(SOURCE)/doc/build/reconfig.html > docs/reconfig/index.html
  306: 	install -m 0755 -d docs/reconfig/confexamples
  307: 	install -m 0644 $(SOURCE)/doc/build/confexamples/[^C][^V]* \
  308: 		docs/reconfig/confexamples
  309: 	perl doc_template.pl $(SOURCE)/doc/templates/template.html \
  310: 		$(SOURCE)/doc/build/installindex.html > docs/index.html
  311: 	install -m 0755 -d docs/license
  312: 	cd docs/license; ln -fs ../installation_manual.pdf index.pdf
  313: 	perl doc_template.pl $(SOURCE)/doc/templates/template.html \
  314: 		$(SOURCE)/doc/build/license.html > docs/license/index.html
  315: 	install -m 0755 -d docs/contact
  316: 	cd docs/contact; ln -fs ../installation_manual.pdf index.pdf
  317: 	perl doc_template.pl $(SOURCE)/doc/templates/template.html \
  318: 		$(SOURCE)/doc/build/contact.html > docs/contact/index.html
  319: 	install -m 0755 -d docs/faq
  320: 	cd docs/faq; ln -fs ../installation_manual.pdf index.pdf
  321: 	perl doc_template.pl $(SOURCE)/doc/templates/template.html \
  322: 		$(SOURCE)/doc/build/faq.html > docs/faq/index.html
  323: 	install -m 0755 -d docs/downloads
  324: 	cd docs/downloads; ln -fs ../installation_manual.pdf download.pdf
  325: 	perl doc_template.pl $(SOURCE)/doc/templates/template.html \
  326: 		$(SOURCE)/doc/build/download.html > docs/downloads/index.html
  327: 	install -m 0755 -d docs/install
  328: 	cd docs/install; ln -fs ../installation_manual.pdf install.pdf
  329: 	perl doc_template.pl $(SOURCE)/doc/templates/template.html \
  330: 		$(SOURCE)/doc/build/install.html > docs/install/index.html
  331: 	install -m 0755 -d docs/upgrade
  332: 	cd docs/upgrade; ln -fs ../installation_manual.pdf upgrade.pdf
  333: 	perl doc_template.pl $(SOURCE)/doc/templates/template.html \
  334: 		$(SOURCE)/doc/build/upgrade.html > docs/upgrade/index.html
  335: 	cd docs; tar czvpf ../docs.tar.gz .
  336: 
  337: pdfdoc: TEST_html2ps
  338: 	install -d pdfdoc
  339: 	/usr/local/html2ps/bin/html2ps -D \
  340: 	$(SOURCE)/doc/build/installindex_noform.html > pdfdoc/installindex.ps
  341: 	/usr/local/html2ps/bin/html2ps -D \
  342: 	$(SOURCE)/doc/build/reconfig.html | \
  343: 	perl -nle 's/\[EXAMPLE\]/\[EXAMPLE \(at end of document\)\]/g;print' \
  344: 	> pdfdoc/reconfig.ps
  345: 	/usr/local/html2ps/bin/html2ps -D \
  346: 	$(SOURCE)/doc/build/install.html > pdfdoc/install.ps
  347: 	/usr/local/html2ps/bin/html2ps -D \
  348: 	$(SOURCE)/doc/build/upgrade.html > pdfdoc/upgrade.ps
  349: 	/usr/local/html2ps/bin/html2ps -D \
  350: 	$(SOURCE)/doc/build/faq.html > pdfdoc/faq.ps
  351: 	/usr/local/html2ps/bin/html2ps -D \
  352: 	$(SOURCE)/doc/build/download.html > pdfdoc/download.ps
  353: 	/usr/local/html2ps/bin/html2ps -D \
  354: 	$(SOURCE)/doc/build/contact.html > pdfdoc/contact.ps
  355: 	/usr/local/html2ps/bin/html2ps -D \
  356: 	$(SOURCE)/doc/build/license.html > pdfdoc/license.ps
  357: #       This creates a bad confexamples.ps... so take the long way around
  358: #	cd $(SOURCE)/doc/build/confexamples; \
  359: #	mpage -P- -1 -H [^C]* > ../../../loncom/build/pdfdoc/confexamples.ps
  360: 	install -d pdfdoc/confexamples
  361: 	cd $(SOURCE)/doc/build/confexamples; \
  362: 	find . -type f | cut -b3- | grep -v '^C' | perl -nle \
  363: 	'`mpage -P- -1 -H $$_ > ../../../loncom/build/pdfdoc/confexamples/$$_.ps`;'
  364: 	echo '' > pdfdoc/contents.txt
  365: 	echo '' >> pdfdoc/contents.txt
  366: 	echo '          The Learning Online Network' >> pdfdoc/contents.txt
  367: 	echo '                    with the' >> pdfdoc/contents.txt
  368: 	echo '     Computer-Assisted Personalized Approach' >> \
  369: 	pdfdoc/contents.txt
  370: 	echo '' >> pdfdoc/contents.txt
  371: 	echo '' >> pdfdoc/contents.txt
  372: 	echo 'CONTENTS' >> pdfdoc/contents.txt
  373: 	echo '--------' >> pdfdoc/contents.txt
  374: 	echo 'Opening' >> pdfdoc/contents.txt
  375: 	echo 'Configuration' >> pdfdoc/contents.txt
  376: 	echo 'Installation' >> pdfdoc/contents.txt
  377: 	echo 'Upgrading a LON-CAPA Server' >> pdfdoc/contents.txt
  378: 	echo 'FAQ' >> pdfdoc/contents.txt
  379: 	echo 'Download' >> pdfdoc/contents.txt
  380: 	echo 'Contact Information' >> pdfdoc/contents.txt
  381: 	echo 'License Information' >> pdfdoc/contents.txt
  382: 	echo 'Configuration Examples' >> pdfdoc/contents.txt
  383: 	mpage -P- -1 \
  384: 	pdfdoc/contents.txt \
  385: 	pdfdoc/installindex.ps \
  386: 	pdfdoc/reconfig.ps \
  387: 	pdfdoc/install.ps \
  388: 	pdfdoc/upgrade.ps \
  389: 	pdfdoc/faq.ps \
  390: 	pdfdoc/download.ps \
  391: 	pdfdoc/contact.ps \
  392: 	pdfdoc/license.ps \
  393: 	pdfdoc/confexamples/*.ps \
  394: 	> pdfdoc/installation_manual.ps
  395: 	ps2pdf pdfdoc/installation_manual.ps pdfdoc/installation_manual.pdf
  396: 	mv -vf pdfdoc/installation_manual.pdf .
  397: 
  398: TEST_html2ps:
  399: 	@if (test -e /usr/local/html2ps/bin/html2ps); then \
  400: 		echo "I can find html2ps; assume okay"; \
  401: 	else \
  402: 	echo "**** ERROR **** cannot find /usr/local/html2ps/bin/html2ps!" && \
  403:         echo "Please visit http://www.tdb.uu.se/~jan/html2ps.html" && \
  404: 	exit 1; \
  405: 	fi
  406: 
  407: tardist:
  408: 	# ----------- MANIFEST the building, testing and standard loncapa files
  409: 	cat $(SOURCE)/doc/loncapafiles/buildfiles.lpml | \
  410: 	perl lpml_parse.pl MANIFEST development default \
  411: 	'$(SOURCE)' '$(TARGET)' | grep '[[:alnum:]]' > $(SOURCE)/MANIFEST
  412: 	cat $(SOURCE)/doc/loncapafiles/testfiles.lpml | \
  413: 	perl lpml_parse.pl MANIFEST development default \
  414: 	'$(SOURCE)' '$(TARGET)' | grep '[[:alnum:]]' >> $(SOURCE)/MANIFEST
  415: 	cat $(SOURCE)/doc/loncapafiles/loncapafiles.lpml | \
  416: 	perl lpml_parse.pl MANIFEST development default \
  417: 	'$(SOURCE)' '$(TARGET)' | grep '[[:alnum:]]' >> $(SOURCE)/MANIFEST
  418: 	# ------ CVS/Entries directories to retain 'time-checking' intelligence
  419: 	cd $(SOURCE); find . -type f -name 'Entries' | grep 'CVS/Entries' >> \
  420: 	MANIFEST
  421: 	# ---- Files for top-level (the vanilla layer that the user first sees)
  422: 	echo 'README' >> $(SOURCE)/MANIFEST
  423: 	echo 'UPDATE' >> $(SOURCE)/MANIFEST
  424: 	echo 'TEST' >> $(SOURCE)/MANIFEST
  425: 	echo 'CHECKRPMS' >> $(SOURCE)/MANIFEST
  426: 	# ---------------------------------- might as well include the MANIFEST
  427: 	echo 'MANIFEST' >> $(SOURCE)/MANIFEST
  428: 	# ------------------------------------------ hosts.tab are belong to us
  429: 	echo 'loncom/rawhide_hosts.tab' >> $(SOURCE)/MANIFEST
  430: 	echo 'loncom/production_hosts.tab' >> $(SOURCE)/MANIFEST
  431: 	echo 'loncom/development_hosts.tab' >> $(SOURCE)/MANIFEST
  432: 	# ------------------ Files needed for dynamically generated directories
  433: 	echo 'doc/man' >> $(SOURCE)/MANIFEST
  434: 	echo 'doc/lib' >> $(SOURCE)/MANIFEST
  435: 	echo 'doc/lib/perl' >> $(SOURCE)/MANIFEST
  436: 	echo 'doc/lib/perl/Apache' >> $(SOURCE)/MANIFEST
  437: 	echo 'doc/scripts' >> $(SOURCE)/MANIFEST
  438: 	# --------------------------- Point UPDATE to the internal make process
  439: 	echo '#!/bin/sh' > $(SOURCE)/UPDATE
  440: 	echo 'touch loncom/build/WARNINGS' >> $(SOURCE)/UPDATE;
  441: 	echo 'ln -s loncom/build/WARNINGS WARNINGS' >> $(SOURCE)/UPDATE;
  442: 	echo 'cd loncom/build; make build' >> $(SOURCE)/UPDATE
  443: 	echo 'make install' >> $(SOURCE)/UPDATE
  444: 	echo 'make updatequery' >> $(SOURCE)/UPDATE
  445: 	echo 'make hosts_tab' >> $(SOURCE)/UPDATE
  446: 	# ----------------------------- Point TEST to the internal make process
  447: 	echo '#!/bin/sh' > $(SOURCE)/TEST
  448: 	echo 'cd loncom/build; make test' >> $(SOURCE)/TEST
  449: 	# ----------------------------- Copy CHECKRPMS to the vanilla top-level
  450: 	cp $(SOURCE)/loncom/build/CHECKRPMS $(SOURCE)/CHECKRPMS
  451: 	# ----------------------- vanilla executables must indeed be executable
  452: 	chmod a+rx $(SOURCE)/UPDATE
  453: 	chmod a+rx $(SOURCE)/TEST
  454: 	chmod a+rx $(SOURCE)/CHECKRPMS
  455: 	# -------------------------------- Copy README to the vanilla top-level
  456: 	cp $(SOURCE)/doc/shortest_path_redhat7.2.txt $(SOURCE)/README
  457: 	# --------------------------------------------------- Clean up MANIFEST
  458: 	cd $(SOURCE); \
  459: 	sort MANIFEST | perl -nle 'print "$(DIRTARGET)/$$_"' | \
  460: 	perl -nle 's/\w+\/\.\.\///g;s/\w+\/\.\.\///g;print' | \
  461: 	perl -nle 's/\w+\/\.\.\///g;s/\w+\/\.\.\///g;print' | \
  462: 	perl -nle 's/\w+\/\.\.\///g;s/\w+\/\.\.\///g;print' | \
  463: 	perl -nle 's/\/\.\//\//g;print' | sort | uniq > \
  464: 	MANIFEST_loncapa
  465: 	# -------------------------------------------------------- Make tardist
  466: 	@cd $(SOURCE); \
  467: 	if (test -h $(DIRTARGET)); then \
  468: 		echo "$(DIRTARGET) link already defined; assume okay"; \
  469: 	else \
  470: 		ln -s . $(DIRTARGET); \
  471: 	fi
  472: 	cd $(SOURCE); \
  473: 	tar --no-recursion --numeric-owner --files-from MANIFEST_loncapa \
  474: 	-h -czf loncapa.tar.gz 2>WARNINGS || [ "0" == "0" ]
  475: 	cat $(SOURCE)/WARNINGS | \
  476: 	xargs --replace=XXX echo '**** WARNING **** XXX' > WARNINGS
  477: 	rm -f $(SOURCE)/WARNINGS
  478: 	make warningnote
  479: 
  480: clean:
  481: 	rm -f $(SOURCE)/README
  482: 	rm -f $(SOURCE)/UPDATE
  483: 	rm -f $(SOURCE)/TEST
  484: 	rm -f $(SOURCE)/MANIFEST
  485: 	rm -f $(SOURCE)/loncapa
  486: 	rm -f $(SOURCE)/loncapa.tar.gz
  487: 	rm -Rf HTML
  488: 	rm -f installation_manual.pdf
  489: 	rm -f Makefile.build
  490: 	rm -f Makefile.install
  491: 	rm -f Makefile.configinstall
  492: 	rm -Rf BinaryRoot
  493: 	rm -Rf SetupBinaryRoot
  494: 	rm -Rf LON-CAPA-base
  495: 	rm -f base_rpm_file_list.txt
  496: 	rm -f base_customizerpm.xml
  497: 	rm -f setup_rpm_file_list.txt
  498: 	rm -f docs.tar.gz
  499: 	rm -Rf docs
  500: 	rm -Rf pdfdoc
  501: 	rm -f program.pl*
  502: 	rm -Rf lpmladm.*
  503: 	make -f Makefile.cvs clean
  504: 	rm -f WARNINGS

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