Gauche-CV mingw版コンパイルのメモ
最初は履歴とりながらやったけど力尽きたのでメモ垂れ流し。
大事なこと
・Python はコマンドラインから起動したときに2系が起動するようにすること。(Glibではまる)
・mingwの開発環境をインストールする時に、C++をチェックすること(デフォで入ってない)
・Cygwinのパスを外す。
下二つは重要で、これを忘れるとgccはmingw版なのにg++はcygwin版が起動したり、pkg-conifgが何をしているのかさっぱり分からなくなる。
libffiは素直に入る。pkg-configとglibの相互依存が壁になるが、ここからバイナリを入手するのが早い。
http://ingar.satgnu.net/devenv/mingw32/files/msys-pkg-config-0.26-static.zip
C:\MinGW\msys\1.0\bin ではなく、C:\MinGW\bin へコピーする。
Zlibはここを参考に。
http://kemovitra.blogspot.jp/2009/06/mingw-compiling-zlib.html
環境変数やらいろいろ設定した結果、最終的にbuildが通ったMakefile(C:\home\Gauche-CV\src\objdetect\Makefile)がこう。C:/home/computervision/OpenCV2.3/ がOpenCVが展開されているディレクトリ。c:/home/Gauche-CV/ が、Gauche-CVがインストールされているディレクトリ。
# General info
SHELL = /bin/sh
prefix = C:\MinGW\msys\1.0\local
exec_prefix = ${prefix}
bindir = ${exec_prefix}/bin
libdir = ${exec_prefix}/lib
datadir = ${datarootdir}
datarootdir = ${prefix}/share
srcdir = .
# These may be overridden by make invocators
DESTDIR =
GOSH = "/usr/local/bin/gosh"
GAUCHE_CONFIG = "/usr/local/bin/gauche-config"
GAUCHE_PACKAGE = "/usr/local/bin/gauche-package"
INSTALL = "/usr/local/bin/gauche-install" -C
# Other parameters
OPENCV_CFLAGS = -IC:/home/computervision/OpenCV2.3/build/include -LC:/home/computervision/OpenCV2.3/build/x86/vc10/bin
OPENCV_LIBS = -LC:/home/computervision/OpenCV2.3/build/x86/vc10/bin -lopencv_core230 -lopencv_highgui230 -lopencv_objdetect230 -lopencv_imgproc230
SOEXT = dll
OBJEXT = o
EXEEXT = .exe
COREDIR = -Lc:/home/Gauche-CV/src
LOCAL_PATHS = ""
OPENCV_VERSION=-DOPENCV2_3=1
core_LIBS=-lgauche_cv_core
# Module-specific stuff
PACKAGE = gauche-cv-objdetect
ARCHFILES = gauche_cv_objdetect.$(SOEXT)
TARGET = $(ARCHFILES)
GENERATED = *.o *.gen.* *lib.c gauche_cv_objdetect.$(SOEXT)
CONFIG_GENERATED = Makefile
GAUCHE_PKGINCDIR = "$(DESTDIR)${libdir}\gauche-0.9\site\include"
GAUCHE_PKGLIBDIR = "$(DESTDIR)${datadir}\gauche-0.9\site\lib"
GAUCHE_PKGARCHDIR = "$(DESTDIR)${libdir}\gauche-0.9\site\i686-pc-mingw32"
SCRIPTDIR = "c:/home/Gauche-CV/script"
OUTDIR = "c:/home/Gauche-CV/out"
GENSTUB = "c:/home/Gauche-CV/script/genstub.scm"
cv_TYPE_HDRS = ../core_type.gen.h \
../macro.stub.header \
../cv_struct_pre_include.h
cv_STUB_TYPE_HDRS = ../cv_type.stub.header \
../core_type.gen.stub.header
cv_objdetect_SRCS = gauche_cv_objdetect.c \
cv_objdetectlib.c \
objdetect_type.gen.c
all : $(TARGET)
#generate sutb -> c file
.SUFFIXES:.stub .c
.stub.c:
$(GOSH) -I$(SCRIPTDIR) $(GENSTUB) $<
cv_objdetectlib.c: $(cv_STUB_TYPE_HDRS) objdetect_type.gen.stub.header
#generate type file
objdetect_type.gen.c objdetect_type.gen.h objdetect_type.gen.stub.header: objdetect_type.scm
$(GOSH) -I$(SCRIPTDIR) objdetect_type.scm
#compile objdetect
gauche_cv_objdetect.$(SOEXT): $(cv_objdetect_SRCS) $(cv_TYPE_HDRS)
$(GAUCHE_PACKAGE) compile \
--local=$(LOCAL_PATHS) \
--verbose \
--cflags="$(OPENCV_CFLAGS) $(OPENCV_VERSION) " \
--ldflags="$(COREDIR)" \
--libs="$(OPENCV_LIBS) $(core_LIBS)" \
gauche_cv_objdetect \
$(cv_objdetect_SRCS)
check :
@rm -f test.log
#$(GOSH) -I. -I$(srcdir) $(srcdir)/test.scm > test.log
install :
$(INSTALL) -m 555 -T $(GAUCHE_PKGARCHDIR) $(ARCHFILES)
uninstall :
$(INSTALL) -U $(GAUCHE_PKGARCHDIR) $(ARCHFILES)
clean :
$(GAUCHE_PACKAGE) compile --clean $(cv_HIGHGUI_SRCS)
rm -rf $(TARGET) $(GENERATED) *~ test.log so_locations
distclean : clean
rm -rf $(CONFIG_GENERATED)
maintainer-clean : clean
rm -rf $(CONFIG_GENERATED) configure VERSION
collect :
@if test "$(ARCHFILES)" != ""; then (cp -p -u $(ARCHFILES) $(OUTDIR)/dll/); fi
The comments to this entry are closed.
Comments