view lib-src/makefile.w32-in @ 90228:fa0da9b57058

Revision: miles@gnu.org--gnu-2005/emacs--unicode--0--patch-82 Merge from emacs--cvs-trunk--0 Patches applied: * emacs--cvs-trunk--0 (patch 542-553) - Update from CVS - Merge from gnus--rel--5.10 * gnus--rel--5.10 (patch 116-121) - Merge from emacs--cvs-trunk--0 - Update from CVS
author Miles Bader <miles@gnu.org>
date Mon, 19 Sep 2005 10:20:33 +0000
parents 2d92f5c9d6ae 91dbefb72927
children 996608db98f2
line wrap: on
line source

#  -*- Makefile -*- for GNU Emacs on the Microsoft W32 API.
#  Copyright (C) 2000, 2001, 2002, 2003, 2004,
#                2005 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 2, 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; see the file COPYING.  If not, write to the
#  Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
#  Boston, MA 02110-1301, USA.
#

ALL	      = make-docfile hexl ctags etags movemail ebrowse

.PHONY: $(ALL)

LOCAL_FLAGS	= -DWINDOWSNT -DDOS_NT -DSTDC_HEADERS=1 -DNO_LDAV=1 \
		  -DNO_ARCHIVES=1 -DHAVE_CONFIG_H=1 -I../nt/inc \
                  -I../src

# don't know what (if) to do with these yet...
#
#		$(BLD)/sorted-doc.exe	\
#		$(BLD)/env.exe		\
#		$(BLD)/server.exe	\
#		$(BLD)/emacstool.exe	\
#		$(BLD)/leditcfns.exe	\
#		$(BLD)/emacsclient.exe	\
#		$(BLD)/cvtmail.exe	\
#		$(BLD)/digest-doc.exe	\
#		$(BLD)/test-distrib.exe	\

LIBS	      = $(BASE_LIBS) $(ADVAPI32)

$(BLD)/make-docfile.exe: 	$(BLD)/make-docfile.$(O) $(BLD)/ntlib.$(O)
		$(LINK) $(LINK_OUT)$@ $(LINK_FLAGS) $(BLD)/make-docfile.$(O) $(BLD)/ntlib.$(O) $(LIBS)
$(BLD)/hexl.exe:		$(BLD)/hexl.$(O)
		$(LINK) $(LINK_OUT)$@ $(LINK_FLAGS) $(BLD)/hexl.$(O) $(LIBS)
$(BLD)/fakemail.exe: 		$(BLD)/fakemail.$(O) $(BLD)/ntlib.$(O)
		$(LINK) $(LINK_OUT)$@ $(LINK_FLAGS) $(BLD)/fakemail.$(O) $(BLD)/ntlib.$(O) $(LIBS)

make-docfile:	$(BLD) $(BLD)/make-docfile.exe
ctags:		$(BLD) $(BLD)/ctags.exe
etags:		$(BLD) $(BLD)/etags.exe
ebrowse:        $(BLD) $(BLD)/ebrowse.exe
hexl:		$(BLD) $(BLD)/hexl.exe
movemail:	$(BLD) $(BLD)/movemail.exe
fakemail:	$(BLD) $(BLD)/fakemail.exe

GETOPTOBJS = $(BLD)/getopt.$(O) $(BLD)/getopt1.$(O)
GETOPTDEPS = $(GETOPTOBJS) getopt.h
MOVEMAILOBJS =  $(BLD)/movemail.$(O) \
		$(BLD)/pop.$(O) \
		$(BLD)/ntlib.$(O) \
		$(GETOPTOBJS)

$(BLD)/movemail.exe:	$(MOVEMAILOBJS) getopt.h
# put wsock32.lib before $(LIBS) to ensure we don't link to ws2_32.lib
		$(LINK) $(LINK_OUT)$@ $(LINK_FLAGS) $(MOVEMAILOBJS) $(WSOCK32) $(LIBS)

ETAGSOBJ      = $(BLD)/etags.$(O) \
		$(BLD)/getopt.$(O) \
		$(BLD)/getopt1.$(O) \
		$(BLD)/ntlib.$(O) \
		$(BLD)/regex.$(O)

$(BLD)/etags.exe: 	$(ETAGSOBJ)
		$(LINK) $(LINK_OUT)$@ $(LINK_FLAGS) $(ETAGSOBJ) $(LIBS)


EBROWSEOBJ    = $(BLD)/ebrowse.$(O) \
                $(BLD)/getopt.$(O) \
                $(BLD)/getopt1.$(O) \
                $(BLD)/ntlib.$(O)

$(BLD)/ebrowse.exe:     $(EBROWSEOBJ)
		$(LINK) $(LINK_OUT)$@ $(LINK_FLAGS) $(EBROWSEOBJ) $(LIBS)

$(BLD)/regex.$(O): ../src/regex.c ../src/regex.h ../src/config.h
		$(CC)  $(CFLAGS) -DCONFIG_BROKETS -DINHIBIT_STRING_HEADER \
		../src/regex.c $(CC_OUT)$@

ETAGS_CFLAGS  = -DHAVE_GETCWD
$(BLD)/etags.$(O): etags.c
		$(CC) $(CFLAGS) $(ETAGS_CFLAGS) $(CC_OUT)$@ etags.c

CTAGSOBJ      = $(BLD)/ctags.$(O) \
		$(BLD)/getopt.$(O) \
		$(BLD)/getopt1.$(O) \
		$(BLD)/ntlib.$(O) \
		$(BLD)/regex.$(O)

$(BLD)/ctags.exe:  $(CTAGSOBJ)
		$(LINK) $(LINK_OUT)$@ $(LINK_FLAGS) $(CTAGSOBJ) $(LIBS)

ctags.c:	etags.c
		- $(DEL) ctags.c
		$(CP) etags.c ctags.c

CTAGS_CFLAGS  = -DCTAGS $(ETAGS_CFLAGS)
$(BLD)/ctags.$(O): ctags.c
		$(CC) $(CFLAGS) $(CTAGS_CFLAGS) $(CC_OUT)$@ ctags.c

#
# don't know what to do with these yet...
#
# $(BLD)/sorted-doc.exe: 	$(BLD)/sorted-doc.$(O)
# $(BLD)/yow.exe: 		$(BLD)/yow.$(O)
# $(BLD)/emacstool.exe: 	$(BLD)/emacstool.$(O)
# $(BLD)/leditcfns.exe: 	$(BLD)/leditcfns.$(O)
# $(BLD)/server.exe: 		$(BLD)/server.$(O)
# $(BLD)/cvtmail.exe: 		$(BLD)/cvtmail.$(O)
# $(BLD)/digest-doc.exe: 	$(BLD)/digest-doc.$(O)
# $(BLD)/emacsclient.exe: 	$(BLD)/emacsclient.$(O)
# $(BLD)/test-distrib.exe: 	$(BLD)/test-distrib.$(O)

#
# From ..\src\Makefile.in
# It doesn't matter if the real name is *.obj for the files in this list,
# make-docfile blindly replaces .o with .c anyway.  Keep .o in this list
# as it is required by code in doc.c.
#
obj=    sunfns.o dosfns.o msdos.o \
	xterm.o xfns.o xmenu.o xselect.o xrdb.o  fringe.o image.o \
	mac.o macterm.o macfns.o macmenu.o fontset.o \
	w32.o w32bdf.o w32console.o w32fns.o w32heap.o w32inevt.o \
	w32menu.o w32proc.o w32reg.o w32select.o w32term.o w32xfns.o \
	dispnew.o frame.o scroll.o xdisp.o window.o \
	charset.o coding.o category.o ccl.o \
	cm.o term.o xfaces.o \
	emacs.o keyboard.o macros.o keymap.o sysdep.o \
	buffer.o filelock.o insdel.o marker.o \
	minibuf.o fileio.o dired.o filemode.o \
	cmds.o casetab.o casefiddle.o indent.o search.o regex.o undo.o \
	alloc.o data.o doc.o editfns.o callint.o \
	eval.o floatfns.o fns.o print.o lread.o \
	abbrev.o syntax.o bytecode.o \
	process.o callproc.o \
	region-cache.o sound.o atimer.o \
	doprnt.o strftime.o intervals.o textprop.o composite.o md5.o

#
# These are the lisp files that are loaded up in loadup.el
#
lispsource = ../lisp/

MOUSE_SUPPORT = $(lispsource)select.elc $(lispsource)scroll-bar.elc $(lispsource)mouse.elc
WINNT_SUPPORT = $(lispsource)ls-lisp.elc $(lispsource)disp-table.elc $(lispsource)w32-fns.elc $(lispsource)dos-w32.elc $(lispsource)w32-vars.elc

# lisp files that are loaded up on other platforms
MSDOS_SUPPORT = $(lispsource)dos-fns.elc $(lispsource)dos-vars.elc $(lispsource)international/ccl.elc $(lispsource)international/codepage.elc
VMS_SUPPORT = $(lispsource)vmsproc.elc $(lispsource)vms-patch.elc

lisp1= \
	$(lispsource)abbrev.elc \
	$(lispsource)buff-menu.elc \
	$(lispsource)button.elc \
	$(lispsource)emacs-lisp/byte-run.elc \
	$(lispsource)cus-start.elc \
	$(lispsource)custom.elc \
	$(lispsource)emacs-lisp/backquote.elc \
	$(lispsource)emacs-lisp/lisp-mode.elc \
	$(lispsource)emacs-lisp/lisp.elc \
	$(lispsource)env.elc \
	$(lispsource)faces.elc \
	$(lispsource)files.elc \
	$(lispsource)format.elc \
	$(lispsource)facemenu.elc \
	$(MOUSE_SUPPORT) \
	$(lispsource)emacs-lisp/float-sup.elc \
	$(lispsource)frame.elc \
	$(lispsource)help.elc \
	$(lispsource)indent.elc \
	$(lispsource)isearch.elc \
	$(lispsource)loadup.el \
	$(lispsource)loaddefs.el \
	$(lispsource)bindings.elc \
	$(lispsource)emacs-lisp/map-ynp.elc \
	$(lispsource)menu-bar.elc \
	$(lispsource)international/mule.elc \
	$(lispsource)international/mule-conf.el \
	$(lispsource)international/mule-cmds.elc \
	$(lispsource)international/characters.elc \
	$(lispsource)international/ucs-tables.elc \
	$(lispsource)international/utf-8.elc \
	$(lispsource)international/latin-1.el \
	$(lispsource)international/latin-2.el \
	$(lispsource)international/latin-3.el \
	$(lispsource)international/latin-4.el \
	$(lispsource)international/latin-5.el \
	$(lispsource)international/latin-8.el \
	$(lispsource)international/latin-9.el \
	$(lispsource)case-table.elc

lisp2 = \
	$(lispsource)language/chinese.elc \
	$(lispsource)language/cyrillic.elc \
	$(lispsource)language/indian.elc \
	$(lispsource)language/devanagari.el \
	$(lispsource)language/malayalam.el \
	$(lispsource)language/tamil.el \
	$(lispsource)language/english.el \
	$(lispsource)language/ethiopic.elc \
	$(lispsource)language/european.elc \
	$(lispsource)language/czech.el \
	$(lispsource)language/slovak.el \
	$(lispsource)language/romanian.el \
	$(lispsource)language/greek.el \
	$(lispsource)language/hebrew.el \
	$(lispsource)language/japanese.el \
	$(lispsource)language/korean.el \
	$(lispsource)language/lao.el \
	$(lispsource)language/thai.el \
	$(lispsource)language/tibetan.elc \
	$(lispsource)language/vietnamese.elc \
	$(lispsource)language/misc-lang.el \
	$(lispsource)language/utf-8-lang.el \
	$(lispsource)language/georgian.el \
	$(lispsource)paths.el \
	$(lispsource)register.elc \
	$(lispsource)replace.elc \
	$(lispsource)simple.elc \
	$(lispsource)startup.elc \
	$(lispsource)subr.elc \
	$(lispsource)term/tty-colors.elc \
	$(lispsource)font-core.elc \
	$(lispsource)textmodes/fill.elc \
	$(lispsource)textmodes/page.elc \
	$(lispsource)textmodes/paragraphs.elc \
	$(lispsource)textmodes/text-mode.elc \
	$(lispsource)vc-hooks.elc \
	$(lispsource)ediff-hook.elc \
	$(VMS_SUPPORT) \
	$(MSDOS_SUPPORT) \
	$(WINNT_SUPPORT) \
	$(lispsource)widget.elc \
	$(lispsource)window.elc \
	$(lispsource)version.el


