darcs

Issue 812 "make api-doc" fails with haddock error

Title "make api-doc" fails with haddock error
Priority bug Status resolved
Milestone Resolved in
Superseder Nosy List darcs-devel, dmitry.kurochkin, gwern, kowey, thorkilnaur, tommy, tux_rocker
Assigned To tux_rocker
Topics

Created on 2008-04-22.19:23:50 by tux_rocker, last changed 2009-08-27.13:57:50 by admin.

Files
File name Uploaded Type Edit Remove
unnamed dagit, 2008-04-22.19:58:23 text/html
Messages
msg4300 (view) Author: tux_rocker Date: 2008-04-22.19:23:47
When I try 'make api-doc', instead of an error from configure about my haddock
version or so, I get an error from haddock about unrecognized options. I use GHC
6.6, haddock 0.8 and the darcs source as of April 22nd 2008. The console
transcript is below:

$ make api-doc
autoconf
running CONFIG_SHELL=/bin/sh /bin/sh ./configure   --no-create --no-recursion
checking for darcs... darcs
checking the release state... 2.0.0 (+ 55 patches)
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables... 
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking how to run the C preprocessor... gcc -E
checking for a BSD-compatible install... /opt/local/bin/ginstall -c
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking windows.h usability... no
checking windows.h presence... no
checking for windows.h... no
checking for ghc... ghc
found The Glorious Glasgow Haskell Compilation System, version 6.6
checking where GHC keeps its libraries... /usr/local/lib/ghc-6.6
checking GHC.Handle.openFd... NOT old API
checking GHC.Handle.openFd new API... okay
checking for module System.Posix.Signals(installHandler, raiseSignal,
Handler(..), Signal,
                         sigINT, sigHUP, sigABRT, sigALRM, sigTERM, sigPIPE,)... yes
checking siginfo.h usability... no
checking siginfo.h presence... no
checking for siginfo.h... no
checking for module Text.Regex( mkRegex, matchRegex, Regex )... no; and neither
in package text
checking for module Text.Regex( mkRegex, matchRegex, Regex )... in package
regex-compat
checking for module Network.HTTP( urlEncode )... in package HTTP
checking for module Test.QuickCheck( quickCheck )... in package QuickCheck
checking for module Data.ByteString.Internal( fromForeignPtr )... no; and
neither in package bytestring
checking for module Control.Monad.Error... in package mtl
checking for module Text.ParserCombinators.Parsec... yes
checking for module Text.Html... yes
checking for module Data.Map... yes
checking getCurrentDirectory... uses /
checking for module System.Posix.Files( createLink )... in package unix
checking createDirectoryIfMissing... has createDirectoryIfMissing
checking renameFile... okay
checking for module Control.Exception( bracketOnError )... yes
checking for module System.Posix.Files( fileMode, getFileStatus, setFileMode
)... yes
checking for module System.Posix.Files( fileMode, getFileStatus, setFileMode,
setFileCreationMask )... yes
checking whether to optimize... yes
checking whether to profile... no
checking whether to use mmap... yes
checking whether to do PackedString debugging... no
checking whether to build docs... yes
checking for latex... latex
checking for pdflatex... pdflatex
checking for dvips... dvips
checking for latex2html... no
configure: WARNING: Cannot find latex2html in your path!
checking for htlatex... no
configure: WARNING: Cannot find htlatex in your path either!
checking for hevea... no
configure: WARNING: Cannot find hevea in your path either!
checking for sendmail... /usr/sbin/sendmail
checking for MAPISendMail in -lmapi32... no
checking for gawk... gawk
checking for gadt type witnesses... no
checking for libcurl... 7.18.0
checking for curl_global_init in -lcurl... yes
checking for term.h... yes
checking for library containing tgetent... -lcurses
checking zlib.h usability... yes
checking zlib.h presence... yes
checking for zlib.h... yes
checking for gzopen in -lz... yes
checking for gdiff... no
checking for gnudiff... no
checking for diff... diff
checking for makensis.exe... no
checking whether byte ordering is bigendian... no
configure: creating ./config.status

