mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-11-21 06:55:39 +00:00
Compile Windows resources into cygw32 Emacs
This commit is contained in:
parent
f433306af5
commit
1cf1bbd51e
@ -1,3 +1,9 @@
|
||||
2012-12-10 Daniel Colascione <dancol@dancol.org>
|
||||
|
||||
* configure.ac (W32_RES, W32_RES_LINK, WINDRES): Teach the cygw32
|
||||
build how to compile Windows resource files; use these variables
|
||||
to tell src/Makefile.in how and whether to compile resources.
|
||||
|
||||
2012-12-05 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* configure.ac: Handle info/ files with or without ".info" extension.
|
||||
|
10
configure.ac
10
configure.ac
@ -1584,6 +1584,8 @@ AC_SUBST(LIB_STANDARD)
|
||||
HAVE_W32=no
|
||||
W32_OBJ=
|
||||
W32_LIBS=
|
||||
W32_RES=
|
||||
W32_RES_LINK=
|
||||
if test "${with_w32}" != no; then
|
||||
if test "${opsys}" != "cygwin"; then
|
||||
AC_MSG_ERROR([Using w32 with an autotools build is only supported for Cygwin.])
|
||||
@ -1592,13 +1594,21 @@ if test "${with_w32}" != no; then
|
||||
[AC_MSG_ERROR([`--with-w32' was specified, but windows.h
|
||||
cannot be found.])])
|
||||
AC_DEFINE(HAVE_NTGUI, 1, [Define to use native MS Windows GUI.])
|
||||
AC_CHECK_TOOL(WINDRES, [windres],
|
||||
[AC_MSG_ERROR([No resource compiler found.])])
|
||||
W32_OBJ="w32fns.o w32menu.o w32reg.o w32font.o w32term.o"
|
||||
W32_OBJ="$W32_OBJ w32xfns.o w32select.o w32uniscribe.o"
|
||||
W32_LIBS="$W32_LIBS -lkernel32 -luser32 -lgdi32 -lole32 -lcomdlg32"
|
||||
W32_LIBS="$W32_LIBS -lusp10 -lcomctl32 -lwinspool"
|
||||
W32_RES="emacs.res"
|
||||
# Tell the linker that emacs.res is an object (which we compile from
|
||||
# the rc file), not a linker script.
|
||||
W32_RES_LINK="-Wl,-bpe-i386 -Wl,emacs.res"
|
||||
fi
|
||||
AC_SUBST(W32_OBJ)
|
||||
AC_SUBST(W32_LIBS)
|
||||
AC_SUBST(W32_RES)
|
||||
AC_SUBST(W32_RES_LINK)
|
||||
|
||||
if test "${HAVE_W32}" = "yes"; then
|
||||
window_system=w32
|
||||
|
@ -1,3 +1,9 @@
|
||||
2012-12-10 Daniel Colascione <dancol@dancol.org>
|
||||
|
||||
* emacs.rc: Use forward slashes in relative paths in order to
|
||||
avoid complaints from Cygwin. (Forward slashes work perfectly
|
||||
well in the NT build.)
|
||||
|
||||
2012-11-24 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Revert recent change for Bug#8855; see ../src/ChangeLog.
|
||||
|
@ -1,5 +1,5 @@
|
||||
Emacs ICON icons\emacs.ico
|
||||
32649 CURSOR icons\hand.cur
|
||||
Emacs ICON icons/emacs.ico
|
||||
32649 CURSOR icons/hand.cur
|
||||
#ifdef WIN64
|
||||
1 24 "emacs-x64.manifest"
|
||||
#else
|
||||
|
@ -1,3 +1,24 @@
|
||||
2012-12-10 Daniel Colascione <dancol@dancol.org>
|
||||
|
||||
* w32gui.h (hprevinst, lpCmdLine, nCmdShow): Remove unused
|
||||
declarations.
|
||||
|
||||
* w32fns.c (cache_system_info): Initialize the global hinst
|
||||
variable here so various initialization calls DTRT.
|
||||
|
||||
* unexw32.c (hprevinst, lpCmdLine, nCmdShow): Remove unused
|
||||
variables.
|
||||
(hinst): Remove unneeded extern declaration.
|
||||
(_start): Remove initialization of above variables; remove
|
||||
initialization of hinst, as cache_system_info now does that.
|
||||
|
||||
* emacs.c (main): Call cache_system_info early in startup; we
|
||||
previously weren't calling it in Cygwin builds.
|
||||
|
||||
* Makefile.in (ntsource, WINDRES, W32_RES, W#@_RES_LINK): Teach
|
||||
the autoconf build system how to compile a Windows resource file
|
||||
and link it to Emacs.
|
||||
|
||||
2012-12-08 Jan Djärv <jan.h.d@swipnet.se>
|
||||
|
||||
* nsterm.m (fd_handler:): FD_ZERO fds (Bug#13103).
|
||||
|
@ -28,9 +28,11 @@ SHELL = /bin/sh
|
||||
# Here are the things that we expect ../configure to edit.
|
||||
# We use $(srcdir) explicitly in dependencies so as not to depend on VPATH.
|
||||
srcdir = @srcdir@
|
||||
ntsource = $(srcdir)/../nt
|
||||
abs_builddir = @abs_builddir@
|
||||
VPATH = $(srcdir)
|
||||
CC = @CC@
|
||||
WINDRES = @WINDRES@
|
||||
CFLAGS = @CFLAGS@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
@ -266,6 +268,13 @@ W32_OBJ=@W32_OBJ@
|
||||
## --lwinspool if HAVE_W32, else empty.
|
||||
W32_LIBS=@W32_LIBS@
|
||||
|
||||
## emacs.res if HAVE_W32
|
||||
W32_RES=@W32_RES@
|
||||
## If HAVE_W32, compiler arguments for including
|
||||
## the resource file in the binary.
|
||||
## XXX -Wl,-b -Wl,pe-i386 -Wl,emacs.res
|
||||
W32_RES_LINK=@W32_RES_LINK@
|
||||
|
||||
## Empty if !HAVE_X_WINDOWS
|
||||
## xfont.o ftfont.o xftfont.o ftxfont.o if HAVE_XFT
|
||||
## xfont.o ftfont.o ftxfont.o if HAVE_FREETYPE
|
||||
@ -328,7 +337,6 @@ ALL_OBJC_CFLAGS=$(ALL_CFLAGS) $(GNU_OBJC_CFLAGS)
|
||||
@$(MKDEPDIR)
|
||||
$(CC) -c $(CPPFLAGS) $(ALL_OBJC_CFLAGS) $<
|
||||
|
||||
|
||||
## lastfile must follow all files whose initialized data areas should
|
||||
## be dumped as pure by dump-emacs.
|
||||
base_obj = dispnew.o frame.o scroll.o xdisp.o menu.o $(XMENU_OBJ) window.o \
|
||||
@ -462,9 +470,11 @@ $(obj) $(otherobj): globals.h
|
||||
$(lib)/libgnu.a: $(config_h)
|
||||
cd $(lib) && $(MAKE) libgnu.a
|
||||
|
||||
temacs$(EXEEXT): $(START_FILES) stamp-oldxmenu $(obj) $(otherobj) $(lib)/libgnu.a
|
||||
temacs$(EXEEXT): $(START_FILES) stamp-oldxmenu $(obj) $(otherobj) \
|
||||
$(lib)/libgnu.a $(W32_RES)
|
||||
$(CC) $(LD_FIRSTFLAG) $(ALL_CFLAGS) $(TEMACS_LDFLAGS) $(TEMACS_LDFLAGS2) \
|
||||
-o temacs $(START_FILES) $(obj) $(otherobj) $(lib)/libgnu.a $(LIBES)
|
||||
-o temacs $(START_FILES) $(obj) $(otherobj) $(lib)/libgnu.a $(LIBES) \
|
||||
$(W32_RES_LINK)
|
||||
test "$(CANNOT_DUMP)" = "yes" || \
|
||||
test "X$(PAXCTL)" = X || $(PAXCTL) -r temacs$(EXEEXT)
|
||||
|
||||
@ -505,11 +515,14 @@ $(OLDXMENU): $(OLDXMENU_TARGET)
|
||||
|
||||
doc.o: buildobj.h
|
||||
|
||||
emacs.res: $(ntsource)/emacs.rc \
|
||||
$(ntsource)/icons/emacs.ico \
|
||||
$(ntsource)/emacs-x86.manifest
|
||||
$(WINDRES) -O COFF -o $@ $(ntsource)/emacs.rc
|
||||
|
||||
ns-app: emacs$(EXEEXT)
|
||||
cd ../nextstep && $(MAKE) $(MFLAGS) all
|
||||
|
||||
|
||||
.PHONY: mostlyclean clean bootstrap-clean distclean maintainer-clean
|
||||
.PHONY: versionclean extraclean frc
|
||||
|
||||
|
@ -40,6 +40,7 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
|
||||
#if defined WINDOWSNT || defined HAVE_NTGUI
|
||||
#include "w32select.h"
|
||||
#include "w32font.h"
|
||||
#include "w32common.h"
|
||||
#endif
|
||||
|
||||
#if defined HAVE_NTGUI && defined CYGWIN
|
||||
@ -720,6 +721,13 @@ main (int argc, char **argv)
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined WINDOWSNT || defined HAVE_NTGUI
|
||||
/* Set global variables used to detect Windows version. Do this as
|
||||
early as possible. (unexw32.c calls this function as well, but
|
||||
the additional call here is harmless.) */
|
||||
cache_system_info ();
|
||||
#endif
|
||||
|
||||
#ifdef RUN_TIME_REMAP
|
||||
if (initialized)
|
||||
run_time_remap (argv[0]);
|
||||
|
@ -85,13 +85,6 @@ DWORD_PTR extra_bss_size_static = 0;
|
||||
|
||||
PIMAGE_SECTION_HEADER heap_section;
|
||||
|
||||
#ifdef HAVE_NTGUI
|
||||
extern HINSTANCE hinst;
|
||||
HINSTANCE hprevinst = NULL;
|
||||
LPSTR lpCmdLine = "";
|
||||
int nCmdShow = 0;
|
||||
#endif /* HAVE_NTGUI */
|
||||
|
||||
/* Startup code for running on NT. When we are running as the dumped
|
||||
version, we need to bootstrap our heap and .bss section into our
|
||||
address space before we can actually hand off control to the startup
|
||||
@ -121,15 +114,6 @@ _start (void)
|
||||
/* Prevent Emacs from being locked up (eg. in batch mode) when
|
||||
accessing devices that aren't mounted (eg. removable media drives). */
|
||||
SetErrorMode (SEM_FAILCRITICALERRORS);
|
||||
|
||||
/* Invoke the NT CRT startup routine now that our housecleaning
|
||||
is finished. */
|
||||
#ifdef HAVE_NTGUI
|
||||
/* determine WinMain args like crt0.c does */
|
||||
hinst = GetModuleHandle (NULL);
|
||||
lpCmdLine = GetCommandLine ();
|
||||
nCmdShow = SW_SHOWDEFAULT;
|
||||
#endif
|
||||
mainCRTStartup ();
|
||||
}
|
||||
|
||||
|
@ -1828,7 +1828,6 @@ static LRESULT CALLBACK w32_wnd_proc (HWND, UINT, WPARAM, LPARAM);
|
||||
static BOOL
|
||||
w32_init_class (HINSTANCE hinst)
|
||||
{
|
||||
|
||||
if (w32_unicode_gui)
|
||||
{
|
||||
WNDCLASSW uwc;
|
||||
@ -7020,6 +7019,9 @@ cache_system_info (void)
|
||||
DWORD data;
|
||||
} version;
|
||||
|
||||
/* Cache the module handle of Emacs itself. */
|
||||
hinst = GetModuleHandle (NULL);
|
||||
|
||||
/* Cache the version of the operating system. */
|
||||
version.data = GetVersion ();
|
||||
w32_major_version = version.info.major;
|
||||
|
@ -79,9 +79,6 @@ typedef struct _XImage
|
||||
#define FACE_DEFAULT (~0)
|
||||
|
||||
extern HINSTANCE hinst;
|
||||
extern HINSTANCE hprevinst;
|
||||
extern LPSTR lpCmdLine;
|
||||
extern int nCmdShow;
|
||||
|
||||
/* Bit Gravity */
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user