1### @configure_input@ 2 3# Copyright (C) 2013-2021 Free Software Foundation, Inc. 4 5# This file is part of GNU Emacs. 6 7# GNU Emacs is free software: you can redistribute it and/or modify 8# it under the terms of the GNU General Public License as published by 9# the Free Software Foundation, either version 3 of the License, or 10# (at your option) any later version. 11 12# GNU Emacs is distributed in the hope that it will be useful, 13# but WITHOUT ANY WARRANTY; without even the implied warranty of 14# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15# GNU General Public License for more details. 16 17# You should have received a copy of the GNU General Public License 18# along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>. 19 20# Avoid trouble on systems where the `SHELL' variable might be 21# inherited from the environment. 22SHELL = /bin/sh 23 24# ==================== Things `configure' will edit ==================== 25 26CC=@CC@ 27CFLAGS=@CFLAGS@ 28CPPFLAGS = @CPPFLAGS@ 29LDFLAGS = @LDFLAGS@ 30 31version=@version@ 32## Used in $archlibdir. 33configuration=@configuration@ 34EXEEXT=@EXEEXT@ 35C_SWITCH_SYSTEM=@C_SWITCH_SYSTEM@ 36C_SWITCH_MACHINE=@C_SWITCH_MACHINE@ 37PROFILING_CFLAGS = @PROFILING_CFLAGS@ 38WARN_CFLAGS = @WARN_CFLAGS@ 39WERROR_CFLAGS = @WERROR_CFLAGS@ 40 41# Program name transformation. 42TRANSFORM = @program_transform_name@ 43 44# 'make' verbosity. 45AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ 46 47AM_V_CC = $(am__v_CC_@AM_V@) 48am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) 49am__v_CC_0 = @echo " CC " $@; 50am__v_CC_1 = 51 52AM_V_CCLD = $(am__v_CCLD_@AM_V@) 53am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) 54am__v_CCLD_0 = @echo " CCLD " $@; 55am__v_CCLD_1 = 56 57AM_V_RC = $(am__v_RC_@AM_V@) 58am__v_RC_ = $(am__v_RC_@AM_DEFAULT_V@) 59am__v_RC_0 = @echo " RC " $@; 60am__v_RC_1 = 61 62# ==================== Where To Install Things ==================== 63 64# The default location for installation. Everything is placed in 65# subdirectories of this directory. The default values for many of 66# the variables below are expressed in terms of this one, so you may 67# not need to change them. This is set with the --prefix option to 68# `../configure'. 69prefix=@prefix@ 70 71# Like `prefix', but used for architecture-specific files. This is 72# set with the --exec-prefix option to `../configure'. 73exec_prefix=@exec_prefix@ 74 75# Where to install Emacs and other binaries that people will want to 76# run directly (like etags). This is set with the --bindir option 77# to `../configure'. 78bindir=@bindir@ 79 80# The root of the directory tree for read-only architecture-independent 81# data files. ${datadir}, ${infodir} and ${mandir} are based on this. 82datarootdir=@datarootdir@ 83 84# Where to install architecture-independent data files. ${lispdir} 85# and ${etcdir} are subdirectories of this. This is set with the 86# --datadir option to `../configure'. 87datadir=@datadir@ 88 89# Where to install and expect executable files to be run by Emacs 90# rather than directly by users, and other architecture-dependent 91# data. ${archlibdir} is usually below this. This is set with the 92# --libexecdir option to `../configure'. 93libexecdir=@libexecdir@ 94 95# Directory for local state files for all programs. 96localstatedir=@localstatedir@ 97 98# Where to find the source code. This is set by the configure 99# script's `--srcdir' option. However, the value of ${srcdir} in 100# this makefile is not identical to what was specified with --srcdir, 101# since the variable here has `/lib-src' added at the end. 102 103# We use $(srcdir) explicitly in dependencies so as not to depend on VPATH. 104srcdir=@srcdir@ 105VPATH=@srcdir@ 106 107# The top-level source directory, also set by configure. 108top_srcdir=@top_srcdir@ 109# MinGW CPPFLAGS may use this. 110abs_top_srcdir=@abs_top_srcdir@ 111 112# ==================== Emacs-specific directories ==================== 113 114# These variables hold the values Emacs will actually use. They are 115# based on the values of the standard Make variables above. 116 117# Where to put executables to be run by Emacs rather than the user. 118# This path usually includes the Emacs version and configuration name, 119# so that multiple configurations for multiple versions of Emacs may 120# be installed at once. This can be set with the --archlibdir option 121# to `../configure'. 122archlibdir=@archlibdir@ 123 124# ==================== Utility Programs for the Build ================= 125 126# ../configure figures out the correct values for these. 127INSTALL = @INSTALL@ 128INSTALL_DATA = @INSTALL_DATA@ 129INSTALL_PROGRAM = @INSTALL_PROGRAM@ 130INSTALL_SCRIPT = @INSTALL_SCRIPT@ 131# By default, we uphold the dignity of our programs. 132INSTALL_STRIP = 133MKDIR_P = @MKDIR_P@ 134 135# ========================== Lists of Files =========================== 136 137# Things that a user might actually run, which should be installed in bindir. 138INSTALLABLES = runemacs${EXEEXT} addpm${EXEEXT} 139 140# Things that Emacs runs internally, which should not be installed in bindir. 141UTILITIES = cmdproxy${EXEEXT} ddeclient${EXEEXT} 142 143# Things that Emacs runs during the build process. 144DONT_INSTALL = 145 146# All files that are created by the linker, i.e., whose names end in ${EXEEXT}. 147EXE_FILES = ${INSTALLABLES} ${UTILITIES} ${DONT_INSTALL} 148 149# =========================== Configuration =========================== 150 151# MS-Windows resource files and resource compiler 152EMACSRES = @EMACSRES@ 153EMACS_MANIFEST = @EMACS_MANIFEST@ 154WINDRES = @WINDRES@ 155 156## Extra libraries to use when linking addpm. 157LIBS_ADDPM = -lole32 -luuid 158 159## Compilation and linking flags 160BASE_CFLAGS = $(C_SWITCH_SYSTEM) $(C_SWITCH_MACHINE) \ 161 $(WARN_CFLAGS) $(WERROR_CFLAGS) \ 162 -I. -I${srcdir} 163 164ALL_CFLAGS = ${BASE_CFLAGS} ${PROFILING_CFLAGS} ${LDFLAGS} ${CPPFLAGS} ${CFLAGS} 165## Unused. 166LINK_CFLAGS = ${BASE_CFLAGS} ${LDFLAGS} ${CFLAGS} 167## Unused. 168CPP_CFLAGS = ${BASE_CFLAGS} ${PROFILING_CFLAGS} ${CPPFLAGS} ${CFLAGS} 169 170all: ${EXE_FILES} 171 172.PHONY: all 173 174## Install the internal utilities. Until they are installed, we can 175## just run them directly from nt/. 176$(DESTDIR)${archlibdir}: all 177 @echo 178 @echo "Installing utilities run internally by Emacs." 179 umask 022; ${MKDIR_P} "$(DESTDIR)${archlibdir}" 180 exp_archlibdir=`cd "$(DESTDIR)${archlibdir}" && /bin/pwd`; \ 181 if [ "$$exp_archlibdir" != "`/bin/pwd`" ]; then \ 182 for file in ${UTILITIES}; do \ 183 $(INSTALL_PROGRAM) $(INSTALL_STRIP) $$file "$(DESTDIR)${archlibdir}/$$file" ; \ 184 done ; \ 185 fi 186 187.PHONY: install uninstall mostlyclean clean distclean maintainer-clean 188.PHONY: bootstrap-clean extraclean check tags 189 190install: $(DESTDIR)${archlibdir} 191 @echo 192 @echo "Installing utilities for users to run." 193 umask 022; ${MKDIR_P} "$(DESTDIR)${bindir}" 194 for file in ${INSTALLABLES} ; do \ 195 $(INSTALL_PROGRAM) $(INSTALL_STRIP) $${file} "$(DESTDIR)${bindir}"/`echo $${file} | sed -e 's/${EXEEXT}$$//' -e '$(TRANSFORM)'`${EXEEXT} ; \ 196 done 197 ${MKDIR_P} "$(DESTDIR)${datadir}/emacs/$(version)" 198 $(INSTALL_DATA) ${srcdir}/README.W32 "$(DESTDIR)${datadir}/emacs/$(version)" 199 200uninstall: 201 rm -f "$(DESTDIR)${datadir}/emacs/$(version)/README.W32" 202 for file in ${INSTALLABLES}; do \ 203 rm -f "$(DESTDIR)${bindir}"/`echo $${file} | sed -e 's/${EXEEXT}$$//' -e '$(TRANSFORM)'`${EXEEXT} ; \ 204 done 205 if [ -d "$(DESTDIR)${archlibdir}" ]; then \ 206 (cd "$(DESTDIR)${archlibdir}" && rm -f ${UTILITIES}) \ 207 fi 208 209mostlyclean: 210 -rm -f core *.o *.res 211 212clean: mostlyclean 213 -rm -f ${EXE_FILES} 214 215distclean: clean 216 -rm -f TAGS Makefile *.rc 217 218bootstrap-clean maintainer-clean: distclean 219 true 220 221extraclean: maintainer-clean 222 -rm -f *~ \#* 223 224## Test the contents of the directory. 225check: 226 @echo "We don't have any tests for the nt/ directory yet." 227 228ETAGS = ../lib-src/etags${EXEEXT} 229 230${ETAGS}: FORCE 231 ${MAKE} -C ../lib-src $(notdir $@) 232 233tagsfiles= $(wildcard ${srcdir}/*.[ch]) 234 235FORCE: 236.PHONY: tags FORCE 237tags: TAGS 238TAGS: ${ETAGS} ${tagsfiles} 239 ${ETAGS} ${tagsfiles} 240 241## Build the programs 242addpm${EXEEXT}: ${srcdir}/addpm.c ../src/epaths.h 243 $(AM_V_CCLD)$(CC) ${ALL_CFLAGS} $< $(LIBS_ADDPM) -o $@ 244 245ddeclient${EXEEXT}: ${srcdir}/ddeclient.c 246 $(AM_V_CCLD)$(CC) ${ALL_CFLAGS} $< -o $@ 247 248cmdproxy${EXEEXT}: ${srcdir}/cmdproxy.c 249 $(AM_V_CCLD)$(CC) ${ALL_CFLAGS} $< -o $@ 250 251runemacs${EXEEXT}: ${srcdir}/runemacs.c $(EMACSRES) 252 $(AM_V_CCLD)$(CC) ${ALL_CFLAGS} $^ -mwindows -o $@ 253 254## Also used in ../src/Makefile. 255emacs.res ../src/emacs.res: emacs.rc ${srcdir}/icons/emacs.ico \ 256 ${srcdir}/icons/hand.cur ${srcdir}/$(EMACS_MANIFEST) 257 $(AM_V_RC)${WINDRES} -I ${srcdir} -O coff -o $@ $< 258