[ruby-list:50261] Haru Free PDF Library(libharu)の『hpdf.so』ファイルのMake方法について

From: 湧川 郁男 <waku@...>
Date: 2015-11-25 07:28:13 UTC
List: ruby-list #50261
=E6=B9=A7=E5=B7=9D=E3=81=A8=E7=94=B3=E3=81=97=E3=81=BE=E3=81=99=E3=80=82

Haru=E3=80=80Free=E3=80=80PDF=E3=80=80Library=EF=BC=88=EF=BD=8C=EF=BD=89=EF=
=BD=82=EF=BD=88=EF=BD=81=EF=BD=92=EF=BD=95=EF=BC=89=E3=81=A7=E3=80=8E=EF=BD=
=88=EF=BD=90=EF=BD=84=EF=BD=86=EF=BC=8E=EF=BD=93=EF=BD=8F=E3=80=8F=E3=81=8C=
=E4=BD=9C=E3=82=8C=E3=81=9A=E3=81=AB=E5=9B=B0=E3=81=A3=E3=81=A6=E3=81=8A=E3=
=82=8A=E3=81=BE=E3=81=99=E3=80=82
=EF=BC=88=EF=BC=B2=EF=BD=95=EF=BD=82=EF=BD=99=EF=BC=91=EF=BC=8E=EF=BC=98=EF=
=BC=8E=EF=BC=97=E3=81=AE=E5=A0=B4=E5=90=88=E3=81=AF=E3=80=81=E3=83=8D=E3=83=
=83=E3=83=88=E4=B8=8A=E3=81=AE=E3=80=8Elibharu_2_0_8_ruby_win32.zip=E3=80=
=8F=E3=81=8B=E3=82=89=E3=80=8E=EF=BD=88=EF=BD=90=EF=BD=84=EF=BD=86=EF=BC=8E=
=EF=BD=93=EF=BD=8F=E3=80=8F=E3=82=92=E3=82=B3=E3=83=94=E3=83=BC=E3=81=97=E3=
=81=A6=E4=BD=BF=E7=94=A8=E3=81=97=E3=81=A6=E3=82=82
=E3=80=80=E5=95=8F=E9=A1=8C=E3=81=AA=E3=81=84=E3=81=AE=E3=81=A7=E3=81=99=E3=
=81=8C=E3=80=81=E3=83=90=E3=83=BC=E3=82=B8=E3=83=A7=E3=83=B3=EF=BC=B2=EF=BD=
=95=EF=BD=82=EF=BD=99=EF=BC=91=EF=BC=8E=EF=BC=99=E4=BB=A5=E4=B8=8A=E3=81=AB=
=E3=81=AA=E3=82=8B=E3=81=A8=E3=81=86=E3=81=BE=E3=81=8F=E5=8B=95=E4=BD=9C=E3=
=81=97=E3=81=AA=E3=81=84=E3=81=AE=E3=81=A7=E3=80=81=E6=9C=80=E5=88=9D=E3=81=
=8B=E3=82=89=EF=BC=AD=EF=BD=81=EF=BD=8B=EF=BD=85=E3=81=99=E3=82=8B=E3=81=93=
=E3=81=A8=E3=81=AB=E3=81=97=E3=81=BE=E3=81=97=E3=81=9F=E3=80=82=EF=BC=89

=E3=80=90=E7=92=B0=E5=A2=83=E3=80=91
=E3=83=BBWindows8.1=EF=BC=88=EF=BC=96=EF=BC=94=EF=BD=82=EF=BD=89=EF=BD=94=
=EF=BC=89
=E3=83=BB=EF=BC=B2=EF=BD=95=EF=BD=82=EF=BD=99=EF=BC=91=EF=BC=8E=EF=BC=99=EF=
=BC=8E=EF=BC=93=EF=BC=8D=EF=BD=90=EF=BC=95=EF=BC=95=EF=BC=91=EF=BC=88=EF=BC=
=B2=EF=BD=95=EF=BD=82=EF=BD=99=E3=80=80=EF=BD=89=EF=BD=8E=EF=BD=93=EF=BD=94=
=EF=BD=81=EF=BD=8C=EF=BD=8C=EF=BD=85=EF=BD=92=EF=BC=89
=E3=83=BB=EF=BD=8C=EF=BD=89=EF=BD=82=EF=BD=88=EF=BD=81=EF=BD=92=EF=BD=95=EF=
=BC=8D=EF=BC=B2=EF=BC=A5=EF=BC=AC=EF=BC=A5=EF=BC=A1=EF=BC=B3=EF=BC=A5=E3=80=
=80=EF=BC=92=EF=BC=8E=EF=BC=93=EF=BC=8E=EF=BC=90
=E3=83=BB=EF=BC=B6=EF=BD=89=EF=BD=93=EF=BD=95=EF=BD=81=EF=BD=8C=E3=80=80=EF=
=BC=B3=EF=BD=94=EF=BD=95=EF=BD=84=EF=BD=89=EF=BD=8F=E3=80=80=EF=BC=92=EF=BC=
=90=EF=BC=91=EF=BC=93=E3=80=80=EF=BC=A5=EF=BD=98=EF=BD=90=EF=BD=92=EF=BD=85=
=EF=BD=93=EF=BD=93=E3=80=80=EF=BC=A4=EF=BD=85=EF=BD=93=EF=BD=8B=EF=BD=94=EF=
=BD=8F=EF=BD=90

=EF=BC=B6=EF=BC=B3=EF=BC=92=EF=BC=90=EF=BC=91=EF=BC=93=E3=82=92=E4=BD=BF=E3=
=81=A3=E3=81=A6=E3=80=81=E3=80=8E=EF=BD=8C=EF=BD=89=EF=BD=82=EF=BD=88=EF=BD=
=90=EF=BD=84=EF=BD=86=EF=BC=8E=EF=BD=84=EF=BD=8C=EF=BD=8C=E3=80=8F=E3=82=92=
=EF=BC=AD=EF=BD=81=EF=BD=8B=EF=BD=85=EF=BC=88=EF=BD=8E=EF=BD=8D=EF=BD=81=EF=
=BD=8B=EF=BD=85=EF=BC=89=E3=81=97=E3=80=81=EF=BC=A3=EF=BC=83=E7=94=A8=E3=81=
=AE=EF=BD=84=EF=BD=85=EF=BD=8D=EF=BD=8F=E3=83=97=E3=83=AD=E3=82=B0=E3=83=A9=
=E3=83=A0=E3=81=A7=EF=BC=B0=EF=BC=A4=EF=BC=A6=E3=82=92=E5=95=8F=E9=A1=8C=E3=
=81=AA=E3=81=8F=E4=BD=9C=E6=88=90=E3=81=99=E3=82=8B=E3=81=93=E3=81=A8=E3=81=
=AF=E3=81=A7=E3=81=8D=E3=81=BE=E3=81=97=E3=81=9F=E3=80=82
=E3=81=97=E3=81=8B=E3=81=97=E3=80=81=EF=BC=B2=EF=BD=95=EF=BD=82=EF=BD=99=E7=
=94=A8=E3=81=AE=E3=80=8E=EF=BD=88=EF=BD=90=EF=BD=84=EF=BC=8E=EF=BD=93=EF=BD=
=8F=E3=80=8F=E3=83=95=E3=82=A1=E3=82=A4=E3=83=AB=E3=82=92=E3=80=81=EF=BD=85=
=EF=BD=98=EF=BD=85=EF=BD=94=EF=BD=83=EF=BD=8F=EF=BD=8E=EF=BD=86=EF=BC=8E=EF=
=BD=92=EF=BD=82=E2=87=92=EF=BC=AD=EF=BD=81=EF=BD=8B=EF=BD=85=E3=83=95=E3=82=
=A1=E3=82=A4=E3=83=AB=E3=82=92=E4=BD=9C=E6=88=90=E2=87=92=EF=BC=AD=EF=BD=81=
=EF=BD=8B=EF=BD=85=EF=BC=88=EF=BD=8E=EF=BD=8D=EF=BD=81=EF=BD=8B=EF=BD=85=EF=
=BC=89=E3=81=99=E3=82=8B=E3=81=A8=E4=B8=8B=E8=A8=98=E3=81=AE=E3=82=A8=E3=83=
=A9=E3=83=BC

