View Issue Details

IDProjectCategoryView StatusLast Update
0000522Perl for OS/2Bugpublic2022-05-14 16:06
Reportershmuel Assigned Topsmedley  
PrioritynormalSeveritymajorReproducibilityalways
Status closedResolutionreopened 
PlatformAMD dual coreOSeComStationOS Version2.0 GA
Summary0000522: Build of CPAN package Crypt-OpenSSL-Random-0.04 fails
Descriptiona build of Crypt-OpenSSL-Random-0.04 produces errors, as shown in the attached file.
Steps To ReproduceDownload and expand Crypt-OpenSSL-Random-0.04.tar.gz, follow the santdard CPAN build sequence.

cd H:\vendors\cpan\Crypt-OpenSSL-Random-0.04
perl Makefile.PL
U:\extras\bin\make
U:\extras\bin\make test
U:\extras\bin\make install
TagsNo tags attached.
Attached Files
build.err (7,846 bytes)
Config.pm (3,165 bytes)
Config_heavy.pl (32,256 bytes)
perlDashV (2,362 bytes)   
Summary of my perl5 (revision 5 version 10 subversion 0) configuration:
  Platform:
    osname=os2, osvers=2.45, archname=os2
    uname='os2 dev.smedley.inf 1 2.45 i386 i386 authenticamd os2  '
    config_args='-Dprefix=Q:/PROGRAMS/PERL'
    hint=recommended, useposix=true, d_sigaction=define
    useithreads=undef, usemultiplicity=undef
    useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
    use64bitint=undef, use64bitall=undef, uselongdouble=undef
    usemymalloc=y, bincompat5005=undef
  Compiler:
    cc='gcc', ccflags ='-DDOSISH -DOS2=2 -DEMBED -I. -fno-strict-aliasing -pipe -I/usr/local/include',
    optimize='-O2 -fomit-frame-pointer -falign-loops=2 -falign-jumps=2 -falign-functions=2 -s',
    cppflags='-DDOSISH -DOS2=2 -DEMBED -I. -fno-strict-aliasing -pipe -I/usr/local/include'
    ccversion='', gccversion='3.3.5 (Bird Build 2007-06-10 14:30)', gccosandvers=''
    intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12
    ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
    alignbytes=4, prototype=define
  Linker and Libraries:
    ld='gcc', ldflags ='-Zomf -Zhigh-mem -Zstack 32000 '
    libpth=/usr/lib /usr/lib/gcc-lib/i386-pc-os2-emx/3.3.5 /extras/lib /dev/qt/trunk/lib /openldap/lib /cups/lib Q:/os2tk45/lib  q:/usr/local/OPENSL/lib Q:/os2tk45/lib  q:/usr/local/OPENSSL/lib
    libs=-lsocket
    perllibs=-lsocket
    libc=/usr/lib/libc_dll.a, so=dll, useshrplib=true, libperl=libperl.a
    gnulibc_version=''
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=dll, d_dlsymun=undef, ccdlflags=' '
    cccdlflags='-Zdll', lddlflags='-Zdll -Zomf '


Characteristics of this binary (from libperl): 
  Compile-time options: MYMALLOC PERL_DONT_CREATE_GVSV PERL_USES_PL_PIDSTATUS
                        USE_LARGE_FILES USE_PERLIO
  Built under os2
  Compiled at Dec 26 2007 13:37:17
  %ENV:
    PERLDIR="Q:\PROGRAMS\PERL"
    PERLLIB="Q:\PROGRAMS\PERL\lib"
    PERLLIB_PREFIX="u:/perl5/lib;Q:/PROGRAMS/PERL/lib"
    PERLLOC=" Q:\PROGRAMS\PERL"
    PERLLOC2="U:/PERL"
    PERL_SH_DIR="Q:/PROGRAMS/PERL/bin"
  @INC:
    Q:\PROGRAMS\PERL\lib
    /perl5/lib/5.10.0/os2
    /perl5/lib/5.10.0
    /perl5/lib/site_perl/5.10.0/os2
    /perl5/lib/site_perl/5.10.0
    .
perlDashV (2,362 bytes)   
Makefile (31,871 bytes)   
# This Makefile is for the Crypt::OpenSSL::Random extension to perl.
#
# It was generated automatically by MakeMaker version
# 6.62 (Revision: 66200) from the contents of
# Makefile.PL. Don't edit this file, edit Makefile.PL instead.
#
#       ANY CHANGES MADE HERE WILL BE LOST!
#
#   MakeMaker ARGV: ()
#

#   MakeMaker Parameters:

#     BUILD_REQUIRES => {  }
#     CONFIGURE_REQUIRES => {  }
#     DEFINE => q[]
#     INC => q[]
#     LIBS => [q[-lssl -lcrypto]]
#     NAME => q[Crypt::OpenSSL::Random]
#     PREREQ_PM => {  }
#     VERSION_FROM => q[Random.pm]

# --- MakeMaker post_initialize section:


# --- MakeMaker const_config section:

# These definitions are from config.sh (via /perl5/lib/5.10.0/os2/Config.pm).
# They may have been overridden via Makefile.PL or on the command line.
AR = ar
CC = gcc
CCCDLFLAGS = -Zdll
CCDLFLAGS =  
DLEXT = dll
DLSRC = dl_dlopen.xs
EXE_EXT = .exe
FULL_AR = ar
LD = gcc
LDDLFLAGS = -Zdll -Zomf 
LDFLAGS = -Zomf -Zhigh-mem -Zstack 32000 
LIBC = /usr/lib/libc_dll.a
LIB_EXT = .a
OBJ_EXT = .o
OSNAME = os2
OSVERS = 2.45
RANLIB = :
SITELIBEXP = Q:/PROGRAMS/PERL/lib/site_perl/5.10.0
SITEARCHEXP = Q:/PROGRAMS/PERL/lib/site_perl/5.10.0/os2
SO = dll
VENDORARCHEXP = 
VENDORLIBEXP = 


# --- MakeMaker constants section:
AR_STATIC_ARGS = cr
DIRFILESEP = /
DFSEP = $(DIRFILESEP)
NAME = Crypt::OpenSSL::Random
NAME_SYM = Crypt_OpenSSL_Random
VERSION = 0.04
VERSION_MACRO = VERSION
VERSION_SYM = 0_04
DEFINE_VERSION = -D$(VERSION_MACRO)=\"$(VERSION)\"
XS_VERSION = 0.04
XS_VERSION_MACRO = XS_VERSION
XS_DEFINE_VERSION = -D$(XS_VERSION_MACRO)=\"$(XS_VERSION)\"
INST_ARCHLIB = blib/arch
INST_SCRIPT = blib/script
INST_BIN = blib/bin
INST_LIB = blib/lib
INST_MAN1DIR = blib/man1
INST_MAN3DIR = blib/man3
MAN1EXT = 1
MAN3EXT = 3
INSTALLDIRS = site
DESTDIR = 
PREFIX = $(SITEPREFIX)
PERLPREFIX = Q:/PROGRAMS/PERL
SITEPREFIX = Q:/PROGRAMS/PERL
VENDORPREFIX = 
INSTALLPRIVLIB = Q:/PROGRAMS/PERL/lib/5.10.0
DESTINSTALLPRIVLIB = $(DESTDIR)$(INSTALLPRIVLIB)
INSTALLSITELIB = Q:/PROGRAMS/PERL/lib/site_perl/5.10.0
DESTINSTALLSITELIB = $(DESTDIR)$(INSTALLSITELIB)
INSTALLVENDORLIB = 
DESTINSTALLVENDORLIB = $(DESTDIR)$(INSTALLVENDORLIB)
INSTALLARCHLIB = Q:/PROGRAMS/PERL/lib/5.10.0/os2
DESTINSTALLARCHLIB = $(DESTDIR)$(INSTALLARCHLIB)
INSTALLSITEARCH = Q:/PROGRAMS/PERL/lib/site_perl/5.10.0/os2
DESTINSTALLSITEARCH = $(DESTDIR)$(INSTALLSITEARCH)
INSTALLVENDORARCH = 
DESTINSTALLVENDORARCH = $(DESTDIR)$(INSTALLVENDORARCH)
INSTALLBIN = Q:/PROGRAMS/PERL/bin
DESTINSTALLBIN = $(DESTDIR)$(INSTALLBIN)
INSTALLSITEBIN = Q:/PROGRAMS/PERL/bin
DESTINSTALLSITEBIN = $(DESTDIR)$(INSTALLSITEBIN)
INSTALLVENDORBIN = 
DESTINSTALLVENDORBIN = $(DESTDIR)$(INSTALLVENDORBIN)
INSTALLSCRIPT = Q:/PROGRAMS/PERL/bin
DESTINSTALLSCRIPT = $(DESTDIR)$(INSTALLSCRIPT)
INSTALLSITESCRIPT = Q:/PROGRAMS/PERL/bin
DESTINSTALLSITESCRIPT = $(DESTDIR)$(INSTALLSITESCRIPT)
INSTALLVENDORSCRIPT = 
DESTINSTALLVENDORSCRIPT = $(DESTDIR)$(INSTALLVENDORSCRIPT)
INSTALLMAN1DIR = Q:/PROGRAMS/PERL/man/man1
DESTINSTALLMAN1DIR = $(DESTDIR)$(INSTALLMAN1DIR)
INSTALLSITEMAN1DIR = Q:/PROGRAMS/PERL/man/man1
DESTINSTALLSITEMAN1DIR = $(DESTDIR)$(INSTALLSITEMAN1DIR)
INSTALLVENDORMAN1DIR = 
DESTINSTALLVENDORMAN1DIR = $(DESTDIR)$(INSTALLVENDORMAN1DIR)
INSTALLMAN3DIR = Q:/PROGRAMS/PERL/man/man3
DESTINSTALLMAN3DIR = $(DESTDIR)$(INSTALLMAN3DIR)
INSTALLSITEMAN3DIR = Q:/PROGRAMS/PERL/man/man3
DESTINSTALLSITEMAN3DIR = $(DESTDIR)$(INSTALLSITEMAN3DIR)
INSTALLVENDORMAN3DIR = 
DESTINSTALLVENDORMAN3DIR = $(DESTDIR)$(INSTALLVENDORMAN3DIR)
PERL_LIB = Q:/PROGRAMS/PERL/lib/5.10.0
PERL_ARCHLIB = Q:/PROGRAMS/PERL/lib/5.10.0/os2
LIBPERL_A = libperl.a
FIRST_MAKEFILE = Makefile
MAKEFILE_OLD = Makefile.old
MAKE_APERL_FILE = Makefile.aperl
PERLMAINCC = $(CC)
PERL_INC = Q:/PROGRAMS/PERL/lib/5.10.0/os2/CORE
PERL = Q:/PROGRAMS/PERL/BIN/perl.exe
FULLPERL = Q:/PROGRAMS/PERL/BIN/perl.exe
ABSPERL = $(PERL)
PERLRUN = $(PERL)
FULLPERLRUN = $(FULLPERL)
ABSPERLRUN = $(ABSPERL)
PERLRUNINST = $(PERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)"
FULLPERLRUNINST = $(FULLPERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)"
ABSPERLRUNINST = $(ABSPERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)"
PERL_CORE = 0
PERM_DIR = 755
PERM_RW = 644
PERM_RWX = 755

MAKEMAKER   = /perl5/lib/5.10.0/ExtUtils/MakeMaker.pm
MM_VERSION  = 6.62
MM_REVISION = 66200

# FULLEXT = Pathname for extension directory (eg Foo/Bar/Oracle).
# BASEEXT = Basename part of FULLEXT. May be just equal FULLEXT. (eg Oracle)
# PARENT_NAME = NAME without BASEEXT and no trailing :: (eg Foo::Bar)
# DLBASE  = Basename part of dynamic library. May be just equal BASEEXT.
MAKE = make.exe
FULLEXT = Crypt/OpenSSL/Random
BASEEXT = Random
PARENT_NAME = Crypt::OpenSSL
DLBASE = RandomBQ
VERSION_FROM = Random.pm
INC = 
DEFINE = 
OBJECT = $(BASEEXT)$(OBJ_EXT)
LDFROM = $(OBJECT)
LINKTYPE = dynamic
BOOTDEP = 

# Handy lists of source code files:
XS_FILES = Random.xs
C_FILES  = Random.c
O_FILES  = Random.o
H_FILES  = 
MAN1PODS = 
MAN3PODS = Random.pm

# Where is the Config information that we are using/depend on
CONFIGDEP = $(PERL_ARCHLIB)$(DFSEP)Config.pm $(PERL_INC)$(DFSEP)config.h

# Where to build things
INST_LIBDIR      = $(INST_LIB)/Crypt/OpenSSL
INST_ARCHLIBDIR  = $(INST_ARCHLIB)/Crypt/OpenSSL

INST_AUTODIR     = $(INST_LIB)/auto/$(FULLEXT)
INST_ARCHAUTODIR = $(INST_ARCHLIB)/auto/$(FULLEXT)

INST_STATIC      = $(INST_ARCHAUTODIR)/$(BASEEXT)$(LIB_EXT)
INST_DYNAMIC     = $(INST_ARCHAUTODIR)/$(DLBASE).$(DLEXT)
INST_BOOT        = $(INST_ARCHAUTODIR)/$(BASEEXT).bs

# Extra linker info
EXPORT_LIST        = $(BASEEXT).def
PERL_ARCHIVE       = $(PERL_INC)/libperl$(LIB_EXT)
PERL_ARCHIVE_AFTER = $(PERL_INC)/libperl_override$(LIB_EXT)


TO_INST_PM = Random.pm

PM_TO_BLIB = Random.pm \
	$(INST_LIB)/Crypt/OpenSSL/Random.pm


# --- MakeMaker platform_constants section:


# --- MakeMaker tool_autosplit section:
# Usage: $(AUTOSPLITFILE) FileToSplit AutoDirToSplitInto
AUTOSPLITFILE = $(ABSPERLRUN)  -e 'use AutoSplit;  autosplit($$ARGV[0], $$ARGV[1], 0, 1, 1)' --



# --- MakeMaker tool_xsubpp section:

XSUBPPDIR = /perl5/lib/5.10.0/ExtUtils
XSUBPP = $(XSUBPPDIR)$(DFSEP)xsubpp
XSUBPPRUN = $(PERLRUN) $(XSUBPP)
XSPROTOARG = 
XSUBPPDEPS = Q:/PROGRAMS/PERL/lib/5.10.0/ExtUtils/typemap $(XSUBPP)
XSUBPPARGS = -typemap Q:/PROGRAMS/PERL/lib/5.10.0/ExtUtils/typemap
XSUBPP_EXTRA_ARGS = 


# --- MakeMaker tools_other section:
SHELL = /bin/sh.exe
CHMOD = $(ABSPERLRUN) -MExtUtils::Command -e 'chmod' --
CP = $(ABSPERLRUN) -MExtUtils::Command -e 'cp' --
MV = $(ABSPERLRUN) -MExtUtils::Command -e 'mv' --
NOOP = $(TRUE)
NOECHO = @
RM_F = $(ABSPERLRUN) -MExtUtils::Command -e 'rm_f' --
RM_RF = $(ABSPERLRUN) -MExtUtils::Command -e 'rm_rf' --
TEST_F = $(ABSPERLRUN) -MExtUtils::Command -e 'test_f' --
TOUCH = $(ABSPERLRUN) -MExtUtils::Command -e 'touch' --
UMASK_NULL = umask 0
DEV_NULL = > /dev/null 2>&1
MKPATH = $(ABSPERLRUN) -MExtUtils::Command -e 'mkpath' --
EQUALIZE_TIMESTAMP = $(ABSPERLRUN) -MExtUtils::Command -e 'eqtime' --
FALSE = $(ABSPERLRUN)  -e 'exit 1' --
TRUE = $(ABSPERLRUN)  -e 'exit 0' --
ECHO = $(ABSPERLRUN) -l -e 'print qq{@ARGV}' --
ECHO_N = $(ABSPERLRUN)  -e 'print qq{@ARGV}' --
UNINST = 0
VERBINST = 0
MOD_INSTALL = $(ABSPERLRUN) -MExtUtils::Install -e 'install([ from_to => {@ARGV}, verbose => '\''$(VERBINST)'\'', uninstall_shadows => '\''$(UNINST)'\'', dir_mode => '\''$(PERM_DIR)'\'' ]);' --
DOC_INSTALL = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'perllocal_install' --
UNINSTALL = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'uninstall' --
WARN_IF_OLD_PACKLIST = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'warn_if_old_packlist' --
MACROSTART = 
MACROEND = 
USEMAKEFILE = -f
FIXIN = $(ABSPERLRUN) -MExtUtils::MY -e 'MY->fixin(shift)' --


# --- MakeMaker makemakerdflt section:
makemakerdflt : all
	$(NOECHO) $(NOOP)


# --- MakeMaker dist section:
TAR = tar
TARFLAGS = cvf
ZIP = zip
ZIPFLAGS = -r
COMPRESS = gzip --best
SUFFIX = .gz
SHAR = shar
PREOP = $(NOECHO) $(NOOP)
POSTOP = $(NOECHO) $(NOOP)
TO_UNIX = $(NOECHO) $(TEST_F) tmp.zip && $(RM_F) tmp.zip; $(ZIP) -ll -mr tmp.zip $(DISTVNAME) && unzip -o tmp.zip && $(RM_F) tmp.zip

CI = ci -u
RCS_LABEL = rcs -Nv$(VERSION_SYM): -q
DIST_CP = best
DIST_DEFAULT = tardist
DISTNAME = Crypt-OpenSSL-Random
DISTVNAME = Crypt-OpenSSL-Random-0.04


# --- MakeMaker macro section:


# --- MakeMaker depend section:


# --- MakeMaker cflags section:

CCFLAGS = -DDOSISH -DOS2=2 -DEMBED -I. -fno-strict-aliasing -pipe -I/usr/local/include
OPTIMIZE = -O2 -fomit-frame-pointer -falign-loops=2 -falign-jumps=2 -falign-functions=2 -s
PERLTYPE = 
MPOLLUTE = 


# --- MakeMaker const_loadlibs section:

# Crypt::OpenSSL::Random might depend on some other libraries:
# See ExtUtils::Liblist for details
#


# --- MakeMaker const_cccmd section:
CCCMD = $(CC) -c $(PASTHRU_INC) $(INC) \
	$(CCFLAGS) $(OPTIMIZE) \
	$(PERLTYPE) $(MPOLLUTE) $(DEFINE_VERSION) \
	$(XS_DEFINE_VERSION)

# --- MakeMaker post_constants section:


# --- MakeMaker pasthru section:

PASTHRU = LIBPERL_A="$(LIBPERL_A)"\
	LINKTYPE="$(LINKTYPE)"\
	OPTIMIZE="$(OPTIMIZE)"\
	PREFIX="$(PREFIX)"\
	PASTHRU_DEFINE="$(PASTHRU_DEFINE)"\
	PASTHRU_INC="$(PASTHRU_INC)"


# --- MakeMaker special_targets section:
.SUFFIXES : .xs .c .C .cpp .i .s .cxx .cc $(OBJ_EXT)

.PHONY: all config static dynamic test linkext manifest blibdirs clean realclean disttest distdir



# --- MakeMaker c_o section:

.c.i:
	gcc -E -c $(PASTHRU_INC) $(INC) \
	$(CCFLAGS) $(OPTIMIZE) \
	$(PERLTYPE) $(MPOLLUTE) $(DEFINE_VERSION) \
	$(XS_DEFINE_VERSION) $(CCCDLFLAGS) "-I$(PERL_INC)" $(PASTHRU_DEFINE) $(DEFINE) $*.c > $*.i

.c.s:
	$(CCCMD) -S $(CCCDLFLAGS) "-I$(PERL_INC)" $(PASTHRU_DEFINE) $(DEFINE) $*.c

.c$(OBJ_EXT):
	$(CCCMD) $(CCCDLFLAGS) "-I$(PERL_INC)" $(PASTHRU_DEFINE) $(DEFINE) $*.c

.cpp$(OBJ_EXT):
	$(CCCMD) $(CCCDLFLAGS) "-I$(PERL_INC)" $(PASTHRU_DEFINE) $(DEFINE) $*.cpp

.cxx$(OBJ_EXT):
	$(CCCMD) $(CCCDLFLAGS) "-I$(PERL_INC)" $(PASTHRU_DEFINE) $(DEFINE) $*.cxx

.cc$(OBJ_EXT):
	$(CCCMD) $(CCCDLFLAGS) "-I$(PERL_INC)" $(PASTHRU_DEFINE) $(DEFINE) $*.cc


# --- MakeMaker xs_c section:

.xs.c:
	$(XSUBPPRUN) $(XSPROTOARG) $(XSUBPPARGS) $(XSUBPP_EXTRA_ARGS) $*.xs > $*.xsc && $(MV) $*.xsc $*.c


# --- MakeMaker xs_o section:

.xs$(OBJ_EXT):
	$(XSUBPPRUN) $(XSPROTOARG) $(XSUBPPARGS) $*.xs > $*.xsc && $(MV) $*.xsc $*.c
	$(CCCMD) $(CCCDLFLAGS) "-I$(PERL_INC)" $(PASTHRU_DEFINE) $(DEFINE) $*.c


# --- MakeMaker top_targets section:
all :: pure_all
	$(NOECHO) $(NOOP)


pure_all :: config pm_to_blib subdirs linkext
	$(NOECHO) $(NOOP)

subdirs :: $(MYEXTLIB)
	$(NOECHO) $(NOOP)

config :: $(FIRST_MAKEFILE) blibdirs
	$(NOECHO) $(NOOP)

help :
	perldoc ExtUtils::MakeMaker


# --- MakeMaker blibdirs section:
blibdirs : $(INST_LIBDIR)$(DFSEP).exists $(INST_ARCHLIB)$(DFSEP).exists $(INST_AUTODIR)$(DFSEP).exists $(INST_ARCHAUTODIR)$(DFSEP).exists $(INST_BIN)$(DFSEP).exists $(INST_SCRIPT)$(DFSEP).exists $(INST_MAN1DIR)$(DFSEP).exists $(INST_MAN3DIR)$(DFSEP).exists
	$(NOECHO) $(NOOP)

# Backwards compat with 6.18 through 6.25
blibdirs.ts : blibdirs
	$(NOECHO) $(NOOP)

$(INST_LIBDIR)$(DFSEP).exists :: Makefile.PL
	$(NOECHO) $(MKPATH) $(INST_LIBDIR)
	$(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_LIBDIR)
	$(NOECHO) $(TOUCH) $(INST_LIBDIR)$(DFSEP).exists

$(INST_ARCHLIB)$(DFSEP).exists :: Makefile.PL
	$(NOECHO) $(MKPATH) $(INST_ARCHLIB)
	$(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_ARCHLIB)
	$(NOECHO) $(TOUCH) $(INST_ARCHLIB)$(DFSEP).exists

$(INST_AUTODIR)$(DFSEP).exists :: Makefile.PL
	$(NOECHO) $(MKPATH) $(INST_AUTODIR)
	$(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_AUTODIR)
	$(NOECHO) $(TOUCH) $(INST_AUTODIR)$(DFSEP).exists

$(INST_ARCHAUTODIR)$(DFSEP).exists :: Makefile.PL
	$(NOECHO) $(MKPATH) $(INST_ARCHAUTODIR)
	$(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_ARCHAUTODIR)
	$(NOECHO) $(TOUCH) $(INST_ARCHAUTODIR)$(DFSEP).exists

$(INST_BIN)$(DFSEP).exists :: Makefile.PL
	$(NOECHO) $(MKPATH) $(INST_BIN)
	$(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_BIN)
	$(NOECHO) $(TOUCH) $(INST_BIN)$(DFSEP).exists

$(INST_SCRIPT)$(DFSEP).exists :: Makefile.PL
	$(NOECHO) $(MKPATH) $(INST_SCRIPT)
	$(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_SCRIPT)
	$(NOECHO) $(TOUCH) $(INST_SCRIPT)$(DFSEP).exists

$(INST_MAN1DIR)$(DFSEP).exists :: Makefile.PL
	$(NOECHO) $(MKPATH) $(INST_MAN1DIR)
	$(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_MAN1DIR)
	$(NOECHO) $(TOUCH) $(INST_MAN1DIR)$(DFSEP).exists

$(INST_MAN3DIR)$(DFSEP).exists :: Makefile.PL
	$(NOECHO) $(MKPATH) $(INST_MAN3DIR)
	$(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_MAN3DIR)
	$(NOECHO) $(TOUCH) $(INST_MAN3DIR)$(DFSEP).exists



# --- MakeMaker linkext section:

linkext :: $(LINKTYPE)
	$(NOECHO) $(NOOP)


# --- MakeMaker dlsyms section:

Random.def: Makefile.PL
	$(PERL) "-I$(PERL_ARCHLIB)" "-I$(PERL_LIB)" -e 'use ExtUtils::Mksymlists; \
     Mksymlists("NAME" => "$(NAME)", "DLBASE" => "$(DLBASE)", "VERSION" => "$(VERSION)", "DISTNAME" => "$(DISTNAME)", "INSTALLDIRS" => "$(INSTALLDIRS)", "DL_FUNCS" => {  }, "FUNCLIST" => [], "IMPORTS" => {  }, "DL_VARS" => []);'


# --- MakeMaker dynamic section:

dynamic :: $(FIRST_MAKEFILE) $(INST_DYNAMIC) $(INST_BOOT)
	$(NOECHO) $(NOOP)


# --- MakeMaker dynamic_bs section:
BOOTSTRAP = $(BASEEXT).bs

# As Mkbootstrap might not write a file (if none is required)
# we use touch to prevent make continually trying to remake it.
# The DynaLoader only reads a non-empty file.
$(BOOTSTRAP) : $(FIRST_MAKEFILE) $(BOOTDEP) $(INST_ARCHAUTODIR)$(DFSEP).exists
	$(NOECHO) $(ECHO) "Running Mkbootstrap for $(NAME) ($(BSLOADLIBS))"
	$(NOECHO) $(PERLRUN) \
		"-MExtUtils::Mkbootstrap" \
		-e "Mkbootstrap('$(BASEEXT)','$(BSLOADLIBS)');"
	$(NOECHO) $(TOUCH) $@
	$(CHMOD) $(PERM_RW) $@

$(INST_BOOT) : $(BOOTSTRAP) $(INST_ARCHAUTODIR)$(DFSEP).exists
	$(NOECHO) $(RM_RF) $@
	- $(CP) $(BOOTSTRAP) $@
	$(CHMOD) $(PERM_RW) $@


# --- MakeMaker dynamic_lib section:

# This section creates the dynamically loadable $(INST_DYNAMIC)
# from $(OBJECT) and possibly $(MYEXTLIB).
ARMAYBE = :
OTHERLDFLAGS = $(OPTIMIZE) 
INST_DYNAMIC_DEP = 
INST_DYNAMIC_FIX = || ( $(RM_F) $@ && sh -c false )

$(INST_DYNAMIC): $(OBJECT) $(MYEXTLIB) $(BOOTSTRAP) $(INST_ARCHAUTODIR)$(DFSEP).exists $(EXPORT_LIST) $(PERL_ARCHIVE) $(PERL_ARCHIVE_AFTER) $(INST_DYNAMIC_DEP)
	$(RM_F) $@
	$(LD)  $(LDDLFLAGS) $(LDFROM) $(OTHERLDFLAGS) -o $@ $(MYEXTLIB)	\
	  $(PERL_ARCHIVE) $(LDLOADLIBS) $(PERL_ARCHIVE_AFTER) $(EXPORT_LIST)	\
	  $(INST_DYNAMIC_FIX)
	$(CHMOD) $(PERM_RWX) $@


# --- MakeMaker static section:

## $(INST_PM) has been moved to the all: target.
## It remains here for awhile to allow for old usage: "make static"
static :: $(FIRST_MAKEFILE) $(INST_STATIC)
	$(NOECHO) $(NOOP)


# --- MakeMaker static_lib section:

$(INST_STATIC) : $(OBJECT) $(MYEXTLIB) $(INST_ARCHAUTODIR)$(DFSEP).exists
	$(RM_RF) $@
	$(AR) $(AR_STATIC_ARGS) $@ $(OBJECT) && $(RANLIB) $@
	$(CHMOD) $(PERM_RWX) $@
	$(NOECHO) $(ECHO) "$(EXTRALIBS)" > $(INST_ARCHAUTODIR)/extralibs.ld


# --- MakeMaker manifypods section:

POD2MAN_EXE = $(PERLRUN) "-MExtUtils::Command::MM" -e pod2man "--"
POD2MAN = $(POD2MAN_EXE)


manifypods : pure_all  \
	Random.pm
	$(NOECHO) $(POD2MAN) --section=3 --perm_rw=$(PERM_RW) \
	  Random.pm $(INST_MAN3DIR)/Crypt.OpenSSL.Random.$(MAN3EXT) 




# --- MakeMaker processPL section:


# --- MakeMaker installbin section:


# --- MakeMaker subdirs section:

# none

# --- MakeMaker clean_subdirs section:
clean_subdirs :
	$(NOECHO) $(NOOP)


# --- MakeMaker clean section:

# Delete temporary files but do not touch installed files. We don't delete
# the Makefile here so a later make realclean still has a makefile to use.

clean :: clean_subdirs
	- $(RM_F) \
	  *$(LIB_EXT) core \
	  core.[0-9] $(INST_ARCHAUTODIR)/extralibs.all \
	  core.[0-9][0-9] $(BASEEXT).bso \
	  pm_to_blib.ts MYMETA.json \
	  core.[0-9][0-9][0-9][0-9] MYMETA.yml \
	  $(BASEEXT).x $(BOOTSTRAP) \
	  perl$(EXE_EXT) tmon.out \
	  *$(OBJ_EXT) pm_to_blib \
	  $(INST_ARCHAUTODIR)/extralibs.ld blibdirs.ts \
	  core.[0-9][0-9][0-9][0-9][0-9] *perl.core \
	  core.*perl.*.? Random.c \
	  $(MAKE_APERL_FILE) $(BASEEXT).def \
	  perl core.[0-9][0-9][0-9] \
	  mon.out lib$(BASEEXT).def \
	  perlmain.c perl.exe \
	  so_locations $(BASEEXT).exp 
	- $(RM_RF) \
	  blib 
	- $(MV) $(FIRST_MAKEFILE) $(MAKEFILE_OLD) $(DEV_NULL)


# --- MakeMaker realclean_subdirs section:
realclean_subdirs :
	$(NOECHO) $(NOOP)


# --- MakeMaker realclean section:
# Delete temporary files (via clean) and also delete dist files
realclean purge ::  clean realclean_subdirs
	- $(RM_F) \
	  $(OBJECT) $(MAKEFILE_OLD) \
	  $(FIRST_MAKEFILE) 
	- $(RM_RF) \
	  $(DISTVNAME) 


# --- MakeMaker metafile section:
metafile : create_distdir
	$(NOECHO) $(ECHO) Generating META.yml
	$(NOECHO) $(ECHO) '---' > META_new.yml
	$(NOECHO) $(ECHO) 'abstract: unknown' >> META_new.yml
	$(NOECHO) $(ECHO) 'author:' >> META_new.yml
	$(NOECHO) $(ECHO) '  - unknown' >> META_new.yml
	$(NOECHO) $(ECHO) 'build_requires:' >> META_new.yml
	$(NOECHO) $(ECHO) '  ExtUtils::MakeMaker: 0' >> META_new.yml
	$(NOECHO) $(ECHO) 'configure_requires:' >> META_new.yml
	$(NOECHO) $(ECHO) '  ExtUtils::MakeMaker: 0' >> META_new.yml
	$(NOECHO) $(ECHO) 'dynamic_config: 1' >> META_new.yml
	$(NOECHO) $(ECHO) 'generated_by: '\''ExtUtils::MakeMaker version 6.62, CPAN::Meta::Converter version 2.112150'\''' >> META_new.yml
	$(NOECHO) $(ECHO) 'license: unknown' >> META_new.yml
	$(NOECHO) $(ECHO) 'meta-spec:' >> META_new.yml
	$(NOECHO) $(ECHO) '  url: http://module-build.sourceforge.net/META-spec-v1.4.html' >> META_new.yml
	$(NOECHO) $(ECHO) '  version: 1.4' >> META_new.yml
	$(NOECHO) $(ECHO) 'name: Crypt-OpenSSL-Random' >> META_new.yml
	$(NOECHO) $(ECHO) 'no_index:' >> META_new.yml
	$(NOECHO) $(ECHO) '  directory:' >> META_new.yml
	$(NOECHO) $(ECHO) '    - t' >> META_new.yml
	$(NOECHO) $(ECHO) '    - inc' >> META_new.yml
	$(NOECHO) $(ECHO) 'requires: {}' >> META_new.yml
	$(NOECHO) $(ECHO) 'version: 0.04' >> META_new.yml
	-$(NOECHO) $(MV) META_new.yml $(DISTVNAME)/META.yml
	$(NOECHO) $(ECHO) Generating META.json
	$(NOECHO) $(ECHO) '{' > META_new.json
	$(NOECHO) $(ECHO) '   "abstract" : "unknown",' >> META_new.json
	$(NOECHO) $(ECHO) '   "author" : [' >> META_new.json
	$(NOECHO) $(ECHO) '      "unknown"' >> META_new.json
	$(NOECHO) $(ECHO) '   ],' >> META_new.json
	$(NOECHO) $(ECHO) '   "dynamic_config" : 1,' >> META_new.json
	$(NOECHO) $(ECHO) '   "generated_by" : "ExtUtils::MakeMaker version 6.62, CPAN::Meta::Converter version 2.112150",' >> META_new.json
	$(NOECHO) $(ECHO) '   "license" : [' >> META_new.json
	$(NOECHO) $(ECHO) '      "unknown"' >> META_new.json
	$(NOECHO) $(ECHO) '   ],' >> META_new.json
	$(NOECHO) $(ECHO) '   "meta-spec" : {' >> META_new.json
	$(NOECHO) $(ECHO) '      "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec",' >> META_new.json
	$(NOECHO) $(ECHO) '      "version" : "2"' >> META_new.json
	$(NOECHO) $(ECHO) '   },' >> META_new.json
	$(NOECHO) $(ECHO) '   "name" : "Crypt-OpenSSL-Random",' >> META_new.json
	$(NOECHO) $(ECHO) '   "no_index" : {' >> META_new.json
	$(NOECHO) $(ECHO) '      "directory" : [' >> META_new.json
	$(NOECHO) $(ECHO) '         "t",' >> META_new.json
	$(NOECHO) $(ECHO) '         "inc"' >> META_new.json
	$(NOECHO) $(ECHO) '      ]' >> META_new.json
	$(NOECHO) $(ECHO) '   },' >> META_new.json
	$(NOECHO) $(ECHO) '   "prereqs" : {' >> META_new.json
	$(NOECHO) $(ECHO) '      "build" : {' >> META_new.json
	$(NOECHO) $(ECHO) '         "requires" : {' >> META_new.json
	$(NOECHO) $(ECHO) '            "ExtUtils::MakeMaker" : 0' >> META_new.json
	$(NOECHO) $(ECHO) '         }' >> META_new.json
	$(NOECHO) $(ECHO) '      },' >> META_new.json
	$(NOECHO) $(ECHO) '      "configure" : {' >> META_new.json
	$(NOECHO) $(ECHO) '         "requires" : {' >> META_new.json
	$(NOECHO) $(ECHO) '            "ExtUtils::MakeMaker" : 0' >> META_new.json
	$(NOECHO) $(ECHO) '         }' >> META_new.json
	$(NOECHO) $(ECHO) '      },' >> META_new.json
	$(NOECHO) $(ECHO) '      "runtime" : {' >> META_new.json
	$(NOECHO) $(ECHO) '         "requires" : {}' >> META_new.json
	$(NOECHO) $(ECHO) '      }' >> META_new.json
	$(NOECHO) $(ECHO) '   },' >> META_new.json
	$(NOECHO) $(ECHO) '   "release_status" : "stable",' >> META_new.json
	$(NOECHO) $(ECHO) '   "version" : "0.04"' >> META_new.json
	$(NOECHO) $(ECHO) '}' >> META_new.json
	-$(NOECHO) $(MV) META_new.json $(DISTVNAME)/META.json


# --- MakeMaker signature section:
signature :
	cpansign -s


# --- MakeMaker dist_basics section:
distclean :: realclean distcheck
	$(NOECHO) $(NOOP)

distcheck :
	$(PERLRUN) "-MExtUtils::Manifest=fullcheck" -e fullcheck

skipcheck :
	$(PERLRUN) "-MExtUtils::Manifest=skipcheck" -e skipcheck

manifest :
	$(PERLRUN) "-MExtUtils::Manifest=mkmanifest" -e mkmanifest

veryclean : realclean
	$(RM_F) *~ */*~ *.orig */*.orig *.bak */*.bak *.old */*.old 



# --- MakeMaker dist_core section:

dist : $(DIST_DEFAULT) $(FIRST_MAKEFILE)
	$(NOECHO) $(ABSPERLRUN) -l -e 'print '\''Warning: Makefile possibly out of date with $(VERSION_FROM)'\''' \
	  -e '    if -e '\''$(VERSION_FROM)'\'' and -M '\''$(VERSION_FROM)'\'' < -M '\''$(FIRST_MAKEFILE)'\'';' --

tardist : $(DISTVNAME).tar$(SUFFIX)
	$(NOECHO) $(NOOP)

uutardist : $(DISTVNAME).tar$(SUFFIX)
	uuencode $(DISTVNAME).tar$(SUFFIX) $(DISTVNAME).tar$(SUFFIX) > $(DISTVNAME).tar$(SUFFIX)_uu

$(DISTVNAME).tar$(SUFFIX) : distdir
	$(PREOP)
	$(TO_UNIX)
	$(TAR) $(TARFLAGS) $(DISTVNAME).tar $(DISTVNAME)
	$(RM_RF) $(DISTVNAME)
	$(COMPRESS) $(DISTVNAME).tar
	$(POSTOP)

zipdist : $(DISTVNAME).zip
	$(NOECHO) $(NOOP)

$(DISTVNAME).zip : distdir
	$(PREOP)
	$(ZIP) $(ZIPFLAGS) $(DISTVNAME).zip $(DISTVNAME)
	$(RM_RF) $(DISTVNAME)
	$(POSTOP)

shdist : distdir
	$(PREOP)
	$(SHAR) $(DISTVNAME) > $(DISTVNAME).shar
	$(RM_RF) $(DISTVNAME)
	$(POSTOP)


# --- MakeMaker distdir section:
create_distdir :
	$(RM_RF) $(DISTVNAME)
	$(PERLRUN) "-MExtUtils::Manifest=manicopy,maniread" \
		-e "manicopy(maniread(),'$(DISTVNAME)', '$(DIST_CP)');"

distdir : create_distdir distmeta 
	$(NOECHO) $(NOOP)



# --- MakeMaker dist_test section:
disttest : distdir
	cd $(DISTVNAME) && $(ABSPERLRUN) Makefile.PL 
	cd $(DISTVNAME) && $(MAKE) $(PASTHRU)
	cd $(DISTVNAME) && $(MAKE) test $(PASTHRU)



# --- MakeMaker dist_ci section:

ci :
	$(PERLRUN) "-MExtUtils::Manifest=maniread" \
	  -e "@all = keys %{ maniread() };" \
	  -e "print(qq{Executing $(CI) @all\n}); system(qq{$(CI) @all});" \
	  -e "print(qq{Executing $(RCS_LABEL) ...\n}); system(qq{$(RCS_LABEL) @all});"


# --- MakeMaker distmeta section:
distmeta : create_distdir metafile
	$(NOECHO) cd $(DISTVNAME) && $(ABSPERLRUN) -MExtUtils::Manifest=maniadd -e 'exit unless -e q{META.yml};' \
	  -e 'eval { maniadd({q{META.yml} => q{Module YAML meta-data (added by MakeMaker)}}) }' \
	  -e '    or print "Could not add META.yml to MANIFEST: $${'\''@'\''}\n"' --
	$(NOECHO) cd $(DISTVNAME) && $(ABSPERLRUN) -MExtUtils::Manifest=maniadd -e 'exit unless -f q{META.json};' \
	  -e 'eval { maniadd({q{META.json} => q{Module JSON meta-data (added by MakeMaker)}}) }' \
	  -e '    or print "Could not add META.json to MANIFEST: $${'\''@'\''}\n"' --



# --- MakeMaker distsignature section:
distsignature : create_distdir
	$(NOECHO) cd $(DISTVNAME) && $(ABSPERLRUN) -MExtUtils::Manifest=maniadd -e 'eval { maniadd({q{SIGNATURE} => q{Public-key signature (added by MakeMaker)}}) } ' \
	  -e '    or print "Could not add SIGNATURE to MANIFEST: $${'\''@'\''}\n"' --
	$(NOECHO) cd $(DISTVNAME) && $(TOUCH) SIGNATURE
	cd $(DISTVNAME) && cpansign -s



# --- MakeMaker install section:

install :: pure_install doc_install
	$(NOECHO) $(NOOP)

install_perl :: pure_perl_install doc_perl_install
	$(NOECHO) $(NOOP)

install_site :: pure_site_install doc_site_install
	$(NOECHO) $(NOOP)

install_vendor :: pure_vendor_install doc_vendor_install
	$(NOECHO) $(NOOP)

pure_install :: pure_$(INSTALLDIRS)_install
	$(NOECHO) $(NOOP)

doc_install :: doc_$(INSTALLDIRS)_install
	$(NOECHO) $(NOOP)

pure__install : pure_site_install
	$(NOECHO) $(ECHO) INSTALLDIRS not defined, defaulting to INSTALLDIRS=site

doc__install : doc_site_install
	$(NOECHO) $(ECHO) INSTALLDIRS not defined, defaulting to INSTALLDIRS=site

pure_perl_install :: all
	$(NOECHO) $(MOD_INSTALL) \
		read $(PERL_ARCHLIB)/auto/$(FULLEXT)/.packlist \
		write $(DESTINSTALLARCHLIB)/auto/$(FULLEXT)/.packlist \
		$(INST_LIB) $(DESTINSTALLPRIVLIB) \
		$(INST_ARCHLIB) $(DESTINSTALLARCHLIB) \
		$(INST_BIN) $(DESTINSTALLBIN) \
		$(INST_SCRIPT) $(DESTINSTALLSCRIPT) \
		$(INST_MAN1DIR) $(DESTINSTALLMAN1DIR) \
		$(INST_MAN3DIR) $(DESTINSTALLMAN3DIR)
	$(NOECHO) $(WARN_IF_OLD_PACKLIST) \
		$(SITEARCHEXP)/auto/$(FULLEXT)


pure_site_install :: all
	$(NOECHO) $(MOD_INSTALL) \
		read $(SITEARCHEXP)/auto/$(FULLEXT)/.packlist \
		write $(DESTINSTALLSITEARCH)/auto/$(FULLEXT)/.packlist \
		$(INST_LIB) $(DESTINSTALLSITELIB) \
		$(INST_ARCHLIB) $(DESTINSTALLSITEARCH) \
		$(INST_BIN) $(DESTINSTALLSITEBIN) \
		$(INST_SCRIPT) $(DESTINSTALLSITESCRIPT) \
		$(INST_MAN1DIR) $(DESTINSTALLSITEMAN1DIR) \
		$(INST_MAN3DIR) $(DESTINSTALLSITEMAN3DIR)
	$(NOECHO) $(WARN_IF_OLD_PACKLIST) \
		$(PERL_ARCHLIB)/auto/$(FULLEXT)

pure_vendor_install :: all
	$(NOECHO) $(MOD_INSTALL) \
		read $(VENDORARCHEXP)/auto/$(FULLEXT)/.packlist \
		write $(DESTINSTALLVENDORARCH)/auto/$(FULLEXT)/.packlist \
		$(INST_LIB) $(DESTINSTALLVENDORLIB) \
		$(INST_ARCHLIB) $(DESTINSTALLVENDORARCH) \
		$(INST_BIN) $(DESTINSTALLVENDORBIN) \
		$(INST_SCRIPT) $(DESTINSTALLVENDORSCRIPT) \
		$(INST_MAN1DIR) $(DESTINSTALLVENDORMAN1DIR) \
		$(INST_MAN3DIR) $(DESTINSTALLVENDORMAN3DIR)

doc_perl_install :: all
	$(NOECHO) $(ECHO) Appending installation info to $(DESTINSTALLARCHLIB)/perllocal.pod
	-$(NOECHO) $(MKPATH) $(DESTINSTALLARCHLIB)
	-$(NOECHO) $(DOC_INSTALL) \
		"Module" "$(NAME)" \
		"installed into" "$(INSTALLPRIVLIB)" \
		LINKTYPE "$(LINKTYPE)" \
		VERSION "$(VERSION)" \
		EXE_FILES "$(EXE_FILES)" \
		>> $(DESTINSTALLARCHLIB)/perllocal.pod

doc_site_install :: all
	$(NOECHO) $(ECHO) Appending installation info to $(DESTINSTALLARCHLIB)/perllocal.pod
	-$(NOECHO) $(MKPATH) $(DESTINSTALLARCHLIB)
	-$(NOECHO) $(DOC_INSTALL) \
		"Module" "$(NAME)" \
		"installed into" "$(INSTALLSITELIB)" \
		LINKTYPE "$(LINKTYPE)" \
		VERSION "$(VERSION)" \
		EXE_FILES "$(EXE_FILES)" \
		>> $(DESTINSTALLARCHLIB)/perllocal.pod

doc_vendor_install :: all
	$(NOECHO) $(ECHO) Appending installation info to $(DESTINSTALLARCHLIB)/perllocal.pod
	-$(NOECHO) $(MKPATH) $(DESTINSTALLARCHLIB)
	-$(NOECHO) $(DOC_INSTALL) \
		"Module" "$(NAME)" \
		"installed into" "$(INSTALLVENDORLIB)" \
		LINKTYPE "$(LINKTYPE)" \
		VERSION "$(VERSION)" \
		EXE_FILES "$(EXE_FILES)" \
		>> $(DESTINSTALLARCHLIB)/perllocal.pod


uninstall :: uninstall_from_$(INSTALLDIRS)dirs
	$(NOECHO) $(NOOP)

uninstall_from_perldirs ::
	$(NOECHO) $(UNINSTALL) $(PERL_ARCHLIB)/auto/$(FULLEXT)/.packlist

uninstall_from_sitedirs ::
	$(NOECHO) $(UNINSTALL) $(SITEARCHEXP)/auto/$(FULLEXT)/.packlist

uninstall_from_vendordirs ::
	$(NOECHO) $(UNINSTALL) $(VENDORARCHEXP)/auto/$(FULLEXT)/.packlist


# --- MakeMaker force section:
# Phony target to force checking subdirectories.
FORCE :
	$(NOECHO) $(NOOP)


# --- MakeMaker perldepend section:

PERL_HDRS = \
	$(PERL_INC)/EXTERN.h		\
	$(PERL_INC)/INTERN.h		\
	$(PERL_INC)/XSUB.h		\
	$(PERL_INC)/av.h		\
	$(PERL_INC)/config.h		\
	$(PERL_INC)/cop.h		\
	$(PERL_INC)/cv.h		\
	$(PERL_INC)/dosish.h		\
	$(PERL_INC)/embed.h		\
	$(PERL_INC)/embedvar.h		\
	$(PERL_INC)/fakethr.h		\
	$(PERL_INC)/form.h		\
	$(PERL_INC)/gv.h		\
	$(PERL_INC)/handy.h		\
	$(PERL_INC)/hv.h		\
	$(PERL_INC)/intrpvar.h		\
	$(PERL_INC)/iperlsys.h		\
	$(PERL_INC)/keywords.h		\
	$(PERL_INC)/mg.h		\
	$(PERL_INC)/nostdio.h		\
	$(PERL_INC)/op.h		\
	$(PERL_INC)/opcode.h		\
	$(PERL_INC)/patchlevel.h	\
	$(PERL_INC)/perl.h		\
	$(PERL_INC)/perlio.h		\
	$(PERL_INC)/perlsdio.h		\
	$(PERL_INC)/perlsfio.h		\
	$(PERL_INC)/perlvars.h		\
	$(PERL_INC)/perly.h		\
	$(PERL_INC)/pp.h		\
	$(PERL_INC)/pp_proto.h		\
	$(PERL_INC)/proto.h		\
	$(PERL_INC)/regcomp.h		\
	$(PERL_INC)/regexp.h		\
	$(PERL_INC)/regnodes.h		\
	$(PERL_INC)/scope.h		\
	$(PERL_INC)/sv.h		\
	$(PERL_INC)/thread.h		\
	$(PERL_INC)/unixish.h		\
	$(PERL_INC)/util.h

$(OBJECT) : $(PERL_HDRS)

Random.c : $(XSUBPPDEPS)


# --- MakeMaker makefile section:

$(OBJECT) : $(FIRST_MAKEFILE)

# We take a very conservative approach here, but it's worth it.
# We move Makefile to Makefile.old here to avoid gnu make looping.
$(FIRST_MAKEFILE) : Makefile.PL $(CONFIGDEP)
	$(NOECHO) $(ECHO) "Makefile out-of-date with respect to $?"
	$(NOECHO) $(ECHO) "Cleaning current config before rebuilding Makefile..."
	-$(NOECHO) $(RM_F) $(MAKEFILE_OLD)
	-$(NOECHO) $(MV)   $(FIRST_MAKEFILE) $(MAKEFILE_OLD)
	- $(MAKE) $(USEMAKEFILE) $(MAKEFILE_OLD) clean $(DEV_NULL)
	$(PERLRUN) Makefile.PL 
	$(NOECHO) $(ECHO) "==> Your Makefile has been rebuilt. <=="
	$(NOECHO) $(ECHO) "==> Please rerun the $(MAKE) command.  <=="
	$(FALSE)



# --- MakeMaker staticmake section:

# --- MakeMaker makeaperl section ---
MAP_TARGET    = perl
FULLPERL      = Q:/PROGRAMS/PERL/BIN/perl.exe

$(MAP_TARGET) :: static $(MAKE_APERL_FILE)
	$(MAKE) $(USEMAKEFILE) $(MAKE_APERL_FILE) $@

$(MAKE_APERL_FILE) : $(FIRST_MAKEFILE) pm_to_blib
	$(NOECHO) $(ECHO) Writing \"$(MAKE_APERL_FILE)\" for this $(MAP_TARGET)
	$(NOECHO) $(PERLRUNINST) \
		Makefile.PL DIR= \
		MAKEFILE=$(MAKE_APERL_FILE) LINKTYPE=static \
		MAKEAPERL=1 NORECURS=1 CCCDLFLAGS=


# --- MakeMaker test section:

TEST_VERBOSE=0
TEST_TYPE=test_$(LINKTYPE)
TEST_FILE = test.pl
TEST_FILES = 
TESTDB_SW = -d

testdb :: testdb_$(LINKTYPE)

test :: $(TEST_TYPE) subdirs-test

subdirs-test ::
	$(NOECHO) $(NOOP)


test_dynamic :: pure_all
	$(FULLPERLRUN) "-I$(INST_LIB)" "-I$(INST_ARCHLIB)" $(TEST_FILE)

testdb_dynamic :: pure_all
	$(FULLPERLRUN) $(TESTDB_SW) "-I$(INST_LIB)" "-I$(INST_ARCHLIB)" $(TEST_FILE)

test_ : test_dynamic

test_static :: pure_all $(MAP_TARGET)
	./$(MAP_TARGET) "-I$(INST_LIB)" "-I$(INST_ARCHLIB)" $(TEST_FILE)

testdb_static :: pure_all $(MAP_TARGET)
	./$(MAP_TARGET) $(TESTDB_SW) "-I$(INST_LIB)" "-I$(INST_ARCHLIB)" $(TEST_FILE)



# --- MakeMaker ppd section:
# Creates a PPD (Perl Package Description) for a binary distribution.
ppd :
	$(NOECHO) $(ECHO) '<SOFTPKG NAME="$(DISTNAME)" VERSION="0.04">' > $(DISTNAME).ppd
	$(NOECHO) $(ECHO) '    <ABSTRACT></ABSTRACT>' >> $(DISTNAME).ppd
	$(NOECHO) $(ECHO) '    <AUTHOR></AUTHOR>' >> $(DISTNAME).ppd
	$(NOECHO) $(ECHO) '    <IMPLEMENTATION>' >> $(DISTNAME).ppd
	$(NOECHO) $(ECHO) '        <ARCHITECTURE NAME="os2-5.10" />' >> $(DISTNAME).ppd
	$(NOECHO) $(ECHO) '        <CODEBASE HREF="" />' >> $(DISTNAME).ppd
	$(NOECHO) $(ECHO) '    </IMPLEMENTATION>' >> $(DISTNAME).ppd
	$(NOECHO) $(ECHO) '</SOFTPKG>' >> $(DISTNAME).ppd


# --- MakeMaker pm_to_blib section:

pm_to_blib : $(FIRST_MAKEFILE) $(TO_INST_PM)
	$(NOECHO) $(ABSPERLRUN) -MExtUtils::Install -e 'pm_to_blib({@ARGV}, '\''$(INST_LIB)/auto'\'', q[$(PM_FILTER)], '\''$(PERM_DIR)'\'')' -- \
	  Random.pm $(INST_LIB)/Crypt/OpenSSL/Random.pm 
	$(NOECHO) $(TOUCH) pm_to_blib


# --- MakeMaker selfdocument section:


# --- MakeMaker postamble section:


# End.
Makefile (31,871 bytes)   

Activities

psmedley

2012-01-26 14:07

administrator   ~0002194

Works for me - you need to make sure you have ssl.a and crypto.a (from openssl) on your system to provide the missing symbols

shmuel

2012-01-26 14:38

reporter   ~0002195

Is <http://www.os2site.com/sw/internet/openssl/openssl-1.0.0e-os2knix-20110910-runtime.zip> the correct version, and should there be a note about it in README.OS2?

psmedley

2012-01-26 18:47

administrator   ~0002199

I build my own openssl, but the above should work.

I'm not going to include a link to every possible 3rd party library that may have a perl module in readme.os2

That would be an endless task - it is expected that if someone is building a perl module, they will ensure they have installed the dependencies for that module.

your 'perl makefile.pl' did warn that ssl and crypto libs were missing

shmuel

2012-02-18 05:08

reporter   ~0002213

after

    unzipping openssl-1.0.0g-os2knix-20120121-dev.zip and
openssl-1.0.0g-os2knix-20120121-runtime.zip into q:\usr\local\OPENSSL,

    running Q:\usr\bin\emxomf.exe to create Q:\usr\local\OPENSSL\lib\libcrypto.lib and Q:\usr\local\OPENSSL\lib\libssl.lib from Q:\usr\local\OPENSSL\lib\libcrypto.a and Q:\usr\local\OPENSSL\lib\libssl.a,

    adding q:/usr/local/OPENSSL/lib to libpth in Q:\programs\perl\lib\5.10.0\os2\Config.pm

    and doing SET LIBRARY_PATH=%LIBRARY_PATH%;Q:\usr\local\OPENSSL\lib before perl Makefile.PL,

I still get the messages

[h:\vendors\cpan\crypt-openssl-random-0.04]U:\extras\bin\make
Q:/PROGRAMS/PERL/BIN/perl.exe -MExtUtils::Command -e 'rm_f' -- blib/arch/auto/Crypt/OpenSSL/Random/RandomBQ.dll
gcc -Zdll -Zomf Random.o -O2 -fomit-frame-pointer -falign-loops=2 -falign-jump
s=2 -falign-functions=2 -s -o blib/arch/auto/Crypt/OpenSSL/Random/RandomBQ.dll
        \
          Q:/PROGRAMS/PERL/lib/5.10.0/os2/CORE/libperl.a Q:/PROGRAMS/PERL/lib/5.10.0/os2/CORE/libperl_override.a Random.def \
          || ( Q:/PROGRAMS/PERL/BIN/perl.exe -MExtUtils::Command -e 'rm_f' -- bl
ib/arch/auto/Crypt/OpenSSL/Random/RandomBQ.dll && sh -c false )
weakld: error: Unresolved symbol (UNDEF EXPORT) 'boot_Crypt__OpenSSL__Random'.
weakld: info: The symbol is referenced by:
    H:/Vendors/CPAN/Crypt-OpenSSL-Random-0.04/Random.def
weakld: error: Unresolved symbol (UNDEF) '_RAND_status'.
weakld: info: The symbol is referenced by:
    U:\tmp\ldconv_Random_o_1154f3e9a1b19cfb8.obj
weakld: error: Unresolved symbol (UNDEF) '_RAND_egd'.
weakld: info: The symbol is referenced by:
    U:\tmp\ldconv_Random_o_1154f3e9a1b19cfb8.obj
weakld: error: Unresolved symbol (UNDEF) '_RAND_seed'.
weakld: info: The symbol is referenced by:
    U:\tmp\ldconv_Random_o_1154f3e9a1b19cfb8.obj
weakld: error: Unresolved symbol (UNDEF) '_RAND_bytes'.
weakld: info: The symbol is referenced by:
    U:\tmp\ldconv_Random_o_1154f3e9a1b19cfb8.obj
Ignoring unresolved externals reported from weak prelinker.

U:\tmp\ldconv_Random_o_1154f3e9a1b19cfb8.obj(ldconv_Random_o_1154f3e9a1b19cfb8.obj) : error LNK2029: "_RAND_bytes" : unresolved external
U:\tmp\ldconv_Random_o_1154f3e9a1b19cfb8.obj(ldconv_Random_o_1154f3e9a1b19cfb8.obj) : error LNK2029: "_RAND_status" : unresolved external
U:\tmp\ldconv_Random_o_1154f3e9a1b19cfb8.obj(ldconv_Random_o_1154f3e9a1b19cfb8.obj) : error LNK2029: "_RAND_egd" : unresolved external
U:\tmp\ldconv_Random_o_1154f3e9a1b19cfb8.obj(ldconv_Random_o_1154f3e9a1b19cfb8.obj) : error LNK2029: "_RAND_seed" : unresolved external


There were 4 errors detected
make.exe: *** [blib/arch/auto/Crypt/OpenSSL/Random/RandomBQ.dll] Error 1

psmedley

2012-02-18 11:35

administrator   ~0002214

Sounds like it isn't finding crupto.lib / ssl.lib

what is the output of:
perl Makefile.PL

psmedley

2012-02-18 11:36

administrator   ~0002215

I end up with the following in makefile:
EXTRALIBS = -lssl -lcrypto
LDLOADLIBS = -lssl -lcrypto -lsocket

shmuel

2012-02-18 12:06

reporter   ~0002216

[h:\vendors\cpan\crypt-openssl-random-0.04]perl Makefile.PL
Have /perl5/lib/5.10.0/os2
Want /PROGRAMS/PERL/lib/5.10.0/os2
Your perl and your Config.pm seem to have different ideas about the
architecture they are running on.
Perl thinks: [os2]
Config says: [os2]
This may or may not cause problems. Please check your installation of perl
if you have problems building this extension.
Note (probably harmless): No library found for -lssl
Note (probably harmless): No library found for -lcrypto
Note (probably harmless): No library found for -lsocket
Writing Makefile for Crypt::OpenSSL::Random
Writing MYMETA.yml and MYMETA.json

psmedley

2012-02-18 12:23

administrator   ~0002217

so gcc isn't finding ssl.a/ssl.lib or crypto.a/crypto.lib......

shmuel

2012-02-19 11:26

reporter   ~0002218

Last edited: 2012-02-20 02:30

I found the verbose option and that displayed an incorrect diectory name; I looked at Q:\programs\perl\lib\5.10.0\os2\Config_heavy.pl and saw that I indeed had a typo, which I corrected. That still leaves me with some errors:

[h:\vendors\cpan\crypt-openssl-random-0.04]set LIBRARY_PATH
U:/usr/lib;U:/usr/lib/gcc-lib/i386-pc-os2-emx/3.3.5;U:/usr/lib;u:/extras/lib;u:/dev/qt/trunk/lib;u:/openldap/lib;u:/cups/lib;Q:\usr\local\OPENSSL\lib

[h:\vendors\cpan\crypt-openssl-random-0.04]perl Makefile.PL verbose
  BUILD_REQUIRES => { }
  CONFIGURE_REQUIRES => { }
  DEFINE => q[]
  INC => q[]
  LIBS => [q[-lssl -lcrypto]]
  NAME => q[Crypt::OpenSSL::Random]
  PREREQ_PM => { }
  VERSION_FROM => q[Random.pm]
Using PERL=Q:/PROGRAMS/PERL/BIN/perl.exe
Have /perl5/lib/5.10.0/os2
Want /PROGRAMS/PERL/lib/5.10.0/os2
Your perl and your Config.pm seem to have different ideas about the
architecture they are running on.
Perl thinks: [os2]
Config says: [os2]
This may or may not cause problems. Please check your installation of perl
if you have problems building this extension.
Potential libraries are '-lssl -lcrypto -lsocket':
ssl not found in /usr/lib
ssl not found in /usr/lib/gcc-lib/i386-pc-os2-emx/3.3.5
ssl not found in /extras/lib
ssl not found in /dev/qt/trunk/lib
ssl not found in /openldap/lib
ssl not found in /cups/lib
ssl not found in Q:/os2tk45/lib
'-lssl_s' found at q:/usr/local/OPENSSL/lib/libssl_s.a
crypto not found in /usr/lib
crypto not found in /usr/lib/gcc-lib/i386-pc-os2-emx/3.3.5
crypto not found in /extras/lib
crypto not found in /dev/qt/trunk/lib
crypto not found in /openldap/lib
crypto not found in /cups/lib
crypto not found in Q:/os2tk45/lib
'-lcrypto_s' found at q:/usr/local/OPENSSL/lib/libcrypto_s.a
socket not found in /usr/lib
socket not found in /usr/lib/gcc-lib/i386-pc-os2-emx/3.3.5
socket not found in /extras/lib
socket not found in /dev/qt/trunk/lib
socket not found in /openldap/lib
socket not found in /cups/lib
socket not found in Q:/os2tk45/lib
socket not found in q:/usr/local/OPENSSL/lib
Note (probably harmless): No library found for -lsocket
Writing Makefile for Crypt::OpenSSL::Random
Writing MYMETA.yml and MYMETA.json

Why didn't it find U:\usr\lib\libsocket.a?

[h:\vendors\cpan\crypt-openssl-random-0.04]dir u:\*socket.a /s

 Volume in drive U is SMEDLEY Serial number is 3EBD:8001

 Directory of U:\usr\lib\*socket.a

 6-11-07 9:23 631,488 0 libsocket.a

[h:\vendors\cpan\crypt-openssl-random-0.04]U:\extras\bin\make
Skip blib/lib/Crypt/OpenSSL/Random.pm (unchanged)
gcc -c -DDOSISH -DOS2=2 -DEMBED -I. -fno-strict-aliasing -pipe -I/usr/local/in
clude -O2 -fomit-frame-pointer -falign-loops=2 -falign-jumps=2 -falign-functions
=2 -s -DVERSION=\"0.04\" -DXS_VERSION=\"0.04\" -Zdll "-IQ:/PROGRAMS/PERL/lib/5
.10.0/os2/CORE" Random.c
In file included from Q:/PROGRAMS/PERL/lib/5.10.0/os2/CORE/perl.h:2495,
                 from Random.xs:2:
Q:/PROGRAMS/PERL/lib/5.10.0/os2/CORE/os2ish.h:30:1: warning: "PERL_DONT_CREATE_G
VSV" redefined
In file included from Random.xs:2:
Q:/PROGRAMS/PERL/lib/5.10.0/os2/CORE/perl.h:932:1: warning: this is the location
 of the previous definition
Running Mkbootstrap for Crypt::OpenSSL::Random ()
Q:/PROGRAMS/PERL/BIN/perl.exe -MExtUtils::Command -e 'chmod' -- 644 Random.bs
Q:/PROGRAMS/PERL/BIN/perl.exe -MExtUtils::Command -e 'rm_f' -- blib/arch/auto/Cr
ypt/OpenSSL/Random/RandomBQ.dll
gcc -Zdll -Zomf Random.o -O2 -fomit-frame-pointer -falign-loops=2 -falign-jump
s=2 -falign-functions=2 -s -o blib/arch/auto/Crypt/OpenSSL/Random/RandomBQ.dll
        \
          Q:/PROGRAMS/PERL/lib/5.10.0/os2/CORE/libperl.a -lssl_s -lcrypto_s Q:/P
ROGRAMS/PERL/lib/5.10.0/os2/CORE/libperl_override.a Random.def \
          || ( Q:/PROGRAMS/PERL/BIN/perl.exe -MExtUtils::Command -e 'rm_f' -- bl
ib/arch/auto/Crypt/OpenSSL/Random/RandomBQ.dll && sh -c false )
weakld: error: Unresolved symbol (UNDEF EXPORT) 'boot_Crypt__OpenSSL__Random'.
weakld: info: The symbol is referenced by:
    H:/Vendors/CPAN/Crypt-OpenSSL-Random-0.04/Random.def
weakld: error: Unresolved symbol (UNDEF) '_zError'.
weakld: info: The symbol is referenced by:
    U:\tmp\ldconv_libcrypto_s_a_3654f411bb017b4a8.lib(c_zlib.obj)
weakld: error: Unresolved symbol (UNDEF) '_deflateEnd'.
weakld: info: The symbol is referenced by:
    U:\tmp\ldconv_libcrypto_s_a_3654f411bb017b4a8.lib(c_zlib.obj)
weakld: error: Unresolved symbol (UNDEF) '_deflate'.
weakld: info: The symbol is referenced by:
    U:\tmp\ldconv_libcrypto_s_a_3654f411bb017b4a8.lib(c_zlib.obj)
weakld: error: Unresolved symbol (UNDEF) '_deflateInit_'.
weakld: info: The symbol is referenced by:
    U:\tmp\ldconv_libcrypto_s_a_3654f411bb017b4a8.lib(c_zlib.obj)
weakld: error: Unresolved symbol (UNDEF) '_inflate'.
weakld: info: The symbol is referenced by:
    U:\tmp\ldconv_libcrypto_s_a_3654f411bb017b4a8.lib(c_zlib.obj)
weakld: error: Unresolved symbol (UNDEF) '_inflateEnd'.
weakld: info: The symbol is referenced by:
    U:\tmp\ldconv_libcrypto_s_a_3654f411bb017b4a8.lib(c_zlib.obj)
weakld: error: Unresolved symbol (UNDEF) '_inflateInit_'.
weakld: info: The symbol is referenced by:
    U:\tmp\ldconv_libcrypto_s_a_3654f411bb017b4a8.lib(c_zlib.obj)
Ignoring unresolved externals reported from weak prelinker.

U:\tmp\ldconv_libcrypto_s_a_3654f411bb017b4a8.lib(c_zlib.obj) : error LNK2029: "
_deflateEnd" : unresolved external
U:\tmp\ldconv_libcrypto_s_a_3654f411bb017b4a8.lib(c_zlib.obj) : error LNK2029: "
_inflateEnd" : unresolved external
U:\tmp\ldconv_libcrypto_s_a_3654f411bb017b4a8.lib(c_zlib.obj) : error LNK2029: "
_deflateInit_" : unresolved external
U:\tmp\ldconv_libcrypto_s_a_3654f411bb017b4a8.lib(c_zlib.obj) : error LNK2029: "
_inflateInit_" : unresolved external
U:\tmp\ldconv_libcrypto_s_a_3654f411bb017b4a8.lib(c_zlib.obj) : error LNK2029: "
_deflate" : unresolved external
U:\tmp\ldconv_libcrypto_s_a_3654f411bb017b4a8.lib(c_zlib.obj) : error LNK2029: "
_zError" : unresolved external
U:\tmp\ldconv_libcrypto_s_a_3654f411bb017b4a8.lib(c_zlib.obj) : error LNK2029: "
_inflate" : unresolved external


There were 7 errors detected
make.exe: *** [blib/arch/auto/Crypt/OpenSSL/Random/RandomBQ.dll] Error 1

Is that a packaging error, e.g., missing -L in LIBS, or something else? T

shmuel

2012-02-21 13:05

reporter   ~0002220

Adding -lz to LIBS in Makefile.PL and adding /extras to kLIBC Pathrewriters got rid of most of the warnings. Adding an underscore to the EXPORTS boot_Crypt__OpenSSL__Random in Random.def got rid of one more. I still don't understand why it doesn't find Q:\usr\lib\libsocket.a, but that doesn't interfere with the build. I've reported everything in <https://rt.cpan.org/Public/Bug/Display.html?id=74411>.

Ruediger Ihlein comp.os.os2.apps (Message-ID: <Bd1D8ggkpXsj-pn2-RGHsHdy5Kvoh@Tobias>) states that the build should have picked up Q:\usr\local\OPENSSL\lib\libssl_dll.a rather than Q:\usr\local\OPENSSL\lib\libssl.a, which would have made the -lz unnecessary.

DB1

2012-06-01 04:10

reporter   ~0002285

Maybe 0000543 has something to do with the _ problem

psmedley

2022-05-14 16:06

administrator   ~0004247

Won't fix.

Issue History

Date Modified Username Field Change
2012-01-23 10:29 shmuel New Issue
2012-01-23 10:29 shmuel File Added: build.err
2012-01-26 14:07 psmedley Note Added: 0002194
2012-01-26 14:07 psmedley Status new => resolved
2012-01-26 14:07 psmedley Resolution open => unable to reproduce
2012-01-26 14:07 psmedley Assigned To => psmedley
2012-01-26 14:38 shmuel Note Added: 0002195
2012-01-26 14:38 shmuel Status resolved => feedback
2012-01-26 14:38 shmuel Resolution unable to reproduce => reopened
2012-01-26 18:47 psmedley Note Added: 0002199
2012-02-18 04:42 shmuel File Added: Config.pm
2012-02-18 04:43 shmuel File Added: Config_heavy.pl
2012-02-18 04:44 shmuel File Added: perlDashV
2012-02-18 05:08 shmuel Note Added: 0002213
2012-02-18 05:08 shmuel Status feedback => assigned
2012-02-18 11:35 psmedley Note Added: 0002214
2012-02-18 11:36 psmedley Note Added: 0002215
2012-02-18 12:06 shmuel Note Added: 0002216
2012-02-18 12:08 shmuel File Added: Makefile
2012-02-18 12:23 psmedley Note Added: 0002217
2012-02-19 11:26 shmuel Note Added: 0002218
2012-02-20 02:30 shmuel Note Edited: 0002218
2012-02-21 13:05 shmuel Note Added: 0002220
2012-06-01 04:10 DB1 Note Added: 0002285
2022-05-14 16:06 psmedley Status assigned => closed
2022-05-14 16:06 psmedley Note Added: 0004247