]> git.donarmstrong.com Git - lilypond.git/blobdiff - Documentation/contributor/build-notes.itexi
Doc: CG Remove section Building Ubuntu Distro
[lilypond.git] / Documentation / contributor / build-notes.itexi
index a6c8772be9b2af5196d871f19b1ddb41b6cb3dde..a5f8c2ccc0b00acc39df6983675bc03c57db2f54 100644 (file)
@@ -14,7 +14,6 @@ chapter.}
 * General build system notes::
 * Doc build::
 * Website build::
-* Building an Ubuntu distro::
 @end menu
 
 
@@ -117,9 +116,11 @@ include $(configure-srcdir)/GNUmakefile.in
 
 The variable @code{depth} is used throughout the make system to
 track how far down the directory structure the make is.  The first
-include sets lots of variables but doesn't "do" anything.  The
-second runs the file @file{GNUmakefile.in} from the top level
-source directory.
+include sets lots of variables but doesn't "do" anything.  Default
+values for these variables are automatically detected at the
+./configure step, which creates the file @file{config.make}.
+The second include runs the file @file{GNUmakefile.in} from
+the top level source directory.
 
 This sets another load of variables, and then includes (i.e.
 immediately runs) @file{stepmake.make} from the @file{make}
@@ -196,9 +197,15 @@ which expands to the following files:
 
 One little feature to notice here - these are all absolute file
 locations - the line prior to this used relative locations.  And