C:\libharu-RELEASE_2_3_0\if\ruby>ruby extconf.rb
creating Makefile
C:\libharu-RELEASE_2_3_0\if\ruby>nmake
makefile(82) : fatal error U1000: =
=E6=A7=8B=E6=96=87=E3=82=A8=E3=83=A9=E3=83=BC : =
=E3=83=9E=E3=82=AF=E3=83=AD=E5=91=BC=E3=81=B3=E5=87=BA=E3=81=97=E3=81=AB =
')' =E3=81=8C=E3=81=82=E3=82=8A=E3=81=BE=E3=81=9B=E3=82=93=E3=80=82
Stop.

=E5=90=8C=E6=A7=98=E3=81=AB=E3=80=81=EF=BC=B2=EF=BD=95=EF=BD=82=EF=BD=99=EF=
=BC=92=EF=BC=8E=EF=BC=90=EF=BC=8F=EF=BC=92=EF=BC=8E=EF=BC=91=EF=BC=8F=EF=BC=
=92=EF=BC=8E=EF=BC=92=E3=81=A8=E3=83=90=E3=83=BC=E3=82=B8=E3=83=A7=E3=83=B3=
=E3=82=92=E5=A4=89=E3=81=88=E3=81=A6=E3=81=BF=E3=81=A6=E3=82=82=E5=90=8C=E3=
=81=98=E7=B5=90=E6=9E=9C=E3=81=A7=E3=81=99=E3=80=82
=E3=81=BE=E3=81=9F=E3=80=81=EF=BC=A3=EF=BD=99=EF=BD=87=EF=BD=97=EF=BD=89=EF=
=BD=8E=E7=92=B0=E5=A2=83=E3=81=A7=EF=BC=B2=EF=BD=95=EF=BD=82=EF=BD=99=E3=82=
=84=EF=BD=8C=EF=BD=89=EF=BD=82=EF=BD=88=EF=BD=81=EF=BD=92=EF=BD=95=E3=82=92=
=E3=82=BD=E3=83=BC=E3=82=B9=E3=82=B3=E3=83=BC=E3=83=89=E3=81=8B=E3=82=89=E3=
=82=B3=E3=83=B3=E3=83=91=E3=82=A4=E3=83=AB=E3=81=97=E3=81=A6=E3=82=82=E3=81=
=86=E3=81=BE=E3=81=8F=E3=81=84=E3=81=8D=E3=81=BE=E3=81=9B=E3=82=93=E3=80=82=

extconf.rb=E3=82=84Makefile=E5=81=B4=E3=81=A7=E3=81=AF=E3=81=AA=E3=81=8F=E5=
=A4=9A=E5=88=86=E5=BD=93=E6=96=B9=E3=81=AE=E6=89=8B=E9=A0=86=E7=AD=89=E3=81=
=AB=E9=96=93=E9=81=95=E3=81=84=E3=81=8C=E3=81=82=E3=82=8B=E3=81=A8=E6=80=9D=
=E3=81=86=E3=81=AE=E3=81=A7=E3=81=99=E3=81=8C=E3=80=81=E3=83=8D=E3=83=83=E3=
=83=88=E6=A4=9C=E7=B4=A2=E3=81=97=E3=81=A6=E3=82=82
=E8=A7=A3=E6=B1=BA=E7=AD=96=E3=81=8C=E8=A6=8B=E3=81=A4=E3=81=8B=E3=82=89=E3=
=81=9A=E8=A1=8C=E3=81=8D=E8=A9=B0=E3=81=A3=E3=81=A6=E3=81=8A=E3=82=8A=E3=81=
=BE=E3=81=99=E3=80=82
=E3=81=A9=E3=81=AA=E3=81=9F=E3=81=8B=E3=81=8A=E3=82=8F=E3=81=8B=E3=82=8A=E3=
=81=AE=E6=96=B9=E3=81=8C=E3=81=84=E3=82=89=E3=81=A3=E3=81=97=E3=82=83=E3=81=
=84=E3=81=BE=E3=81=97=E3=81=9F=E3=82=89=E3=80=81=E6=95=99=E3=81=88=E3=81=A6=
=E4=B8=8B=E3=81=95=E3=81=84=E3=80=82

