Commit 095bf253 authored by Eli Zaretskii's avatar Eli Zaretskii

Added nt/Makefile.in and appropriate tweaks to configure.ac.

Added emacsclient.res support to lib-src/.
Fixed temacs and dumping commands in src/Makefile.in.
Miscellaneous fixes all over the place.

Not tried to build yet.
parent a74b0e1b
...@@ -93,6 +93,9 @@ version=@version@ ...@@ -93,6 +93,9 @@ version=@version@
### for, like `mips-dec-ultrix' or `sparc-sun-sunos'. ### for, like `mips-dec-ultrix' or `sparc-sun-sunos'.
configuration=@configuration@ configuration=@configuration@
### The nt/ subdirectory gets built only for MinGW
NTDIR=@NTDIR@
# ==================== Where To Install Things ==================== # ==================== Where To Install Things ====================
# Location to install Emacs.app under GNUstep / Mac OS X. # Location to install Emacs.app under GNUstep / Mac OS X.
...@@ -271,17 +274,17 @@ EMACS = ${EMACS_NAME}${EXEEXT} ...@@ -271,17 +274,17 @@ EMACS = ${EMACS_NAME}${EXEEXT}
EMACSFULL = `echo emacs-${version} | sed '$(TRANSFORM)'`${EXEEXT} EMACSFULL = `echo emacs-${version} | sed '$(TRANSFORM)'`${EXEEXT}
# Subdirectories to make recursively. # Subdirectories to make recursively.
SUBDIR = lib lib-src src lisp leim SUBDIR = lib lib-src src lisp leim $(NTDIR)
# The subdir makefiles created by config.status. # The subdir makefiles created by config.status.
SUBDIR_MAKEFILES_IN = @SUBDIR_MAKEFILES_IN@ SUBDIR_MAKEFILES_IN = @SUBDIR_MAKEFILES_IN@
SUBDIR_MAKEFILES = `echo $(SUBDIR_MAKEFILES_IN:.in=) | sed 's|$(srcdir)/||g'` SUBDIR_MAKEFILES = `echo $(SUBDIR_MAKEFILES_IN:.in=) | sed 's|$(srcdir)/||g'`
# Subdirectories to install, and where they'll go. # Subdirectories to install, and where they'll go. lib-src's and nt's
# lib-src's makefile knows how to install it, so we don't do that here. # makefiles know how to install them, so we don't do that here.
# Directories that cannot simply be copied, eg info, # Directories that cannot simply be copied, eg info, are treated
# are treated separately. # separately. quail appears twice because in out-of-tree builds, it
# quail appears twice because in out-of-tree builds, it exists twice. # exists twice.
COPYDIR = ${srcdir}/etc ${srcdir}/lisp ${srcdir}/leim/ja-dic ${srcdir}/leim/quail leim/quail COPYDIR = ${srcdir}/etc ${srcdir}/lisp ${srcdir}/leim/ja-dic ${srcdir}/leim/quail leim/quail
COPYDESTS = $(DESTDIR)${etcdir} $(DESTDIR)${lispdir} $(DESTDIR)${leimdir}/ja-dic $(DESTDIR)${leimdir}/quail $(DESTDIR)${leimdir}/quail COPYDESTS = $(DESTDIR)${etcdir} $(DESTDIR)${lispdir} $(DESTDIR)${leimdir}/ja-dic $(DESTDIR)${leimdir}/quail $(DESTDIR)${leimdir}/quail
......
...@@ -1544,8 +1544,10 @@ AC_SUBST(NS_OBJC_OBJ) ...@@ -1544,8 +1544,10 @@ AC_SUBST(NS_OBJC_OBJ)
HAVE_W32=no HAVE_W32=no
W32_OBJ= W32_OBJ=
W32_LIBS= W32_LIBS=
W32_RES= EMACSRES=
CLIENTRES=
W32_RES_LINK= W32_RES_LINK=
EMACS_MANIFEST=
if test "${with_w32}" != no; then if test "${with_w32}" != no; then
if test "${opsys}" != "cygwin"; then if test "${opsys}" != "cygwin"; then
if test "${opsys}" != "mingw32"; then if test "${opsys}" != "mingw32"; then
...@@ -1573,29 +1575,39 @@ if test "${opsys}" = "mingw32"; then ...@@ -1573,29 +1575,39 @@ if test "${opsys}" = "mingw32"; then
fi fi
fi fi
FIRSTFILE_OBJ=
if test "${HAVE_W32}" = "yes"; then if test "${HAVE_W32}" = "yes"; then
AC_DEFINE(HAVE_NTGUI, 1, [Define to use native MS Windows GUI.]) AC_DEFINE(HAVE_NTGUI, 1, [Define to use native MS Windows GUI.])
AC_CHECK_TOOL(WINDRES, [windres], AC_CHECK_TOOL(WINDRES, [windres],
[AC_MSG_ERROR([No resource compiler found.])]) [AC_MSG_ERROR([No resource compiler found.])])
W32_OBJ="w32fns.o w32menu.o w32reg.o w32font.o w32term.o" W32_OBJ="w32fns.o w32menu.o w32reg.o w32font.o w32term.o"
W32_OBJ="$W32_OBJ w32xfns.o w32select.o w32uniscribe.o" W32_OBJ="$W32_OBJ w32xfns.o w32select.o w32uniscribe.o"
EMACSRES="emacs.res"
case "$canonical" in
x86_64-*-*) EMACS_MANIFEST="emacs-x64.manifest" ;;
*) EMACS_MANIFEST="emacs-x86.manifest" ;;
esac
if test "${opsys}" = "cygwin"; then if test "${opsys}" = "cygwin"; then
W32_LIBS="$W32_LIBS -lkernel32 -luser32 -lgdi32 -lole32 -lcomdlg32" W32_LIBS="$W32_LIBS -lkernel32 -luser32 -lgdi32 -lole32 -lcomdlg32"
W32_LIBS="$W32_LIBS -lusp10 -lcomctl32 -lwinspool" W32_LIBS="$W32_LIBS -lusp10 -lcomctl32 -lwinspool"
W32_RES="emacs.res"
# Tell the linker that emacs.res is an object (which we compile from # Tell the linker that emacs.res is an object (which we compile from
# the rc file), not a linker script. # the rc file), not a linker script.
W32_RES_LINK="-Wl,-bpe-i386 -Wl,emacs.res" W32_RES_LINK="-Wl,-bpe-i386 -Wl,emacs.res"
else else
W32_OBJ="$W32_OBJ w32.o w32console.o w32heap.o w32inevt.o w32proc.o" W32_OBJ="$W32_OBJ w32.o w32console.o w32heap.o w32inevt.o w32proc.o"
W32_LIBS="$W32_LIBS -lwinmm -lgdi32 -lcomdlg32" W32_LIBS="$W32_LIBS -lwinmm -lgdi32 -lcomdlg32"
W32_LIBS="$W32_LIBS -lmpr -lwinspool -lole32 -lusp10" W32_LIBS="$W32_LIBS -lmpr -lwinspool -lole32 -lcomctl32 -lusp10"
CLIENTRES="emacsclient.res"
FIRSTFILE_OBJ=firstfile.o
fi fi
fi fi
AC_SUBST(W32_OBJ) AC_SUBST(W32_OBJ)
AC_SUBST(W32_LIBS) AC_SUBST(W32_LIBS)
AC_SUBST(W32_RES) AC_SUBST(EMACSRES)
AC_SUBST(EMACS_MANIFEST)
AC_SUBST(CLIENTRES)
AC_SUBST(W32_RES_LINK) AC_SUBST(W32_RES_LINK)
AC_SUBST(FIRSTFILE_OBJ)
if test "${HAVE_W32}" = "yes"; then if test "${HAVE_W32}" = "yes"; then
window_system=w32 window_system=w32
...@@ -4016,6 +4028,9 @@ case $opsys in ...@@ -4016,6 +4028,9 @@ case $opsys in
mingw32) mingw32)
AC_DEFINE(DOS_NT, []) AC_DEFINE(DOS_NT, [])
AC_DEFINE(WINDOWSNT, 1, [Define if compiling for native MS Windows.]) AC_DEFINE(WINDOWSNT, 1, [Define if compiling for native MS Windows.])
if test "x$ac_enable_checking" != "x" ; then
AC_DEFINE(EMACSDEBUG, 1, [Define to 1 to enable w32 debug facilities.])
fi
;; ;;
sol2*) sol2*)
...@@ -4362,7 +4377,7 @@ CFLAGS=$SAVE_CFLAGS ...@@ -4362,7 +4377,7 @@ CFLAGS=$SAVE_CFLAGS
LIBS=$SAVE_LIBS LIBS=$SAVE_LIBS
if test "${opsys}" = "mingw32"; then if test "${opsys}" = "mingw32"; then
CPPFLAGS="-DUSE_CRT_DLL=1 -I $srcdir/nt/inc" CPPFLAGS="$CPPFLAGS -DUSE_CRT_DLL=1 -I $srcdir/nt/inc"
# Remove unneeded switches from the value of CC that goes to Makefiles # Remove unneeded switches from the value of CC that goes to Makefiles
CC=`echo $CC | sed -e "s,$GCC_TEST_OPTIONS,,"` CC=`echo $CC | sed -e "s,$GCC_TEST_OPTIONS,,"`
fi fi
...@@ -4401,7 +4416,10 @@ case "$opsys" in ...@@ -4401,7 +4416,10 @@ case "$opsys" in
gnu*) LD_SWITCH_SYSTEM_TEMACS="\$(LD_SWITCH_X_SITE_RPATH)" ;; gnu*) LD_SWITCH_SYSTEM_TEMACS="\$(LD_SWITCH_X_SITE_RPATH)" ;;
mingw32) mingw32)
LD_SWITCH_SYSTEM_TEMACS="-Wl,-stack,0x00800000 -Wl,-heap,0x00100000 -Wl,-image-base,0x01000000 -Wl,-subsystem,console -Wl,-entry,__start -Wl,-Map,./temacs.map" case "$canonical" in
x86_64-*-*) LD_SWITCH_SYSTEM_TEMACS="-Wl,-stack,0x00800000 -Wl,-heap,0x00100000 -Wl,-image-base,0x01000000 -Wl,-subsystem,console -Wl,-entry,_start -Wl,-Map,./temacs.map" ;;
*) LD_SWITCH_SYSTEM_TEMACS="-Wl,-stack,0x00800000 -Wl,-heap,0x00100000 -Wl,-image-base,0x01000000 -Wl,-subsystem,console -Wl,-entry,__start -Wl,-Map,./temacs.map" ;;
esac
;; ;;
*) LD_SWITCH_SYSTEM_TEMACS= ;; *) LD_SWITCH_SYSTEM_TEMACS= ;;
...@@ -4409,6 +4427,24 @@ esac ...@@ -4409,6 +4427,24 @@ esac
AC_SUBST(LD_SWITCH_SYSTEM_TEMACS) AC_SUBST(LD_SWITCH_SYSTEM_TEMACS)
## MinGW-specific post-link processing of temacs.
TEMACS_POST_LINK=":"
ADDSECTION=
EMACS_HEAPSIZE=
if test "${opsys}" = "mingw32"; then
TEMACS_POST_LINK="\$(MINGW_TEMACS_POST_LINK)"
ADDSECTION="../nt/addsection\$(EXEEXT)"
## Preload heap size of temacs.exe in MB.
case "$canonical" in
x86_64-*-*) EMACS_HEAPSIZE=42 ;;
*) EMACS_HEAPSIZE=27 ;;
esac
fi
AC_SUBST(ADDSECTION)
AC_SUBST(TEMACS_POST_LINK)
AC_SUBST(EMACS_HEAPSIZE)
## Common for all window systems ## Common for all window systems
if test "$window_system" != "none"; then if test "$window_system" != "none"; then
AC_DEFINE(HAVE_WINDOW_SYSTEM, 1, [Define if you have a window system.]) AC_DEFINE(HAVE_WINDOW_SYSTEM, 1, [Define if you have a window system.])
...@@ -4567,12 +4603,12 @@ dnl This will work, but you get a config.status that is not quite right ...@@ -4567,12 +4603,12 @@ dnl This will work, but you get a config.status that is not quite right
dnl (see http://lists.gnu.org/archive/html/bug-autoconf/2008-08/msg00028.html). dnl (see http://lists.gnu.org/archive/html/bug-autoconf/2008-08/msg00028.html).
dnl That doesn't have any obvious consequences for Emacs, but on the whole dnl That doesn't have any obvious consequences for Emacs, but on the whole
dnl it seems better to just live with the duplication. dnl it seems better to just live with the duplication.
SUBDIR_MAKEFILES="lib/Makefile lib-src/Makefile oldXMenu/Makefile doc/emacs/Makefile doc/misc/Makefile doc/lispintro/Makefile doc/lispref/Makefile src/Makefile lwlib/Makefile lisp/Makefile leim/Makefile nextstep/Makefile" SUBDIR_MAKEFILES="lib/Makefile lib-src/Makefile oldXMenu/Makefile doc/emacs/Makefile doc/misc/Makefile doc/lispintro/Makefile doc/lispref/Makefile src/Makefile lwlib/Makefile lisp/Makefile leim/Makefile nextstep/Makefile nt/Makefile"
AC_CONFIG_FILES([Makefile lib/Makefile lib-src/Makefile oldXMenu/Makefile \ AC_CONFIG_FILES([Makefile lib/Makefile lib-src/Makefile oldXMenu/Makefile \
doc/emacs/Makefile doc/misc/Makefile doc/lispintro/Makefile \ doc/emacs/Makefile doc/misc/Makefile doc/lispintro/Makefile \
doc/lispref/Makefile src/Makefile lwlib/Makefile lisp/Makefile \ doc/lispref/Makefile src/Makefile lwlib/Makefile lisp/Makefile \
leim/Makefile nextstep/Makefile]) leim/Makefile nextstep/Makefile nt/Makefile])
dnl test/ is not present in release tarfiles. dnl test/ is not present in release tarfiles.
opt_makefile=test/automated/Makefile opt_makefile=test/automated/Makefile
......
...@@ -172,6 +172,8 @@ LIBS_MOVE = $(LIBS_MAIL) $(KRB4LIB) $(DESLIB) $(KRB5LIB) $(CRYPTOLIB) \ ...@@ -172,6 +172,8 @@ LIBS_MOVE = $(LIBS_MAIL) $(KRB4LIB) $(DESLIB) $(KRB5LIB) $(CRYPTOLIB) \
## Extra object files for linking emacsclient ## Extra object files for linking emacsclient
NTLIB = @NTLIB@ NTLIB = @NTLIB@
CLIENTRES = @CLIENTRES@
WINDRES = @WINDRES@
## Some systems define this to request special libraries. ## Some systems define this to request special libraries.
LIBS_SYSTEM = @LIBS_SYSTEM@ LIBS_SYSTEM = @LIBS_SYSTEM@
...@@ -339,9 +341,9 @@ movemail${EXEEXT}: ${srcdir}/movemail.c pop.o $(NTLIB) $(config_h) ...@@ -339,9 +341,9 @@ movemail${EXEEXT}: ${srcdir}/movemail.c pop.o $(NTLIB) $(config_h)
pop.o: ${srcdir}/pop.c ${srcdir}/../lib/min-max.h $(config_h) pop.o: ${srcdir}/pop.c ${srcdir}/../lib/min-max.h $(config_h)
$(CC) -c ${CPP_CFLAGS} ${MOVE_FLAGS} ${srcdir}/pop.c $(CC) -c ${CPP_CFLAGS} ${MOVE_FLAGS} ${srcdir}/pop.c
emacsclient${EXEEXT}: ${srcdir}/emacsclient.c $(NTLIB) $(config_h) emacsclient${EXEEXT}: ${srcdir}/emacsclient.c $(NTLIB) $(CLIENTRES) $(config_h)
$(CC) ${ALL_CFLAGS} ${srcdir}/emacsclient.c \ $(CC) ${ALL_CFLAGS} ${srcdir}/emacsclient.c \
-DVERSION="\"${version}\"" $(LIB_WSOCK32) \ -DVERSION="\"${version}\"" $(CLIENTRES) $(LIB_WSOCK32) \
$(LOADLIBES) $(LIB_FDATASYNC) -o emacsclient${EXEEXT} $(LOADLIBES) $(LIB_FDATASYNC) -o emacsclient${EXEEXT}
ntlib.o: ${srcdir}/ntlib.c ${srcdir}/ntlib.h ntlib.o: ${srcdir}/ntlib.c ${srcdir}/ntlib.h
...@@ -355,4 +357,7 @@ update-game-score${EXEEXT}: ${srcdir}/update-game-score.c $(NTLIB) $(config_h) ...@@ -355,4 +357,7 @@ update-game-score${EXEEXT}: ${srcdir}/update-game-score.c $(NTLIB) $(config_h)
${srcdir}/update-game-score.c $(NTLIB) $(LOADLIBES) \ ${srcdir}/update-game-score.c $(NTLIB) $(LOADLIBES) \
-o update-game-score${EXEEXT} -o update-game-score${EXEEXT}
emacsclient.res: ${srcdir}/nt/emacsclient.rc
$(WINDRES) -O coff --include-dir=${srcdir}/nt -o emacscient.res
## Makefile ends here. ## Makefile ends here.
# nt/Makefile for GNU Emacs.
# Copyright (C) 2013 Free Software Foundation, Inc.
# This file is part of GNU Emacs.
# GNU Emacs 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.
# GNU Emacs 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 GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
# Avoid trouble on systems where the `SHELL' variable might be
# inherited from the environment.
SHELL = /bin/sh
# ==================== Things `configure' will edit ====================
CC=@CC@
CFLAGS=@CFLAGS@
version=@version@
## Used in $archlibdir.
configuration=@configuration@
EXEEXT=@EXEEXT@
C_SWITCH_SYSTEM=@C_SWITCH_SYSTEM@
C_SWITCH_MACHINE=@C_SWITCH_MACHINE@
PROFILING_CFLAGS = @PROFILING_CFLAGS@
WARN_CFLAGS = @WARN_CFLAGS@
WERROR_CFLAGS = @WERROR_CFLAGS@
# Program name transformation.
TRANSFORM = @program_transform_name@
# ==================== Where To Install Things ====================
# The default location for installation. Everything is placed in
# subdirectories of this directory. The default values for many of
# the variables below are expressed in terms of this one, so you may
# not need to change them. This is set with the --prefix option to
# `../configure'.
prefix=@prefix@
# Like `prefix', but used for architecture-specific files. This is
# set with the --exec-prefix option to `../configure'.
exec_prefix=@exec_prefix@
# Where to install Emacs and other binaries that people will want to
# run directly (like etags). This is set with the --bindir option
# to `../configure'.
bindir=@bindir@
# Where to install and expect executable files to be run by Emacs
# rather than directly by users, and other architecture-dependent
# data. ${archlibdir} is usually below this. This is set with the
# --libexecdir option to `../configure'.
libexecdir=@libexecdir@
# Directory for local state files for all programs.
localstatedir=@localstatedir@
# Where to find the source code. This is set by the configure
# script's `--srcdir' option. However, the value of ${srcdir} in
# this makefile is not identical to what was specified with --srcdir,
# since the variable here has `/lib-src' added at the end.
# We use $(srcdir) explicitly in dependencies so as not to depend on VPATH.
srcdir=@srcdir@
VPATH=@srcdir@
# The top-level source directory, also set by configure.
top_srcdir=@top_srcdir@
# ==================== Emacs-specific directories ====================
# These variables hold the values Emacs will actually use. They are
# based on the values of the standard Make variables above.
# Where to put executables to be run by Emacs rather than the user.
# This path usually includes the Emacs version and configuration name,
# so that multiple configurations for multiple versions of Emacs may
# be installed at once. This can be set with the --archlibdir option
# to `../configure'.
archlibdir=@archlibdir@
# ==================== Utility Programs for the Build =================
# ../configure figures out the correct values for these.
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
# By default, we uphold the dignity of our programs.
INSTALL_STRIP =
MKDIR_P = @MKDIR_P@
# ========================== Lists of Files ===========================
# Things that a user might actually run, which should be installed in bindir.
INSTALLABLES = runemacs${EXEEXT} addpm${EXEEXT}
# Things that Emacs runs internally, which should not be installed in bindir.
UTILITIES = cmdproxy${EXEEXT} ddeclient${EXEEXT}
# Things that Emacs runs during the build process.
DONT_INSTALL = addsection${EXEEXT}
# All files that are created by the linker, i.e., whose names end in ${EXEEXT}.
EXE_FILES = ${INSTALLABLES} ${UTILITIES} ${DONT_INSTALL}
# =========================== Configuration ===========================
# MS-Windows resource files and resource compiler
EMACSRES = @EMACSRES@
EMACS_MANIFEST = @EMACS_MANIFEST@
WINDRES = @WINDRES@
## Extra libraries to use when linking addpm.
LIBS_ADDPM = -lole32 -luuid
## Compilation and linking flags
BASE_CFLAGS = $(C_SWITCH_SYSTEM) $(C_SWITCH_MACHINE) \
$(WARN_CFLAGS) $(WERROR_CFLAGS) \
-I. -I${srcdir}
ALL_CFLAGS = ${BASE_CFLAGS} ${PROFILING_CFLAGS} ${LDFLAGS} ${CPPFLAGS} ${CFLAGS}
LINK_CFLAGS = ${BASE_CFLAGS} ${LDFLAGS} ${CFLAGS}
CPP_CFLAGS = ${BASE_CFLAGS} ${PROFILING_CFLAGS} ${CPPFLAGS} ${CFLAGS}
all: ${EXE_FILES}
.PHONY: all
## Install the internal utilities. Until they are installed, we can
## just run them directly from nt/.
$(DESTDIR)${archlibdir}: all
@echo
@echo "Installing utilities run internally by Emacs."
umask 022; ${MKDIR_P} $(DESTDIR)${archlibdir}
if [ `cd $(DESTDIR)${archlibdir} && /bin/pwd` != `/bin/pwd` ]; then \
for file in ${UTILITIES}; do \
$(INSTALL_PROGRAM) $(INSTALL_STRIP) $$file $(DESTDIR)${archlibdir}/$$file ; \
done ; \
fi
.PHONY: install uninstall mostlyclean clean distclean maintainer-clean
.PHONY: extraclean check tags
install: $(DESTDIR)${archlibdir}
@echo
@echo "Installing utilities for users to run."
umask 022; ${MKDIR_P} $(DESTDIR)${bindir}
for file in ${INSTALLABLES} ; do \
$(INSTALL_PROGRAM) $(INSTALL_STRIP) $${file} $(DESTDIR)${bindir}/`echo $${file} | sed -e 's/${EXEEXT}$$//' -e '$(TRANSFORM)'`${EXEEXT} ; \
done
uninstall:
for file in ${INSTALLABLES}; do \
rm -f $(DESTDIR)${bindir}/`echo $${file} | sed -e 's/${EXEEXT}$$//' -e '$(TRANSFORM)'`${EXEEXT} ; \
done
if [ -d $(DESTDIR)${archlibdir} ]; then \
(cd $(DESTDIR)${archlibdir} && rm -f ${UTILITIES}) \
fi
mostlyclean:
-rm -f core *.o
clean: mostlyclean
-rm -f ${EXE_FILES}
distclean: clean
-rm -f TAGS
-rm -f Makefile
maintainer-clean: distclean
true
extraclean: maintainer-clean
-rm -f *~ \#*
## Test the contents of the directory.
check:
@echo "We don't have any tests for the nt/ directory yet."
tags: TAGS
TAGS: ${EXE_FILES:${EXEEXT}=.c}
../lib-src/etags *.[ch]
## Build the programs
addsection${EXEEXT}: ${srcdir}/addsection.c
$(CC) ${ALL_CFLAGS} ${srcdir}/addsection.c -o addsection${EXEEXT}
addpm${EXEEXT}: ${srcdir}/addpm.c
$(CC) ${ALL_CFLAGS} ${srcdir}/addpm.c $(LIBS_ADDPM) -o addpm${EXEEXT}
ddeclient${EXEEXT}: ${srcdir}/ddeclient.c
$(CC) ${ALL_CFLAGS} ${srcdir}/ddeclient.c -o ddeclient${EXEEXT}
cmdproxy{EXEEXT}: ${srcdir}/cmdproxy.c
$(CC) ${ALL_CFLAGS} ${srcdir}/cmdproxy.c -o cmdproxy${EXEEXT}
runemacs{EXEEXT}: ${srcdir}/runemacs.c $(EMACSRES)
$(CC) ${ALL_CFLAGS} ${srcdir}/runemacs.c $(EMACSRES) \
-o runemacs${EXEEXT}
emacs.res: ${srcdir}/emacs.rc ${srcdir}/emacs.ico ${srcdir}/$(EMACS_MANIFEST)
${WINDRES} -O coff -o emacs.res emacs.rc
...@@ -260,8 +260,10 @@ W32_OBJ=@W32_OBJ@ ...@@ -260,8 +260,10 @@ W32_OBJ=@W32_OBJ@
W32_LIBS=@W32_LIBS@ W32_LIBS=@W32_LIBS@
## emacs.res if HAVE_W32 ## emacs.res if HAVE_W32
W32_RES=@W32_RES@ EMACSRES = @EMACSRES@
## If HAVE_W32, compiler arguments for including ## emacs-*.manifest if HAVE_W32
EMACS_MANIFEST = @EMACS_MANIFEST@
## If HAVE_W32 and CYGWIN, compiler arguments for including
## the resource file in the binary. ## the resource file in the binary.
## XXX -Wl,-b -Wl,pe-i386 -Wl,emacs.res ## XXX -Wl,-b -Wl,pe-i386 -Wl,emacs.res
W32_RES_LINK=@W32_RES_LINK@ W32_RES_LINK=@W32_RES_LINK@
...@@ -292,6 +294,14 @@ GETLOADAVG_LIBS = @GETLOADAVG_LIBS@ ...@@ -292,6 +294,14 @@ GETLOADAVG_LIBS = @GETLOADAVG_LIBS@
RUN_TEMACS = `/bin/pwd`/temacs RUN_TEMACS = `/bin/pwd`/temacs
## Invoke ../nt/addsection for MinGW, ":" elsewhere.
TEMACS_POST_LINK = @TEMACS_POST_LINK@
ADDSECTION = @ADDSECTION@
EMACS_HEAPSIZE = @EMACS_HEAPSIZE@
MINGW_TEMACS_POST_LINK = \
mv temacs$(EXEEXT) temacs.tmp; \
../nt/addsection temacs.tmp temacs$(EXEEXT) EMHEAP $(EMACS_HEAPSIZE)
UNEXEC_OBJ = @UNEXEC_OBJ@ UNEXEC_OBJ = @UNEXEC_OBJ@
CANNOT_DUMP=@CANNOT_DUMP@ CANNOT_DUMP=@CANNOT_DUMP@
...@@ -372,9 +382,9 @@ VMLIMIT_OBJ=@VMLIMIT_OBJ@ ...@@ -372,9 +382,9 @@ VMLIMIT_OBJ=@VMLIMIT_OBJ@
## ralloc.o if !SYSTEM_MALLOC && REL_ALLOC, else empty. ## ralloc.o if !SYSTEM_MALLOC && REL_ALLOC, else empty.
RALLOC_OBJ=@RALLOC_OBJ@ RALLOC_OBJ=@RALLOC_OBJ@
## Empty on Cygwin, lastfile.o elsewhere. ## Empty on Cygwin and MinGW, lastfile.o elsewhere.
PRE_ALLOC_OBJ=@PRE_ALLOC_OBJ@ PRE_ALLOC_OBJ=@PRE_ALLOC_OBJ@
## lastfile.o on Cygwin, empty elsewhere. ## lastfile.o on Cygwin and MinGW, empty elsewhere.
POST_ALLOC_OBJ=@POST_ALLOC_OBJ@ POST_ALLOC_OBJ=@POST_ALLOC_OBJ@
## List of object files that make-docfile should not be told about. ## List of object files that make-docfile should not be told about.
...@@ -382,7 +392,9 @@ otherobj= $(TERMCAP_OBJ) $(PRE_ALLOC_OBJ) $(GMALLOC_OBJ) $(RALLOC_OBJ) \ ...@@ -382,7 +392,9 @@ otherobj= $(TERMCAP_OBJ) $(PRE_ALLOC_OBJ) $(GMALLOC_OBJ) $(RALLOC_OBJ) \
$(POST_ALLOC_OBJ) $(WIDGET_OBJ) $(LIBOBJS) $(POST_ALLOC_OBJ) $(WIDGET_OBJ) $(LIBOBJS)
## All object files linked into temacs. $(VMLIMIT_OBJ) should be first. ## All object files linked into temacs. $(VMLIMIT_OBJ) should be first.
ALLOBJS = $(VMLIMIT_OBJ) $(obj) $(otherobj) ## (On MinGW, firstfile.o should be before vm-limit.o.)
FIRSTFILE_OBJ=@FIRSTFILE_OBJ@
ALLOBJS = $(FIRSTFILE_OBJ) $(VMLIMIT_OBJ) $(obj) $(otherobj)
## Configure inserts the file lisp.mk at this point, defining $lisp. ## Configure inserts the file lisp.mk at this point, defining $lisp.
@lisp_frag@ @lisp_frag@
...@@ -411,7 +423,8 @@ $(leimdir)/leim-list.el: bootstrap-emacs$(EXEEXT) ...@@ -411,7 +423,8 @@ $(leimdir)/leim-list.el: bootstrap-emacs$(EXEEXT)
## Strictly speaking, emacs does not depend directly on all of $lisp, ## Strictly speaking, emacs does not depend directly on all of $lisp,
## since not all pieces are used on all platforms. But DOC depends ## since not all pieces are used on all platforms. But DOC depends
## on all of $lisp, and emacs depends on DOC, so it is ok to use $lisp here. ## on all of $lisp, and emacs depends on DOC, so it is ok to use $lisp here.
emacs$(EXEEXT): temacs$(EXEEXT) $(etc)/DOC $(lisp) $(leimdir)/leim-list.el emacs$(EXEEXT): temacs$(EXEEXT) $(ADDSECTION) \
$(etc)/DOC $(lisp) $(leimdir)/leim-list.el
if test "$(CANNOT_DUMP)" = "yes"; then \ if test "$(CANNOT_DUMP)" = "yes"; then \
rm -f emacs$(EXEEXT); \ rm -f emacs$(EXEEXT); \
ln temacs$(EXEEXT) emacs$(EXEEXT); \ ln temacs$(EXEEXT) emacs$(EXEEXT); \
...@@ -463,10 +476,11 @@ $(lib)/libgnu.a: $(config_h) ...@@ -463,10 +476,11 @@ $(lib)/libgnu.a: $(config_h)
cd $(lib) && $(MAKE) libgnu.a cd $(lib) && $(MAKE) libgnu.a
temacs$(EXEEXT): stamp-oldxmenu $(ALLOBJS) \ temacs$(EXEEXT): stamp-oldxmenu $(ALLOBJS) \
$(lib)/libgnu.a $(W32_RES) $(lib)/libgnu.a $(EMACSRES)
$(CC) $(ALL_CFLAGS) $(TEMACS_LDFLAGS) $(LDFLAGS) \ $(CC) $(ALL_CFLAGS) $(TEMACS_LDFLAGS) $(LDFLAGS) \
-o temacs $(ALLOBJS) $(lib)/libgnu.a $(LIBES) \ -o temacs $(ALLOBJS) $(lib)/libgnu.a $(LIBES) \
$(W32_RES_LINK) $(W32_RES_LINK)
$(TEMACS_POST_LINK)
test "$(CANNOT_DUMP)" = "yes" || \ test "$(CANNOT_DUMP)" = "yes" || \
test "X$(PAXCTL)" = X || $(PAXCTL) -r temacs$(EXEEXT) test "X$(PAXCTL)" = X || $(PAXCTL) -r temacs$(EXEEXT)
...@@ -509,7 +523,7 @@ doc.o: buildobj.h ...@@ -509,7 +523,7 @@ doc.o: buildobj.h
emacs.res: $(ntsource)/emacs.rc \ emacs.res: $(ntsource)/emacs.rc \
$(ntsource)/icons/emacs.ico \ $(ntsource)/icons/emacs.ico \
$(ntsource)/emacs-x86.manifest $(ntsource)/$(EMACS_MANIFEST)
$(WINDRES) -O COFF -o $@ $(ntsource)/emacs.rc $(WINDRES) -O COFF -o $@ $(ntsource)/emacs.rc
ns-app: emacs$(EXEEXT) ns-app: emacs$(EXEEXT)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment