Permalink
Browse files

[perl #34625] [PATCH] make setup on MSWin32

I add a new target 'setup' in the main Makefile.

That's allow the creation of a setup-parrot-x.y.z.exe ('standard' binary
distribution) that contains all parrot install directories and the ICU
shared libraries.

A new script tools/dev/mk_setup.pl creates a script 'parrot.iss' for Inno
Setup .

Courtesy of Fran�ois Perrad <francois.perrad@gadz.org>

Add-ons
- renamed setup target:
  $MAKE win32-inno-installer
- and script:
  tools/dev/mk_inno.pl


git-svn-id: https://svn.parrot.org/parrot/trunk@7787 d31e2699-5ff4-0310-a27c-f18f2fbe73fe
  • Loading branch information...
1 parent 50cacc1 commit a8230651bb58e950ab053cc3fb0ddd81d658a043 Leopold Toetsch committed Apr 6, 2005
Showing with 115 additions and 9 deletions.
  1. +1 −0 MANIFEST
  2. +25 −9 README.win32
  3. +7 −0 config/gen/makefiles/root.in
  4. +82 −0 tools/dev/mk_inno.pl
View
@@ -2972,6 +2972,7 @@ tools/dev/genrpt.pl [devel]
tools/dev/install_files.pl [devel]
tools/dev/lib_deps.pl [devel]
tools/dev/manicheck.pl [devel]
+tools/dev/mk_inno.pl [devel]
tools/dev/mk_manifests.pl [devel]
tools/dev/mk_native_pbc [devel]
tools/dev/nm.pl [devel]
View
@@ -38,8 +38,7 @@ http://download.microsoft.com/download/vc15/Patch/1.52/W95/EN-US/Nmake15.exe
or
ftp://ftp.microsoft.com/Softlib/MSLFILES/nmake15.exe
-MinGW works with its GNU "make" port. It can be downloaded here:
-L<http://prdownloads.sf.net/mingw/mingw32-make-3.80.0-3.exe>
+MinGW works with its GNU "make" (v 3.80) port and its name is 'mingw32-make.exe'.
=item Command Shell
@@ -62,6 +61,18 @@ Configure.pl to use it.
With MinGW32, use icu-2.8-Win32_msvc6.zip .
+=item Inno Setup
+
+Inno Setup is a I<free> installer for Windows programs.
+
+The latest release of Inno Setup at the time of writing is 5.0.8.
+
+The HomePage is on L<http://www.jrsoftware.org/>.
+
+Add the directory to PATH.
+
+ set PATH=%PATH%;C:\Program Files\Inno Setup 5
+
=item Borland C++
XXX
@@ -80,17 +91,15 @@ Microsoft Visual C++ Toolkit instructions here XXX
=item MinGW32 with GCC
-The latest release of MSYS package at the time of writing is 1.0.10,
+The latest release of MinGW package at the time of writing is 3.1.0,
which contains gcc-3.2.3. It can be downloaded here:
-L<http://prdownloads.sf.net/mingw/MSYS-1.0.10.exe>
+L<http://prdownloads.sf.net/mingw/MinGW-3.1.0-1.exe>
The HomePage is on L<http://www.mingw.org/>.
-As Configure.pl extracts configuration from the perl program,
-first build/install perl with MinGW (no binary distribution available).
+With the ActiveState Perl distribution, tell Configure.pl to use gcc :
-See details on L<http://search.cpan.org/dist/perl/README.win32>,
-and source on L<http://www.cpan.org/src/stable.tar.gz>.
+ perl Configure.pl --cc=gcc --icushared="C:\usr\lib\icu\lib\icudata.lib C:\usr\lib\icu\lib\icuuc.lib" --icuheaders="C:\usr\lib\icu\include"
Nota: Use only the ICU binary distribution.
@@ -112,6 +121,13 @@ XXX
$MAKE install
+=head2 Installer
+
+ $MAKE win32-inno-installer
+
+This command creats a setup-parrot-x.y.z.exe that contains all parrot install
+directories.
+
=head2 Usage Hints
XXX
@@ -144,6 +160,6 @@ This document is maintained by XXX Your Name Here XXX.
This document borrows heavily from perl's README.win32.
-Last updated: 23 Jan 2005
+Last updated: 31 March 2005
=cut
@@ -107,6 +107,8 @@ LINTFLAGS2 = $(LINTFLAGS) -ansireserved -retvalother -bitwisesigned
# ex: make LINTOPTS='-posixstrictlibs +posixlibs' lint
LINTOPTS =
+INNO_SETUP = iscc
+
###############################################################################
#
@@ -601,6 +603,7 @@ help :
@echo "Release:"
@echo " release: create a TAR ball."
@echo " rpm: create RPMs."
+ @echo " win32-inno-installer: create MSWin32 setup."
@echo ""
@echo "Examples:"
@echo " hello: 'Hello World' as an executable."
@@ -1335,6 +1338,10 @@ rpms : release
sudo cp parrot.spec /usr/src/*/SPECS
cd /usr/src/*/SPECS ${make_and} sudo rpm -ba parrot.spec
+win32-inno-installer : install
+ $(PERL) tools/dev/mk_inno.pl --version=$(VERSION) --prefix=$(PREFIX)
+ $(INNO_SETUP) /Q parrot.iss
+
###############################################################################
#
# miniparrot targets:
View
@@ -0,0 +1,82 @@
+#! perl -w
+################################################################################
+# Copyright: 2005 The Perl Foundation. All Rights Reserved.
+# $Id$
+################################################################################
+
+=head1 TITLE
+
+tools/dev/mk_inno.pl - Create a script for Inno Setup
+
+=head1 SYNOPSIS
+
+ % perl tools/dev/mk_inno.pl [options]
+
+=head1 DESCRIPTION
+
+=head2 Options
+
+=over 4
+
+=item C<prefix>
+
+The install prefix.
+
+=item C<version>
+
+The parrot version.
+
+=back
+
+=head1 SEE ALSO
+
+http://www.jrsoftware.org/
+
+=cut
+
+################################################################################
+
+my %options = (
+ version => 'x.y.z',
+ prefix => '\usr\local\parrot',
+);
+
+foreach (@ARGV) {
+ if (/^--([^=]+)=(.*)/) {
+ $options{$1} = $2;
+ }
+}
+
+$options{prefix} =~ s/\//\\/g;
+
+open OUT, "> parrot.iss" or die "Can't open parrot.iss";
+
+print OUT qq{
+; generated by tools/dev/mk_setup.pl for the Inno Setup Script Compiler.
+
+[Setup]
+AppName=parrot
+AppVerName=parrot $options{version}
+AppPublisher=The Perl Foundation
+AppPublisherURL=http://www.parrotcode.org/
+AppSupportURL=http://www.parrotcode.org/
+AppUpdatesURL=http://www.parrotcode.org/
+DefaultDirName={pf}\\parrot-$options{version}
+DefaultGroupName=parrot
+AllowNoIcons=yes
+LicenseFile=$options{prefix}\\LICENSES\\Artistic
+OutputDir=.\\
+OutputBaseFilename=setup-parrot-$options{version}
+Compression=lzma
+SolidCompression=yes
+ChangesAssociations=yes
+
+[Files]
+Source: "$options{prefix}\\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs
+
+[Icons]
+Name: "{group}\\{cm:UninstallProgram,parrot}"; Filename: "{uninstallexe}"
+};
+
+close OUT;
+

0 comments on commit a823065

Please sign in to comment.