=E3=82=88=E3=82=8D=E3=81=97=E3=81=8F=E3=81=8A=E9=A1=98=E3=81=84=E3=81=97=E3=
=81=BE=E3=81=99=EF=BC=81


=E9=95=B7=E3=81=8F=E3=81=AA=E3=82=8A=E3=81=BE=E3=81=99=E3=81=8C=E3=80=81e=
xtconf.rb=E3=81=A8Makefile=E3=81=AE=E3=83=AA=E3=82=B9=E3=83=88=E3=82=92=E6=
=B7=BB=E4=BB=98=E3=81=97=E3=81=BE=E3=81=99=E3=80=82
-------------------------------------------------------------------------=
-------
=E3=80=90extconf.rb=E3=80=91
require 'mkmf'
$CPPFLAGS =3D $CPPFLAGS + " -I../../include"
$LDFLAGS =3D $LDFLAGS + " -L../../"
$LIBS =3D $LIBS + " -lhpdf -lpng -lz"
create_makefile 'hpdf
-------------------------------------------------------------------------=
------
=E3=80=90Makefile=E3=80=91

SHELL =3D /bin/sh

# V=3D0 quiet, V=3D1 verbose.  other values don't work.
V =3D 0
Q1 =3D $(V:1=3D)
Q =3D $(Q1:0=3D@)
n=3D$(NULLCMD)
ECHO1 =3D $(V:1=3D@$n)
ECHO =3D $(ECHO1:0=3D@echo)

#### Start of system configuration section. ####

srcdir =3D .
topdir =3D /C/Ruby/include/ruby-1.9.1
hdrdir =3D /C/Ruby/include/ruby-1.9.1
arch_hdrdir =3D C:/Ruby/include/ruby-1.9.1/$(arch)
VPATH =3D $(srcdir):$(arch_hdrdir)/ruby:$(hdrdir)/ruby

DESTDIR =3D C:
prefix =3D $(DESTDIR)/Ruby
rubylibprefix =3D $(libdir)/$(RUBY_BASE_NAME)
exec_prefix =3D $(prefix)
vendorhdrdir =3D $(rubyhdrdir)/vendor_ruby
sitehdrdir =3D $(rubyhdrdir)/site_ruby
rubyhdrdir =3D $(includedir)/$(RUBY_BASE_NAME)-$(ruby_version)
vendordir =3D $(rubylibprefix)/vendor_ruby
sitedir =3D $(rubylibprefix)/site_ruby
ridir =3D $(datarootdir)/$(RI_BASE_NAME)
mandir =3D $(datarootdir)/man
localedir =3D $(datarootdir)/locale
libdir =3D $(exec_prefix)/lib
psdir =3D $(docdir)
pdfdir =3D $(docdir)
dvidir =3D $(docdir)
htmldir =3D $(docdir)
infodir =3D $(datarootdir)/info
docdir =3D $(datarootdir)/doc/$(PACKAGE)
oldincludedir =3D $(DESTDIR)/usr/include
includedir =3D $(prefix)/include
localstatedir =3D $(prefix)/var
sharedstatedir =3D $(prefix)/com
sysconfdir =3D $(prefix)/etc
datadir =3D $(datarootdir)
datarootdir =3D $(prefix)/share
libexecdir =3D $(exec_prefix)/libexec
sbindir =3D $(exec_prefix)/sbin
bindir =3D $(exec_prefix)/bin
rubylibdir =3D $(rubylibprefix)/$(ruby_version)
archdir =3D $(rubylibdir)/$(arch)
sitelibdir =3D $(sitedir)/$(ruby_version)
sitearchdir =3D $(sitelibdir)/$(sitearch)
vendorlibdir =3D $(vendordir)/$(ruby_version)
vendorarchdir =3D $(vendorlibdir)/$(sitearch)

NULLCMD =3D :

CC =3D gcc
CXX =3D g++
LIBRUBY =3D lib$(RUBY_SO_NAME).dll.a
LIBRUBY_A =3D lib$(RUBY_SO_NAME)-static.a
LIBRUBYARG_SHARED =3D -l$(RUBY_SO_NAME)
LIBRUBYARG_STATIC =3D -l$(RUBY_SO_NAME)-static
empty =3D
OUTFLAG =3D -o $(empty)
COUTFLAG =3D -o $(empty)

RUBY_EXTCONF_H =3D=20
cflags   =3D  $(optflags) $(debugflags) $(warnflags)
optflags =3D -O3 -fno-omit-frame-pointer
debugflags =3D -g
warnflags =3D -Wall -Wextra -Wno-unused-parameter -Wno-parentheses =
-Wno-long-long -Wno-missing-field-initializers -Wpointer-arith =
-Wwrite-strings -Wdeclaration-after-statement =
-Wimplicit-function-declaration
CFLAGS   =3D  $(cflags) $(ARCH_FLAG)
INCFLAGS =3D -I. -I$(arch_hdrdir) -I$(hdrdir)/ruby/backward -I$(hdrdir) =
-I$(srcdir)
DEFS     =3D=20
CPPFLAGS =3D  -DFD_SETSIZE=3D2048 $(DEFS) $(cppflags) -I../../include
CXXFLAGS =3D $(CFLAGS) $(cxxflags)
ldflags  =3D -L.  -L../../
dldflags =3D  -Wl,--enable-auto-image-base,--enable-auto-import =
$(DEFFILE)=20
ARCH_FLAG =3D -march=3Di486
DLDFLAGS =3D $(ldflags) $(dldflags) $(ARCH_FLAG)
LDSHARED =3D $(CC) -shared $(if $(filter-out -g -g0,$(debugflags)),,-s)  =
                                          =
<<<<82=E8=A1=8C=E7=9B=AE=E3=80=80=E6=9C=80=E5=88=9D=E3=81=AB=E3=82=A8=E3=83=
=A9=E3=83=BC=E3=81=AB=E3=81=AA=E3=82=8B=E7=AE=87=E6=89=80=EF=BC=81
LDSHAREDXX =3D $(CXX) -shared $(if $(filter-out -g =
-g0,$(debugflags)),,-s)
AR =3D ar
EXEEXT =3D .exe

RUBY_BASE_NAME =3D ruby
RUBY_INSTALL_NAME =3D ruby
RUBY_SO_NAME =3D msvcrt-ruby191
arch =3D i386-mingw32
sitearch =3D i386-msvcrt
ruby_version =3D 1.9.1
ruby =3D C:/Ruby/bin/ruby
RUBY =3D $(ruby)
RM =3D rm -f
RM_RF =3D $(RUBY) -run -e rm -- -rf
RMDIRS =3D rmdir --ignore-fail-on-non-empty -p
MAKEDIRS =3D /usr/bin/mkdir -p
INSTALL =3D /usr/bin/install -c
INSTALL_PROG =3D $(INSTALL) -m 0755
INSTALL_DATA =3D $(INSTALL) -m 644
COPY =3D cp
TOUCH =3D exit >

#### End of system configuration section. ####

preload =3D=20

libpath =3D . $(libdir)
LIBPATH =3D  -L. -L$(libdir)
DEFFILE =3D $(TARGET)-$(arch).def

CLEANFILES =3D mkmf.log $(DEFFILE)
DISTCLEANFILES =3D=20
DISTCLEANDIRS =3D=20

extout =3D=20
extout_prefix =3D=20
target_prefix =3D=20
LOCAL_LIBS =3D=20
LIBS =3D $(LIBRUBYARG_SHARED)  -lshell32 -lws2_32 -limagehlp -lshlwapi   =
-lhpdf -lpng -lz
SRCS =3D hpdf.c
OBJS =3D hpdf.o
TARGET =3D hpdf
TARGET_NAME =3D hpdf
TARGET_ENTRY =3D Init_$(TARGET_NAME)
DLLIB =3D $(TARGET).so
EXTSTATIC =3D=20
STATIC_LIB =3D=20

BINDIR        =3D $(bindir)
RUBYCOMMONDIR =3D $(sitedir)$(target_prefix)
RUBYLIBDIR    =3D $(sitelibdir)$(target_prefix)
RUBYARCHDIR   =3D $(sitearchdir)$(target_prefix)
HDRDIR        =3D $(rubyhdrdir)/ruby$(target_prefix)
ARCHHDRDIR    =3D $(rubyhdrdir)/$(arch)/ruby$(target_prefix)

TARGET_SO     =3D $(DLLIB)
CLEANLIBS     =3D $(TARGET).so=20
CLEANOBJS     =3D *.o  *.bak

all:    $(DLLIB)
static: $(STATIC_LIB)
.PHONY: all install static install-so install-rb
.PHONY: clean clean-so clean-rb

clean-static::
clean-rb-default::
clean-rb::
clean-so::
clean: clean-so clean-static clean-rb-default clean-rb
        -$(Q)$(RM) $(CLEANLIBS) $(CLEANOBJS) $(CLEANFILES) .*.time

distclean-rb-default::
distclean-rb::
distclean-so::
distclean: clean distclean-so distclean-rb-default distclean-rb
        @-$(RM) Makefile $(RUBY_EXTCONF_H) conftest.* mkmf.log
        @-$(RM) core ruby$(EXEEXT) *~ $(DISTCLEANFILES)
        @-$(RMDIRS) $(DISTCLEANDIRS) 2> /dev/null || true

realclean: distclean
install: install-so install-rb

install-so: $(RUBYARCHDIR)/$(DLLIB)
$(RUBYARCHDIR)/$(DLLIB): $(DLLIB)
    -$(Q)$(MAKEDIRS) $(@D)
    $(INSTALL_PROG) $(DLLIB) $(@D)
clean-static::
    -$(Q)$(RM) $(STATIC_LIB)
install-rb: pre-install-rb install-rb-default
install-rb-default: pre-install-rb-default
pre-install-rb: Makefile
pre-install-rb-default: Makefile
pre-install-rb-default:
    $(ECHO) installing default hpdf libraries
./.RUBYARCHDIR.time:
    $(Q) $(MAKEDIRS) $(RUBYARCHDIR)
    $(Q) $(TOUCH) $@

site-install: site-install-so site-install-rb
site-install-so: install-so
site-install-rb: install-rb

.SUFFIXES: .c .m .cc .mm .cxx .cpp .o

.cc.o:
    $(ECHO) compiling $(<)
    $(Q) $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(COUTFLAG)$@ -c $<

.mm.o:
    $(ECHO) compiling $(<)
    $(Q) $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(COUTFLAG)$@ -c $<

.cxx.o:
    $(ECHO) compiling $(<)
    $(Q) $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(COUTFLAG)$@ -c $<

.cpp.o:
    $(ECHO) compiling $(<)
    $(Q) $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(COUTFLAG)$@ -c $<

.c.o:
    $(ECHO) compiling $(<)
    $(Q) $(CC) $(INCFLAGS) $(CPPFLAGS) $(CFLAGS) $(COUTFLAG)$@ -c $<

.m.o:
    $(ECHO) compiling $(<)
    $(Q) $(CC) $(INCFLAGS) $(CPPFLAGS) $(CFLAGS) $(COUTFLAG)$@ -c $<

$(DLLIB): $(DEFFILE) $(OBJS) Makefile
    $(ECHO) linking shared-object $(DLLIB)
    -$(Q)$(RM) $(@)
    $(Q) $(LDSHARED) -o $@ $(OBJS) $(LIBPATH) $(DLDFLAGS) $(LOCAL_LIBS) =
$(LIBS)



$(DEFFILE):=20
    $(ECHO) generating $(@)
    $(Q) $(RUBY) -e "puts 'EXPORTS', '$(TARGET_ENTRY)'"  > $@

$(OBJS): $(hdrdir)/ruby.h $(hdrdir)/ruby/defines.h =
$(arch_hdrdir)/ruby/config.h

In This Thread

Prev Next