makefile.w32-in 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476
  1. # -*- Makefile -*- for GNU Emacs on the Microsoft W32 API.
  2. # Copyright (C) 2000-2012 Free Software Foundation, Inc.
  3. # This file is part of GNU Emacs.
  4. # GNU Emacs is free software: you can redistribute it and/or modify
  5. # it under the terms of the GNU General Public License as published by
  6. # the Free Software Foundation, either version 3 of the License, or
  7. # (at your option) any later version.
  8. # GNU Emacs is distributed in the hope that it will be useful,
  9. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  10. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  11. # GNU General Public License for more details.
  12. # You should have received a copy of the GNU General Public License
  13. # along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
  14. ALL = make-docfile hexl ctags etags movemail ebrowse emacsclient
  15. .PHONY: $(ALL)
  16. LOCAL_FLAGS = -DWINDOWSNT -DDOS_NT -DNO_LDAV=1 \
  17. -DNO_ARCHIVES=1 -DHAVE_CONFIG_H=1 -I../lib \
  18. -I../nt/inc -I../src $(EMACS_EXTRA_C_FLAGS)
  19. LIBS = $(BASE_LIBS) $(ADVAPI32)
  20. $(BLD)/make-docfile.exe: $(BLD)/make-docfile.$(O) $(BLD)/ntlib.$(O)
  21. $(LINK) $(LINK_OUT)$@ $(LINK_FLAGS) $(BLD)/make-docfile.$(O) $(BLD)/ntlib.$(O) $(LIBS)
  22. $(BLD)/hexl.exe: $(BLD)/hexl.$(O)
  23. $(LINK) $(LINK_OUT)$@ $(LINK_FLAGS) $(BLD)/hexl.$(O) $(LIBS)
  24. $(BLD)/test-distrib.exe: $(BLD)/test-distrib.$(O)
  25. $(LINK) $(LINK_OUT)$@ $(LINK_FLAGS) $(BLD)/test-distrib.$(O) $(LIBS)
  26. make-docfile: stamp_BLD $(BLD)/make-docfile.exe
  27. ctags: stamp_BLD $(BLD)/ctags.exe
  28. etags: stamp_BLD $(BLD)/etags.exe
  29. ebrowse: stamp_BLD $(BLD)/ebrowse.exe
  30. hexl: stamp_BLD $(BLD)/hexl.exe
  31. movemail: stamp_BLD $(BLD)/movemail.exe
  32. emacsclient: stamp_BLD $(BLD)/emacsclient.exe $(BLD)/emacsclientw.exe
  33. test-distrib: stamp_BLD $(BLD)/test-distrib.exe
  34. "$(BLD)/test-distrib.exe" "$(SRC)/testfile"
  35. MOVEMAILOBJS = $(BLD)/movemail.$(O) \
  36. $(BLD)/pop.$(O) \
  37. ../lib/$(BLD)/libgnu.$(A) \
  38. $(BLD)/ntlib.$(O)
  39. $(BLD)/movemail.exe: $(MOVEMAILOBJS) ../lib/getopt.h
  40. # put wsock32.lib before $(LIBS) to ensure we don't link to ws2_32.lib
  41. $(LINK) $(LINK_OUT)$@ $(LINK_FLAGS) $(MOVEMAILOBJS) $(WSOCK32) $(LIBS)
  42. ECLIENT_CFLAGS = -DHAVE_GETCWD -DHAVE_STRERROR
  43. ECLIENTOBJS = $(BLD)/emacsclient.$(O) \
  44. $(BLD)/ntlib.$(O) \
  45. ../lib/$(BLD)/libgnu.$(A)
  46. CLIENTRES = ../nt/$(BLD)/emacsclient.res
  47. $(CLIENTRES): ../nt/emacsclient.rc
  48. @echo Emacsclient resource file must be built from nt directory
  49. @exit -1
  50. $(BLD)/emacsclient.exe: $(ECLIENTOBJS)
  51. # put wsock32.lib before $(LIBS) to ensure we don't link to ws2_32.lib
  52. $(LINK) $(LINK_OUT)$@ $(LINK_FLAGS) $(ECLIENTOBJS) $(WSOCK32) $(USER32) $(COMCTL32) $(LIBS)
  53. $(BLD)/emacsclientw.exe: $(ECLIENTOBJS) $(CLIENTRES)
  54. # put wsock32.lib before $(LIBS) to ensure we don't link to ws2_32.lib
  55. $(LINK) $(LINK_OUT)$@ $(CLIENTRES) $(MWINDOWS) $(LINK_FLAGS) $(ECLIENTOBJS) $(WSOCK32) $(USER32) $(COMCTL32) $(LIBS)
  56. $(BLD)/emacsclient.$(O): emacsclient.c
  57. $(CC) $(CFLAGS) $(ECLIENT_CFLAGS) $(CC_OUT)$@ emacsclient.c
  58. ETAGSOBJ = $(BLD)/etags.$(O) \
  59. ../lib/$(BLD)/libgnu.$(A) \
  60. $(BLD)/ntlib.$(O) \
  61. $(BLD)/regex.$(O)
  62. $(BLD)/etags.exe: $(ETAGSOBJ)
  63. $(LINK) $(LINK_OUT)$@ $(LINK_FLAGS) $(ETAGSOBJ) $(LIBS)
  64. EBROWSEOBJ = $(BLD)/ebrowse.$(O) \
  65. ../lib/$(BLD)/libgnu.$(A) \
  66. $(BLD)/ntlib.$(O)
  67. $(BLD)/ebrowse.exe: $(EBROWSEOBJ)
  68. $(LINK) $(LINK_OUT)$@ $(LINK_FLAGS) $(EBROWSEOBJ) $(LIBS)
  69. $(BLD)/regex.$(O): ../src/regex.c ../src/regex.h ../src/config.h
  70. $(CC) $(CFLAGS) -DCONFIG_BROKETS -DINHIBIT_STRING_HEADER \
  71. ../src/regex.c $(CC_OUT)$@
  72. ETAGS_CFLAGS = -DHAVE_GETCWD -DEMACS_NAME="\"GNU Emacs\""
  73. $(BLD)/etags.$(O): etags.c
  74. $(CC) $(CFLAGS) $(ETAGS_CFLAGS) $(CC_OUT)$@ etags.c
  75. CTAGSOBJ = $(BLD)/ctags.$(O) \
  76. ../lib/$(BLD)/libgnu.$(A) \
  77. $(BLD)/ntlib.$(O) \
  78. $(BLD)/regex.$(O)
  79. $(BLD)/ctags.exe: $(CTAGSOBJ)
  80. $(LINK) $(LINK_OUT)$@ $(LINK_FLAGS) $(CTAGSOBJ) $(LIBS)
  81. ctags.c: etags.c
  82. - $(DEL) ctags.c
  83. $(CP) etags.c ctags.c
  84. CTAGS_CFLAGS = -DCTAGS $(ETAGS_CFLAGS) -DEMACS_NAME="\"GNU Emacs\""
  85. $(BLD)/ctags.$(O): ctags.c
  86. $(CC) $(CFLAGS) $(CTAGS_CFLAGS) $(CC_OUT)$@ ctags.c
  87. #
  88. # From ..\src\Makefile.in
  89. # It doesn't matter if the real name is *.obj for the files in this list,
  90. # make-docfile blindly replaces .o with .c anyway. Keep .o in this list
  91. # as it is required by code in doc.c.
  92. #
  93. obj = dosfns.o msdos.o \
  94. xterm.o xfns.o xmenu.o xselect.o xrdb.o xsmfns.o fringe.o image.o \
  95. fontset.o menu.o \
  96. w32.o w32console.o w32fns.o w32heap.o w32inevt.o \
  97. w32menu.o w32proc.o w32reg.o w32select.o w32term.o w32xfns.o \
  98. font.o w32font.o w32uniscribe.o \
  99. dispnew.o frame.o scroll.o xdisp.o window.o bidi.o \
  100. charset.o coding.o category.o ccl.o character.o chartab.o \
  101. cm.o term.o terminal.o xfaces.o \
  102. emacs.o keyboard.o macros.o keymap.o sysdep.o \
  103. buffer.o filelock.o insdel.o marker.o \
  104. minibuf.o fileio.o dired.o \
  105. cmds.o casetab.o casefiddle.o indent.o search.o regex.o undo.o \
  106. alloc.o data.o doc.o editfns.o callint.o \
  107. eval.o floatfns.o fns.o print.o lread.o \
  108. syntax.o bytecode.o \
  109. process.o callproc.o unexw32.o \
  110. region-cache.o sound.o atimer.o \
  111. doprnt.o intervals.o textprop.o composite.o \
  112. gnutls.o
  113. #
  114. # These are the lisp files that are loaded up in loadup.el
  115. #
  116. lispsource = ../lisp/
  117. MOUSE_SUPPORT = \
  118. $(lispsource)select.elc \
  119. $(lispsource)scroll-bar.elc \
  120. $(lispsource)mouse.elc
  121. WINNT_SUPPORT = \
  122. $(lispsource)ls-lisp.elc \
  123. $(lispsource)disp-table.elc \
  124. $(lispsource)w32-fns.elc \
  125. $(lispsource)dos-w32.elc \
  126. $(lispsource)w32-vars.elc \
  127. $(lispsource)term/common-win.elc \
  128. $(lispsource)term/w32-win.elc
  129. TOOLTIP_SUPPORT = $(lispsource)tooltip.elc
  130. WINDOW_SUPPORT = \
  131. $(lispsource)fringe.elc \
  132. $(lispsource)image.elc \
  133. $(lispsource)international/fontset.elc \
  134. $(lispsource)dnd.elc \
  135. $(lispsource)tool-bar.elc \
  136. $(lispsource)mwheel.elc
  137. # lisp files that are loaded up on other platforms
  138. OTHER_PLATFORM_SUPPORT = \
  139. $(lispsource)dos-fns.elc \
  140. $(lispsource)dos-vars.elc \
  141. $(lispsource)term/internal.elc \
  142. $(lispsource)term/pc-win.elc \
  143. $(lispsource)x-dnd.elc \
  144. $(lispsource)term/x-win.elc \
  145. $(lispsource)term/ns-win.elc
  146. lisp1= \
  147. $(lispsource)abbrev.elc \
  148. $(lispsource)buff-menu.elc \
  149. $(lispsource)button.elc \
  150. $(lispsource)emacs-lisp/byte-run.elc \
  151. $(lispsource)composite.elc \
  152. $(lispsource)cus-face.elc \
  153. $(lispsource)cus-start.elc \
  154. $(lispsource)custom.elc \
  155. $(lispsource)emacs-lisp/backquote.elc \
  156. $(lispsource)emacs-lisp/lisp-mode.elc \
  157. $(lispsource)emacs-lisp/lisp.elc \
  158. $(lispsource)env.elc \
  159. $(lispsource)faces.elc \
  160. $(lispsource)files.elc \
  161. $(lispsource)format.elc \
  162. $(lispsource)facemenu.elc \
  163. $(MOUSE_SUPPORT) \
  164. $(lispsource)emacs-lisp/float-sup.elc \
  165. $(lispsource)frame.elc \
  166. $(lispsource)help.elc \
  167. $(lispsource)indent.elc \
  168. $(lispsource)isearch.elc \
  169. $(lispsource)rfn-eshadow.elc \
  170. $(lispsource)loadup.el \
  171. $(lispsource)loaddefs.el \
  172. $(lispsource)bindings.elc \
  173. $(lispsource)emacs-lisp/map-ynp.elc \
  174. $(lispsource)menu-bar.elc \
  175. $(lispsource)international/mule.elc \
  176. $(lispsource)international/mule-conf.el \
  177. $(lispsource)international/mule-cmds.elc \
  178. $(lispsource)international/characters.elc \
  179. $(lispsource)international/charprop.el \
  180. $(lispsource)case-table.elc
  181. lisp2 = \
  182. $(lispsource)language/chinese.el \
  183. $(lispsource)language/cyrillic.el \
  184. $(lispsource)language/indian.el \
  185. $(lispsource)language/sinhala.el \
  186. $(lispsource)language/english.el \
  187. $(lispsource)language/ethiopic.elc \
  188. $(lispsource)language/european.elc \
  189. $(lispsource)language/czech.el \
  190. $(lispsource)language/slovak.el \
  191. $(lispsource)language/romanian.el \
  192. $(lispsource)language/greek.el \
  193. $(lispsource)language/hebrew.elc \
  194. $(lispsource)language/japanese.el \
  195. $(lispsource)language/korean.el \
  196. $(lispsource)language/lao.el \
  197. $(lispsource)language/cham.el \
  198. $(lispsource)language/tai-viet.el \
  199. $(lispsource)language/thai.el \
  200. $(lispsource)language/tibetan.elc \
  201. $(lispsource)language/vietnamese.el \
  202. $(lispsource)language/misc-lang.el \
  203. $(lispsource)language/utf-8-lang.el \
  204. $(lispsource)language/georgian.el \
  205. $(lispsource)language/khmer.el \
  206. $(lispsource)language/burmese.el \
  207. $(lispsource)paths.el \
  208. $(lispsource)register.elc \
  209. $(lispsource)replace.elc \
  210. $(lispsource)simple.elc \
  211. $(lispsource)minibuffer.elc \
  212. $(lispsource)startup.elc \
  213. $(lispsource)subr.elc \
  214. $(lispsource)term/tty-colors.elc \
  215. $(lispsource)font-core.elc \
  216. $(lispsource)emacs-lisp/syntax.elc \
  217. $(lispsource)font-lock.elc \
  218. $(lispsource)jit-lock.elc \
  219. $(lispsource)textmodes/fill.elc \
  220. $(lispsource)textmodes/page.elc \
  221. $(lispsource)textmodes/paragraphs.elc \
  222. $(lispsource)textmodes/text-mode.elc \
  223. $(lispsource)emacs-lisp/timer.elc \
  224. $(lispsource)jka-cmpr-hook.elc \
  225. $(lispsource)vc/vc-hooks.elc \
  226. $(lispsource)vc/ediff-hook.elc \
  227. $(lispsource)epa-hook.elc \
  228. $(TOOLTIP_SUPPORT) \
  229. $(WINNT_SUPPORT) \
  230. $(WINDOW_SUPPORT) \
  231. $(lispsource)widget.elc \
  232. $(lispsource)window.elc \
  233. $(lispsource)version.el
  234. # This is needed the first time we build the tree, since temacs.exe
  235. # does not exist yet, and the DOC rule needs it to rebuild DOC whenever
  236. # Emacs is rebuilt.
  237. ../src/$(BLD)/temacs.exe:
  238. - mkdir "../src/$(OBJDIR)"
  239. - mkdir "../src/$(BLD)"
  240. @echo temacs > temacs.exe
  241. $(CP) temacs.exe ../src/$(BLD)
  242. - $(DEL) temacs.exe
  243. DOC = DOC
  244. $(DOC): stamp_BLD $(BLD)/make-docfile.exe ../src/$(BLD)/temacs.exe $(lisp1) $(lisp2) $(OTHER_PLATFORM_SUPPORT)
  245. - $(DEL) $(DOC)
  246. "$(THISDIR)/$(BLD)/make-docfile" -o $(DOC) -d ../src $(obj)
  247. "$(THISDIR)/$(BLD)/make-docfile" -a $(DOC) -d ../src $(lisp1)
  248. "$(THISDIR)/$(BLD)/make-docfile" -a $(DOC) -d ../src $(lisp2)
  249. "$(THISDIR)/$(BLD)/make-docfile" -a $(DOC) -d ../src $(OTHER_PLATFORM_SUPPORT)
  250. $(CP) $(DOC) ../etc/DOC-X
  251. - mkdir "../src/$(OBJDIR)"
  252. - mkdir "../src/$(OBJDIR)/etc"
  253. $(CP) $(DOC) ../src/$(OBJDIR)/etc/DOC-X
  254. {$(BLD)}.$(O){$(BLD)}.exe:
  255. $(LINK) $(LINK_OUT)$@ $(LINK_FLAGS) $*.$(O) $(LIBS)
  256. #
  257. # Build the executables
  258. #
  259. all: stamp_BLD $(ALL) $(DOC)
  260. #
  261. # Assuming INSTALL_DIR is defined, build and install emacs in it.
  262. #
  263. INSTALL_FILES = $(ALL)
  264. install: $(INSTALL_FILES)
  265. - mkdir "$(INSTALL_DIR)/bin"
  266. $(CP) $(BLD)/etags.exe $(INSTALL_DIR)/bin
  267. $(CP) $(BLD)/ebrowse.exe $(INSTALL_DIR)/bin
  268. $(CP) $(BLD)/ctags.exe $(INSTALL_DIR)/bin
  269. $(CP) $(BLD)/hexl.exe $(INSTALL_DIR)/bin
  270. $(CP) $(BLD)/movemail.exe $(INSTALL_DIR)/bin
  271. $(CP) $(BLD)/emacsclient.exe $(INSTALL_DIR)/bin
  272. $(CP) $(BLD)/emacsclientw.exe $(INSTALL_DIR)/bin
  273. - mkdir "$(INSTALL_DIR)/etc"
  274. $(CP) $(DOC) $(INSTALL_DIR)/etc
  275. #
  276. # Maintenance
  277. #
  278. # We used to delete *~ here, but that might inadvertently remove
  279. # precious files if it happens to match their short 8+3 aliases.
  280. clean:
  281. - $(DEL) DOC* $(COMPILER_TEMP_FILES)
  282. - $(DEL) ctags.c
  283. - $(DEL_TREE) $(OBJDIR)
  284. - $(DEL) stamp_BLD
  285. distclean: cleanall
  286. - $(DEL) TAGS
  287. - $(DEL) Makefile
  288. maintainer-clean: distclean
  289. cleanall: clean
  290. - $(DEL_TREE) obj
  291. - $(DEL_TREE) obj-spd
  292. - $(DEL_TREE) oo
  293. - $(DEL_TREE) oo-spd
  294. #
  295. # Headers we would preprocess if we could.
  296. #
  297. ../src/config.h: ../nt/$(CONFIG_H)
  298. $(DEL) $@
  299. echo $(CONFIG_H) has changed. Re-run configure.bat.
  300. exit -1
  301. ### TAGS ###
  302. TAGS: $(BLD)/etags.exe *.c *.h
  303. $(BLD)/etags.exe *.c *.h
  304. ### DEPENDENCIES ###
  305. EMACS_ROOT = ..
  306. SRC = .
  307. $(BLD)/alloca.$(O) : \
  308. $(SRC)/alloca.c \
  309. $(EMACS_ROOT)/src/s/ms-w32.h \
  310. $(EMACS_ROOT)/src/m/intel386.h \
  311. $(EMACS_ROOT)/src/config.h \
  312. $(EMACS_ROOT)/src/blockinput.h
  313. $(BLD)/ctags.$(O) : \
  314. $(SRC)/ctags.c \
  315. $(EMACS_ROOT)/nt/inc/sys/param.h \
  316. $(EMACS_ROOT)/nt/inc/sys/stat.h \
  317. $(EMACS_ROOT)/src/s/ms-w32.h \
  318. $(EMACS_ROOT)/src/m/intel386.h \
  319. $(EMACS_ROOT)/lib-src/../src/config.h \
  320. $(SRC)/ntlib.h \
  321. $(EMACS_ROOT)/lib/getopt.h
  322. $(BLD)/ebrowse.$(O) : \
  323. $(SRC)/ebrowse.c \
  324. $(EMACS_ROOT)/lib/min-max.h \
  325. $(EMACS_ROOT)/src/s/ms-w32.h \
  326. $(EMACS_ROOT)/src/m/intel386.h \
  327. $(EMACS_ROOT)/lib-src/../src/config.h
  328. $(BLD)/emacsclient.$(O) : \
  329. $(SRC)/emacsclient.c \
  330. $(EMACS_ROOT)/nt/inc/sys/stat.h \
  331. $(EMACS_ROOT)/src/s/ms-w32.h \
  332. $(EMACS_ROOT)/src/m/intel386.h \
  333. $(EMACS_ROOT)/lib-src/../src/config.h
  334. $(BLD)/etags.$(O) : \
  335. $(SRC)/etags.c \
  336. $(EMACS_ROOT)/nt/inc/sys/param.h \
  337. $(EMACS_ROOT)/nt/inc/sys/stat.h \
  338. $(EMACS_ROOT)/src/s/ms-w32.h \
  339. $(EMACS_ROOT)/src/m/intel386.h \
  340. $(EMACS_ROOT)/lib-src/../src/config.h \
  341. $(SRC)/ntlib.h \
  342. $(EMACS_ROOT)/lib/getopt.h
  343. $(BLD)/getdate.$(O) : \
  344. $(SRC)/getdate.c \
  345. $(EMACS_ROOT)/src/s/ms-w32.h \
  346. $(EMACS_ROOT)/src/m/intel386.h \
  347. $(EMACS_ROOT)/src/config.h \
  348. $(MSTOOLS_SYS)/types.h
  349. $(BLD)/hexl.$(O) : \
  350. $(SRC)/hexl.c
  351. $(BLD)/leditcfns.$(O) : \
  352. $(SRC)/leditcfns.c
  353. $(BLD)/make-docfile.$(O) : \
  354. $(SRC)/make-docfile.c \
  355. $(EMACS_ROOT)/src/config.h
  356. $(BLD)/make-path.$(O) : \
  357. $(SRC)/make-path.c
  358. $(BLD)/movemail.$(O) : \
  359. $(SRC)/movemail.c \
  360. $(EMACS_ROOT)/src/s/ms-w32.h \
  361. $(EMACS_ROOT)/src/m/intel386.h \
  362. $(EMACS_ROOT)/lib-src/../src/config.h \
  363. $(EMACS_ROOT)/nt/inc/sys/file.h \
  364. $(EMACS_ROOT)/nt/inc/sys/stat.h \
  365. $(EMACS_ROOT)/lib-src/../src/syswait.h \
  366. $(EMACS_ROOT)/nt/inc/pwd.h \
  367. $(SRC)/ntlib.h
  368. $(CC) $(CFLAGS) -DUSG $(CC_OUT)$@ movemail.c
  369. $(BLD)/ntlib.$(O) : \
  370. $(SRC)/ntlib.c \
  371. $(SRC)/ntlib.h \
  372. $(EMACS_ROOT)/nt/inc/sys/stat.h \
  373. $(EMACS_ROOT)/nt/inc/pwd.h
  374. $(BLD)/pop.$(O) : \
  375. $(SRC)/pop.c \
  376. $(SRC)/pop.h \
  377. $(EMACS_ROOT)/lib/min-max.h \
  378. $(SRC)/ntlib.h
  379. $(BLD)/profile.$(O) : \
  380. $(SRC)/profile.c \
  381. $(EMACS_ROOT)/src/s/ms-w32.h \
  382. $(EMACS_ROOT)/src/m/intel386.h \
  383. $(EMACS_ROOT)/lib-src/../src/config.h \
  384. $(EMACS_ROOT)/lib-src/../src/systime.h
  385. $(BLD)/qsort.$(O) : \
  386. $(SRC)/qsort.c
  387. $(BLD)/tcp.$(O) : \
  388. $(SRC)/tcp.c
  389. $(BLD)/test-distrib.$(O) : \
  390. $(SRC)/test-distrib.c
  391. $(BLD)/timer.$(O) : \
  392. $(SRC)/timer.c \
  393. $(EMACS_ROOT)/src/s/ms-w32.h \
  394. $(EMACS_ROOT)/src/m/intel386.h \
  395. $(EMACS_ROOT)/lib-src/../src/config.h
  396. # The following dependencies are for supporting parallel builds, where
  397. # we must make sure $(BLD) exists before any compilation starts.
  398. #
  399. $(BLD)/make-docfile.$(O) $(BLD)/hexl.$(O): stamp_BLD
  400. $(BLD)/test-distrib.$(O) $(MOVEMAILOBJS): stamp_BLD
  401. $(BLD)/emacsclient.$(O) $(BLD)/etags.$(O) $(BLD)/regex.$(O): stamp_BLD
  402. $(BLD)/ebrowse.$(O) $(BLD)/ctags.$(O): stamp_BLD