################################################################
# website (without the rest of the docs)
-#top-src-dir=$(HOME)/src/lilypond/
-EXTRACT_TEXI_FILENAMES=scripts/build/out/extract_texi_filenames
-CREATE_VERSION=$(top-src-dir)/scripts/build/create-version-itexi.py
-out=out-website
-EXAMPLES=$(HOME)/media/examples/
-PICTURES=$(HOME)/media/pictures
+################################################################
+##### SECURITY -- check these values for lilypond.org #########
+################################################################
+ifeq ($(WEBSITE_ONLY_BUILD),1)
+ ### for lilypond.org
+ top-src-dir=$(HOME)/src/lilypond
+ depth=.
+ trusted-dir=$(HOME)/lilypond/trusted-scripts
+ script-dir=$(trusted-dir)
+ texi2html-init-file=$(trusted-dir)/lilypond-texi2html.init
+ top-htaccess=$(trusted-dir)/lilypond.org.htaccess
+ dir-htaccess=$(trusted-dir)/website-dir.htaccess
+ TEXI2HTML_PROGRAM=$(HOME)/usr/bin/texi2html
+ EXAMPLES=$(HOME)/media/ly-examples/
+ PICTURES=$(HOME)/media/pictures
+else
+ ### for normal git
+ script-dir=$(top-src-dir)/scripts/build/
+ texi2html-init-file=$(top-src-dir)/Documentation/lilypond-texi2html.init
+ top-htaccess=$(top-src-dir)/Documentation/web/server/lilypond.org.htaccess
+ dir-htaccess=$(top-src-dir)/Documentation/web/server/website-dir.htaccess
+ include $(config_make)
+ # I assume this is run from top-build-dir
+ EXAMPLES=Documentation/web/ly-examples/out-www/
+ PICTURES=Documentation/pictures/out-www/
+endif
+
+
+################################################################
+OUT=out-website
+WEB_LANGS=es
+
+TEXI2HTML=ONLY_WEB=1 TOP_SRC_DIR=$(top-src-dir) DEPTH=$(depth) PERL_UNICODE=SD $(TEXI2HTML_PROGRAM)
+
+EXTRACT_TEXI_FILENAMES=python $(script-dir)/extract_texi_filenames.py
+CREATE_VERSION=python $(script-dir)/create-version-itexi.py
+CREATE_WEBLINKS=python $(script-dir)/create-weblinks-itexi.py
+MASS_LINK=python $(script-dir)/mass-link.py
+WEB_POST=python $(script-dir)/website_post.py
+
+SERVER_FILES=$(top-src-dir)/Documentation/web/server/
# don't include web
MANUALS=$(wildcard $(top-src-dir)/Documentation/*.tely)
MANUALS+=$(top-src-dir)/Documentation/contributor.texi
+website-test:
+ echo $(TEXI2HTML)
website-version:
- mkdir -p $(out)
- python $(CREATE_VERSION) > $(out)/version.itexi
+ mkdir -p $(OUT)
+ $(CREATE_VERSION) $(top-src-dir) > $(OUT)/version.itexi
+ $(CREATE_WEBLINKS) $(top-src-dir) > $(OUT)/weblinks.itexi
website-xrefs: website-version
$(EXTRACT_TEXI_FILENAMES) -I $(top-src-dir)/Documentation/ \
- -I $(out) -o $(out) --split=node \
+ -I $(OUT) -o $(OUT) --split=node \
$(top-src-dir)/Documentation/web.texi
- $(foreach manual, $(MANUALS), \
- $(EXTRACT_TEXI_FILENAMES) -I $(top-src-dir)/Documentation/ \
- -I $(out) -o $(out) $(manual) && ) :
+ # normal manuals
+ for m in $(MANUALS); do \
+ b=`basename "$$m" .texi`; \
+ d=`basename "$$b" .tely`; \
+ $(EXTRACT_TEXI_FILENAMES) \
+ -I $(top-src-dir)/Documentation/ \
+ -I $(top-src-dir)/Documentation/"$$d"/ \
+ -I $(OUT) -o $(OUT) "$$m" ; \
+ done
+ # translations
+ for l in $(WEB_LANGS); do \
+ $(EXTRACT_TEXI_FILENAMES) \
+ -I $(top-src-dir)/Documentation/ \
+ -I $(top-src-dir)/Documentation/"$$l" \
+ -I $(OUT) -o $(OUT) --split=node \
+ $(top-src-dir)/Documentation/"$$l"/web.texi ;\
+ for m in $(MANUALS); do \
+ n=`echo "$$m" | sed 's/Documentation/Documentation\/'$$l'/'` ; \
+ b=`basename "$$n" .texi`; \
+ d=`basename "$$b" .tely`; \
+ if [ -e "$$n" ] ; then \
+ $(EXTRACT_TEXI_FILENAMES) \
+ -I $(top-src-dir)/Documentation/ \
+ -I $(top-src-dir)/Documentation/"$$l" \
+ -I $(top-src-dir)/Documentation/"$$l"/"$$d"/ \
+ -I $(OUT) -o $(OUT) "$$n" ; \
+ fi ; \
+ done; \
+ done;
+
+
website-texinfo: website-version website-xrefs
- SRC_DIR=$(top-src-dir)/Documentation/ \
- PERL_UNICODE=SD texi2html --prefix=index \
+ $(TEXI2HTML) --prefix=index \
--split=section \
--I=$(top-src-dir)/Documentation/ \
- --I=$(out) \
- --init-file=/home/gperciva/src/lilypond/Documentation/lilypond-texi2html.init \
+ --I=$(OUT) \
+ --init-file=$(texi2html-init-file) \
-D web_version \
- --output=$(out)/website/ \
+ --output=$(OUT)/website/ \
$(top-src-dir)/Documentation/web.texi
+ # translations
+ for l in $(WEB_LANGS); do \
+ $(TEXI2HTML) --prefix=index \
+ --split=section \
+ --I=$(top-src-dir)/Documentation/"$$l" \
+ --I=$(top-src-dir)/Documentation/ \
+ --I=$(OUT) \
+ --lang="$$l" \
+ --init-file=$(texi2html-init-file) \
+ -D web_version \
+ --output=$(OUT)/"$$l" \
+ $(top-src-dir)/Documentation/"$$l"/web.texi ; \
+ find $(OUT)/$$l/ -name '*.html' | xargs grep -L 'UNTRANSLATED NODE: IGNORE ME' | sed 's!$(OUT)/'$$l'/!!g' | xargs $(MASS_LINK) --prepend-suffix .$$l hard $(OUT)/$$l/ $(OUT)/website/ ; \
+ done
+
website-css:
- cp $(top-src-dir)/Documentation/css/*.css $(out)/website/
+ cp $(top-src-dir)/Documentation/css/*.css $(OUT)/website/
website-pictures:
- cp -r $(PICTURES) $(out)/website/
- ln -sf website/pictures $(out)/pictures
+ mkdir -p $(OUT)/website/pictures/
+ cp $(PICTURES)/* $(OUT)/website/pictures/
+ ln -sf website/pictures $(OUT)/pictures
website-examples:
- cp -r $(EXAMPLES) $(out)/website/
+ mkdir -p $(OUT)/website/ly-examples
+ cp $(EXAMPLES)/* $(OUT)/website/ly-examples
+web-post:
+ $(WEB_POST) $(OUT)/website/
-website: website-texinfo website-css website-pictures website-examples
+website: website-texinfo website-css website-pictures website-examples web-post
+ cp $(SERVER_FILES)/favicon.ico $(OUT)/website/
+ cp $(SERVER_FILES)/robots.txt $(OUT)/website/
+ cp $(top-htaccess) $(OUT)/.htaccess
+ cp $(dir-htaccess) $(OUT)/website/.htaccess