summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xadmin/nt/dist-build/build-zips.sh54
-rw-r--r--admin/nt/dist-build/emacs.nsi71
-rw-r--r--etc/images/splash.bmpbin0 -> 310494 bytes
3 files changed, 114 insertions, 11 deletions
diff --git a/admin/nt/dist-build/build-zips.sh b/admin/nt/dist-build/build-zips.sh
index fb44c31c70d..138ef4d4699 100755
--- a/admin/nt/dist-build/build-zips.sh
+++ b/admin/nt/dist-build/build-zips.sh
@@ -22,11 +22,10 @@ function git_up {
echo Making git worktree for Emacs $VERSION
cd $HOME/emacs-build/git/emacs-$MAJOR_VERSION
git pull
- git worktree add ../emacs-$BRANCH emacs-$BRANCH
+ git worktree add ../$BRANCH $BRANCH
- cd ../emacs-$BRANCH
+ cd ../$BRANCH
./autogen.sh
-
}
function build_zip {
@@ -42,15 +41,18 @@ function build_zip {
MSYSTEM=MINGW32
fi
+ ## Clean the install location because we use it twice
+ rm -rf $HOME/emacs-build/install/emacs-$VERSION/$ARCH
mkdir --parents $HOME/emacs-build/build/emacs-$VERSION/$ARCH
cd $HOME/emacs-build/build/emacs-$VERSION/$ARCH
export PKG_CONFIG_PATH=$PKG
- ../../../git/emacs-$BRANCH/configure \
+ ../../../git/$BRANCH/configure \
--without-dbus \
--host=$HOST --without-compress-install \
+ $CACHE \
CFLAGS="-O2 -static -g3"
- make -j 8 install \
+ make -j 16 install \
prefix=$HOME/emacs-build/install/emacs-$VERSION/$ARCH
cd $HOME/emacs-build/install/emacs-$VERSION/$ARCH
cp $HOME/emacs-build/deps/libXpm/$ARCH/libXpm-noX4.dll bin
@@ -62,17 +64,28 @@ function build_zip {
mv emacs-$VERSION-$ARCH.zip ~/emacs-upload
}
+function build_installer {
+ ARCH=$1
+ cd $HOME/emacs-build/install/emacs-$VERSION
+ echo Calling makensis in `pwd`
+ cp ../../git/$BRANCH/admin/nt/dist-build/emacs.nsi .
+ makensis -DARCH=$ARCH -DEMACS_VERSION=$ACTUAL_VERSION \
+ -DOUT_VERSION=$VERSION emacs.nsi
+ rm emacs.nsi
+ mv Emacs-$ARCH-$VERSION-installer.exe ~/emacs-upload
+}
-##set -o xtrace
set -o errexit
SNAPSHOT=
+CACHE=
+BUILD=1
BUILD_32=1
BUILD_64=1
GIT_UP=0
-while getopts "36ghsV:" opt; do
+while getopts "36ghsiV:" opt; do
case $opt in
3)
BUILD_32=1
@@ -90,6 +103,9 @@ while getopts "36ghsV:" opt; do
BUILD_64=0
GIT_UP=1
;;
+ i)
+ BUILD=1
+ ;;
V)
VERSION=$OPTARG
;;
@@ -111,7 +127,6 @@ done
if [ -z $VERSION ];
then
- echo "doing version thing"
VERSION=`
sed -n 's/^AC_INIT(GNU Emacs,[ ]*\([^ ,)]*\).*/\1/p' < ../../../configure.ac
`
@@ -124,7 +139,16 @@ then
fi
MAJOR_VERSION="$(echo $VERSION | cut -d'.' -f1)"
-BRANCH=$VERSION
+
+if [ -z $SNAPSHOT ];
+then
+ BRANCH=emacs-$VERSION
+else
+ BRANCH=master
+ CACHE=-C
+fi
+
+ACTUAL_VERSION=$VERSION
VERSION=$VERSION$SNAPSHOT
if (($GIT_UP))
@@ -134,12 +158,20 @@ fi
if (($BUILD_64))
then
- build_zip x86_64 /mingw64/lib/pkgconfig x86_64-w64-mingw32
+ if (($BUILD))
+ then
+ build_zip x86_64 /mingw64/lib/pkgconfig x86_64-w64-mingw32
+ fi
+ build_installer x86_64
fi
## Do the 64 bit build first, because we reset some environment
## variables during the 32 bit which will break the build.
if (($BUILD_32))
then
- build_zip i686 /mingw32/lib/pkgconfig i686-w64-mingw32
+ if (($BUILD))
+ then
+ build_zip i686 /mingw32/lib/pkgconfig i686-w64-mingw32
+ fi
+ build_installer i686
fi
diff --git a/admin/nt/dist-build/emacs.nsi b/admin/nt/dist-build/emacs.nsi
new file mode 100644
index 00000000000..947ac9ac181
--- /dev/null
+++ b/admin/nt/dist-build/emacs.nsi
@@ -0,0 +1,71 @@
+!include MUI2.nsh
+
+
+Outfile "Emacs-${ARCH}-${OUT_VERSION}-installer.exe"
+
+
+
+InstallDir "$DESKTOP\Emacs-${EMACS_VERSION}"
+SetCompressor /solid lzma
+
+
+Var StartMenuFolder
+
+
+!define MUI_WELCOMEPAGE_TITLE "Emacs"
+!define MUI_WELCOMEPAGE_TITLE_3LINES
+!define MUI_WELCOMEPAGE_TEXT "Welcome to Emacs -- the editor of a lifetime."
+
+!define MUI_WELCOMEFINISHPAGE_BITMAP "${ARCH}\share\emacs\${EMACS_VERSION}\etc\images\splash.bmp"
+
+!insertmacro MUI_PAGE_WELCOME
+
+
+!define MUI_LICENSEPAGE_TEXT_TOP "The GNU General Public License"
+!insertmacro MUI_PAGE_LICENSE "${ARCH}\share\emacs\${EMACS_VERSION}\lisp\COPYING"
+
+!insertmacro MUI_PAGE_DIRECTORY
+!insertmacro MUI_PAGE_INSTFILES
+
+!insertmacro MUI_PAGE_STARTMENU Application $StartMenuFolder
+
+!insertmacro MUI_UNPAGE_CONFIRM
+!insertmacro MUI_UNPAGE_INSTFILES
+
+!insertmacro MUI_LANGUAGE "English"
+Name Emacs-${EMACS_VERSION}
+
+Section
+
+ SetOutPath $INSTDIR
+
+ File /r ${ARCH}
+ # define uninstaller name
+ WriteUninstaller $INSTDIR\Uninstall.exe
+
+ !insertmacro MUI_STARTMENU_WRITE_BEGIN Application
+ ;Create shortcuts
+ CreateDirectory "$SMPROGRAMS\$StartMenuFolder"
+ CreateShortcut "$SMPROGRAMS\$StartMenuFolder\Uninstall.lnk" "$INSTDIR\Uninstall.exe"
+
+ !insertmacro MUI_STARTMENU_WRITE_END
+ CreateShortCut "$SMPROGRAMS\$StartMenuFolder\Emacs.lnk" "$INSTDIR\${ARCH}\bin\runemacs.exe"
+SectionEnd
+
+
+# create a section to define what the uninstaller does.
+# the section will always be named "Uninstall"
+Section "Uninstall"
+
+ # Always delete uninstaller first
+ Delete "$INSTDIR\Uninstall.exe"
+
+ # now delete installed directory
+ RMDir /r "$INSTDIR\${ARCH}"
+ RMDir "$INSTDIR"
+
+ !insertmacro MUI_STARTMENU_GETFOLDER Application $StartMenuFolder
+
+ Delete "$SMPROGRAMS\$StartMenuFolder\Uninstall.lnk"
+ RMDir "$SMPROGRAMS\$StartMenuFolder"
+SectionEnd
diff --git a/etc/images/splash.bmp b/etc/images/splash.bmp
new file mode 100644
index 00000000000..1e8332665e1
--- /dev/null
+++ b/etc/images/splash.bmp
Binary files differ