DOC	      = DOC
$(DOC):		$(BLD) $(BLD)/make-docfile.exe ../src/$(BLD)/temacs.exe $(lisp1) $(lisp2)
		- $(DEL) $(DOC)
		"$(THISDIR)/$(BLD)/make-docfile" -o $(DOC) -d ../src $(obj)
		"$(THISDIR)/$(BLD)/make-docfile" -a $(DOC) -d ../src $(lisp1)
		"$(THISDIR)/$(BLD)/make-docfile" -a $(DOC) -d ../src $(lisp2)
		$(CP) $(DOC) ../etc/DOC-X
		- mkdir "../src/$(OBJDIR)"
		- mkdir "../src/$(OBJDIR)/etc"
		$(CP) $(DOC) ../src/$(OBJDIR)/etc/DOC-X

{$(BLD)}.$(O){$(BLD)}.exe:
		$(LINK) $(LINK_OUT)$@ $(LINK_FLAGS) $*.$(O) $(LIBS)

#
# Build the executables
#
all:		$(BLD) $(ALL) $(DOC)

#
# Assuming INSTALL_DIR is defined, build and install emacs in it.
#
INSTALL_FILES = $(ALL)
install:	$(INSTALL_FILES)
		- mkdir "$(INSTALL_DIR)/bin"
		$(CP) $(BLD)/etags.exe $(INSTALL_DIR)/bin
		$(CP) $(BLD)/ebrowse.exe $(INSTALL_DIR)/bin
		$(CP) $(BLD)/ctags.exe $(INSTALL_DIR)/bin
		$(CP) $(BLD)/hexl.exe $(INSTALL_DIR)/bin
		$(CP) $(BLD)/movemail.exe $(INSTALL_DIR)/bin
		- mkdir "$(INSTALL_DIR)/etc"
		$(CP) $(DOC) $(INSTALL_DIR)/etc

#
# Maintenance
#
clean:
		- $(DEL) *~ DOC* $(COMPILER_TEMP_FILES)
		- $(DEL) ctags.c
		- $(DEL) getopt.h
		- $(DEL_TREE) $(OBJDIR)

cleanall:	clean
		- $(DEL_TREE) obj
		- $(DEL_TREE) obj-spd
		- $(DEL_TREE) oo
		- $(DEL_TREE) oo-spd

#
# Headers we would preprocess if we could.
#
../src/config.h:	../nt/$(CONFIG_H)
			echo config.h has changed. Re-run configure.bat.
			exit -1

getopt.h:		getopt_.h
			$(CP) $(ALL_DEPS) $@

### DEPENDENCIES ###

EMACS_ROOT	= ..
SRC		= .

$(BLD)/alloca.$(O) : \
	$(SRC)/alloca.c \
	$(EMACS_ROOT)/src/s/ms-w32.h \
	$(EMACS_ROOT)/src/m/intel386.h \
	$(EMACS_ROOT)/src/config.h \
	$(EMACS_ROOT)/src/blockinput.h

$(BLD)/b2m.$(O) : \
	$(SRC)/b2m.c \
	$(EMACS_ROOT)/src/s/ms-w32.h \
	$(EMACS_ROOT)/src/m/intel386.h \
	$(EMACS_ROOT)/lib-src/../src/config.h

$(BLD)/ctags.$(O) : \
	$(SRC)/ctags.c \
	$(EMACS_ROOT)/nt/inc/sys/param.h \
	$(EMACS_ROOT)/src/s/ms-w32.h \
	$(EMACS_ROOT)/src/m/intel386.h \
	$(EMACS_ROOT)/lib-src/../src/config.h \
	$(SRC)/ntlib.h \
	$(SRC)/getopt.h

$(BLD)/cvtmail.$(O) : \
	$(SRC)/cvtmail.c

$(BLD)/digest-doc.$(O) : \
	$(SRC)/digest-doc.c

$(BLD)/emacsclient.$(O) : \
	$(SRC)/emacsclient.c \
	$(EMACS_ROOT)/src/s/ms-w32.h \
	$(EMACS_ROOT)/src/m/intel386.h \
	$(EMACS_ROOT)/lib-src/../src/config.h

$(BLD)/emacstool.$(O) : \
	$(SRC)/emacstool.c \
	$(EMACS_ROOT)/nt/inc/sys/file.h