-none of these files exist, either.  (Further note - I'm assuming
-all these lines of make I'm following are autogenerated, but
-that'll be something else to discover.)
+none of these files exist, either.
+
+(Further note - I'm assuming all these lines of make I'm following are
+autogenerated, but that'll be something else to discover.)
+
+JM: @emph{``No, these lines are not useful in LilyPond (this is why
+you think they are autogenerated), but they are part of StepMake,
+which was meant to be a package to be installed as a build system over
+autoconf/make in software project source trees.''}
 
 Next in @file{stepmake.make}:
 
@@ -286,11 +293,11 @@ are:
 
 @example
 $(outdir)/%.ly: %.lym4
-        $(M4) $< | sed "s/\`/,/g" > $@
+        $(M4) $< | sed "s/\`/,/g" > $@@
 
 $(outdir)/%: %.in
-        rm -f $@
-        cat $< | sed $(sed-atfiles) | sed $(sed-atvariables) > $@
+        rm -f $@@
+        cat $< | sed $(sed-atfiles) | sed $(sed-atvariables) > $@@
 @end example
 
 I believe the first rule is for *.ly files, and has a prerequisite
@@ -442,10 +449,10 @@ From git grep:
 stepmake/stepmake/generic-vars.make has this:
 
 @smallexample
-LOOP=+$(foreach i, $(SUBDIRS), $(MAKE) PACKAGE=$(PACKAGE) package=$(package) -C $(i) $@ &&) true
+LOOP=+$(foreach i, $(SUBDIRS), $(MAKE) PACKAGE=$(PACKAGE) package=$(package) -C $(i) $@@ &&) true
 @end smallexample
 
-$@ is the name of the target - WWW-1 in this case.
+$@@ is the name of the target - WWW-1 in this case.
 
 In GNUmakefile.in we find:
 
@@ -554,13 +561,16 @@ they're up to date.
 
 (From the make manual:
 
-To this end, after reading in all makefiles, make will consider each as a goal target and
-attempt to update it. If a makefile has a rule which says how to update it (found either
-in that very makefile or in another one) or if an implicit rule applies to it (see Chapter 10
-[Using Implicit Rules], page 103), it will be updated if necessary. After all makefiles have
-been checked, if any have actually been changed, make starts with a clean slate and reads
-all the makefiles over again. (It will also attempt to update each of them over again, but
-normally this will not change them again, since they are already up to date.)
+To this end, after reading in all makefiles, make will consider each
+as a goal target and attempt to update it. If a makefile has a rule
+which says how to update it (found either in that very makefile or in
+another one) or if an implicit rule applies to it (see Chapter 10
+[Using Implicit Rules], page 103), it will be updated if
+necessary. After all makefiles have been checked, if any have actually
+been changed, make starts with a clean slate and reads all the
+makefiles over again. (It will also attempt to update each of them
+over again, but normally this will not change them again, since they
+are already up to date.)
 
 So my assumption seems correct)
 
@@ -957,6 +967,7 @@ described to some extent at
 
 The file @file{lily-bib.bst} also has fairly extensive commenting.
 
+
 @node Website build
 @section Website build
 
@@ -990,7 +1001,7 @@ and @code{top-src-dir} and then processing the file
 @code{website.make} starts with the following:
 
 @example
-ifeq (@$(WEBSITE_ONLY_BUILD),1)
+ifeq ($(WEBSITE_ONLY_BUILD),1)
 @end example
 
 which checks to see whether the variable @code{WEBSITE_ONLY_BUILD}
@@ -1001,17 +1012,17 @@ number of other variables are set, in order to establish locations
 of various files.  An example is:
 
 @example
-CREATE_VERSION=python @$(script-dir)/create-version-itexi.py
+CREATE_VERSION=python $(script-dir)/create-version-itexi.py
 @end example
 
 The rule for website is:
 
 @smallexample
 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
+        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
 @end smallexample
 
 so we see that this starts by running the rules for 5 other
@@ -1020,26 +1031,26 @@ later - first @code{website-texinfo}.  That rule is:
 
 @example
 website-texinfo: website-version website-xrefs website-bibs
-        for l in '' @$(WEB_LANGS); do \
-                if test -n "@$@$l"; then \
-                        langopt=--lang="@$@$l"; \
-                        langsuf=.@$@$l; \
+        for l in '' $(WEB_LANGS); do \
+                if test -n "$$l"; then \
+                        langopt=--lang="$$l"; \
+                        langsuf=.$$l; \
                 fi; \
-                @$(TEXI2HTML) --prefix=index \
+                $(TEXI2HTML) --prefix=index \
                         --split=section \
-                        --I=@$(top-src-dir)/Documentation/"@$@$l" \
-                        --I=@$(top-src-dir)/Documentation \
-                        --I=@$(OUT) \
-                        @$@$langopt \
-                        --init-file=@$(texi2html-init-file) \
+                        --I=$(top-src-dir)/Documentation/"$$l" \
+                        --I=$(top-src-dir)/Documentation \
+                        --I=$(OUT) \
+                        $$langopt \
+                        --init-file=$(texi2html-init-file) \
                         -D web_version \
-                        --output=@$(OUT)/"@$@$l" \
-                        @$(top-src-dir)/Documentation/"@$@$l"/web.texi ; \
-                ls @$(OUT)/@$@$l/*.html | xargs grep -L \
+                        --output=$(OUT)/"$$l" \
+                        $(top-src-dir)/Documentation/"$$l"/web.texi ; \
+                ls $(OUT)/$$l/*.html | xargs grep -L \
                         'UNTRANSLATED NODE: IGNORE ME' | \
-                        sed 's!@$(OUT)/'@$@$l'/!!g' | xargs \
-                        @$(MASS_LINK) --prepend-suffix="@$@$langsuf" \
-                        hard @$(OUT)/@$@$l/ @$(OUT)/website/ ; \
+                        sed 's!$(OUT)/'$$l'/!!g' | xargs \
+                        $(MASS_LINK) --prepend-suffix="$$langsuf" \
+                        hard $(OUT)/$$l/ $(OUT)/website/ ; \
         done
 @end example
 
@@ -1048,9 +1059,9 @@ which therefore depends on @code{website-version},
 
 @example
 website-version:
-        mkdir -p @$(OUT)
-        @$(CREATE_VERSION) @$(top-src-dir) > @$(OUT)/version.itexi
-        @$(CREATE_WEBLINKS) @$(top-src-dir) > @$(OUT)/weblinks.itexi
+        mkdir -p $(OUT)
+        $(CREATE_VERSION) $(top-src-dir) > $(OUT)/version.itexi
+        $(CREATE_WEBLINKS) $(top-src-dir) > $(OUT)/weblinks.itexi
 @end example
 
 which translates as:
@@ -1103,7 +1114,7 @@ the order of 1000) similar to:
 
 @example
 @@macro manualStableGlossaryPdf
-@@uref{../doc/v2.14/Documentation/music-glossary.pdf,Music glossary.pdf}
+@@uref@{../doc/v2.14/Documentation/music-glossary.pdf,Music glossary.pdf@}
 @@end macro.
 @end example
 
@@ -1115,7 +1126,7 @@ Next:
 
 @example
 website-xrefs: website-version
-        for l in '' @$(WEB_LANGS); do \
+        for l in '' $(WEB_LANGS); do \
 @end example
 
 is the start of the rule, truncated for brevity.  This loops
@@ -1125,12 +1136,12 @@ variables which I don't fully understand, to run this command:
 @smallexample
 python /home/phil/lilypond-git/scripts/build/extract_texi_filenames.py \
         -I /home/phil/lilypond-git/Documentation \
-        -I /home/phil/lilypond-git/Documentation/"@$l" \
+        -I /home/phil/lilypond-git/Documentation/"$l" \
         -I out-website -o out-website --split=node \
         --known-missing-files= \
                  /home/phil/lilypond-git/scripts/build/website-known-missing-files.txt \
         -q \
-        /home/phil/lilypond-git/Documentation/"@$l"/web.texi ;\
+        /home/phil/lilypond-git/Documentation/"$l"/web.texi ;\
 @end smallexample
 
 There's a good description of what
@@ -1156,7 +1167,7 @@ these are.
 It then does this:
 
 @example
-for m in @$(MANUALS); do \
+for m in $(MANUALS); do \
 @end example
 
 to run @code{e-t-f.py} against all of the manuals, in each
@@ -1164,12 +1175,12 @@ language. Next:
 
 @example
 website-bibs: website-version
-        BSTINPUTS=@$(top-src-dir)/Documentation/web \
-                @$(WEB_BIBS) -s web \
-                -s @$(top-src-dir)/Documentation/lily-bib \
-                -o @$(OUT)/others-did.itexi \
-                @$(quiet-flag) \
-                @$(top-src-dir)/Documentation/web/others-did.bib
+        BSTINPUTS=$(top-src-dir)/Documentation/web \
+                $(WEB_BIBS) -s web \
+                -s $(top-src-dir)/Documentation/lily-bib \
+                -o $(OUT)/others-did.itexi \
+                $(quiet-flag) \
+                $(top-src-dir)/Documentation/web/others-did.bib
 @end example
 
 This is half the command.  It runs @code{bib2texi.py} on 2
@@ -1180,7 +1191,7 @@ This converts bibliography files into texi files with
 Next the commands in the @code{website-texinfo} rule are run:
 
 @example
-for l in '' @$(WEB_LANGS); do \
+for l in '' $(WEB_LANGS); do \
 @end example
 
 run @code{texi2html}.  This is the program that outputs the
@@ -1195,18 +1206,18 @@ It also outputs warning messages like:
 
 @example
 website-css:
-        cp @$(top-src-dir)/Documentation/css/*.css @$(OUT)/website
+        cp $(top-src-dir)/Documentation/css/*.css $(OUT)/website
 @end example
 
 Copies 3 css files to out-website/website.  Then:
 
 @example
 website-pictures:
-        mkdir -p @$(OUT)/website/pictures
-        if [ -d @$(PICTURES) ]; \
+        mkdir -p $(OUT)/website/pictures
+        if [ -d $(PICTURES) ]; \
         then \
-                cp @$(PICTURES)/* @$(OUT)/website/pictures ; \
-                ln -sf website/pictures @$(OUT)/pictures  ;\
+                cp $(PICTURES)/* $(OUT)/website/pictures ; \
+                ln -sf website/pictures $(OUT)/pictures  ;\
         fi
 @end example
 
@@ -1229,10 +1240,10 @@ website (e.g. the logo) do not exist.  Next:
 
 @example
 website-examples:
-        mkdir -p @$(OUT)/website/ly-examples
-        if [ -d @$(EXAMPLES) ]; \
+        mkdir -p $(OUT)/website/ly-examples
+        if [ -d $(EXAMPLES) ]; \
         then \
-                cp @$(EXAMPLES)/* @$(OUT)/website/ly-examples ; \
+                cp $(EXAMPLES)/* $(OUT)/website/ly-examples ; \
         fi
 @end example
 
@@ -1255,7 +1266,7 @@ initially.  Then:
 
 @example
 web-post:
-        @$(WEB_POST) @$(OUT)/website
+        $(WEB_POST) $(OUT)/website
 @end example
 
 which is:
@@ -1275,10 +1286,10 @@ the end of our story.  The final 4 lines of the recipe for website
 are:
 
 @example
-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
+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
 @end example
 
 The first translates as:
@@ -1435,66 +1446,3 @@ website:
     runs website_post.py
   Then some file copying
 @end example
-
-@node Building an Ubuntu distro
-@section Building an Ubuntu distro
-
-
-Here's the short instruction on how to create lilybuntu iso image
-(Jonathan Kulp did this on a spare drive,
-but he supposes it can be done in a VM too):
-
-@enumerate
-
-@item
-Install ubuntu, reboot.
-@item
-Run all updates, reboot if asked.
-@item
-Enable src repos, refresh package lists.
-@item
-Install LilyPond build deps:
-@example
-sudo apt-get build-dep lilypond
-@end example
-@item
-Install git and autoconf:
-@example
-sudo apt-get install git-core gitk autoconf
-@end example
-
-@item
-Test to see whether everything works fine now:
-@enumerate
-@item
-use @command{lily-git.tcl} to grab source files
-@item
-go to source dir and do
-@example
-"./autogen.sh" ; make ; make doc
-@end example
-@item
-if all compiles, move on to iso creation...
-@end enumerate
-
-@item
-Download & install "remastersys":
-@uref{http://sourceforge.net/projects/remastersys/, http://sourceforge.net/projects/remastersys/}
-@item
-Copy @command{lily-git.tcl} script file into @file{/etc/skel/}.
-@item
-Modify @file{/etc/remastersys.conf} as desired (change @code{.iso} name,
-default live session username, etc).
-@item
-Remove non-essential desktop software as desired.
-@item
-Create iso:
-@example
-sudo remastersys dist
-@end example
-New iso is in @file{/home/remastersys/remastersys/}.
-@item
-Test iso by installing in VM and repeating steps above for
-getting source files and building lp and docs.
-
-@end enumerate