Ticket #34205

IDSgrep build attempts to invoke non-existent Tsukurimashou build

Open Date: 2014-08-19 16:36 Last Update: 2014-08-20 15:16

Reporter:
Owner:
Type:
Status:
Open [Owner assigned]
Component:
MileStone:
(None)
Priority:
5 - Medium
Severity:
5 - Medium
Resolution:
None
File:
None

Details

I'm interested in building IDSgrep without building Tsukurimashou (for now---primarily because building FontAnvil is giving me all kinds of grief). After running ./configure and modifying the Makefile to put spaces between the flag and flag argument (i.e., $(ICONV) -f euc-jp -t utf-8), I see that the build fails because it is looking for a directory no/ when trying to build TsukurimashouMincho.otf.

Here's the output of ./configure:

checking for a BSD-compatible install... /usr/local/bin/ginstall -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /usr/local/bin/gmkdir -p
checking for gawk... no
checking for mawk... no
checking for nawk... no
checking for awk... awk
checking whether make sets $(MAKE)... yes
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
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 for style of include used by make... GNU
checking dependency style of gcc... gcc3
checking whether gcc and cc understand -c and -o together... yes
checking for grep that handles long lines and -e... /usr/bin/grep
checking whether ln -s works... yes
checking whether make sets $(MAKE)... (cached) yes
checking for autoconf... no
checking for automake... no
checking for sha256sum... no
checking for sha1sum... no
checking for md5sum... no
checking for cksum... /usr/bin/cksum
checking for expect... /usr/bin/expect
checking for GNU make... make
checking for gzip... /usr/bin/gzip
checking for iconv... /usr/bin/iconv
checking for kleknev... /bin/sh
checking for perl... /usr/bin/perl
checking for xelatex... no
checking whether we are building as a parasite... no
checking for perl module XML::Parser version 2.36... ok
checking for bdd_init in -lbdd... no
checking for pkg-config... /usr/local/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for PCRE... yes
checking how to run the C preprocessor... gcc -E
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 libintl.h usability... no
checking libintl.h presence... no
checking for libintl.h... no
checking for stdlib.h... (cached) yes
checking for string.h... (cached) yes
checking wchar.h usability... yes
checking wchar.h presence... yes
checking for wchar.h... yes
checking for stdint types... stdint.h (shortcircuit)
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
make use of stdint.h in _stdint.h (assuming C99 compatible system)
checking for inline... inline
checking size of int... 4
checking for size_t... yes
checking for __attribute__... yes
checking whether anonymous unions and structs can be members... yes
checking for __builtin_bswap{32,64}... yes
checking getopt.h usability... yes
checking getopt.h presence... yes
checking for getopt.h... yes
checking for getopt_long... yes
checking for memmove... yes
checking for memset... yes
checking for strchr... yes
checking for long file names... yes
checking the number of available CPUs... 2 
configure: adding automake macro support
configure: creating aminclude.am
checking for CHISE IDS database... no
checking for EDICT2... ./edict2.gz
checking for KanjiVG... ./kanjivg-20140727.xml.gz
checking for Tsukurimashou build dir... no
configure: creating ./config.status
config.status: creating Makefile
config.status: creating idsgrep.1
config.status: creating config.tex
config.status: creating config.h
config.status: config.h is unchanged
config.status: executing depfiles commands
config.status: executing _stdint.h commands
config.status: creating _stdint.h : _IDSGREP__STDINT_H
config.status: _stdint.h is unchanged
configure: WARNING: BuDDy is missing, binary decision diagrams disabled
And the output for make:
/Applications/Xcode.app/Contents/Developer/usr/bin/make -j3  all-am
/usr/bin/gzip -cd ./edict2.gz \
      | /usr/bin/iconv -f euc-jp -t utf-8 \
      | /usr/bin/perl -CDS ./ed22eids cjkvi-j.eids > edict.eids
if /usr/bin/perl \
      -e 'read STDIN,$_,2;exit 1 if unpack("n",$_)!=8075' \
      < ./kanjivg-20140727.xml.gz ; \
    then /usr/bin/gzip -cd ./kanjivg-20140727.xml.gz \
      | /usr/bin/perl -CS ./kvg2eids > kanjivg.eids ; \
    else /usr/bin/perl -CS ./kvg2eids < ./kanjivg-20140727.xml.gz > kanjivg.eids ; fi
-e \e[0m\e[K  CC     widthtab.o
cd no ; \
      /Applications/Xcode.app/Contents/Developer/usr/bin/make  otf/TsukurimashouMincho.otf
/bin/sh: line 0: cd: no: No such file or directory
make[2]: *** No rule to make target `otf/TsukurimashouMincho.otf'.  Stop.
make[1]: *** [no/otf/TsukurimashouMincho.otf] Error 2
make[1]: *** Waiting for unfinished jobs....
make: *** [all] Error 2

Any hints? Should I expect more luck by sorting out FontAnvil and building IDSgrep within Tsukurimashou?

Ticket History (3/3 Histories)

2014-08-19 16:36 Updated by: ahmed_fasih
  • New Ticket "Building IDSgrep on Mac 10.9 with latest Xcode" created
2014-08-20 05:49 Updated by: mskala
  • Summary Updated
Comment

Hi! As you know I'm in the middle of moving, so my time for debugging will be limited for a while, but I have some slack time this afternoon before I gear up to clean the apartment, so I have a little time for debugging. Thanks for the report; I don't think anyone has tried to build this software under MacOS before.

Things to be aware of: I only recommend GNU Make, and GNU Make is required for the top-level Tsukurimashou build. I don't think it's a requirement for the IDSgrep build - as far as I know there's nothing GNU-specific in there - but it's possible that I could have unknowingly written something that doesn't work with non-GNU Make. As for FontAnvil, I wouldn't recommend building it if you're primarily interested in IDSgrep. FontAnvil is big, complicated, and in this version poorly tested, and it's only needed to run the top-level Tsukurimashou build which in turn is only needed to build a font file used by the IDSgrep documentation. Since the documentation comes precompiled, you shouldn't need to build it at all.

I was able to reproduce the problem you describe just now on my Linux laptop, so I don't think it's MacOS-specific. I think the issue is that the IDSgrep build just doesn't properly handle the case of not having a Tsukurimashou build. The configure script recognizes that situation but the Makefile doesn't get the memo, so to speak. I'm changing the bug title accordingly.

A workaround is to run "./configure --disable-docs" before building IDSgrep. The longer-term fix should be to warn you about this and/or do it automatically when configure can find neither the font nor the means to build it.

2014-08-20 15:16 Updated by: ahmed_fasih
Comment

Thanks, that did the trick. On Mac OS X 10.9 with Xcode 5.1 (which provides the compiler, etc.), and after brew install pcre:

    $ ./configure  --disable-docs --enable-edict-decomp=cjkvi-j && make && sudo make install
    $ idsgrep -d 賠
    :cjkvi-j.eids:【賠】⿰<貝>⿱目八<咅>⿱<立>⿱<CDP-8BAE>⿱<亠>⿱丨一丷一口
    :kanjivg.eids:【賠】⿰<貝>⿱目?⿱<立>⿱亠?口
I also was easily able to build and install Buddy and was able to rebuild IDSgrep including that.

Sorry my kanji-fu isn't strong enough to be able to close this ticket on my own, please feel free to do so. Thanks!

Attachment File List

No attachments

Edit

You are not logged in. I you are not logged in, your comment will be treated as an anonymous post. » Login