diff --git a/.vscode/settings.json b/.vscode/settings.json index 4b6c9976..84d6d2b7 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -4,5 +4,7 @@ "sonarlint.pathToCompileCommands": "${workspaceFolder}/.vscode/compile_commands.json", "files.associations": { "__locale": "c" - } + }, + "xml.symbols.maxItemsComputed": 10000, + "xml.validation.resolveExternalEntities": true } diff --git a/doc/book.xml b/doc/book.xml index 20930513..47af20b5 100644 --- a/doc/book.xml +++ b/doc/book.xml @@ -849,8 +849,8 @@ Install Apple's Xcode Command Line Tools package from Apple Developer which provides necessary tools for building C/C++ programs on macOS. - This is sufficient for compiling &yaz; from a source distribution tarball - as macOS already includes libxml and libxslt development libraries. + This is sufficient for compiling basic &yaz; (e.g no ICU) from a source distribution tarball + as XCLT includes libxml2 and libxslt development headers. If you are compiling &yaz; from a Git checkout, at the time of writing the latest @@ -866,7 +866,8 @@ Note: XCLT 15.4 fails to make gm4 available as m4 which can cause a silent Bison failure, one way to fix it is: - sudo ln -s /Library/Developer/CommandLineTools/usr/bin/gm4 /Library/Developer/CommandLineTools/usr/bin/m4 + sudo ln -s /Library/Developer/CommandLineTools/usr/bin/gm4 \ + /Library/Developer/CommandLineTools/usr/bin/m4 Additionally, you will need to install DocBook stylesheets to generate documentation: @@ -876,26 +877,36 @@ export XML_CATALOG_FILES="/opt/homebrew/etc/xml/catalog" - If you want to compile &yaz; with ICU you must install it with Homebrew as macOS does not ship ICU headers: + If you want to compile &yaz; with ICU you must install it with Homebrew as XCLT does not ship with ICU headers: brew install icu4c and make sure to add compiler flags before the configure stage, per the caveats section (brew info icu4c): export LDFLAGS="-L/opt/homebrew/opt/icu4c/lib" - export CPPFLAGS="-I/opt/homebrew/opt/icu4c/include - export PKG_CONFIG_PATH="/opt/homebrew/opt/icu4c/lib/pkgconfig"" + export CPPFLAGS="-I/opt/homebrew/opt/icu4c/include" + export PKG_CONFIG_PATH="/opt/homebrew/opt/icu4c/lib/pkgconfig" If you want to also compile with more recent version of libxml2 and libxslt, install them with Homebrew: brew install libxml2 libxslt - + and again make sure to add compiler flags, per the caveats section (brew info libxml2): - export LDFLAGS="-L/opt/homebrew/opt/libxml2/lib -L/opt/homebrew/opt/libxslt/lib -L/opt/homebrew/opt/icu4c/lib" - export CPPFLAGS="-I/opt/homebrew/opt/libxml2/include -I/opt/homebrew/opt/libxslt/include -I/opt/homebrew/opt/icu4c/include" - export PKG_CONFIG_PATH="/opt/homebrew/opt/libxml2/lib/pkgconfig:/opt/homebrew/opt/libxslt/lib/pkgconfig:/opt/homebrew/opt/icu4c/lib/pkgconfig" + export PATH="/opt/homebrew/opt/bison/bin:\ + /opt/homebrew/opt/libxml2/bin:\ + /opt/homebrew/opt/libxslt/bin:\ + $PATH" + export LDFLAGS="-L/opt/homebrew/opt/libxml2/lib \ + -L/opt/homebrew/opt/libxslt/lib \ + -L/opt/homebrew/opt/icu4c/lib" + export CPPFLAGS="-I/opt/homebrew/opt/libxml2/include \ + -I/opt/homebrew/opt/libxslt/include \ + -I/opt/homebrew/opt/icu4c/include" + export PKG_CONFIG_PATH="/opt/homebrew/opt/libxml2/lib/pkgconfig:\ + /opt/homebrew/opt/libxslt/lib/pkgconfig:\ + /opt/homebrew/opt/icu4c/lib/pkgconfig" Then configure and conpile with: