From 6dc5a72ca694a53d34f46b741e79631f85ad6ecc Mon Sep 17 00:00:00 2001 From: Yevgen Muntyan <17531749+muntyan@users.noreply.github.com> Date: Thu, 23 Sep 2010 03:32:21 -0700 Subject: [PATCH] Windows installer --- Makefile.am | 14 ++- configure.ac | 32 ++++- doc/man-medit.t2t | 2 +- doc/man-medit.t2t.in | 2 +- doc/medit.1 | 2 +- moo/medit-app/medit.rc.in | 2 +- moo/mooapp/mooapp-info.h | 4 +- plat/win32/gtk-win/Makefile | 14 +-- plat/win32/gtk-win/copymedit.sh | 115 ------------------ .../extra/medit-data/etc/gtk-2.0/gtkrc | 1 + plat/win32/installer.iss.in | 55 +++++++++ plat/win32/mingw-configure | 23 +++- 12 files changed, 126 insertions(+), 140 deletions(-) delete mode 100755 plat/win32/gtk-win/copymedit.sh create mode 100644 plat/win32/installer.iss.in diff --git a/Makefile.am b/Makefile.am index b6f095df..893fa3a1 100644 --- a/Makefile.am +++ b/Makefile.am @@ -17,8 +17,18 @@ EXTRA_DIST += \ tools/glade2c.py \ tools/xml2h.py -CLEANFILES = configargs.h - if MOO_DEV_MODE DISTCHECK_CONFIGURE_FLAGS = MAKEFLAGS=-j2 endif + +CLEANFILES = + +if MOO_OS_WIN32 +CLEANFILES += plat/win32/installer.iss +plat/win32/installer.iss: $(top_srcdir)/plat/win32/installer.iss.in $(top_builddir)/config.status + $(MKDIR_P) plat/win32 + cd $(top_builddir) && ./config.status --file=plat/win32/installer.iss +installer: plat/win32/installer.iss + $(MAKE) $(AM_MAKEFLAGS) install + $(MEDIT_INNO_COMPILER) plat/win32/installer.iss +endif diff --git a/configure.ac b/configure.ac index a9ace43a..f1955f99 100644 --- a/configure.ac +++ b/configure.ac @@ -8,6 +8,8 @@ m4_define([_moo_version_],[_moo_major_version_._moo_minor_version_._moo_micro_ve m4_if([_moo_version_suffix_],[],[m4_define([_moo_display_version_],[_moo_version_])],[m4_define([_moo_display_version_],[_moo_version_-_moo_version_suffix_])]) +m4_define([_moo_website_],[http://mooedit.sourceforge.net/]) +m4_define([_moo_web_contact_],[http://mooedit.sourceforge.net/contact.html]) m4_define([_moo_email_],[emuntyan@sourceforge.net]) m4_define([_moo_copyright_],[2004-2010 Yevgen Muntyan <_moo_email_>]) @@ -17,7 +19,7 @@ AC_GNU_SOURCE AC_CONFIG_MACRO_DIR([m4]) AC_SUBST(ACLOCAL_FLAGS) -AM_INIT_AUTOMAKE([1.11 silent-rules foreign dist-bzip2 dist-zip no-dist-gzip]) +AM_INIT_AUTOMAKE([1.11 silent-rules foreign dist-bzip2 no-dist-gzip]) # LT_INIT([disable-shared]) MOO_MAJOR_VERSION=_moo_major_version_ @@ -28,9 +30,12 @@ MOO_MODULE_MINOR_VERSION=_moo_module_minor_version_ MOO_VERSION=_moo_version_ MOO_DISPLAY_VERSION=_moo_display_version_ MOO_EMAIL="_moo_email_" +MOO_WEBSITE="_moo_website_" +MOO_WEB_CONTACT="_moo_web_contact_" MOO_COPYRIGHT="_moo_copyright_" MOO_PACKAGE_NAME=moo AC_SUBST(MOO_EMAIL) +AC_SUBST(MOO_WEBSITE) AC_SUBST(MOO_DISPLAY_VERSION) AC_SUBST(MOO_COPYRIGHT) @@ -76,11 +81,6 @@ AC_DEFINE(MOO_BUILD_EDIT,[1],[MOO_BUILD_EDIT]) AC_DEFINE(MOO_BUILD_LUA,[1],[MOO_BUILD_LUA]) AC_DEFINE(MOO_BUILD_UTILS,[1],[MOO_BUILD_UTILS]) -AM_CONDITIONAL(MOO_BUILD_CTAGS, [$MOO_OS_UNIX]) -if $MOO_OS_UNIX; then - AC_DEFINE(MOO_BUILD_CTAGS, 1, [build ctags plugin]) -fi - AC_DEFINE_UNQUOTED(MOO_VERSION,["$MOO_VERSION"],[MOO_VERSION]) AC_DEFINE_UNQUOTED(MOO_DISPLAY_VERSION,["$MOO_DISPLAY_VERSION"],[MOO_DISPLAY_VERSION]) AC_DEFINE_UNQUOTED(MOO_MAJOR_VERSION,[$MOO_MAJOR_VERSION],[MOO_MAJOR_VERSION]) @@ -95,9 +95,29 @@ AC_DEFINE_UNQUOTED(MOO_MODULE_MINOR_VERSION,[$MOO_MODULE_MINOR_VERSION],[MOO_MOD AC_DEFINE_UNQUOTED(MOO_EMAIL,["$MOO_EMAIL"],MOO_EMAIL) AC_DEFINE_UNQUOTED(PACKAGE_BUGREPORT,["$PACKAGE_BUGREPORT"],PACKAGE_BUGREPORT) AC_DEFINE_UNQUOTED(MOO_COPYRIGHT,["$MOO_COPYRIGHT"],MOO_COPYRIGHT) +AC_DEFINE_UNQUOTED(MOO_WEBSITE,["$MOO_WEBSITE"],MOO_WEBSITE) +AC_DEFINE_UNQUOTED(MOO_WEB_CONTACT,["$MOO_WEB_CONTACT"],MOO_WEB_CONTACT) MOO_AC_CHECK_OS +AM_CONDITIONAL(MOO_BUILD_CTAGS, [$MOO_OS_UNIX]) +if $MOO_OS_UNIX; then + AC_DEFINE(MOO_BUILD_CTAGS, 1, [build ctags plugin]) +fi + +if $MOO_OS_WIN32; then + MEDIT_WIN32_APP_UID="7F9F899F-EE8A-47F0-9981-8C525AF78E4D" + AC_SUBST(MEDIT_WIN32_APP_UID) + MEDIT_INNO_TOP_SRCDIR="Z:`cd $srcdir && pwd`" + MEDIT_INNO_TOP_BUILDDIR="Z:`pwd`" + MEDIT_INNO_INSTDIR="Z:`cd $prefix && pwd`" + MEDIT_INNO_COMPILER='wine "c:\\program files\\inno setup 5\\ISCC.exe"' + AC_SUBST(MEDIT_INNO_TOP_SRCDIR) + AC_SUBST(MEDIT_INNO_TOP_BUILDDIR) + AC_SUBST(MEDIT_INNO_INSTDIR) + AC_SUBST(MEDIT_INNO_COMPILER) +fi + AC_ARG_ENABLE(install-hooks, AC_HELP_STRING([--enable-install-hooks],[run gtk-update-icon-cache during 'make install']),[ MOO_ENABLE_INSTALL_HOOKS="$enable_install_hooks" diff --git a/doc/man-medit.t2t b/doc/man-medit.t2t index 4a777f64..ceacf29e 100644 --- a/doc/man-medit.t2t +++ b/doc/man-medit.t2t @@ -92,7 +92,7 @@ to open a file (e.g. for inverse DVI search). = CONTACT = -http://mooedit.sourceforge.net/contact.html +@MOO_WEB_CONTACT@ = AUTHOR = diff --git a/doc/man-medit.t2t.in b/doc/man-medit.t2t.in index dc2fef84..ecdf8314 100644 --- a/doc/man-medit.t2t.in +++ b/doc/man-medit.t2t.in @@ -92,7 +92,7 @@ to open a file (e.g. for inverse DVI search). = CONTACT = -http://mooedit.sourceforge.net/contact.html +@MOO_WEB_CONTACT@ = AUTHOR = diff --git a/doc/medit.1 b/doc/medit.1 index a2e760d4..786a1099 100644 --- a/doc/medit.1 +++ b/doc/medit.1 @@ -99,7 +99,7 @@ to open a file (e.g. for inverse DVI search). .SH CONTACT .P -http://mooedit.sourceforge.net/contact.html +@MOO_WEB_CONTACT@ .SH AUTHOR .P diff --git a/moo/medit-app/medit.rc.in b/moo/medit-app/medit.rc.in index 8ab3d61b..bc63c6d4 100644 --- a/moo/medit-app/medit.rc.in +++ b/moo/medit-app/medit.rc.in @@ -15,7 +15,7 @@ VS_VERSION_INFO VERSIONINFO BEGIN BLOCK "040904B0" BEGIN - VALUE "CompanyName", "http://mooedit.sourceforge.net/" + VALUE "CompanyName", "@MOO_WEBSITE@" VALUE "FileDescription", "medit" VALUE "FileVersion", "@MOO_MAJOR_VERSION@.@MOO_MINOR_VERSION@.@MOO_MICRO_VERSION@.0" VALUE "InternalName", "medit" diff --git a/moo/mooapp/mooapp-info.h b/moo/mooapp/mooapp-info.h index 3dc8aa9e..c295e33f 100644 --- a/moo/mooapp/mooapp-info.h +++ b/moo/mooapp/mooapp-info.h @@ -20,7 +20,7 @@ #define MOO_APP_FULL_NAME "medit" #define MOO_APP_DESCRIPTION _("medit is a text editor") #define MOO_APP_LOGO "medit" -#define MOO_APP_WEBSITE "http://mooedit.sourceforge.net/" -#define MOO_APP_WEBSITE_LABEL "http://mooedit.sourceforge.net/" +#define MOO_APP_WEBSITE MOO_WEBSITE +#define MOO_APP_WEBSITE_LABEL MOO_WEBSITE #endif /* MOO_APP_INFO_H */ diff --git a/plat/win32/gtk-win/Makefile b/plat/win32/gtk-win/Makefile index c7ad9b5e..a22d5873 100644 --- a/plat/win32/gtk-win/Makefile +++ b/plat/win32/gtk-win/Makefile @@ -15,16 +15,14 @@ build-data: check-make build: build-gtk build-data bdist-en: - rm -fr $(mgwdestdir)/medit-en - $(mgwdir)/copyuser.sh --en $(mgwtargetdir) $(mgwdestdir)/medit-en - $(mgwdir)/copymedit.sh --en $(mgwtargetdir) $(mgwdestdir)/medit-en + rm -fr $(mgwdestdir)-en + $(mgwdir)/copyuser.sh --en $(mgwtargetdir) $(mgwdestdir)-en bdist: - rm -fr $(mgwdestdir)/medit - $(mgwdir)/copyuser.sh $(mgwtargetdir) $(mgwdestdir)/medit - $(mgwdir)/copymedit.sh $(mgwtargetdir) $(mgwdestdir)/medit + rm -fr $(mgwdestdir) + $(mgwdir)/copyuser.sh $(mgwtargetdir) $(mgwdestdir) -bdist-full: bdist-en bdist +bdist-all: bdist-en bdist clean: - rm -rf $(mgwtargetdir) $(mgwdestdir) + rm -rf $(mgwtargetdir) $(mgwdestdir) $(mgwdestdir)-en diff --git a/plat/win32/gtk-win/copymedit.sh b/plat/win32/gtk-win/copymedit.sh deleted file mode 100755 index fadf9d37..00000000 --- a/plat/win32/gtk-win/copymedit.sh +++ /dev/null @@ -1,115 +0,0 @@ -#! /bin/sh - -export mgwdir=`dirname $0` -. $mgwdir/config.sh || exit 1 - -usage() { - echo "Usage: copymedit.sh [--en] src dest" - exit 1 -} - -en_only=false - -for arg; do - case "$arg" in - -h|--help) - usage - ;; - --en) - en_only=true - shift - ;; - -*) - usage - ;; - *) - break - ;; - esac -done - -srcdir="$1" -dstdir="$2" - -{ [ -n "$srcdir" ] && [ -n "$dstdir" ] ; } || usage -[ -e "$srcdir" ] || { echo "Directory '$srcdir' doesn't exist"; exit 1; } -[ -d "$srcdir" ] || { echo "'$srcdir' is not a directory"; exit 1; } - -srcdir=`cd $srcdir && pwd` - -mkdir -p "$dstdir" || exit 1 -dstdir=`cd $dstdir && pwd` - -do_or_die() { - echo "$@" - "$@" || exit 1 -} - -bin_files=' -medit.exe -' - -lib_files=' -medit-1 -' - -share_files=' -doc/medit-1 -medit-1 -' - -lc_modules=' -medit-1 -medit-1-gsv -' - -copy_files_from_dir() { - subdir=$1 - shift - cd $srcdir/$subdir || exit 1 - for f in $@; do - subsubdir=`dirname $f` - dstsubdir="$dstdir/$subdir/$subsubdir" - if [ "$subsubdir" = "." ]; then - dstsubdir="$dstdir/$subdir" - fi - if [ ! -d "$dstsubdir" ]; then - mkdir -p "$dstsubdir" || exit 1 - fi - echo " -- $dstsubdir/`basename $f`" - if [ -d $f ]; then - cp -R $f "$dstsubdir/" || exit 1 - else - cp -l $f "$dstsubdir/" || exit 1 - fi - done -} - -copy_files() { - copy_files_from_dir bin $bin_files - #copy_files_from_dir lib $lib_files - copy_files_from_dir share $share_files -} - -copy_locale() { - cd $srcdir/share/locale || exit 1 - for locale in *; do - if [ -d $locale ]; then - mkdir -p "$dstdir/share/locale/$locale/LC_MESSAGES" || exit 1 - for module in $lc_modules; do - mo=$locale/LC_MESSAGES/$module.mo - if [ -f $mo ]; then - echo " -- $dstdir/share/locale/$mo" - cp -l $mo "$dstdir/share/locale/$mo" || exit 1 - fi - done - fi - done -} - -copy_files -if ! $en_only; then - copy_locale -fi - -# -%- indent-width:2 -%- diff --git a/plat/win32/gtk-win/extra/medit-data/etc/gtk-2.0/gtkrc b/plat/win32/gtk-win/extra/medit-data/etc/gtk-2.0/gtkrc index 57959648..757d0f80 100644 --- a/plat/win32/gtk-win/extra/medit-data/etc/gtk-2.0/gtkrc +++ b/plat/win32/gtk-win/extra/medit-data/etc/gtk-2.0/gtkrc @@ -7,6 +7,7 @@ gtk-entry-select-on-focus = 1 gtk-label-select-on-focus = 1 gtk-show-input-method-menu = 1 gtk-show-unicode-menu = 1 +gtk-toolbar-style = icons # gtk-icon-theme-name = "Tango" # gtk-font-name = "Segoe UI 9" diff --git a/plat/win32/installer.iss.in b/plat/win32/installer.iss.in new file mode 100644 index 00000000..5f7dc2d7 --- /dev/null +++ b/plat/win32/installer.iss.in @@ -0,0 +1,55 @@ +[Setup] +AppId=@MEDIT_WIN32_APP_UID@ +AppName="medit" +AppVersion="@MOO_DISPLAY_VERSION@" +;AppVerName="medit @MOO_DISPLAY_VERSION@" +AppPublisher="Yevgen Muntyan" +AppPublisherURL="@MOO_WEBSITE@" +AppSupportURL="@MOO_WEBSITE@" +AppUpdatesURL="@MOO_WEBSITE@" +AppContact="@MOO_EMAIL@" +AppCopyright="@MOO_COPYRIGHT@" +DefaultDirName={pf}\medit +DefaultGroupName="medit" +AllowNoIcons=yes +;LicenseFile="@MEDIT_INNO_TOP_SRCDIR@/COPYING.GPL" +OutputDir="@MEDIT_INNO_TOP_BUILDDIR@" +OutputBaseFilename="medit-@MOO_DISPLAY_VERSION@" +Compression=lzma +SolidCompression=yes +DisableReadyPage=true +ShowLanguageDialog=auto + +[Languages] +Name: "english"; MessagesFile: "compiler:Default.isl" +Name: "basque"; MessagesFile: "compiler:Languages\Basque.isl" +Name: "brazilianportuguese"; MessagesFile: "compiler:Languages\BrazilianPortuguese.isl" +Name: "catalan"; MessagesFile: "compiler:Languages\Catalan.isl" +Name: "czech"; MessagesFile: "compiler:Languages\Czech.isl" +Name: "danish"; MessagesFile: "compiler:Languages\Danish.isl" +Name: "dutch"; MessagesFile: "compiler:Languages\Dutch.isl" +Name: "finnish"; MessagesFile: "compiler:Languages\Finnish.isl" +Name: "french"; MessagesFile: "compiler:Languages\French.isl" +Name: "german"; MessagesFile: "compiler:Languages\German.isl" +Name: "hebrew"; MessagesFile: "compiler:Languages\Hebrew.isl" +Name: "hungarian"; MessagesFile: "compiler:Languages\Hungarian.isl" +Name: "italian"; MessagesFile: "compiler:Languages\Italian.isl" +Name: "japanese"; MessagesFile: "compiler:Languages\Japanese.isl" +Name: "norwegian"; MessagesFile: "compiler:Languages\Norwegian.isl" +Name: "polish"; MessagesFile: "compiler:Languages\Polish.isl" +Name: "portuguese"; MessagesFile: "compiler:Languages\Portuguese.isl" +Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl" +Name: "slovak"; MessagesFile: "compiler:Languages\Slovak.isl" +Name: "slovenian"; MessagesFile: "compiler:Languages\Slovenian.isl" +Name: "spanish"; MessagesFile: "compiler:Languages\Spanish.isl" + +[Files] +Source: "@MEDIT_INNO_INSTDIR@/*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs + +[Icons] +Name: "{group}\medit"; Filename: "{app}\bin\medit.exe" +Name: "{group}\{cm:ProgramOnTheWeb,medit}"; Filename: "@MOO_WEBSITE@" +Name: "{group}\{cm:UninstallProgram,medit}"; Filename: "{uninstallexe}" + +[Run] +Filename: "{app}\bin\medit.exe"; Description: "{cm:LaunchProgram,medit}"; Flags: nowait postinstall skipifsilent diff --git a/plat/win32/mingw-configure b/plat/win32/mingw-configure index 05b3e132..c6be9732 100755 --- a/plat/win32/mingw-configure +++ b/plat/win32/mingw-configure @@ -18,6 +18,17 @@ done export mgwdir=`dirname $0`/gtk-win . $mgwdir/config.sh || exit 1 +en_only=false +if [ "$1" = "--en" ]; then + en_only=true + shift +fi + +destdir=$mgwdestdir +if $en_only; then + destdir=$destdir-en +fi + if [ "$mgwconfig" = "debug" ]; then _def_cflags='-gstabs' else @@ -58,7 +69,13 @@ export PKG_CONFIG_PATH="$mgwtargetdir/lib/pkgconfig" configure_args="--build=i686-pc-linux-gnu --host=i586-pc-mingw32msvc --target=i586-pc-mingw32msvc \ AR=$AR RANLIB=$RANLIB STRIP=$STRIP AS=$AS DLLTOOL=$DLLTOOL OBJDUMP=$OBJDUMP NM=$NM WINDRES=$WINDRES RC=$RC \ INSTALL=`which install-check` \ ---prefix=$mgwtargetdir --enable-silent-rules" +--prefix=$destdir --enable-silent-rules" + +if $en_only; then + moo_nls_flags='--disable-nls' +else + moo_nls_flags= +fi if [ "$mgwconfig" = "debug" ]; then moo_configure_args='--enable-debug' @@ -66,5 +83,5 @@ else moo_configure_args='--enable-dev-mode' fi -echo $srcdir/configure $configure_args $moo_configure_args "$@" -exec $srcdir/configure $configure_args $moo_configure_args "$@" +echo $srcdir/configure $configure_args $moo_configure_args $moo_nls_flags "$@" +exec $srcdir/configure $configure_args $moo_configure_args $moo_nls_flags "$@"