1b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-m##===- docs/tools/Makefile ---------------------------------*- Makefile -*-===##
2b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-m# 
3b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-m#                     The LLVM Compiler Infrastructure
4b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-m#
5b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-m# This file is distributed under the University of Illinois Open Source
6b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-m# License. See LICENSE.TXT for details.
7b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-m# 
8b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-m##===----------------------------------------------------------------------===##
9b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-m
10b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-mifdef BUILD_FOR_WEBSITE
11b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-m
12b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-m# FIXME: This was copied from the CommandGuide makefile. Figure out
13b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-m# how to get this stuff on the website.
14b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-m
15b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-m# This special case is for keeping the CommandGuide on the LLVM web site
16b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-m# up to date automatically as the documents are checked in. It must build
17b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-m# the POD files to HTML only and keep them in the src directories. It must also
18b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-m# build in an unconfigured tree, hence the ifdef. To use this, run
19b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-m# make -s BUILD_FOR_WEBSITE=1 inside the cvs commit script.
20b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-mSRC_DOC_DIR=
21b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-mDST_HTML_DIR=html/
22b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-mDST_MAN_DIR=man/man1/
23b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-mDST_PS_DIR=ps/
24b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-mCLANG_VERSION := trunk
25b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-m
26b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-m# If we are in BUILD_FOR_WEBSITE mode, default to the all target.
27b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-mall:: html man ps
28b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-m
29b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-mclean:
30b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-m	rm -f pod2htm*.*~~ $(HTML) $(MAN) $(PS)
31b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-m
32b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-m# To create other directories, as needed, and timestamp their creation
33b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-m%/.dir:
34b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-m	-mkdir $* > /dev/null
35b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-m	date > $@
36b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-m
37b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-melse
38b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-m
39b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-m# Otherwise, if not in BUILD_FOR_WEBSITE mode, use the project info.
40e55e5e35d511ea62e635374aeca1c09ba7ce6d88Daniel DunbarCLANG_LEVEL := ../..
41e55e5e35d511ea62e635374aeca1c09ba7ce6d88Daniel Dunbarinclude $(CLANG_LEVEL)/Makefile
42b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-m
43747d2f83a980debd0ec75a05af7e97d44e7dc998Daniel DunbarCLANG_VERSION := $(word 3,$(shell grep "CLANG_VERSION " \
44747d2f83a980debd0ec75a05af7e97d44e7dc998Daniel Dunbar	$(PROJ_OBJ_DIR)/$(CLANG_LEVEL)/include/clang/Basic/Version.inc))
45b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-m
46b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-mSRC_DOC_DIR=$(PROJ_SRC_DIR)/
47b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-mDST_HTML_DIR=$(PROJ_OBJ_DIR)/
48b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-mDST_MAN_DIR=$(PROJ_OBJ_DIR)/
49b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-mDST_PS_DIR=$(PROJ_OBJ_DIR)/
50b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-m
51b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-mendif
52b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-m
53b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-m
54b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-mPOD  := $(wildcard $(SRC_DOC_DIR)*.pod)
55b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-mHTML := $(patsubst $(SRC_DOC_DIR)%.pod, $(DST_HTML_DIR)%.html, $(POD))
56b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-mMAN  := $(patsubst $(SRC_DOC_DIR)%.pod, $(DST_MAN_DIR)%.1, $(POD))
57b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-mPS   := $(patsubst $(SRC_DOC_DIR)%.pod, $(DST_PS_DIR)%.ps, $(POD))
58b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-m
59b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-mifdef ONLY_MAN_DOCS
60b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-mINSTALL_TARGETS := install-man
61b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-melse
62b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-mINSTALL_TARGETS := install-html install-man install-ps
63b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-mendif
64b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-m
65b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-m.SUFFIXES:
66b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-m.SUFFIXES: .html .pod .1 .ps
67b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-m
68b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-m$(DST_HTML_DIR)%.html: %.pod $(DST_HTML_DIR)/.dir
69b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-m	pod2html --css=manpage.css --htmlroot=. \
70b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-m	  --podpath=. --infile=$< --outfile=$@ --title=$*
71b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-m
72b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-m$(DST_MAN_DIR)%.1: %.pod $(DST_MAN_DIR)/.dir
73b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-m	pod2man --release "clang $(CLANG_VERSION)" --center="Clang Tools Documentation" $< $@
74b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-m
75b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-m$(DST_PS_DIR)%.ps: $(DST_MAN_DIR)%.1 $(DST_PS_DIR)/.dir
76b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-m	groff -Tps -man $< > $@
77b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-m
78b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-m
79b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-mhtml: $(HTML)
80b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-mman: $(MAN)
81b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-mps: $(PS)
82b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-m
83b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-mEXTRA_DIST := $(POD)
84b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-m
85b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-mclean-local::
86b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-m	$(Verb) $(RM) -f pod2htm*.*~~ $(HTML) $(MAN) $(PS)
87b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-m
88b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-mHTML_DIR := $(DESTDIR)$(PROJ_docsdir)/html/clang
89b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-mMAN_DIR  := $(DESTDIR)$(PROJ_mandir)/man1
90b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-mPS_DIR   := $(DESTDIR)$(PROJ_docsdir)/ps
91b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-m
92b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-minstall-html:: $(HTML)
93b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-m	$(Echo) Installing HTML Clang Tools Documentation
94b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-m	$(Verb) $(MKDIR) $(HTML_DIR)
95b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-m	$(Verb) $(DataInstall) $(HTML) $(HTML_DIR)
96b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-m	$(Verb) $(DataInstall) $(PROJ_SRC_DIR)/manpage.css $(HTML_DIR)
97b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-m
98b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-minstall-man:: $(MAN)
99b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-m	$(Echo) Installing MAN Clang Tools Documentation
100b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-m	$(Verb) $(MKDIR) $(MAN_DIR)
101b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-m	$(Verb) $(DataInstall) $(MAN) $(MAN_DIR)
102b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-m
103b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-minstall-ps:: $(PS)
104b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-m	$(Echo) Installing PS Clang Tools Documentation
105b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-m	$(Verb) $(MKDIR) $(PS_DIR)
106b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-m	$(Verb) $(DataInstall) $(PS) $(PS_DIR)
107b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-m
108b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-minstall-local:: $(INSTALL_TARGETS)
109b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-m
110b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-muninstall-local::
111b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-m	$(Echo) Uninstalling Clang Tools Documentation
112b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-m	$(Verb) $(RM) -rf $(HTML_DIR) $(MAN_DIR) $(PS_DIR)
113b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-m
114b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-mprintvars::
115b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-m	$(Echo) "POD            : " '$(POD)'
116b8dedf14dcb8179c4541f38e4dc4fcd871f37a13mike-m	$(Echo) "HTML           : " '$(HTML)'
117