$(BLD)/etags.$(O) : \
	$(SRC)/etags.c \
	$(EMACS_ROOT)/nt/inc/sys/param.h \
	$(EMACS_ROOT)/src/s/ms-w32.h \
	$(EMACS_ROOT)/src/m/intel386.h \
	$(EMACS_ROOT)/lib-src/../src/config.h \
	$(SRC)/ntlib.h \
	$(SRC)/getopt.h

$(BLD)/fakemail.$(O) : \
	$(SRC)/fakemail.c \
	$(SRC)/ntlib.h \
	$(EMACS_ROOT)/src/s/ms-w32.h \
	$(EMACS_ROOT)/src/m/intel386.h \
	$(EMACS_ROOT)/lib-src/../src/config.h \
	$(EMACS_ROOT)/nt/inc/pwd.h

$(BLD)/getdate.$(O) : \
	$(SRC)/getdate.c \
	$(EMACS_ROOT)/src/s/ms-w32.h \
	$(EMACS_ROOT)/src/m/intel386.h \
	$(EMACS_ROOT)/src/config.h \
	$(MSTOOLS_SYS)/types.h

$(BLD)/getopt.$(O) : \
	$(SRC)/getopt.c \
	$(EMACS_ROOT)/src/s/ms-w32.h \
	$(EMACS_ROOT)/src/m/intel386.h \
	$(EMACS_ROOT)/src/config.h \
	$(SRC)/ntlib.h \
	$(SRC)/getopt.h

$(BLD)/getopt1.$(O) : \
	$(SRC)/getopt1.c \
	$(EMACS_ROOT)/src/s/ms-w32.h \
	$(EMACS_ROOT)/src/m/intel386.h \
	$(EMACS_ROOT)/src/config.h \
	$(SRC)/getopt.h

$(BLD)/hexl.$(O) : \
	$(SRC)/hexl.c

$(BLD)/leditcfns.$(O) : \
	$(SRC)/leditcfns.c

$(BLD)/make-docfile.$(O) : \
	$(SRC)/make-docfile.c \
	$(EMACS_ROOT)/src/config.h

$(BLD)/make-path.$(O) : \
	$(SRC)/make-path.c

$(BLD)/movemail.$(O) : \
	$(SRC)/movemail.c \
	$(EMACS_ROOT)/src/s/ms-w32.h \
	$(EMACS_ROOT)/src/m/intel386.h \
	$(EMACS_ROOT)/lib-src/../src/config.h \
	$(EMACS_ROOT)/nt/inc/sys/file.h \
	$(EMACS_ROOT)/lib-src/../src/syswait.h \
	$(EMACS_ROOT)/nt/inc/pwd.h \
	$(SRC)/ntlib.h
		$(CC) $(CFLAGS) -DUSG $(CC_OUT)$@ movemail.c

$(BLD)/ntlib.$(O) : \
	$(SRC)/ntlib.c \
	$(SRC)/ntlib.h \
	$(EMACS_ROOT)/nt/inc/pwd.h

$(BLD)/pop.$(O) : \
	$(SRC)/pop.c \
	$(SRC)/pop.h \
	$(SRC)/ntlib.h

$(BLD)/profile.$(O) : \
	$(SRC)/profile.c \
	$(EMACS_ROOT)/src/s/ms-w32.h \
	$(EMACS_ROOT)/src/m/intel386.h \
	$(EMACS_ROOT)/lib-src/../src/config.h \
	$(EMACS_ROOT)/lib-src/../src/systime.h

$(BLD)/qsort.$(O) : \
	$(SRC)/qsort.c

$(BLD)/sorted-doc.$(O) : \
	$(SRC)/sorted-doc.c

$(BLD)/tcp.$(O) : \
	$(SRC)/tcp.c

$(BLD)/test-distrib.$(O) : \
	$(SRC)/test-distrib.c

$(BLD)/timer.$(O) : \
	$(SRC)/timer.c \
	$(EMACS_ROOT)/src/s/ms-w32.h \
	$(EMACS_ROOT)/src/m/intel386.h \
	$(EMACS_ROOT)/lib-src/../src/config.h

$(BLD)/yow.$(O) : \
	$(SRC)/yow.c \
	$(EMACS_ROOT)/lib-src/../src/paths.h