The build is configured as follows:

    bindir          = ${exec_prefix}/bin
    sbindir         = ${exec_prefix}/sbin
    mandir          = ${datarootdir}/man
    datadir         = ${datarootdir}
    sysconfdir      = ${prefix}/etc
    libexecdir      = ${exec_prefix}/libexec

    Build Manual    = yes

If you want to adjust any of these values, edit autoconf.mk and
src/Autoconf.lhs -- or run configure with appropriate settings.

./config.status
config.status: creating autoconf.mk
config.status: creating src/Autoconf.lhs
config.status: creating src/ThisVersion.lhs
config.status: creating tools/cgi/darcs.cgi
config.status: creating tools/cgi/README
config.status: creating tools/cgi/cgi.conf
config.status: executing config.command commands
rm -f Main.hi Main.o
[ghc] stringify
PATH=".:$PATH" darcs changes --context | cat config.command - \
        | ./stringify Context context > \src/Context.hs
./config.status
config.status: creating autoconf.mk
config.status: creating src/Autoconf.lhs
config.status: creating src/ThisVersion.lhs
config.status: creating tools/cgi/darcs.cgi
config.status: creating tools/cgi/README
config.status: creating tools/cgi/cgi.conf
config.status: executing config.command commands
Rebuild dependencies ...
PATH=".:$PATH" darcs changes --context | cat config.command - \
        | ./stringify Context context > \src/Context.hs
