X-Git-Url: http://git.hcoop.net/bpt/emacs.git/blobdiff_plain/af6ea8ad8d62810d901561ae4a56d89f22ebacf0..35920d523768481258c93dadaf95e9e6aeb08a2b:/lib-src/makefile.w32-in diff --git a/lib-src/makefile.w32-in b/lib-src/makefile.w32-in index 564487a585..ed3f7b5c1a 100644 --- a/lib-src/makefile.w32-in +++ b/lib-src/makefile.w32-in @@ -1,6 +1,6 @@ # -*- Makefile -*- for GNU Emacs on the Microsoft W32 API. # Copyright (C) 2000, 2001, 2002, 2003, 2004, -# 2005, 2006 Free Software Foundation, Inc. +# 2005, 2006, 2007 Free Software Foundation, Inc. # # This file is part of GNU Emacs. # @@ -20,22 +20,17 @@ # Boston, MA 02110-1301, USA. # -ALL = make-docfile hexl ctags etags movemail ebrowse sorted-doc digest-doc +ALL = make-docfile hexl ctags etags movemail ebrowse sorted-doc digest-doc emacsclient .PHONY: $(ALL) +VERSION = 22.0.97 + 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)/server.exe \ -# $(BLD)/emacstool.exe \ -# $(BLD)/emacsclient.exe \ -# $(BLD)/cvtmail.exe \ + -I../src -LIBS = $(BASE_LIBS) $(ADVAPI32) +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) @@ -50,17 +45,18 @@ $(BLD)/digest-doc.exe: $(BLD)/digest-doc.$(O) $(BLD)/test-distrib.exe: $(BLD)/test-distrib.$(O) $(LINK) $(LINK_OUT)$@ $(LINK_FLAGS) $(BLD)/test-distrib.$(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 -sorted-doc: $(BLD) $(BLD)/sorted-doc.exe -digest-doc: $(BLD) $(BLD)/digest-doc.exe - -test-distrib: $(BLD) $(BLD)/test-distrib.exe +make-docfile: stamp_BLD $(BLD)/make-docfile.exe +ctags: stamp_BLD $(BLD)/ctags.exe +etags: stamp_BLD $(BLD)/etags.exe +ebrowse: stamp_BLD $(BLD)/ebrowse.exe +hexl: stamp_BLD $(BLD)/hexl.exe +movemail: stamp_BLD $(BLD)/movemail.exe +fakemail: stamp_BLD $(BLD)/fakemail.exe +sorted-doc: stamp_BLD $(BLD)/sorted-doc.exe +digest-doc: stamp_BLD $(BLD)/digest-doc.exe +emacsclient: stamp_BLD $(BLD)/emacsclient.exe $(BLD)/emacsclientw.exe + +test-distrib: stamp_BLD $(BLD)/test-distrib.exe "$(BLD)/test-distrib.exe" "$(SRC)/testfile" GETOPTOBJS = $(BLD)/getopt.$(O) $(BLD)/getopt1.$(O) @@ -74,6 +70,29 @@ $(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) +ECLIENT_CFLAGS = -DHAVE_GETCWD -DHAVE_STRERROR -DVERSION="\"$(VERSION)\"" +ECLIENTOBJS = $(BLD)/emacsclient.$(O) \ + $(BLD)/getopt.$(O) \ + $(BLD)/getopt1.$(O) \ + $(BLD)/ntlib.$(O) +TRES = ../nt/$(BLD)/emacs.res + +$(TRES): ../nt/emacs.rc + $(RC) $(RC_OUT)../nt/$(BLD)/emacs.res $(ALL_DEPS) + +$(BLD)/emacsclient.exe: $(ECLIENTOBJS) +# put wsock32.lib before $(LIBS) to ensure we don't link to ws2_32.lib + $(LINK) $(LINK_OUT)$@ $(LINK_FLAGS) $(ECLIENTOBJS) $(WSOCK32) $(USER32) $(LIBS) + +$(BLD)/emacsclientw.exe: $(ECLIENTOBJS) $(TRES) +# put wsock32.lib before $(LIBS) to ensure we don't link to ws2_32.lib + $(LINK) $(LINK_OUT)$@ $(TRES) -mwindows $(LINK_FLAGS) $(ECLIENTOBJS) $(WSOCK32) $(USER32) $(LIBS) + +# emacsclient.$(O) depends on makefile.w32-in because makefile.w32-in +# can be edited to define VERSION string, which is part of ECLIENT_CFLAGS. +$(BLD)/emacsclient.$(O): emacsclient.c makefile.w32-in + $(CC) $(CFLAGS) $(ECLIENT_CFLAGS) $(CC_OUT)$@ emacsclient.c + ETAGSOBJ = $(BLD)/etags.$(O) \ $(BLD)/getopt.$(O) \ $(BLD)/getopt1.$(O) \ @@ -85,9 +104,9 @@ $(BLD)/etags.exe: $(ETAGSOBJ) EBROWSEOBJ = $(BLD)/ebrowse.$(O) \ - $(BLD)/getopt.$(O) \ - $(BLD)/getopt1.$(O) \ - $(BLD)/ntlib.$(O) + $(BLD)/getopt.$(O) \ + $(BLD)/getopt1.$(O) \ + $(BLD)/ntlib.$(O) $(BLD)/ebrowse.exe: $(EBROWSEOBJ) $(LINK) $(LINK_OUT)$@ $(LINK_FLAGS) $(EBROWSEOBJ) $(LIBS) @@ -117,14 +136,6 @@ 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)/emacstool.exe: $(BLD)/emacstool.$(O) -# $(BLD)/server.exe: $(BLD)/server.$(O) -# $(BLD)/cvtmail.exe: $(BLD)/cvtmail.$(O) -# $(BLD)/emacsclient.exe: $(BLD)/emacsclient.$(O) - # # From ..\src\Makefile.in # It doesn't matter if the real name is *.obj for the files in this list, @@ -253,9 +264,18 @@ lisp2 = \ $(lispsource)window.elc \ $(lispsource)version.el +# This is needed the first time we build the tree, since temacs.exe +# does not exist yet, and the DOC rule needs it to rebuild DOC whenever +# Emacs is rebuilt. +../src/$(BLD)/temacs.exe: + - mkdir "../src/$(OBJDIR)" + - mkdir "../src/$(BLD)" + @echo temacs > temacs.exe + $(CP) temacs.exe ../src/$(BLD) + - $(DEL) temacs.exe DOC = DOC -$(DOC): $(BLD) $(BLD)/make-docfile.exe ../src/$(BLD)/temacs.exe $(lisp1) $(lisp2) +$(DOC): stamp_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) @@ -271,7 +291,7 @@ $(DOC): $(BLD) $(BLD)/make-docfile.exe ../src/$(BLD)/temacs.exe $(lisp1) $(lisp # # Build the executables # -all: $(BLD) $(ALL) $(DOC) +all: stamp_BLD $(ALL) $(DOC) # # Assuming INSTALL_DIR is defined, build and install emacs in it. @@ -286,6 +306,8 @@ install: $(INSTALL_FILES) $(CP) $(BLD)/movemail.exe $(INSTALL_DIR)/bin $(CP) $(BLD)/sorted-doc.exe $(INSTALL_DIR)/bin $(CP) $(BLD)/digest-doc.exe $(INSTALL_DIR)/bin + $(CP) $(BLD)/emacsclient.exe $(INSTALL_DIR)/bin + $(CP) $(BLD)/emacsclientw.exe $(INSTALL_DIR)/bin - mkdir "$(INSTALL_DIR)/etc" $(CP) $(DOC) $(INSTALL_DIR)/etc @@ -297,6 +319,7 @@ clean: - $(DEL) ctags.c - $(DEL) getopt.h - $(DEL_TREE) $(OBJDIR) + - $(DEL) stamp_BLD cleanall: clean - $(DEL_TREE) obj @@ -308,7 +331,7 @@ cleanall: clean # Headers we would preprocess if we could. # ../src/config.h: ../nt/$(CONFIG_H) - echo config.h has changed. Re-run configure.bat. + echo $(CONFIG_H) has changed. Re-run configure.bat. exit -1 getopt.h: getopt_.h @@ -341,9 +364,6 @@ $(BLD)/ctags.$(O) : \ $(SRC)/ntlib.h \ $(SRC)/getopt.h -$(BLD)/cvtmail.$(O) : \ - $(SRC)/cvtmail.c - $(BLD)/digest-doc.$(O) : \ $(SRC)/digest-doc.c @@ -353,10 +373,6 @@ $(BLD)/emacsclient.$(O) : \ $(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 \ @@ -418,7 +434,7 @@ $(BLD)/movemail.$(O) : \ $(EMACS_ROOT)/lib-src/../src/syswait.h \ $(EMACS_ROOT)/nt/inc/pwd.h \ $(SRC)/ntlib.h - $(CC) $(CFLAGS) -DUSG $(CC_OUT)$@ movemail.c + $(CC) $(CFLAGS) -DUSG $(CC_OUT)$@ movemail.c $(BLD)/ntlib.$(O) : \ $(SRC)/ntlib.c \ @@ -457,3 +473,16 @@ $(BLD)/timer.$(O) : \ $(EMACS_ROOT)/src/s/ms-w32.h \ $(EMACS_ROOT)/src/m/intel386.h \ $(EMACS_ROOT)/lib-src/../src/config.h + +# The following dependencies are for supporting parallel builds, where +# we must make sure $(BLD) exists before any compilation starts. +# +$(BLD)/make-docfile.$(O) $(BLD)/hexl.$(O) $(BLD)/fakemail.$(O): stamp_BLD + +$(BLD)/sorted-doc.$(O) $(BLD)/digest-doc.$(O): stamp_BLD + +$(BLD)/test-distrib.$(O) $(GETOPTOBJS) $(MOVEMAILOBJS): stamp_BLD + +$(BLD)/emacsclient.$(O) $(BLD)/etags.$(O) $(BLD)/regex.$(O): stamp_BLD + +$(BLD)/ebrowse.$(O) $(BLD)/ctags.$(O): stamp_BLD