Initial commit.
This commit is contained in:
commit
52fd8f4d3c
131
Artistic
Normal file
131
Artistic
Normal file
@ -0,0 +1,131 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
The "Artistic License"
|
||||||
|
|
||||||
|
Preamble
|
||||||
|
|
||||||
|
The intent of this document is to state the conditions under which a
|
||||||
|
Package may be copied, such that the Copyright Holder maintains some
|
||||||
|
semblance of artistic control over the development of the package,
|
||||||
|
while giving the users of the package the right to use and distribute
|
||||||
|
the Package in a more-or-less customary fashion, plus the right to make
|
||||||
|
reasonable modifications.
|
||||||
|
|
||||||
|
Definitions:
|
||||||
|
|
||||||
|
"Package" refers to the collection of files distributed by the
|
||||||
|
Copyright Holder, and derivatives of that collection of files
|
||||||
|
created through textual modification.
|
||||||
|
|
||||||
|
"Standard Version" refers to such a Package if it has not been
|
||||||
|
modified, or has been modified in accordance with the wishes
|
||||||
|
of the Copyright Holder as specified below.
|
||||||
|
|
||||||
|
"Copyright Holder" is whoever is named in the copyright or
|
||||||
|
copyrights for the package.
|
||||||
|
|
||||||
|
"You" is you, if you're thinking about copying or distributing
|
||||||
|
this Package.
|
||||||
|
|
||||||
|
"Reasonable copying fee" is whatever you can justify on the
|
||||||
|
basis of media cost, duplication charges, time of people involved,
|
||||||
|
and so on. (You will not be required to justify it to the
|
||||||
|
Copyright Holder, but only to the computing community at large
|
||||||
|
as a market that must bear the fee.)
|
||||||
|
|
||||||
|
"Freely Available" means that no fee is charged for the item
|
||||||
|
itself, though there may be fees involved in handling the item.
|
||||||
|
It also means that recipients of the item may redistribute it
|
||||||
|
under the same conditions they received it.
|
||||||
|
|
||||||
|
1. You may make and give away verbatim copies of the source form of the
|
||||||
|
Standard Version of this Package without restriction, provided that you
|
||||||
|
duplicate all of the original copyright notices and associated disclaimers.
|
||||||
|
|
||||||
|
2. You may apply bug fixes, portability fixes and other modifications
|
||||||
|
derived from the Public Domain or from the Copyright Holder. A Package
|
||||||
|
modified in such a way shall still be considered the Standard Version.
|
||||||
|
|
||||||
|
3. You may otherwise modify your copy of this Package in any way, provided
|
||||||
|
that you insert a prominent notice in each changed file stating how and
|
||||||
|
when you changed that file, and provided that you do at least ONE of the
|
||||||
|
following:
|
||||||
|
|
||||||
|
a) place your modifications in the Public Domain or otherwise make them
|
||||||
|
Freely Available, such as by posting said modifications to Usenet or
|
||||||
|
an equivalent medium, or placing the modifications on a major archive
|
||||||
|
site such as uunet.uu.net, or by allowing the Copyright Holder to include
|
||||||
|
your modifications in the Standard Version of the Package.
|
||||||
|
|
||||||
|
b) use the modified Package only within your corporation or organization.
|
||||||
|
|
||||||
|
c) rename any non-standard executables so the names do not conflict
|
||||||
|
with standard executables, which must also be provided, and provide
|
||||||
|
a separate manual page for each non-standard executable that clearly
|
||||||
|
documents how it differs from the Standard Version.
|
||||||
|
|
||||||
|
d) make other distribution arrangements with the Copyright Holder.
|
||||||
|
|
||||||
|
4. You may distribute the programs of this Package in object code or
|
||||||
|
executable form, provided that you do at least ONE of the following:
|
||||||
|
|
||||||
|
a) distribute a Standard Version of the executables and library files,
|
||||||
|
together with instructions (in the manual page or equivalent) on where
|
||||||
|
to get the Standard Version.
|
||||||
|
|
||||||
|
b) accompany the distribution with the machine-readable source of
|
||||||
|
the Package with your modifications.
|
||||||
|
|
||||||
|
c) give non-standard executables non-standard names, and clearly
|
||||||
|
document the differences in manual pages (or equivalent), together
|
||||||
|
with instructions on where to get the Standard Version.
|
||||||
|
|
||||||
|
d) make other distribution arrangements with the Copyright Holder.
|
||||||
|
|
||||||
|
5. You may charge a reasonable copying fee for any distribution of this
|
||||||
|
Package. You may charge any fee you choose for support of this
|
||||||
|
Package. You may not charge a fee for this Package itself. However,
|
||||||
|
you may distribute this Package in aggregate with other (possibly
|
||||||
|
commercial) programs as part of a larger (possibly commercial) software
|
||||||
|
distribution provided that you do not advertise this Package as a
|
||||||
|
product of your own. You may embed this Package's interpreter within
|
||||||
|
an executable of yours (by linking); this shall be construed as a mere
|
||||||
|
form of aggregation, provided that the complete Standard Version of the
|
||||||
|
interpreter is so embedded.
|
||||||
|
|
||||||
|
6. The scripts and library files supplied as input to or produced as
|
||||||
|
output from the programs of this Package do not automatically fall
|
||||||
|
under the copyright of this Package, but belong to whoever generated
|
||||||
|
them, and may be sold commercially, and may be aggregated with this
|
||||||
|
Package. If such scripts or library files are aggregated with this
|
||||||
|
Package via the so-called "undump" or "unexec" methods of producing a
|
||||||
|
binary executable image, then distribution of such an image shall
|
||||||
|
neither be construed as a distribution of this Package nor shall it
|
||||||
|
fall under the restrictions of Paragraphs 3 and 4, provided that you do
|
||||||
|
not represent such an executable image as a Standard Version of this
|
||||||
|
Package.
|
||||||
|
|
||||||
|
7. C subroutines (or comparably compiled subroutines in other
|
||||||
|
languages) supplied by you and linked into this Package in order to
|
||||||
|
emulate subroutines and variables of the language defined by this
|
||||||
|
Package shall not be considered part of this Package, but are the
|
||||||
|
equivalent of input as in Paragraph 6, provided these subroutines do
|
||||||
|
not change the language in any way that would cause it to fail the
|
||||||
|
regression tests for the language.
|
||||||
|
|
||||||
|
8. Aggregation of this Package with a commercial distribution is always
|
||||||
|
permitted provided that the use of this Package is embedded; that is,
|
||||||
|
when no overt attempt is made to make this Package's interfaces visible
|
||||||
|
to the end user of the commercial distribution. Such use shall not be
|
||||||
|
construed as a distribution of this Package.
|
||||||
|
|
||||||
|
9. The name of the Copyright Holder may not be used to endorse or promote
|
||||||
|
products derived from this software without specific prior written permission.
|
||||||
|
|
||||||
|
10. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
|
||||||
|
IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
|
||||||
|
WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
|
||||||
|
The End
|
21
Build.PL
Executable file
21
Build.PL
Executable file
@ -0,0 +1,21 @@
|
|||||||
|
#! /usr/bin/perl -w
|
||||||
|
use strict;
|
||||||
|
use Module::Build;
|
||||||
|
|
||||||
|
my $build = Module::Build->new(
|
||||||
|
dist_name => "Acme-GuessNumber",
|
||||||
|
dist_version => "0.04",
|
||||||
|
dist_abstract => "Automatic number guessing game robot",
|
||||||
|
dist_author => "imacat <imacat\@mail.imacat.idv.tw>",
|
||||||
|
license => "perl",
|
||||||
|
sign => 1,
|
||||||
|
|
||||||
|
build_requires => {
|
||||||
|
"Module::Signature" => 0,
|
||||||
|
"Test::Pod" => 0,
|
||||||
|
},
|
||||||
|
);
|
||||||
|
|
||||||
|
$build->create_build_script;
|
||||||
|
|
||||||
|
__END__
|
674
COPYING
Normal file
674
COPYING
Normal file
@ -0,0 +1,674 @@
|
|||||||
|
GNU GENERAL PUBLIC LICENSE
|
||||||
|
Version 3, 29 June 2007
|
||||||
|
|
||||||
|
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
|
||||||
|
Everyone is permitted to copy and distribute verbatim copies
|
||||||
|
of this license document, but changing it is not allowed.
|
||||||
|
|
||||||
|
Preamble
|
||||||
|
|
||||||
|
The GNU General Public License is a free, copyleft license for
|
||||||
|
software and other kinds of works.
|
||||||
|
|
||||||
|
The licenses for most software and other practical works are designed
|
||||||
|
to take away your freedom to share and change the works. By contrast,
|
||||||
|
the GNU General Public License is intended to guarantee your freedom to
|
||||||
|
share and change all versions of a program--to make sure it remains free
|
||||||
|
software for all its users. We, the Free Software Foundation, use the
|
||||||
|
GNU General Public License for most of our software; it applies also to
|
||||||
|
any other work released this way by its authors. You can apply it to
|
||||||
|
your programs, too.
|
||||||
|
|
||||||
|
When we speak of free software, we are referring to freedom, not
|
||||||
|
price. Our General Public Licenses are designed to make sure that you
|
||||||
|
have the freedom to distribute copies of free software (and charge for
|
||||||
|
them if you wish), that you receive source code or can get it if you
|
||||||
|
want it, that you can change the software or use pieces of it in new
|
||||||
|
free programs, and that you know you can do these things.
|
||||||
|
|
||||||
|
To protect your rights, we need to prevent others from denying you
|
||||||
|
these rights or asking you to surrender the rights. Therefore, you have
|
||||||
|
certain responsibilities if you distribute copies of the software, or if
|
||||||
|
you modify it: responsibilities to respect the freedom of others.
|
||||||
|
|
||||||
|
For example, if you distribute copies of such a program, whether
|
||||||
|
gratis or for a fee, you must pass on to the recipients the same
|
||||||
|
freedoms that you received. You must make sure that they, too, receive
|
||||||
|
or can get the source code. And you must show them these terms so they
|
||||||
|
know their rights.
|
||||||
|
|
||||||
|
Developers that use the GNU GPL protect your rights with two steps:
|
||||||
|
(1) assert copyright on the software, and (2) offer you this License
|
||||||
|
giving you legal permission to copy, distribute and/or modify it.
|
||||||
|
|
||||||
|
For the developers' and authors' protection, the GPL clearly explains
|
||||||
|
that there is no warranty for this free software. For both users' and
|
||||||
|
authors' sake, the GPL requires that modified versions be marked as
|
||||||
|
changed, so that their problems will not be attributed erroneously to
|
||||||
|
authors of previous versions.
|
||||||
|
|
||||||
|
Some devices are designed to deny users access to install or run
|
||||||
|
modified versions of the software inside them, although the manufacturer
|
||||||
|
can do so. This is fundamentally incompatible with the aim of
|
||||||
|
protecting users' freedom to change the software. The systematic
|
||||||
|
pattern of such abuse occurs in the area of products for individuals to
|
||||||
|
use, which is precisely where it is most unacceptable. Therefore, we
|
||||||
|
have designed this version of the GPL to prohibit the practice for those
|
||||||
|
products. If such problems arise substantially in other domains, we
|
||||||
|
stand ready to extend this provision to those domains in future versions
|
||||||
|
of the GPL, as needed to protect the freedom of users.
|
||||||
|
|
||||||
|
Finally, every program is threatened constantly by software patents.
|
||||||
|
States should not allow patents to restrict development and use of
|
||||||
|
software on general-purpose computers, but in those that do, we wish to
|
||||||
|
avoid the special danger that patents applied to a free program could
|
||||||
|
make it effectively proprietary. To prevent this, the GPL assures that
|
||||||
|
patents cannot be used to render the program non-free.
|
||||||
|
|
||||||
|
The precise terms and conditions for copying, distribution and
|
||||||
|
modification follow.
|
||||||
|
|
||||||
|
TERMS AND CONDITIONS
|
||||||
|
|
||||||
|
0. Definitions.
|
||||||
|
|
||||||
|
"This License" refers to version 3 of the GNU General Public License.
|
||||||
|
|
||||||
|
"Copyright" also means copyright-like laws that apply to other kinds of
|
||||||
|
works, such as semiconductor masks.
|
||||||
|
|
||||||
|
"The Program" refers to any copyrightable work licensed under this
|
||||||
|
License. Each licensee is addressed as "you". "Licensees" and
|
||||||
|
"recipients" may be individuals or organizations.
|
||||||
|
|
||||||
|
To "modify" a work means to copy from or adapt all or part of the work
|
||||||
|
in a fashion requiring copyright permission, other than the making of an
|
||||||
|
exact copy. The resulting work is called a "modified version" of the
|
||||||
|
earlier work or a work "based on" the earlier work.
|
||||||
|
|
||||||
|
A "covered work" means either the unmodified Program or a work based
|
||||||
|
on the Program.
|
||||||
|
|
||||||
|
To "propagate" a work means to do anything with it that, without
|
||||||
|
permission, would make you directly or secondarily liable for
|
||||||
|
infringement under applicable copyright law, except executing it on a
|
||||||
|
computer or modifying a private copy. Propagation includes copying,
|
||||||
|
distribution (with or without modification), making available to the
|
||||||
|
public, and in some countries other activities as well.
|
||||||
|
|
||||||
|
To "convey" a work means any kind of propagation that enables other
|
||||||
|
parties to make or receive copies. Mere interaction with a user through
|
||||||
|
a computer network, with no transfer of a copy, is not conveying.
|
||||||
|
|
||||||
|
An interactive user interface displays "Appropriate Legal Notices"
|
||||||
|
to the extent that it includes a convenient and prominently visible
|
||||||
|
feature that (1) displays an appropriate copyright notice, and (2)
|
||||||
|
tells the user that there is no warranty for the work (except to the
|
||||||
|
extent that warranties are provided), that licensees may convey the
|
||||||
|
work under this License, and how to view a copy of this License. If
|
||||||
|
the interface presents a list of user commands or options, such as a
|
||||||
|
menu, a prominent item in the list meets this criterion.
|
||||||
|
|
||||||
|
1. Source Code.
|
||||||
|
|
||||||
|
The "source code" for a work means the preferred form of the work
|
||||||
|
for making modifications to it. "Object code" means any non-source
|
||||||
|
form of a work.
|
||||||
|
|
||||||
|
A "Standard Interface" means an interface that either is an official
|
||||||
|
standard defined by a recognized standards body, or, in the case of
|
||||||
|
interfaces specified for a particular programming language, one that
|
||||||
|
is widely used among developers working in that language.
|
||||||
|
|
||||||
|
The "System Libraries" of an executable work include anything, other
|
||||||
|
than the work as a whole, that (a) is included in the normal form of
|
||||||
|
packaging a Major Component, but which is not part of that Major
|
||||||
|
Component, and (b) serves only to enable use of the work with that
|
||||||
|
Major Component, or to implement a Standard Interface for which an
|
||||||
|
implementation is available to the public in source code form. A
|
||||||
|
"Major Component", in this context, means a major essential component
|
||||||
|
(kernel, window system, and so on) of the specific operating system
|
||||||
|
(if any) on which the executable work runs, or a compiler used to
|
||||||
|
produce the work, or an object code interpreter used to run it.
|
||||||
|
|
||||||
|
The "Corresponding Source" for a work in object code form means all
|
||||||
|
the source code needed to generate, install, and (for an executable
|
||||||
|
work) run the object code and to modify the work, including scripts to
|
||||||
|
control those activities. However, it does not include the work's
|
||||||
|
System Libraries, or general-purpose tools or generally available free
|
||||||
|
programs which are used unmodified in performing those activities but
|
||||||
|
which are not part of the work. For example, Corresponding Source
|
||||||
|
includes interface definition files associated with source files for
|
||||||
|
the work, and the source code for shared libraries and dynamically
|
||||||
|
linked subprograms that the work is specifically designed to require,
|
||||||
|
such as by intimate data communication or control flow between those
|
||||||
|
subprograms and other parts of the work.
|
||||||
|
|
||||||
|
The Corresponding Source need not include anything that users
|
||||||
|
can regenerate automatically from other parts of the Corresponding
|
||||||
|
Source.
|
||||||
|
|
||||||
|
The Corresponding Source for a work in source code form is that
|
||||||
|
same work.
|
||||||
|
|
||||||
|
2. Basic Permissions.
|
||||||
|
|
||||||
|
All rights granted under this License are granted for the term of
|
||||||
|
copyright on the Program, and are irrevocable provided the stated
|
||||||
|
conditions are met. This License explicitly affirms your unlimited
|
||||||
|
permission to run the unmodified Program. The output from running a
|
||||||
|
covered work is covered by this License only if the output, given its
|
||||||
|
content, constitutes a covered work. This License acknowledges your
|
||||||
|
rights of fair use or other equivalent, as provided by copyright law.
|
||||||
|
|
||||||
|
You may make, run and propagate covered works that you do not
|
||||||
|
convey, without conditions so long as your license otherwise remains
|
||||||
|
in force. You may convey covered works to others for the sole purpose
|
||||||
|
of having them make modifications exclusively for you, or provide you
|
||||||
|
with facilities for running those works, provided that you comply with
|
||||||
|
the terms of this License in conveying all material for which you do
|
||||||
|
not control copyright. Those thus making or running the covered works
|
||||||
|
for you must do so exclusively on your behalf, under your direction
|
||||||
|
and control, on terms that prohibit them from making any copies of
|
||||||
|
your copyrighted material outside their relationship with you.
|
||||||
|
|
||||||
|
Conveying under any other circumstances is permitted solely under
|
||||||
|
the conditions stated below. Sublicensing is not allowed; section 10
|
||||||
|
makes it unnecessary.
|
||||||
|
|
||||||
|
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||||
|
|
||||||
|
No covered work shall be deemed part of an effective technological
|
||||||
|
measure under any applicable law fulfilling obligations under article
|
||||||
|
11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||||
|
similar laws prohibiting or restricting circumvention of such
|
||||||
|
measures.
|
||||||
|
|
||||||
|
When you convey a covered work, you waive any legal power to forbid
|
||||||
|
circumvention of technological measures to the extent such circumvention
|
||||||
|
is effected by exercising rights under this License with respect to
|
||||||
|
the covered work, and you disclaim any intention to limit operation or
|
||||||
|
modification of the work as a means of enforcing, against the work's
|
||||||
|
users, your or third parties' legal rights to forbid circumvention of
|
||||||
|
technological measures.
|
||||||
|
|
||||||
|
4. Conveying Verbatim Copies.
|
||||||
|
|
||||||
|
You may convey verbatim copies of the Program's source code as you
|
||||||
|
receive it, in any medium, provided that you conspicuously and
|
||||||
|
appropriately publish on each copy an appropriate copyright notice;
|
||||||
|
keep intact all notices stating that this License and any
|
||||||
|
non-permissive terms added in accord with section 7 apply to the code;
|
||||||
|
keep intact all notices of the absence of any warranty; and give all
|
||||||
|
recipients a copy of this License along with the Program.
|
||||||
|
|
||||||
|
You may charge any price or no price for each copy that you convey,
|
||||||
|
and you may offer support or warranty protection for a fee.
|
||||||
|
|
||||||
|
5. Conveying Modified Source Versions.
|
||||||
|
|
||||||
|
You may convey a work based on the Program, or the modifications to
|
||||||
|
produce it from the Program, in the form of source code under the
|
||||||
|
terms of section 4, provided that you also meet all of these conditions:
|
||||||
|
|
||||||
|
a) The work must carry prominent notices stating that you modified
|
||||||
|
it, and giving a relevant date.
|
||||||
|
|
||||||
|
b) The work must carry prominent notices stating that it is
|
||||||
|
released under this License and any conditions added under section
|
||||||
|
7. This requirement modifies the requirement in section 4 to
|
||||||
|
"keep intact all notices".
|
||||||
|
|
||||||
|
c) You must license the entire work, as a whole, under this
|
||||||
|
License to anyone who comes into possession of a copy. This
|
||||||
|
License will therefore apply, along with any applicable section 7
|
||||||
|
additional terms, to the whole of the work, and all its parts,
|
||||||
|
regardless of how they are packaged. This License gives no
|
||||||
|
permission to license the work in any other way, but it does not
|
||||||
|
invalidate such permission if you have separately received it.
|
||||||
|
|
||||||
|
d) If the work has interactive user interfaces, each must display
|
||||||
|
Appropriate Legal Notices; however, if the Program has interactive
|
||||||
|
interfaces that do not display Appropriate Legal Notices, your
|
||||||
|
work need not make them do so.
|
||||||
|
|
||||||
|
A compilation of a covered work with other separate and independent
|
||||||
|
works, which are not by their nature extensions of the covered work,
|
||||||
|
and which are not combined with it such as to form a larger program,
|
||||||
|
in or on a volume of a storage or distribution medium, is called an
|
||||||
|
"aggregate" if the compilation and its resulting copyright are not
|
||||||
|
used to limit the access or legal rights of the compilation's users
|
||||||
|
beyond what the individual works permit. Inclusion of a covered work
|
||||||
|
in an aggregate does not cause this License to apply to the other
|
||||||
|
parts of the aggregate.
|
||||||
|
|
||||||
|
6. Conveying Non-Source Forms.
|
||||||
|
|
||||||
|
You may convey a covered work in object code form under the terms
|
||||||
|
of sections 4 and 5, provided that you also convey the
|
||||||
|
machine-readable Corresponding Source under the terms of this License,
|
||||||
|
in one of these ways:
|
||||||
|
|
||||||
|
a) Convey the object code in, or embodied in, a physical product
|
||||||
|
(including a physical distribution medium), accompanied by the
|
||||||
|
Corresponding Source fixed on a durable physical medium
|
||||||
|
customarily used for software interchange.
|
||||||
|
|
||||||
|
b) Convey the object code in, or embodied in, a physical product
|
||||||
|
(including a physical distribution medium), accompanied by a
|
||||||
|
written offer, valid for at least three years and valid for as
|
||||||
|
long as you offer spare parts or customer support for that product
|
||||||
|
model, to give anyone who possesses the object code either (1) a
|
||||||
|
copy of the Corresponding Source for all the software in the
|
||||||
|
product that is covered by this License, on a durable physical
|
||||||
|
medium customarily used for software interchange, for a price no
|
||||||
|
more than your reasonable cost of physically performing this
|
||||||
|
conveying of source, or (2) access to copy the
|
||||||
|
Corresponding Source from a network server at no charge.
|
||||||
|
|
||||||
|
c) Convey individual copies of the object code with a copy of the
|
||||||
|
written offer to provide the Corresponding Source. This
|
||||||
|
alternative is allowed only occasionally and noncommercially, and
|
||||||
|
only if you received the object code with such an offer, in accord
|
||||||
|
with subsection 6b.
|
||||||
|
|
||||||
|
d) Convey the object code by offering access from a designated
|
||||||
|
place (gratis or for a charge), and offer equivalent access to the
|
||||||
|
Corresponding Source in the same way through the same place at no
|
||||||
|
further charge. You need not require recipients to copy the
|
||||||
|
Corresponding Source along with the object code. If the place to
|
||||||
|
copy the object code is a network server, the Corresponding Source
|
||||||
|
may be on a different server (operated by you or a third party)
|
||||||
|
that supports equivalent copying facilities, provided you maintain
|
||||||
|
clear directions next to the object code saying where to find the
|
||||||
|
Corresponding Source. Regardless of what server hosts the
|
||||||
|
Corresponding Source, you remain obligated to ensure that it is
|
||||||
|
available for as long as needed to satisfy these requirements.
|
||||||
|
|
||||||
|
e) Convey the object code using peer-to-peer transmission, provided
|
||||||
|
you inform other peers where the object code and Corresponding
|
||||||
|
Source of the work are being offered to the general public at no
|
||||||
|
charge under subsection 6d.
|
||||||
|
|
||||||
|
A separable portion of the object code, whose source code is excluded
|
||||||
|
from the Corresponding Source as a System Library, need not be
|
||||||
|
included in conveying the object code work.
|
||||||
|
|
||||||
|
A "User Product" is either (1) a "consumer product", which means any
|
||||||
|
tangible personal property which is normally used for personal, family,
|
||||||
|
or household purposes, or (2) anything designed or sold for incorporation
|
||||||
|
into a dwelling. In determining whether a product is a consumer product,
|
||||||
|
doubtful cases shall be resolved in favor of coverage. For a particular
|
||||||
|
product received by a particular user, "normally used" refers to a
|
||||||
|
typical or common use of that class of product, regardless of the status
|
||||||
|
of the particular user or of the way in which the particular user
|
||||||
|
actually uses, or expects or is expected to use, the product. A product
|
||||||
|
is a consumer product regardless of whether the product has substantial
|
||||||
|
commercial, industrial or non-consumer uses, unless such uses represent
|
||||||
|
the only significant mode of use of the product.
|
||||||
|
|
||||||
|
"Installation Information" for a User Product means any methods,
|
||||||
|
procedures, authorization keys, or other information required to install
|
||||||
|
and execute modified versions of a covered work in that User Product from
|
||||||
|
a modified version of its Corresponding Source. The information must
|
||||||
|
suffice to ensure that the continued functioning of the modified object
|
||||||
|
code is in no case prevented or interfered with solely because
|
||||||
|
modification has been made.
|
||||||
|
|
||||||
|
If you convey an object code work under this section in, or with, or
|
||||||
|
specifically for use in, a User Product, and the conveying occurs as
|
||||||
|
part of a transaction in which the right of possession and use of the
|
||||||
|
User Product is transferred to the recipient in perpetuity or for a
|
||||||
|
fixed term (regardless of how the transaction is characterized), the
|
||||||
|
Corresponding Source conveyed under this section must be accompanied
|
||||||
|
by the Installation Information. But this requirement does not apply
|
||||||
|
if neither you nor any third party retains the ability to install
|
||||||
|
modified object code on the User Product (for example, the work has
|
||||||
|
been installed in ROM).
|
||||||
|
|
||||||
|
The requirement to provide Installation Information does not include a
|
||||||
|
requirement to continue to provide support service, warranty, or updates
|
||||||
|
for a work that has been modified or installed by the recipient, or for
|
||||||
|
the User Product in which it has been modified or installed. Access to a
|
||||||
|
network may be denied when the modification itself materially and
|
||||||
|
adversely affects the operation of the network or violates the rules and
|
||||||
|
protocols for communication across the network.
|
||||||
|
|
||||||
|
Corresponding Source conveyed, and Installation Information provided,
|
||||||
|
in accord with this section must be in a format that is publicly
|
||||||
|
documented (and with an implementation available to the public in
|
||||||
|
source code form), and must require no special password or key for
|
||||||
|
unpacking, reading or copying.
|
||||||
|
|
||||||
|
7. Additional Terms.
|
||||||
|
|
||||||
|
"Additional permissions" are terms that supplement the terms of this
|
||||||
|
License by making exceptions from one or more of its conditions.
|
||||||
|
Additional permissions that are applicable to the entire Program shall
|
||||||
|
be treated as though they were included in this License, to the extent
|
||||||
|
that they are valid under applicable law. If additional permissions
|
||||||
|
apply only to part of the Program, that part may be used separately
|
||||||
|
under those permissions, but the entire Program remains governed by
|
||||||
|
this License without regard to the additional permissions.
|
||||||
|
|
||||||
|
When you convey a copy of a covered work, you may at your option
|
||||||
|
remove any additional permissions from that copy, or from any part of
|
||||||
|
it. (Additional permissions may be written to require their own
|
||||||
|
removal in certain cases when you modify the work.) You may place
|
||||||
|
additional permissions on material, added by you to a covered work,
|
||||||
|
for which you have or can give appropriate copyright permission.
|
||||||
|
|
||||||
|
Notwithstanding any other provision of this License, for material you
|
||||||
|
add to a covered work, you may (if authorized by the copyright holders of
|
||||||
|
that material) supplement the terms of this License with terms:
|
||||||
|
|
||||||
|
a) Disclaiming warranty or limiting liability differently from the
|
||||||
|
terms of sections 15 and 16 of this License; or
|
||||||
|
|
||||||
|
b) Requiring preservation of specified reasonable legal notices or
|
||||||
|
author attributions in that material or in the Appropriate Legal
|
||||||
|
Notices displayed by works containing it; or
|
||||||
|
|
||||||
|
c) Prohibiting misrepresentation of the origin of that material, or
|
||||||
|
requiring that modified versions of such material be marked in
|
||||||
|
reasonable ways as different from the original version; or
|
||||||
|
|
||||||
|
d) Limiting the use for publicity purposes of names of licensors or
|
||||||
|
authors of the material; or
|
||||||
|
|
||||||
|
e) Declining to grant rights under trademark law for use of some
|
||||||
|
trade names, trademarks, or service marks; or
|
||||||
|
|
||||||
|
f) Requiring indemnification of licensors and authors of that
|
||||||
|
material by anyone who conveys the material (or modified versions of
|
||||||
|
it) with contractual assumptions of liability to the recipient, for
|
||||||
|
any liability that these contractual assumptions directly impose on
|
||||||
|
those licensors and authors.
|
||||||
|
|
||||||
|
All other non-permissive additional terms are considered "further
|
||||||
|
restrictions" within the meaning of section 10. If the Program as you
|
||||||
|
received it, or any part of it, contains a notice stating that it is
|
||||||
|
governed by this License along with a term that is a further
|
||||||
|
restriction, you may remove that term. If a license document contains
|
||||||
|
a further restriction but permits relicensing or conveying under this
|
||||||
|
License, you may add to a covered work material governed by the terms
|
||||||
|
of that license document, provided that the further restriction does
|
||||||
|
not survive such relicensing or conveying.
|
||||||
|
|
||||||
|
If you add terms to a covered work in accord with this section, you
|
||||||
|
must place, in the relevant source files, a statement of the
|
||||||
|
additional terms that apply to those files, or a notice indicating
|
||||||
|
where to find the applicable terms.
|
||||||
|
|
||||||
|
Additional terms, permissive or non-permissive, may be stated in the
|
||||||
|
form of a separately written license, or stated as exceptions;
|
||||||
|
the above requirements apply either way.
|
||||||
|
|
||||||
|
8. Termination.
|
||||||
|
|
||||||
|
You may not propagate or modify a covered work except as expressly
|
||||||
|
provided under this License. Any attempt otherwise to propagate or
|
||||||
|
modify it is void, and will automatically terminate your rights under
|
||||||
|
this License (including any patent licenses granted under the third
|
||||||
|
paragraph of section 11).
|
||||||
|
|
||||||
|
However, if you cease all violation of this License, then your
|
||||||
|
license from a particular copyright holder is reinstated (a)
|
||||||
|
provisionally, unless and until the copyright holder explicitly and
|
||||||
|
finally terminates your license, and (b) permanently, if the copyright
|
||||||
|
holder fails to notify you of the violation by some reasonable means
|
||||||
|
prior to 60 days after the cessation.
|
||||||
|
|
||||||
|
Moreover, your license from a particular copyright holder is
|
||||||
|
reinstated permanently if the copyright holder notifies you of the
|
||||||
|
violation by some reasonable means, this is the first time you have
|
||||||
|
received notice of violation of this License (for any work) from that
|
||||||
|
copyright holder, and you cure the violation prior to 30 days after
|
||||||
|
your receipt of the notice.
|
||||||
|
|
||||||
|
Termination of your rights under this section does not terminate the
|
||||||
|
licenses of parties who have received copies or rights from you under
|
||||||
|
this License. If your rights have been terminated and not permanently
|
||||||
|
reinstated, you do not qualify to receive new licenses for the same
|
||||||
|
material under section 10.
|
||||||
|
|
||||||
|
9. Acceptance Not Required for Having Copies.
|
||||||
|
|
||||||
|
You are not required to accept this License in order to receive or
|
||||||
|
run a copy of the Program. Ancillary propagation of a covered work
|
||||||
|
occurring solely as a consequence of using peer-to-peer transmission
|
||||||
|
to receive a copy likewise does not require acceptance. However,
|
||||||
|
nothing other than this License grants you permission to propagate or
|
||||||
|
modify any covered work. These actions infringe copyright if you do
|
||||||
|
not accept this License. Therefore, by modifying or propagating a
|
||||||
|
covered work, you indicate your acceptance of this License to do so.
|
||||||
|
|
||||||
|
10. Automatic Licensing of Downstream Recipients.
|
||||||
|
|
||||||
|
Each time you convey a covered work, the recipient automatically
|
||||||
|
receives a license from the original licensors, to run, modify and
|
||||||
|
propagate that work, subject to this License. You are not responsible
|
||||||
|
for enforcing compliance by third parties with this License.
|
||||||
|
|
||||||
|
An "entity transaction" is a transaction transferring control of an
|
||||||
|
organization, or substantially all assets of one, or subdividing an
|
||||||
|
organization, or merging organizations. If propagation of a covered
|
||||||
|
work results from an entity transaction, each party to that
|
||||||
|
transaction who receives a copy of the work also receives whatever
|
||||||
|
licenses to the work the party's predecessor in interest had or could
|
||||||
|
give under the previous paragraph, plus a right to possession of the
|
||||||
|
Corresponding Source of the work from the predecessor in interest, if
|
||||||
|
the predecessor has it or can get it with reasonable efforts.
|
||||||
|
|
||||||
|
You may not impose any further restrictions on the exercise of the
|
||||||
|
rights granted or affirmed under this License. For example, you may
|
||||||
|
not impose a license fee, royalty, or other charge for exercise of
|
||||||
|
rights granted under this License, and you may not initiate litigation
|
||||||
|
(including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||||
|
any patent claim is infringed by making, using, selling, offering for
|
||||||
|
sale, or importing the Program or any portion of it.
|
||||||
|
|
||||||
|
11. Patents.
|
||||||
|
|
||||||
|
A "contributor" is a copyright holder who authorizes use under this
|
||||||
|
License of the Program or a work on which the Program is based. The
|
||||||
|
work thus licensed is called the contributor's "contributor version".
|
||||||
|
|
||||||
|
A contributor's "essential patent claims" are all patent claims
|
||||||
|
owned or controlled by the contributor, whether already acquired or
|
||||||
|
hereafter acquired, that would be infringed by some manner, permitted
|
||||||
|
by this License, of making, using, or selling its contributor version,
|
||||||
|
but do not include claims that would be infringed only as a
|
||||||
|
consequence of further modification of the contributor version. For
|
||||||
|
purposes of this definition, "control" includes the right to grant
|
||||||
|
patent sublicenses in a manner consistent with the requirements of
|
||||||
|
this License.
|
||||||
|
|
||||||
|
Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||||
|
patent license under the contributor's essential patent claims, to
|
||||||
|
make, use, sell, offer for sale, import and otherwise run, modify and
|
||||||
|
propagate the contents of its contributor version.
|
||||||
|
|
||||||
|
In the following three paragraphs, a "patent license" is any express
|
||||||
|
agreement or commitment, however denominated, not to enforce a patent
|
||||||
|
(such as an express permission to practice a patent or covenant not to
|
||||||
|
sue for patent infringement). To "grant" such a patent license to a
|
||||||
|
party means to make such an agreement or commitment not to enforce a
|
||||||
|
patent against the party.
|
||||||
|
|
||||||
|
If you convey a covered work, knowingly relying on a patent license,
|
||||||
|
and the Corresponding Source of the work is not available for anyone
|
||||||
|
to copy, free of charge and under the terms of this License, through a
|
||||||
|
publicly available network server or other readily accessible means,
|
||||||
|
then you must either (1) cause the Corresponding Source to be so
|
||||||
|
available, or (2) arrange to deprive yourself of the benefit of the
|
||||||
|
patent license for this particular work, or (3) arrange, in a manner
|
||||||
|
consistent with the requirements of this License, to extend the patent
|
||||||
|
license to downstream recipients. "Knowingly relying" means you have
|
||||||
|
actual knowledge that, but for the patent license, your conveying the
|
||||||
|
covered work in a country, or your recipient's use of the covered work
|
||||||
|
in a country, would infringe one or more identifiable patents in that
|
||||||
|
country that you have reason to believe are valid.
|
||||||
|
|
||||||
|
If, pursuant to or in connection with a single transaction or
|
||||||
|
arrangement, you convey, or propagate by procuring conveyance of, a
|
||||||
|
covered work, and grant a patent license to some of the parties
|
||||||
|
receiving the covered work authorizing them to use, propagate, modify
|
||||||
|
or convey a specific copy of the covered work, then the patent license
|
||||||
|
you grant is automatically extended to all recipients of the covered
|
||||||
|
work and works based on it.
|
||||||
|
|
||||||
|
A patent license is "discriminatory" if it does not include within
|
||||||
|
the scope of its coverage, prohibits the exercise of, or is
|
||||||
|
conditioned on the non-exercise of one or more of the rights that are
|
||||||
|
specifically granted under this License. You may not convey a covered
|
||||||
|
work if you are a party to an arrangement with a third party that is
|
||||||
|
in the business of distributing software, under which you make payment
|
||||||
|
to the third party based on the extent of your activity of conveying
|
||||||
|
the work, and under which the third party grants, to any of the
|
||||||
|
parties who would receive the covered work from you, a discriminatory
|
||||||
|
patent license (a) in connection with copies of the covered work
|
||||||
|
conveyed by you (or copies made from those copies), or (b) primarily
|
||||||
|
for and in connection with specific products or compilations that
|
||||||
|
contain the covered work, unless you entered into that arrangement,
|
||||||
|
or that patent license was granted, prior to 28 March 2007.
|
||||||
|
|
||||||
|
Nothing in this License shall be construed as excluding or limiting
|
||||||
|
any implied license or other defenses to infringement that may
|
||||||
|
otherwise be available to you under applicable patent law.
|
||||||
|
|
||||||
|
12. No Surrender of Others' Freedom.
|
||||||
|
|
||||||
|
If conditions are imposed on you (whether by court order, agreement or
|
||||||
|
otherwise) that contradict the conditions of this License, they do not
|
||||||
|
excuse you from the conditions of this License. If you cannot convey a
|
||||||
|
covered work so as to satisfy simultaneously your obligations under this
|
||||||
|
License and any other pertinent obligations, then as a consequence you may
|
||||||
|
not convey it at all. For example, if you agree to terms that obligate you
|
||||||
|
to collect a royalty for further conveying from those to whom you convey
|
||||||
|
the Program, the only way you could satisfy both those terms and this
|
||||||
|
License would be to refrain entirely from conveying the Program.
|
||||||
|
|
||||||
|
13. Use with the GNU Affero General Public License.
|
||||||
|
|
||||||
|
Notwithstanding any other provision of this License, you have
|
||||||
|
permission to link or combine any covered work with a work licensed
|
||||||
|
under version 3 of the GNU Affero General Public License into a single
|
||||||
|
combined work, and to convey the resulting work. The terms of this
|
||||||
|
License will continue to apply to the part which is the covered work,
|
||||||
|
but the special requirements of the GNU Affero General Public License,
|
||||||
|
section 13, concerning interaction through a network will apply to the
|
||||||
|
combination as such.
|
||||||
|
|
||||||
|
14. Revised Versions of this License.
|
||||||
|
|
||||||
|
The Free Software Foundation may publish revised and/or new versions of
|
||||||
|
the GNU General Public License from time to time. Such new versions will
|
||||||
|
be similar in spirit to the present version, but may differ in detail to
|
||||||
|
address new problems or concerns.
|
||||||
|
|
||||||
|
Each version is given a distinguishing version number. If the
|
||||||
|
Program specifies that a certain numbered version of the GNU General
|
||||||
|
Public License "or any later version" applies to it, you have the
|
||||||
|
option of following the terms and conditions either of that numbered
|
||||||
|
version or of any later version published by the Free Software
|
||||||
|
Foundation. If the Program does not specify a version number of the
|
||||||
|
GNU General Public License, you may choose any version ever published
|
||||||
|
by the Free Software Foundation.
|
||||||
|
|
||||||
|
If the Program specifies that a proxy can decide which future
|
||||||
|
versions of the GNU General Public License can be used, that proxy's
|
||||||
|
public statement of acceptance of a version permanently authorizes you
|
||||||
|
to choose that version for the Program.
|
||||||
|
|
||||||
|
Later license versions may give you additional or different
|
||||||
|
permissions. However, no additional obligations are imposed on any
|
||||||
|
author or copyright holder as a result of your choosing to follow a
|
||||||
|
later version.
|
||||||
|
|
||||||
|
15. Disclaimer of Warranty.
|
||||||
|
|
||||||
|
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||||
|
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||||
|
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||||
|
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||||
|
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||||
|
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||||
|
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||||
|
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||||
|
|
||||||
|
16. Limitation of Liability.
|
||||||
|
|
||||||
|
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||||
|
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||||
|
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||||
|
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||||
|
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||||
|
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||||
|
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||||
|
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||||
|
SUCH DAMAGES.
|
||||||
|
|
||||||
|
17. Interpretation of Sections 15 and 16.
|
||||||
|
|
||||||
|
If the disclaimer of warranty and limitation of liability provided
|
||||||
|
above cannot be given local legal effect according to their terms,
|
||||||
|
reviewing courts shall apply local law that most closely approximates
|
||||||
|
an absolute waiver of all civil liability in connection with the
|
||||||
|
Program, unless a warranty or assumption of liability accompanies a
|
||||||
|
copy of the Program in return for a fee.
|
||||||
|
|
||||||
|
END OF TERMS AND CONDITIONS
|
||||||
|
|
||||||
|
How to Apply These Terms to Your New Programs
|
||||||
|
|
||||||
|
If you develop a new program, and you want it to be of the greatest
|
||||||
|
possible use to the public, the best way to achieve this is to make it
|
||||||
|
free software which everyone can redistribute and change under these terms.
|
||||||
|
|
||||||
|
To do so, attach the following notices to the program. It is safest
|
||||||
|
to attach them to the start of each source file to most effectively
|
||||||
|
state the exclusion of warranty; and each file should have at least
|
||||||
|
the "copyright" line and a pointer to where the full notice is found.
|
||||||
|
|
||||||
|
<one line to give the program's name and a brief idea of what it does.>
|
||||||
|
Copyright (C) <year> <name of author>
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
Also add information on how to contact you by electronic and paper mail.
|
||||||
|
|
||||||
|
If the program does terminal interaction, make it output a short
|
||||||
|
notice like this when it starts in an interactive mode:
|
||||||
|
|
||||||
|
<program> Copyright (C) <year> <name of author>
|
||||||
|
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||||
|
This is free software, and you are welcome to redistribute it
|
||||||
|
under certain conditions; type `show c' for details.
|
||||||
|
|
||||||
|
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||||
|
parts of the General Public License. Of course, your program's commands
|
||||||
|
might be different; for a GUI interface, you would use an "about box".
|
||||||
|
|
||||||
|
You should also get your employer (if you work as a programmer) or school,
|
||||||
|
if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||||
|
For more information on this, and how to apply and follow the GNU GPL, see
|
||||||
|
<http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
The GNU General Public License does not permit incorporating your program
|
||||||
|
into proprietary programs. If your program is a subroutine library, you
|
||||||
|
may consider it more useful to permit linking proprietary applications with
|
||||||
|
the library. If this is what you want to do, use the GNU Lesser General
|
||||||
|
Public License instead of this License. But first, please read
|
||||||
|
<http://www.gnu.org/philosophy/why-not-lgpl.html>.
|
38
Changes
Normal file
38
Changes
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
Acme-GuessNumber change log
|
||||||
|
|
||||||
|
2013-05-10
|
||||||
|
1. lib/Acme/GuessNumber.pm: Applied the patch from Mark A. Smith
|
||||||
|
<jprogrammer082@gmail.com>, in order to fix the English errors
|
||||||
|
in the POD. Thank you, Mark, although I will not share my
|
||||||
|
jackpot with you. You have to win your own. ^_^
|
||||||
|
2. lib/Acme/GuessNumber.pm: Fixed several other English mistakes
|
||||||
|
in the POD.
|
||||||
|
|
||||||
|
2008-04-22
|
||||||
|
1. Found the LICENSE in question is the work of
|
||||||
|
ExtUtils::ModuleMaker. RT bug#35271 was submit on this
|
||||||
|
issue.
|
||||||
|
2. INSTALL: Added. Installation instructions moved from README
|
||||||
|
to INSTALL.
|
||||||
|
|
||||||
|
2008-04-21 version 0.03
|
||||||
|
1. Todo: Renamed to TODO.
|
||||||
|
2. TODO: Updated.
|
||||||
|
3. Artistic and COPYING: Added, in replace of LICENSE.
|
||||||
|
4. LICENSE: Deleted. Its GPL v2 is outdated, and its Artistic
|
||||||
|
license contains incorrect terms from unknown sources.
|
||||||
|
|
||||||
|
2008-02-29 version 0.02
|
||||||
|
|
||||||
|
2008-02-28
|
||||||
|
1. Makefile.PL: Added conditional checks for whether LICENSE is
|
||||||
|
available in ExtUtils::MakeMaker.
|
||||||
|
2. Build.PL: Added "build_requires".
|
||||||
|
3. Makefile.PL: Added conditional checks for whether SIGN is
|
||||||
|
available in ExtUtils::MakeMaker.
|
||||||
|
4. Makefile.PL: Added PL_FILES to disable PL files searching
|
||||||
|
behavior, in order to work with ExtUtils::MakeMaker earlier
|
||||||
|
than 6.25 that treats Build.PL as one of the PL files to run.
|
||||||
|
|
||||||
|
2007-05-19 version 0.01
|
||||||
|
- original version
|
145
INSTALL
Normal file
145
INSTALL
Normal file
@ -0,0 +1,145 @@
|
|||||||
|
Acme-GuessNumber Installation Guide
|
||||||
|
|
||||||
|
* Table of Contents
|
||||||
|
|
||||||
|
* System Requirements
|
||||||
|
* Installation Instruction
|
||||||
|
** Install with ExtUtils::MakeMaker
|
||||||
|
** Install with Module::Build
|
||||||
|
** Install with the CPAN Shell
|
||||||
|
** Install with the CPANPLUS Shell
|
||||||
|
|
||||||
|
|
||||||
|
* System Requirements
|
||||||
|
|
||||||
|
1. Perl, version 5 or above. To be a winner of the game you have
|
||||||
|
no option but Perl 5. You can run perl -v to see your current Perl
|
||||||
|
version. If you don't have Perl, or if you have an older version of
|
||||||
|
Perl, you can download and install/upgrade it from Perl website.
|
||||||
|
|
||||||
|
http://www.perl.com/
|
||||||
|
|
||||||
|
If you are using MS-Windows, you can download and install
|
||||||
|
ActiveState ActivePerl.
|
||||||
|
|
||||||
|
http://www.activestate.com/
|
||||||
|
|
||||||
|
2. Required Perl modules: None.
|
||||||
|
|
||||||
|
3. Optional Perl modules: none
|
||||||
|
|
||||||
|
|
||||||
|
* Installation Instruction
|
||||||
|
|
||||||
|
** Install with ExtUtils::MakeMaker
|
||||||
|
|
||||||
|
arclog uses standard Perl installation with ExtUtils::MakeMaker.
|
||||||
|
Follow these steps:
|
||||||
|
|
||||||
|
% perl Makefile.PL
|
||||||
|
% make
|
||||||
|
% make test
|
||||||
|
% make install
|
||||||
|
|
||||||
|
When running make install, make sure you have the priviledge to
|
||||||
|
write to the installation location. This usually requires the root
|
||||||
|
priviledge.
|
||||||
|
|
||||||
|
If you are using ActivePerl under MS-Windows, you should use
|
||||||
|
nmake instead of make. nmake can be obtained from the Microsoft FTP
|
||||||
|
site.
|
||||||
|
|
||||||
|
ftp://ftp.microsoft.com/Softlib/MSLFILES/nmake15.exe
|
||||||
|
|
||||||
|
If you want to install into another location, you can set the
|
||||||
|
PREFIX. For example, to install into your home when you are not
|
||||||
|
root:
|
||||||
|
|
||||||
|
% perl Makefile.PL PREFIX=/home/jessica
|
||||||
|
|
||||||
|
Refer to the docuemntation of ExtUtils::MakeMaker for more
|
||||||
|
installation options (by running perldoc ExtUtils::MakeMaker).
|
||||||
|
|
||||||
|
|
||||||
|
** Install with Module::Build
|
||||||
|
|
||||||
|
You can install with Module::Build instead, if you prefer.
|
||||||
|
Follow these steps:
|
||||||
|
|
||||||
|
% perl Build.PL
|
||||||
|
% ./Build
|
||||||
|
% ./Build test
|
||||||
|
% ./Build install
|
||||||
|
|
||||||
|
When running ./Build install, make sure you have the priviledge to
|
||||||
|
write to the installation location. This usually requires the root
|
||||||
|
priviledge.
|
||||||
|
|
||||||
|
If you want to install into another location, you can set the
|
||||||
|
--prefix. For example, to install into your home when you are not
|
||||||
|
root:
|
||||||
|
|
||||||
|
% perl Build.PL --prefix=/home/jessica
|
||||||
|
|
||||||
|
Refer to the docuemntation of Module::Build for more
|
||||||
|
installation options (by running perldoc Module::Build).
|
||||||
|
|
||||||
|
|
||||||
|
** Install with the CPAN Shell
|
||||||
|
|
||||||
|
You can install with the CPAN shell, if you prefer. CPAN shell
|
||||||
|
takes care of ExtUtils::MakeMaker and Module::Build for you:
|
||||||
|
|
||||||
|
% cpan Acme::GuessNumber
|
||||||
|
|
||||||
|
Make sure you have the priviledge to write to the installation
|
||||||
|
location. This usually requires the root priviledge. Since CPAN
|
||||||
|
shell 1.81 you can set "make_install_make_command" and
|
||||||
|
"mbuild_install_build_command" in your CPAN configuration to switch
|
||||||
|
to root just before install:
|
||||||
|
|
||||||
|
% cpan
|
||||||
|
cpan> o conf make_install_make_command "sudo make"
|
||||||
|
cpan> o conf mbuild_install_build_command "sudo ./Build"
|
||||||
|
cpan> install Acme::GuessNumber
|
||||||
|
|
||||||
|
If you want to install into another location, you can set the
|
||||||
|
"makepl_arg" and "mbuild_arg" in your CPAN configuration. For
|
||||||
|
example, to install into your home when you are not root:
|
||||||
|
|
||||||
|
% cpan
|
||||||
|
cpan> o conf makepl_arg "PREFIX=/home/jessica"
|
||||||
|
cpan> o conf mbuild_arg "--prefix=/home/jessica"
|
||||||
|
cpan> install Acme::GuessNumber
|
||||||
|
|
||||||
|
Refer to the docuemntation of cpan for more CPAN shell commands
|
||||||
|
(by running perldoc cpan).
|
||||||
|
|
||||||
|
|
||||||
|
** Install with the CPANPLUS Shell
|
||||||
|
|
||||||
|
You can install with the CPANPLUS shell, if you prefer. CPANPLUS
|
||||||
|
shell takes care of ExtUtils::MakeMaker and Module::Build for you:
|
||||||
|
|
||||||
|
% cpanp -i Acme::GuessNumber
|
||||||
|
|
||||||
|
Make sure you have the priviledge to write to the installation
|
||||||
|
location. This usually requires the root priviledge.
|
||||||
|
|
||||||
|
If you want to install into another location, you can set the
|
||||||
|
"makemakerflags" and "buildflags" in your CPANPLUS configuration.
|
||||||
|
For example, to install into your home when you are not root:
|
||||||
|
|
||||||
|
% cpanp
|
||||||
|
CPAN Terminal> s conf makemakerflags "PREFIX=/home/jessica"
|
||||||
|
CPAN Terminal> s conf buildflags "--prefix=/home/jessica"
|
||||||
|
CPAN Terminal> install Acme::GuessNumber
|
||||||
|
|
||||||
|
Refer to the docuemntation of cpanp for more CPANPLUS shell
|
||||||
|
commands (by running perldoc cpanp).
|
||||||
|
|
||||||
|
|
||||||
|
imacat
|
||||||
|
2008-04-22
|
||||||
|
imacat@mail.imacat.idv.tw
|
||||||
|
http://www.imacat.idv.tw/
|
17
MANIFEST
Normal file
17
MANIFEST
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
Artistic
|
||||||
|
Build.PL
|
||||||
|
Changes
|
||||||
|
COPYING
|
||||||
|
INSTALL
|
||||||
|
lib/Acme/GuessNumber.pm
|
||||||
|
Makefile.PL
|
||||||
|
MANIFEST This list of files
|
||||||
|
META.yml
|
||||||
|
README
|
||||||
|
SIGNATURE
|
||||||
|
t/00-signature.t
|
||||||
|
t/01-basic.t
|
||||||
|
t/99-pod.t
|
||||||
|
TODO
|
||||||
|
META.json
|
||||||
|
SIGNATURE Added here by Module::Build
|
42
META.json
Normal file
42
META.json
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
{
|
||||||
|
"abstract" : "Automatic number guessing game robot",
|
||||||
|
"author" : [
|
||||||
|
"imacat <imacat@mail.imacat.idv.tw>"
|
||||||
|
],
|
||||||
|
"dynamic_config" : 1,
|
||||||
|
"generated_by" : "Module::Build version 0.4005, CPAN::Meta::Converter version 2.130880",
|
||||||
|
"license" : [
|
||||||
|
"perl_5"
|
||||||
|
],
|
||||||
|
"meta-spec" : {
|
||||||
|
"url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec",
|
||||||
|
"version" : "2"
|
||||||
|
},
|
||||||
|
"name" : "Acme-GuessNumber",
|
||||||
|
"prereqs" : {
|
||||||
|
"build" : {
|
||||||
|
"requires" : {
|
||||||
|
"Module::Signature" : "0",
|
||||||
|
"Test::Pod" : "0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"configure" : {
|
||||||
|
"requires" : {
|
||||||
|
"Module::Build" : "0.40"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"provides" : {
|
||||||
|
"Acme::GuessNumber" : {
|
||||||
|
"file" : "lib/Acme/GuessNumber.pm",
|
||||||
|
"version" : "0.04"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"release_status" : "stable",
|
||||||
|
"resources" : {
|
||||||
|
"license" : [
|
||||||
|
"http://dev.perl.org/licenses/"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"version" : "0.04"
|
||||||
|
}
|
23
META.yml
Normal file
23
META.yml
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
---
|
||||||
|
abstract: 'Automatic number guessing game robot'
|
||||||
|
author:
|
||||||
|
- 'imacat <imacat@mail.imacat.idv.tw>'
|
||||||
|
build_requires:
|
||||||
|
Module::Signature: 0
|
||||||
|
Test::Pod: 0
|
||||||
|
configure_requires:
|
||||||
|
Module::Build: 0.40
|
||||||
|
dynamic_config: 1
|
||||||
|
generated_by: 'Module::Build version 0.4005, CPAN::Meta::Converter version 2.130880'
|
||||||
|
license: perl
|
||||||
|
meta-spec:
|
||||||
|
url: http://module-build.sourceforge.net/META-spec-v1.4.html
|
||||||
|
version: 1.4
|
||||||
|
name: Acme-GuessNumber
|
||||||
|
provides:
|
||||||
|
Acme::GuessNumber:
|
||||||
|
file: lib/Acme/GuessNumber.pm
|
||||||
|
version: 0.04
|
||||||
|
resources:
|
||||||
|
license: http://dev.perl.org/licenses/
|
||||||
|
version: 0.04
|
44
MYMETA.json
Normal file
44
MYMETA.json
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
{
|
||||||
|
"abstract" : "Automatic number guessing game robot",
|
||||||
|
"author" : [
|
||||||
|
"imacat <imacat@mail.imacat.idv.tw>"
|
||||||
|
],
|
||||||
|
"dynamic_config" : 0,
|
||||||
|
"generated_by" : "Module::Build version 0.4005, CPAN::Meta::Converter version 2.130880",
|
||||||
|
"license" : [
|
||||||
|
"perl_5"
|
||||||
|
],
|
||||||
|
"meta-spec" : {
|
||||||
|
"url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec",
|
||||||
|
"version" : "2"
|
||||||
|
},
|
||||||
|
"name" : "Acme-GuessNumber",
|
||||||
|
"prereqs" : {
|
||||||
|
"build" : {
|
||||||
|
"requires" : {
|
||||||
|
"ExtUtils::MakeMaker" : "0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"configure" : {
|
||||||
|
"requires" : {
|
||||||
|
"Module::Build" : "0.40"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"runtime" : {
|
||||||
|
"requires" : {}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"provides" : {
|
||||||
|
"Acme::GuessNumber" : {
|
||||||
|
"file" : "lib/Acme/GuessNumber.pm",
|
||||||
|
"version" : "0.04"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"release_status" : "stable",
|
||||||
|
"resources" : {
|
||||||
|
"license" : [
|
||||||
|
"http://dev.perl.org/licenses/"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"version" : "0.04"
|
||||||
|
}
|
23
MYMETA.yml
Normal file
23
MYMETA.yml
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
---
|
||||||
|
abstract: 'Automatic number guessing game robot'
|
||||||
|
author:
|
||||||
|
- 'imacat <imacat@mail.imacat.idv.tw>'
|
||||||
|
build_requires:
|
||||||
|
ExtUtils::MakeMaker: 0
|
||||||
|
configure_requires:
|
||||||
|
Module::Build: 0.40
|
||||||
|
dynamic_config: 0
|
||||||
|
generated_by: 'Module::Build version 0.4005, CPAN::Meta::Converter version 2.130880'
|
||||||
|
license: perl
|
||||||
|
meta-spec:
|
||||||
|
url: http://module-build.sourceforge.net/META-spec-v1.4.html
|
||||||
|
version: 1.4
|
||||||
|
name: Acme-GuessNumber
|
||||||
|
provides:
|
||||||
|
Acme::GuessNumber:
|
||||||
|
file: lib/Acme/GuessNumber.pm
|
||||||
|
version: 0.04
|
||||||
|
requires: {}
|
||||||
|
resources:
|
||||||
|
license: http://dev.perl.org/licenses/
|
||||||
|
version: 0.04
|
862
Makefile
Normal file
862
Makefile
Normal file
@ -0,0 +1,862 @@
|
|||||||
|
# This Makefile is for the Acme-GuessNumber extension to perl.
|
||||||
|
#
|
||||||
|
# It was generated automatically by MakeMaker version
|
||||||
|
# 6.66 (Revision: 66600) 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:
|
||||||
|
|
||||||
|
# ABSTRACT => q[Automatic number guessing game robot]
|
||||||
|
# AUTHOR => [q[imacat <imacat@mail.imacat.idv.tw>]]
|
||||||
|
# BUILD_REQUIRES => { }
|
||||||
|
# CONFIGURE_REQUIRES => { }
|
||||||
|
# LICENSE => q[perl]
|
||||||
|
# NAME => q[Acme-GuessNumber]
|
||||||
|
# PL_FILES => { }
|
||||||
|
# PREREQ_PM => { }
|
||||||
|
# SIGN => q[1]
|
||||||
|
# TEST_REQUIRES => { }
|
||||||
|
# VERSION => q[0.04]
|
||||||
|
# dist => { COMPRESS=>q[gzip -9], SUFFIX=>q[.gz] }
|
||||||
|
|
||||||
|
# --- MakeMaker post_initialize section:
|
||||||
|
|
||||||
|
|
||||||
|
# --- MakeMaker const_config section:
|
||||||
|
|
||||||
|
# These definitions are from config.sh (via /usr/lib/perl5/5.16.2/x86_64-linux-thread-multi-ld/Config.pm).
|
||||||
|
# They may have been overridden via Makefile.PL or on the command line.
|
||||||
|
AR = ar
|
||||||
|
CC = cc
|
||||||
|
CCCDLFLAGS = -fPIC
|
||||||
|
CCDLFLAGS = -Wl,-E -Wl,-rpath,/usr/lib/perl5/5.16.2/x86_64-linux-thread-multi-ld/CORE
|
||||||
|
DLEXT = so
|
||||||
|
DLSRC = dl_dlopen.xs
|
||||||
|
EXE_EXT =
|
||||||
|
FULL_AR = /usr/bin/ar
|
||||||
|
LD = cc
|
||||||
|
LDDLFLAGS = -shared -O3 -g -L/usr/local/lib -fstack-protector
|
||||||
|
LDFLAGS = -fstack-protector -L/usr/local/lib
|
||||||
|
LIBC = /lib/libc-2.11.3.so
|
||||||
|
LIB_EXT = .a
|
||||||
|
OBJ_EXT = .o
|
||||||
|
OSNAME = linux
|
||||||
|
OSVERS = 2.6.32-5-amd64
|
||||||
|
RANLIB = :
|
||||||
|
SITELIBEXP = /usr/lib/perl5/site_perl/5.16.2
|
||||||
|
SITEARCHEXP = /usr/lib/perl5/site_perl/5.16.2/x86_64-linux-thread-multi-ld
|
||||||
|
SO = so
|
||||||
|
VENDORARCHEXP =
|
||||||
|
VENDORLIBEXP =
|
||||||
|
|
||||||
|
|
||||||
|
# --- MakeMaker constants section:
|
||||||
|
AR_STATIC_ARGS = cr
|
||||||
|
DIRFILESEP = /
|
||||||
|
DFSEP = $(DIRFILESEP)
|
||||||
|
NAME = Acme-GuessNumber
|
||||||
|
NAME_SYM = Acme_GuessNumber
|
||||||
|
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 = /usr
|
||||||
|
SITEPREFIX = /usr
|
||||||
|
VENDORPREFIX =
|
||||||
|
INSTALLPRIVLIB = /usr/lib/perl5/5.16.2
|
||||||
|
DESTINSTALLPRIVLIB = $(DESTDIR)$(INSTALLPRIVLIB)
|
||||||
|
INSTALLSITELIB = /usr/lib/perl5/site_perl/5.16.2
|
||||||
|
DESTINSTALLSITELIB = $(DESTDIR)$(INSTALLSITELIB)
|
||||||
|
INSTALLVENDORLIB =
|
||||||
|
DESTINSTALLVENDORLIB = $(DESTDIR)$(INSTALLVENDORLIB)
|
||||||
|
INSTALLARCHLIB = /usr/lib/perl5/5.16.2/x86_64-linux-thread-multi-ld
|
||||||
|
DESTINSTALLARCHLIB = $(DESTDIR)$(INSTALLARCHLIB)
|
||||||
|
INSTALLSITEARCH = /usr/lib/perl5/site_perl/5.16.2/x86_64-linux-thread-multi-ld
|
||||||
|
DESTINSTALLSITEARCH = $(DESTDIR)$(INSTALLSITEARCH)
|
||||||
|
INSTALLVENDORARCH =
|
||||||
|
DESTINSTALLVENDORARCH = $(DESTDIR)$(INSTALLVENDORARCH)
|
||||||
|
INSTALLBIN = /usr/bin
|
||||||
|
DESTINSTALLBIN = $(DESTDIR)$(INSTALLBIN)
|
||||||
|
INSTALLSITEBIN = /usr/bin
|
||||||
|
DESTINSTALLSITEBIN = $(DESTDIR)$(INSTALLSITEBIN)
|
||||||
|
INSTALLVENDORBIN =
|
||||||
|
DESTINSTALLVENDORBIN = $(DESTDIR)$(INSTALLVENDORBIN)
|
||||||
|
INSTALLSCRIPT = /usr/bin
|
||||||
|
DESTINSTALLSCRIPT = $(DESTDIR)$(INSTALLSCRIPT)
|
||||||
|
INSTALLSITESCRIPT = /usr/bin
|
||||||
|
DESTINSTALLSITESCRIPT = $(DESTDIR)$(INSTALLSITESCRIPT)
|
||||||
|
INSTALLVENDORSCRIPT =
|
||||||
|
DESTINSTALLVENDORSCRIPT = $(DESTDIR)$(INSTALLVENDORSCRIPT)
|
||||||
|
INSTALLMAN1DIR = /usr/share/man/man1
|
||||||
|
DESTINSTALLMAN1DIR = $(DESTDIR)$(INSTALLMAN1DIR)
|
||||||
|
INSTALLSITEMAN1DIR = /usr/share/man/man1
|
||||||
|
DESTINSTALLSITEMAN1DIR = $(DESTDIR)$(INSTALLSITEMAN1DIR)
|
||||||
|
INSTALLVENDORMAN1DIR =
|
||||||
|
DESTINSTALLVENDORMAN1DIR = $(DESTDIR)$(INSTALLVENDORMAN1DIR)
|
||||||
|
INSTALLMAN3DIR = /usr/share/man/man3
|
||||||
|
DESTINSTALLMAN3DIR = $(DESTDIR)$(INSTALLMAN3DIR)
|
||||||
|
INSTALLSITEMAN3DIR = /usr/share/man/man3
|
||||||
|
DESTINSTALLSITEMAN3DIR = $(DESTDIR)$(INSTALLSITEMAN3DIR)
|
||||||
|
INSTALLVENDORMAN3DIR =
|
||||||
|
DESTINSTALLVENDORMAN3DIR = $(DESTDIR)$(INSTALLVENDORMAN3DIR)
|
||||||
|
PERL_LIB = /usr/lib/perl5/5.16.2
|
||||||
|
PERL_ARCHLIB = /usr/lib/perl5/5.16.2/x86_64-linux-thread-multi-ld
|
||||||
|
LIBPERL_A = libperl.a
|
||||||
|
FIRST_MAKEFILE = Makefile
|
||||||
|
MAKEFILE_OLD = Makefile.old
|
||||||
|
MAKE_APERL_FILE = Makefile.aperl
|
||||||
|
PERLMAINCC = $(CC)
|
||||||
|
PERL_INC = /usr/lib/perl5/5.16.2/x86_64-linux-thread-multi-ld/CORE
|
||||||
|
PERL = /usr/bin/perl
|
||||||
|
FULLPERL = /usr/bin/perl
|
||||||
|
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 = /usr/lib/perl5/5.16.2/ExtUtils/MakeMaker.pm
|
||||||
|
MM_VERSION = 6.66
|
||||||
|
MM_REVISION = 66600
|
||||||
|
|
||||||
|
# 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
|
||||||
|
FULLEXT = Acme-GuessNumber
|
||||||
|
BASEEXT = GuessNumber
|
||||||
|
PARENT_NAME =
|
||||||
|
DLBASE = $(BASEEXT)
|
||||||
|
VERSION_FROM =
|
||||||
|
OBJECT =
|
||||||
|
LDFROM = $(OBJECT)
|
||||||
|
LINKTYPE = dynamic
|
||||||
|
BOOTDEP =
|
||||||
|
|
||||||
|
# Handy lists of source code files:
|
||||||
|
XS_FILES =
|
||||||
|
C_FILES =
|
||||||
|
O_FILES =
|
||||||
|
H_FILES =
|
||||||
|
MAN1PODS =
|
||||||
|
MAN3PODS = lib/Acme/GuessNumber.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)
|
||||||
|
INST_ARCHLIBDIR = $(INST_ARCHLIB)
|
||||||
|
|
||||||
|
INST_AUTODIR = $(INST_LIB)/auto/$(FULLEXT)
|
||||||
|
INST_ARCHAUTODIR = $(INST_ARCHLIB)/auto/$(FULLEXT)
|
||||||
|
|
||||||
|
INST_STATIC =
|
||||||
|
INST_DYNAMIC =
|
||||||
|
INST_BOOT =
|
||||||
|
|
||||||
|
# Extra linker info
|
||||||
|
EXPORT_LIST =
|
||||||
|
PERL_ARCHIVE =
|
||||||
|
PERL_ARCHIVE_AFTER =
|
||||||
|
|
||||||
|
|
||||||
|
TO_INST_PM = lib/Acme/GuessNumber.pm
|
||||||
|
|
||||||
|
PM_TO_BLIB = lib/Acme/GuessNumber.pm \
|
||||||
|
blib/lib/Acme/GuessNumber.pm
|
||||||
|
|
||||||
|
|
||||||
|
# --- MakeMaker platform_constants section:
|
||||||
|
MM_Unix_VERSION = 6.66
|
||||||
|
PERL_MALLOC_DEF = -DPERL_EXTMALLOC_DEF -Dmalloc=Perl_malloc -Dfree=Perl_mfree -Drealloc=Perl_realloc -Dcalloc=Perl_calloc
|
||||||
|
|
||||||
|
|
||||||
|
# --- 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:
|
||||||
|
|
||||||
|
|
||||||
|
# --- MakeMaker tools_other section:
|
||||||
|
SHELL = /bin/sh
|
||||||
|
CHMOD = chmod
|
||||||
|
CP = cp
|
||||||
|
MV = mv
|
||||||
|
NOOP = $(TRUE)
|
||||||
|
NOECHO = @
|
||||||
|
RM_F = rm -f
|
||||||
|
RM_RF = rm -rf
|
||||||
|
TEST_F = test -f
|
||||||
|
TOUCH = 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 = false
|
||||||
|
TRUE = true
|
||||||
|
ECHO = echo
|
||||||
|
ECHO_N = echo -n
|
||||||
|
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 -9
|
||||||
|
SUFFIX = .gz
|
||||||
|
SHAR = shar
|
||||||
|
PREOP = $(NOECHO) $(NOOP)
|
||||||
|
POSTOP = $(NOECHO) $(NOOP)
|
||||||
|
TO_UNIX = $(NOECHO) $(NOOP)
|
||||||
|
CI = ci -u
|
||||||
|
RCS_LABEL = rcs -Nv$(VERSION_SYM): -q
|
||||||
|
DIST_CP = best
|
||||||
|
DIST_DEFAULT = tardist
|
||||||
|
DISTNAME = Acme-GuessNumber
|
||||||
|
DISTVNAME = Acme-GuessNumber-0.04
|
||||||
|
|
||||||
|
|
||||||
|
# --- MakeMaker macro section:
|
||||||
|
|
||||||
|
|
||||||
|
# --- MakeMaker depend section:
|
||||||
|
|
||||||
|
|
||||||
|
# --- MakeMaker cflags section:
|
||||||
|
|
||||||
|
|
||||||
|
# --- MakeMaker const_loadlibs section:
|
||||||
|
|
||||||
|
|
||||||
|
# --- MakeMaker const_cccmd section:
|
||||||
|
|
||||||
|
|
||||||
|
# --- MakeMaker post_constants section:
|
||||||
|
|
||||||
|
|
||||||
|
# --- MakeMaker pasthru section:
|
||||||
|
|
||||||
|
PASTHRU = LIBPERL_A="$(LIBPERL_A)"\
|
||||||
|
LINKTYPE="$(LINKTYPE)"\
|
||||||
|
PREFIX="$(PREFIX)"
|
||||||
|
|
||||||
|
|
||||||
|
# --- 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:
|
||||||
|
|
||||||
|
|
||||||
|
# --- MakeMaker xs_c section:
|
||||||
|
|
||||||
|
|
||||||
|
# --- MakeMaker xs_o section:
|
||||||
|
|
||||||
|
|
||||||
|
# --- MakeMaker top_targets section:
|
||||||
|
all :: pure_all manifypods
|
||||||
|
$(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:
|
||||||
|
|
||||||
|
|
||||||
|
# --- MakeMaker dynamic section:
|
||||||
|
|
||||||
|
dynamic :: $(FIRST_MAKEFILE) $(INST_DYNAMIC) $(INST_BOOT)
|
||||||
|
$(NOECHO) $(NOOP)
|
||||||
|
|
||||||
|
|
||||||
|
# --- MakeMaker dynamic_bs section:
|
||||||
|
|
||||||
|
BOOTSTRAP =
|
||||||
|
|
||||||
|
|
||||||
|
# --- MakeMaker dynamic_lib section:
|
||||||
|
|
||||||
|
|
||||||
|
# --- 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:
|
||||||
|
|
||||||
|
|
||||||
|
# --- MakeMaker manifypods section:
|
||||||
|
|
||||||
|
POD2MAN_EXE = $(PERLRUN) "-MExtUtils::Command::MM" -e pod2man "--"
|
||||||
|
POD2MAN = $(POD2MAN_EXE)
|
||||||
|
|
||||||
|
|
||||||
|
manifypods : pure_all \
|
||||||
|
lib/Acme/GuessNumber.pm
|
||||||
|
$(NOECHO) $(POD2MAN) --section=3 --perm_rw=$(PERM_RW) \
|
||||||
|
lib/Acme/GuessNumber.pm $(INST_MAN3DIR)/Acme::GuessNumber.$(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.*.? $(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) \
|
||||||
|
$(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: '\''Automatic number guessing game robot'\''' >> META_new.yml
|
||||||
|
$(NOECHO) $(ECHO) 'author:' >> META_new.yml
|
||||||
|
$(NOECHO) $(ECHO) ' - '\''imacat <imacat@mail.imacat.idv.tw>'\''' >> 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.66, CPAN::Meta::Converter version 2.130880'\''' >> META_new.yml
|
||||||
|
$(NOECHO) $(ECHO) 'license: perl' >> 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: Acme-GuessNumber' >> 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" : "Automatic number guessing game robot",' >> META_new.json
|
||||||
|
$(NOECHO) $(ECHO) ' "author" : [' >> META_new.json
|
||||||
|
$(NOECHO) $(ECHO) ' "imacat <imacat@mail.imacat.idv.tw>"' >> META_new.json
|
||||||
|
$(NOECHO) $(ECHO) ' ],' >> META_new.json
|
||||||
|
$(NOECHO) $(ECHO) ' "dynamic_config" : 1,' >> META_new.json
|
||||||
|
$(NOECHO) $(ECHO) ' "generated_by" : "ExtUtils::MakeMaker version 6.66, CPAN::Meta::Converter version 2.130880",' >> META_new.json
|
||||||
|
$(NOECHO) $(ECHO) ' "license" : [' >> META_new.json
|
||||||
|
$(NOECHO) $(ECHO) ' "perl_5"' >> 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" : "Acme-GuessNumber",' >> 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 distsignature
|
||||||
|
$(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:
|
||||||
|
|
||||||
|
|
||||||
|
# --- MakeMaker makefile section:
|
||||||
|
# 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 = /usr/bin/perl
|
||||||
|
|
||||||
|
$(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 = t/*.t
|
||||||
|
TESTDB_SW = -d
|
||||||
|
|
||||||
|
testdb :: testdb_$(LINKTYPE)
|
||||||
|
|
||||||
|
test :: $(TEST_TYPE) subdirs-test
|
||||||
|
|
||||||
|
subdirs-test ::
|
||||||
|
$(NOECHO) $(NOOP)
|
||||||
|
|
||||||
|
|
||||||
|
test_dynamic :: pure_all
|
||||||
|
PERL_DL_NONLAZY=1 $(FULLPERLRUN) "-MExtUtils::Command::MM" "-e" "test_harness($(TEST_VERBOSE), '$(INST_LIB)', '$(INST_ARCHLIB)')" $(TEST_FILES)
|
||||||
|
|
||||||
|
testdb_dynamic :: pure_all
|
||||||
|
PERL_DL_NONLAZY=1 $(FULLPERLRUN) $(TESTDB_SW) "-I$(INST_LIB)" "-I$(INST_ARCHLIB)" $(TEST_FILE)
|
||||||
|
|
||||||
|
test_ : test_dynamic
|
||||||
|
|
||||||
|
test_static :: test_dynamic
|
||||||
|
testdb_static :: testdb_dynamic
|
||||||
|
|
||||||
|
|
||||||
|
# --- MakeMaker ppd section:
|
||||||
|
# Creates a PPD (Perl Package Description) for a binary distribution.
|
||||||
|
ppd :
|
||||||
|
$(NOECHO) $(ECHO) '<SOFTPKG NAME="$(DISTNAME)" VERSION="$(VERSION)">' > $(DISTNAME).ppd
|
||||||
|
$(NOECHO) $(ECHO) ' <ABSTRACT>Automatic number guessing game robot</ABSTRACT>' >> $(DISTNAME).ppd
|
||||||
|
$(NOECHO) $(ECHO) ' <AUTHOR>imacat <imacat@mail.imacat.idv.tw></AUTHOR>' >> $(DISTNAME).ppd
|
||||||
|
$(NOECHO) $(ECHO) ' <IMPLEMENTATION>' >> $(DISTNAME).ppd
|
||||||
|
$(NOECHO) $(ECHO) ' <ARCHITECTURE NAME="x86_64-linux-thread-multi-ld-5.16" />' >> $(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)'\'')' -- \
|
||||||
|
lib/Acme/GuessNumber.pm blib/lib/Acme/GuessNumber.pm
|
||||||
|
$(NOECHO) $(TOUCH) pm_to_blib
|
||||||
|
|
||||||
|
|
||||||
|
# --- MakeMaker selfdocument section:
|
||||||
|
|
||||||
|
|
||||||
|
# --- MakeMaker postamble section:
|
||||||
|
|
||||||
|
|
||||||
|
# End.
|
31
Makefile.PL
Executable file
31
Makefile.PL
Executable file
@ -0,0 +1,31 @@
|
|||||||
|
#! /usr/bin/perl -w
|
||||||
|
use strict;
|
||||||
|
use ExtUtils::MakeMaker;
|
||||||
|
|
||||||
|
use vars qw($eummver %sign %license);
|
||||||
|
$eummver = $ExtUtils::MakeMaker::VERSION;
|
||||||
|
$eummver =~ s/_//;
|
||||||
|
# SIGN is only availabe since ExtUtils::MakeMaker 6.18
|
||||||
|
%sign = qw();
|
||||||
|
%sign = (SIGN => 1) if $eummver > 6.17;
|
||||||
|
# LICENSE is only availabe since ExtUtils::MakeMaker 6.30_01
|
||||||
|
%license = qw();
|
||||||
|
%license = (LICENSE => "perl") if $eummver > 6.30;
|
||||||
|
|
||||||
|
WriteMakefile(
|
||||||
|
NAME => "Acme-GuessNumber",
|
||||||
|
VERSION => "0.04",
|
||||||
|
ABSTRACT => "Automatic number guessing game robot",
|
||||||
|
AUTHOR => "imacat <imacat\@mail.imacat.idv.tw>",
|
||||||
|
PREREQ_PM => { },
|
||||||
|
PL_FILES => { },
|
||||||
|
%sign,
|
||||||
|
%license,
|
||||||
|
|
||||||
|
dist => {
|
||||||
|
COMPRESS => "gzip -9",
|
||||||
|
SUFFIX => ".gz",
|
||||||
|
},
|
||||||
|
);
|
||||||
|
|
||||||
|
__END__
|
43
README
Normal file
43
README
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
Acme-GuessNumber - Automatic number guessing game robot
|
||||||
|
|
||||||
|
Many people have this experience: You sit before a gambling table. You
|
||||||
|
keep placing the bet. You know the Goddess will finally smile at you.
|
||||||
|
You just don't know when. You have only to wait. As the time goes by,
|
||||||
|
the bets in your hand become fewer and fewer. You feel the time goes
|
||||||
|
slower and slower. This lengthy waiting process become painfully long,
|
||||||
|
like a train running straightforwardly into hell. You start feeling
|
||||||
|
your whole life is a failure, as the jackpot never comes...
|
||||||
|
|
||||||
|
But, hey, why so painfully waiting? The Goddess will finally smile at
|
||||||
|
you, right? So, why not put this painly waiting process to a computer
|
||||||
|
program? Yes. This is the whole idea, the greatest invention in the
|
||||||
|
century:: An automatic gambler! There is no secret. It is simple
|
||||||
|
brute force. It never-endingly runs toward the final jackpot. You can
|
||||||
|
go for other business: sleep, eat, work. When you finally came back you
|
||||||
|
wins. With it, the hell of gambling is history!
|
||||||
|
|
||||||
|
Remember, that the computer is never affected by emotion, luck,
|
||||||
|
everything. It never feel anxious or depress. It simply, faithfully,
|
||||||
|
determinedly runs the probability until the jackpot. As you know,
|
||||||
|
the anxiety and depression is the enemy of the games, while a
|
||||||
|
simple, faithful and determined mind is the only path to the jackpot.
|
||||||
|
This makes computer a perfect candidate as a gambler than an ordinary
|
||||||
|
human.
|
||||||
|
|
||||||
|
|
||||||
|
* Installation
|
||||||
|
|
||||||
|
Read INSTALL for instructions on how to install
|
||||||
|
Locale::Maketext::Gettext.
|
||||||
|
|
||||||
|
|
||||||
|
* News, Changes and Updates
|
||||||
|
|
||||||
|
Refer to the Changes for changes, bug fixes, updates, new functions, etc.
|
||||||
|
|
||||||
|
|
||||||
|
* Copyright
|
||||||
|
|
||||||
|
Copyright (c) 2007-2008 imacat. All rights reserved. This program is free
|
||||||
|
software; you can redistribute it and/or modify it under the same terms
|
||||||
|
as Perl itself.
|
38
SIGNATURE
Normal file
38
SIGNATURE
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
This file contains message digests of all files listed in MANIFEST,
|
||||||
|
signed via the Module::Signature module, version 0.70.
|
||||||
|
|
||||||
|
To verify the content in this distribution, first make sure you have
|
||||||
|
Module::Signature installed, then type:
|
||||||
|
|
||||||
|
% cpansign -v
|
||||||
|
|
||||||
|
It will check each file's integrity, as well as the signature's
|
||||||
|
validity. If "==> Signature verified OK! <==" is not displayed,
|
||||||
|
the distribution may already have been compromised, and you should
|
||||||
|
not run its Makefile.PL or Build.PL.
|
||||||
|
|
||||||
|
-----BEGIN PGP SIGNED MESSAGE-----
|
||||||
|
Hash: SHA1
|
||||||
|
|
||||||
|
SHA1 be0627fff2e8aef3d2a14d5d7486babc8a4873ba Artistic
|
||||||
|
SHA1 d117308a9f5dcdc8fe8894adaba4c2f810d59e7c Build.PL
|
||||||
|
SHA1 8624bcdae55baeef00cd11d5dfcfa60f68710a02 COPYING
|
||||||
|
SHA1 b4847c5c927898aa7a2bacf5dc3f67c7a533ecbf Changes
|
||||||
|
SHA1 32ef45b43fdaac94b23f0cd3728e6a093baf86e9 INSTALL
|
||||||
|
SHA1 364cd00228c739ba196c0a1345bb0578568cd753 MANIFEST
|
||||||
|
SHA1 bec3cad1891530bbf11a819cd8648f533ce8eed1 META.json
|
||||||
|
SHA1 9e2aabc6c76c19763efe28c10d4beafb4312f1e8 META.yml
|
||||||
|
SHA1 6f8287182e21f89edcd80bcf4d2dc55dcc3b6001 Makefile.PL
|
||||||
|
SHA1 305c643be06fa1ecf2c753bbb59e3f0076f9af69 README
|
||||||
|
SHA1 70bf2351d9e5f66b43ba4fa4701f161286e11b3e TODO
|
||||||
|
SHA1 d5c5540d71ffd2b2b8c8c8e9d8cb8bc6630d7d31 lib/Acme/GuessNumber.pm
|
||||||
|
SHA1 525f414c7a0aadc61240a4b0959ca2cda7514c75 t/00-signature.t
|
||||||
|
SHA1 43166ff7bf57d5c5b62efa507296f680a8aff524 t/01-basic.t
|
||||||
|
SHA1 b85626024d610808bd0909989dcfb9fb20a40485 t/99-pod.t
|
||||||
|
-----BEGIN PGP SIGNATURE-----
|
||||||
|
Version: GnuPG v1.4.10 (GNU/Linux)
|
||||||
|
|
||||||
|
iEYEARECAAYFAlGL/hUACgkQi9gubzC5S1zydQCghQgL3f9k2UsXx8+0HxGca2yZ
|
||||||
|
XzQAn0xLibUyvJrvNM7QH9SzdHQvGmsX
|
||||||
|
=yltL
|
||||||
|
-----END PGP SIGNATURE-----
|
5
TODO
Normal file
5
TODO
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
Acme-GuessNumber TODO list
|
||||||
|
|
||||||
|
- Add the jackpots for the game winners, of course.
|
||||||
|
- Add the worldwide ranking for the top 10 winners through internet
|
||||||
|
connection.
|
170
lib/Acme/GuessNumber.pm
Normal file
170
lib/Acme/GuessNumber.pm
Normal file
@ -0,0 +1,170 @@
|
|||||||
|
# Acme::GuessNumber - Number guessing game robot
|
||||||
|
|
||||||
|
# Copyright (c) 2007-2008 imacat. All rights reserved. This program is free
|
||||||
|
# software; you can redistribute it and/or modify it under the same terms
|
||||||
|
# as Perl itself.
|
||||||
|
# First written: 2007-05-19
|
||||||
|
|
||||||
|
package Acme::GuessNumber;
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
use base qw(Exporter);
|
||||||
|
use vars qw($VERSION @EXPORT @EXPORT_OK);
|
||||||
|
$VERSION = 0.04;
|
||||||
|
@EXPORT = qw(guess_number HURRY_UP);
|
||||||
|
@EXPORT_OK = @EXPORT;
|
||||||
|
# Prototype declaration
|
||||||
|
sub guess_number($;$);
|
||||||
|
|
||||||
|
use vars qw(@GUESSMSGS @RESTMSGS);
|
||||||
|
@GUESSMSGS = split /\n/, << "EOT";
|
||||||
|
%d?
|
||||||
|
Is it %d?
|
||||||
|
It must be %d!
|
||||||
|
EOT
|
||||||
|
@RESTMSGS = split /\n/, << "EOT";
|
||||||
|
Any cigarette?
|
||||||
|
I'm feeling lucky tonight
|
||||||
|
I'm getting a little tired
|
||||||
|
It's killing me
|
||||||
|
I'm gonna faint
|
||||||
|
EOT
|
||||||
|
|
||||||
|
# HURRY_UP: Speed up the game
|
||||||
|
use constant HURRY_UP => 1;
|
||||||
|
|
||||||
|
# guess_number: Play the game
|
||||||
|
sub guess_number($;$) {
|
||||||
|
local ($_, %_);
|
||||||
|
my ($max, $hurry, $to_rest);
|
||||||
|
($max, $hurry) = @_;
|
||||||
|
$hurry = 0 if @_ < 2;
|
||||||
|
|
||||||
|
# Play the game
|
||||||
|
$to_rest = 5 + int rand 7 unless $hurry;
|
||||||
|
while (1) {
|
||||||
|
my ($num, $guess);
|
||||||
|
# Generate the number
|
||||||
|
$num = 1 + int rand $max;
|
||||||
|
# Generate the guess
|
||||||
|
$guess = 1 + int rand $max;
|
||||||
|
# Output our guess
|
||||||
|
$_ = sprintf $GUESSMSGS[int rand scalar @GUESSMSGS], $guess;
|
||||||
|
printf "%-40s", "<Player>: $_";
|
||||||
|
# Hit?
|
||||||
|
if ($guess == $num) {
|
||||||
|
print "<Banker>: Jackpot!\n";
|
||||||
|
last;
|
||||||
|
}
|
||||||
|
print "<Banker>: Sorry, it's $num.\n";
|
||||||
|
# We are in a hurry
|
||||||
|
next if $hurry;
|
||||||
|
# Take a little rest
|
||||||
|
if (--$to_rest == 0) {
|
||||||
|
my ($flush, $rest);
|
||||||
|
$flush = $|;
|
||||||
|
$| = 1;
|
||||||
|
# Yell something
|
||||||
|
print " *" . $RESTMSGS[int rand scalar @RESTMSGS] . "* ";
|
||||||
|
$rest = 3 + int rand 4;
|
||||||
|
while ($rest-- > 0) {
|
||||||
|
print ".";
|
||||||
|
sleep 1;
|
||||||
|
}
|
||||||
|
print "\n";
|
||||||
|
$| = $flush;
|
||||||
|
# Reset the rest counter
|
||||||
|
$to_rest = 5 + int rand 7;
|
||||||
|
# Take a breath
|
||||||
|
} else {
|
||||||
|
sleep 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
|
||||||
|
__END__
|
||||||
|
|
||||||
|
=head1 NAME
|
||||||
|
|
||||||
|
Acme::GuessNumber - An automatic number guessing game robot
|
||||||
|
|
||||||
|
=head1 SYNOPSIS
|
||||||
|
|
||||||
|
use Acme::GuessNumber;
|
||||||
|
guess_number(25);
|
||||||
|
# If you are in a hurry
|
||||||
|
guess_number(25, HURRY_UP);
|
||||||
|
|
||||||
|
=head1 DESCRIPTION
|
||||||
|
|
||||||
|
Many people have this experience: You sit before a gambling table. You
|
||||||
|
keep placing the bet. You know the Goddess will finally smile at you.
|
||||||
|
You just don't know when. You have only to wait. As the time goes by,
|
||||||
|
the bets in your hand become fewer and fewer. You feel the time goes
|
||||||
|
slower and slower. This lengthy waiting process become painfully long,
|
||||||
|
like a train running straightforwardly into hell. You start feeling
|
||||||
|
your whole life is a misery, as the jackpot never comes...
|
||||||
|
|
||||||
|
But, hey, why so painfully waiting? The Goddess will finally smile at
|
||||||
|
you, right? So, why not put this painly waiting process to a computer
|
||||||
|
program? Yes. That is the whole idea, the greatest invention in the
|
||||||
|
century: An automatic gambler! There is no secret. It is simple
|
||||||
|
brute-force. It never-endingly runs toward your final jackpot. You can
|
||||||
|
go for your life: sleep, eat, work. When you finally came back you
|
||||||
|
win. With it, the hell of gambling is history!
|
||||||
|
|
||||||
|
Remember, that the computer is never affected by emotions, luck,
|
||||||
|
everything. It never feel anxious or depressed. It simply, faithfully,
|
||||||
|
determinedly runs the probability until the jackpot. As you know,
|
||||||
|
the anxiety and depression are the enemy of the games, while a
|
||||||
|
simple, faithful, and determined mind is the only path to the jackpot.
|
||||||
|
This makes a computer a perfect gambler than an ordinary human being.
|
||||||
|
|
||||||
|
=head1 FUNCTIONS
|
||||||
|
|
||||||
|
=over
|
||||||
|
|
||||||
|
=item guess_number($max, $hurry)
|
||||||
|
|
||||||
|
Start playing. Give it a maximum range of the numbers, and the program
|
||||||
|
will play the number guessing game for you. If you are in a hurry, you
|
||||||
|
can also speed it up by setting $hurry = 1, or use the exported symbol
|
||||||
|
HURRY_UP.
|
||||||
|
|
||||||
|
=back
|
||||||
|
|
||||||
|
=head1 NOTES
|
||||||
|
|
||||||
|
=head2 It's so funny! May I join the game?
|
||||||
|
|
||||||
|
No. That's the whole point of acme. Human beings are never acme. Only
|
||||||
|
machines are acme. So, in order for everything to be acme, no human
|
||||||
|
being is allowed. This ensures that when guessing, the player
|
||||||
|
is never bothered by all kinds of feelings: anxiety, depression,
|
||||||
|
anything. It just guesses, precisely. Nothing more.
|
||||||
|
|
||||||
|
=head1 BUGS
|
||||||
|
|
||||||
|
No. This can't possiblely be wrong. This is brute-force. It will try
|
||||||
|
until it succeeds. Nothing can stop it from success. You always win!
|
||||||
|
You will always win! The Goddess will always smile at you!
|
||||||
|
|
||||||
|
=head1 SEE ALSO
|
||||||
|
|
||||||
|
None.
|
||||||
|
|
||||||
|
=head1 AUTHOR
|
||||||
|
|
||||||
|
imacat <imacat@mail.imacat.idv.tw>
|
||||||
|
|
||||||
|
=head1 COPYRIGHT
|
||||||
|
|
||||||
|
Copyright (c) 2007-2008 imacat. All rights reserved. This program is free
|
||||||
|
software; you can redistribute it and/or modify it under the same terms
|
||||||
|
as Perl itself.
|
||||||
|
|
||||||
|
=cut
|
0
pm_to_blib
Normal file
0
pm_to_blib
Normal file
22
t/00-signature.t
Executable file
22
t/00-signature.t
Executable file
@ -0,0 +1,22 @@
|
|||||||
|
#!/usr/bin/perl
|
||||||
|
use strict;
|
||||||
|
print "1..1\n";
|
||||||
|
|
||||||
|
if (!-s 'SIGNATURE') {
|
||||||
|
print "ok 1 # skip No signature file found\n";
|
||||||
|
}
|
||||||
|
elsif (!eval { require Module::Signature; 1 }) {
|
||||||
|
print "ok 1 # skip ",
|
||||||
|
"Next time around, consider install Module::Signature, ",
|
||||||
|
"so you can verify the integrity of this distribution.\n";
|
||||||
|
}
|
||||||
|
elsif (!eval { require Socket; Socket::inet_aton('pgp.mit.edu') }) {
|
||||||
|
print "ok 1 # skip Cannot connect to the keyserver\n";
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
(Module::Signature::verify() == Module::Signature::SIGNATURE_OK())
|
||||||
|
or print "not ";
|
||||||
|
print "ok 1 # Valid signature\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
__END__
|
21
t/01-basic.t
Executable file
21
t/01-basic.t
Executable file
@ -0,0 +1,21 @@
|
|||||||
|
#! /usr/bin/perl -w
|
||||||
|
# Basic test suite
|
||||||
|
# Copyright (c) 2007 imacat. All rights reserved. This program is free
|
||||||
|
# software; you can redistribute it and/or modify it under the same terms
|
||||||
|
# as Perl itself.
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
use Test;
|
||||||
|
|
||||||
|
BEGIN { plan tests => 1 }
|
||||||
|
|
||||||
|
use vars qw($r);
|
||||||
|
|
||||||
|
$r = eval {
|
||||||
|
use Acme::GuessNumber;
|
||||||
|
guess_number(25, HURRY_UP);
|
||||||
|
return 1;
|
||||||
|
};
|
||||||
|
# 1
|
||||||
|
ok($r, 1);
|
5
t/99-pod.t
Executable file
5
t/99-pod.t
Executable file
@ -0,0 +1,5 @@
|
|||||||
|
#!/usr/bin/perl
|
||||||
|
use Test::More;
|
||||||
|
eval "use Test::Pod 1.00";
|
||||||
|
plan skip_all => "Test::Pod 1.00 required for testing POD" if $@;
|
||||||
|
all_pod_files_ok();
|
Loading…
Reference in New Issue
Block a user