Creating api-doc directory
Generating html
unrecognized option `--optghc=-I.'
unrecognized option `--optghc=-I./src'
unrecognized option `--optghc=-i./src'
unrecognized option `--optghc=-D__HADDOCK__'
unrecognized option `-B'
Usage: haddock [OPTION...] file...

  -o DIR    --odir=DIR             directory in which to put the output files
  -i FILE   --read-interface=FILE  read an interface from FILE
  -D FILE   --dump-interface=FILE  dump an interface for these modules in FILE
  -l DIR    --lib=DIR              location of Haddock's auxiliary files
  -h        --html                 output in HTML
            --hoogle               output for Hoogle
            --html-help=format     produce index and table of contents in
                                   mshelp, mshelp2 or devhelp format (with -h)
            --source-base=URL      URL for a source code link on the contents
                                   and index pages
  -s URL    --source-module=URL    URL for a source code link for each module
                                   (using the %{FILE} or %{MODULE} vars)
            --source-entity=URL    URL for a source code link for each entity
                                   (using the %{FILE}, %{MODULE} or %{NAME} vars)
            --comments-base=URL    URL for a comments link on the contents
                                   and index pages
            --comments-module=URL  URL for a comments link for each module
                                   (using the %{MODULE} var)
            --comments-entity=URL  URL for a comments link for each entity
                                   (using the %{FILE}, %{MODULE} or %{NAME} vars)
  -c FILE   --css=FILE             the CSS file to use for HTML output
  -p FILE   --prologue=FILE        file containing prologue text
  -t TITLE  --title=TITLE          page heading
  -k NAME   --package=NAME         package name (optional)
  -n        --no-implicit-prelude  do not assume Prelude is imported
  -d        --debug                extra debugging output
  -?        --help                 display this help and exit
  -V        --version              output version information and exit
  -v        --verbose              increase verbosity
            --use-contents=URL     use a separately-generated HTML contents page
            --gen-contents         generate an HTML contents from specified
                                   interfaces
            --use-index=URL        use a separately-generated HTML index
            --gen-index            generate an HTML index from specified
                                   interfaces
            --ignore-all-exports   behave as if all modules have the
                                   ignore-exports atribute
            --hide=MODULE          behave as if MODULE has the hide attribute
            --use-package=PACKAGE  the modules being processed depend on PACKAGE
make: *** [api-doc] Error 1
msg4303 (view) Author: dagit Date: 2008-04-22.19:58:23
This is somewhat of a bug in the configure script.

We want to allow building of the api-docs on a machine with haddock2.0
without preventing people with haddock < 2.0 from building darcs.

What should the configure script do here?

Jason

On Tue, Apr 22, 2008 at 12:23 PM, Reinier Lamers <bugs@darcs.net> wrote:

>
> New submission from Reinier Lamers <tux_rocker@reinier.de>:
>
> When I try 'make api-doc', instead of an error from configure about my
> haddock
> version or so, I get an error from haddock about unrecognized options. I
> use GHC
> 6.6, haddock 0.8 and the darcs source as of April 22nd 2008. The console
> transcript is below:
>
> $ make api-doc
> autoconf
> running CONFIG_SHELL=/bin/sh /bin/sh ./configure   --no-create
> --no-recursion
> checking for darcs... darcs
> checking the release state... 2.0.0 (+ 55 patches)
> checking for gcc... gcc
> checking for C compiler default output file name... a.out
> checking whether the C compiler works... yes
> checking whether we are cross compiling... no
> checking for suffix of executables...
> checking for suffix of object files... o
> checking whether we are using the GNU C compiler... yes
> checking whether gcc accepts -g... yes
> checking for gcc option to accept ISO C89... none needed
> checking how to run the C preprocessor... gcc -E
> checking for a BSD-compatible install... /opt/local/bin/ginstall -c
> checking for grep that handles long lines and -e... /usr/bin/grep
> checking for egrep... /usr/bin/grep -E
> checking for ANSI C header files... yes
> checking for sys/types.h... yes
> checking for sys/stat.h... yes
> checking for stdlib.h... yes
> checking for string.h... yes
> checking for memory.h... yes
> checking for strings.h... yes
> checking for inttypes.h... yes
> checking for stdint.h... yes
> checking for unistd.h... yes
> checking windows.h usability... no
> checking windows.h presence... no
> checking for windows.h... no
> checking for ghc... ghc
> found The Glorious Glasgow Haskell Compilation System, version 6.6
> checking where GHC keeps its libraries... /usr/local/lib/ghc-6.6
> checking GHC.Handle.openFd... NOT old API
> checking GHC.Handle.openFd new API... okay
> checking for module System.Posix.Signals(installHandler, raiseSignal,
> Handler(..), Signal,
>                         sigINT, sigHUP, sigABRT, sigALRM, sigTERM,
> sigPIPE,)... yes
> checking siginfo.h usability... no
> checking siginfo.h presence... no
> checking for siginfo.h... no
> checking for module Text.Regex( mkRegex, matchRegex, Regex )... no; and
> neither
> in package text
> checking for module Text.Regex( mkRegex, matchRegex, Regex )... in package
> regex-compat
> checking for module Network.HTTP( urlEncode )... in package HTTP
> checking for module Test.QuickCheck( quickCheck )... in package QuickCheck
> checking for module Data.ByteString.Internal( fromForeignPtr )... no; and
> neither in package bytestring
> checking for module Control.Monad.Error... in package mtl
> checking for module Text.ParserCombinators.Parsec... yes
> checking for module Text.Html... yes
> checking for module Data.Map... yes
> checking getCurrentDirectory... uses /
> checking for module System.Posix.Files( createLink )... in package unix
> checking createDirectoryIfMissing... has createDirectoryIfMissing
> checking renameFile... okay
> checking for module Control.Exception( bracketOnError )... yes
> checking for module System.Posix.Files( fileMode, getFileStatus,
> setFileMode
> )... yes
> checking for module System.Posix.Files( fileMode, getFileStatus,
> setFileMode,
> setFileCreationMask )... yes
> checking whether to optimize... yes
> checking whether to profile... no
> checking whether to use mmap... yes
> checking whether to do PackedString debugging... no
> checking whether to build docs... yes
> checking for latex... latex
> checking for pdflatex... pdflatex
> checking for dvips... dvips
> checking for latex2html... no
> configure: WARNING: Cannot find latex2html in your path!
> checking for htlatex... no
> configure: WARNING: Cannot find htlatex in your path either!
> checking for hevea... no
> configure: WARNING: Cannot find hevea in your path either!
> checking for sendmail... /usr/sbin/sendmail
> checking for MAPISendMail in -lmapi32... no
> checking for gawk... gawk
> checking for gadt type witnesses... no
> checking for libcurl... 7.18.0
> checking for curl_global_init in -lcurl... yes
> checking for term.h... yes
> checking for library containing tgetent... -lcurses
> checking zlib.h usability... yes
> checking zlib.h presence... yes
> checking for zlib.h... yes
> checking for gzopen in -lz... yes
> checking for gdiff... no
> checking for gnudiff... no
> checking for diff... diff
> checking for makensis.exe... no
> checking whether byte ordering is bigendian... no
> configure: creating ./config.status
>
> The build is configured as follows:
>
>    bindir          = ${exec_prefix}/bin
>    sbindir         = ${exec_prefix}/sbin
>    mandir          = ${datarootdir}/man
>    datadir         = ${datarootdir}
>    sysconfdir      = ${prefix}/etc
>    libexecdir      = ${exec_prefix}/libexec
>
>    Build Manual    = yes
>
> If you want to adjust any of these values, edit autoconf.mk and
> src/Autoconf.lhs -- or run configure with appropriate settings.
>
> ./config.status
> config.status: creating autoconf.mk
> config.status: creating src/Autoconf.lhs
> config.status: creating src/ThisVersion.lhs
> config.status: creating tools/cgi/darcs.cgi
> config.status: creating tools/cgi/README
> config.status: creating tools/cgi/cgi.conf
> config.status: executing config.command commands
> rm -f Main.hi Main.o
> [ghc] stringify
> PATH=".:$PATH" darcs changes --context | cat config.command - \
>        | ./stringify Context context > \src/Context.hs
> ./config.status
> config.status: creating autoconf.mk
> config.status: creating src/Autoconf.lhs
> config.status: creating src/ThisVersion.lhs
> config.status: creating tools/cgi/darcs.cgi
> config.status: creating tools/cgi/README
> config.status: creating tools/cgi/cgi.conf
> config.status: executing config.command commands
> Rebuild dependencies ...
> PATH=".:$PATH" darcs changes --context | cat config.command - \
>        | ./stringify Context context > \src/Context.hs
> Creating api-doc directory
> Generating html
> unrecognized option `--optghc=-I.'
> unrecognized option `--optghc=-I./src'
> unrecognized option `--optghc=-i./src'
> unrecognized option `--optghc=-D__HADDOCK__'
> unrecognized option `-B'
> Usage: haddock [OPTION...] file...
>
>  -o DIR    --odir=DIR             directory in which to put the output
> files
>  -i FILE   --read-interface=FILE  read an interface from FILE
>  -D FILE   --dump-interface=FILE  dump an interface for these modules in
> FILE
>  -l DIR    --lib=DIR              location of Haddock's auxiliary files
>  -h        --html                 output in HTML
>            --hoogle               output for Hoogle
>            --html-help=format     produce index and table of contents in
>                                   mshelp, mshelp2 or devhelp format (with
> -h)
>            --source-base=URL      URL for a source code link on the
> contents
>                                   and index pages
>  -s URL    --source-module=URL    URL for a source code link for each
> module
>                                   (using the %{FILE} or %{MODULE} vars)
>            --source-entity=URL    URL for a source code link for each
> entity
>                                   (using the %{FILE}, %{MODULE} or %{NAME}
> vars)
>            --comments-base=URL    URL for a comments link on the contents
>                                   and index pages
>            --comments-module=URL  URL for a comments link for each module
>                                   (using the %{MODULE} var)
>            --comments-entity=URL  URL for a comments link for each entity
>                                   (using the %{FILE}, %{MODULE} or %{NAME}
> vars)
>  -c FILE   --css=FILE             the CSS file to use for HTML output
>  -p FILE   --prologue=FILE        file containing prologue text
>  -t TITLE  --title=TITLE          page heading
>  -k NAME   --package=NAME         package name (optional)
>  -n        --no-implicit-prelude  do not assume Prelude is imported
>  -d        --debug                extra debugging output
>  -?        --help                 display this help and exit
>  -V        --version              output version information and exit
>  -v        --verbose              increase verbosity
>            --use-contents=URL     use a separately-generated HTML contents
> page
>            --gen-contents         generate an HTML contents from specified
>                                   interfaces
>            --use-index=URL        use a separately-generated HTML index
>            --gen-index            generate an HTML index from specified
>                                   interfaces
>            --ignore-all-exports   behave as if all modules have the
>                                   ignore-exports atribute
>            --hide=MODULE          behave as if MODULE has the hide
> attribute
>            --use-package=PACKAGE  the modules being processed depend on
> PACKAGE
> make: *** [api-doc] Error 1
>
> ----------
> messages: 4300
> nosy: beschmi, kowey, tommy, tux_rocker
> priority: bug
> status: unread
> title: "make api-doc" fails with haddock error
>
> __________________________________
> Darcs bug tracker <bugs@darcs.net>
> <http://bugs.darcs.net/issue812>
> __________________________________
> _______________________________________________
> darcs-devel mailing list
> darcs-devel@darcs.net
> http://lists.osuosl.org/mailman/listinfo/darcs-devel
>
Attachments
msg4316 (view) Author: daveroundy Date: 2008-04-23.14:18:06
On Tue, Apr 22, 2008 at 1:06 PM, Jason Dagit <dagit@codersbase.com> wrote:
> This is somewhat of a bug in the configure script.
>
> We want to allow building of the api-docs on a machine with haddock2.0
> without preventing people with haddock < 2.0 from building darcs.
>
> What should the configure script do here?

Presumably there's some way to check for the haddock version? You can
look at the latex code for an example of how to enable/disable make
targets.  You have to move the target from GNUmakefile into
autoconf.mk.in, and put a conditional in there.

David
msg4318 (view) Author: tux_rocker Date: 2008-04-23.14:32:27
I emailed a bit about this with Jason (not via the tracker, my mistake). I
intend to make the configure script check for haddock, and make the "make
api-doc" give a descriptive error message.
msg4319 (view) Author: gwern Date: 2008-04-23.14:58:41
Is there anything wrong with parsing the output of 'haddock --version'? That'll
give you something like 'Haddock version 0.9, (c) Simon Marlow 2006'. IIRC, the
configure script does similar ad-hocity for curl (to decide pipelining).
History
Date User Action Args
2008-04-22 19:23:50tux_rockercreate
2008-04-22 19:58:26dagitsetfiles: + unnamed
nosy: + darcs-devel, dagit
status: unread -> unknown
messages: + msg4303
2008-04-23 14:18:08daveroundysetnosy: + daveroundy
messages: + msg4316
2008-04-23 14:32:29tux_rockersetnosy: tommy, beschmi, kowey, darcs-devel, dagit, daveroundy, tux_rocker
messages: + msg4318
assignedto: tux_rocker
2008-04-23 14:58:44gwernsetnosy: + gwern
messages: + msg4319
2008-04-24 07:15:28tux_rockersetstatus: unknown -> resolved
nosy: tommy, beschmi, kowey, darcs-devel, dagit, daveroundy, gwern, tux_rocker
2008-09-28 20:49:56adminsetnosy: + droundy, simon, thorkilnaur, - daveroundy
2009-08-06 18:00:45adminsetnosy: + markstos, jast, Serware, dmitry.kurochkin, zooko, mornfall, - droundy, gwern, tux_rocker
2009-08-06 21:03:06adminsetnosy: - beschmi
2009-08-10 22:19:56adminsetnosy: + tux_rocker, gwern, - markstos, zooko, jast, Serware, mornfall
2009-08-11 00:10:55adminsetnosy: - dagit
2009-08-25 17:29:26adminsetnosy: - simon
2009-08-27 13:57:50adminsetnosy: tommy, kowey, darcs-devel, thorkilnaur, gwern, tux_rocker, dmitry.kurochkin