comparison Makefile.in @ 159:3bb7ccffb0c0 r20-3b6

Import from CVS: tag r20-3b6
author cvs
date Mon, 13 Aug 2007 09:41:43 +0200
parents 43dd3413c7c7
children 0132846995bd
comparison
equal deleted inserted replaced
158:558dfa75ffb3 159:3bb7ccffb0c0
121 # expected to be in ${srcdir}/src, and the source code for XEmacs's 121 # expected to be in ${srcdir}/src, and the source code for XEmacs's
122 # utility programs is expected to be in ${srcdir}/lib-src. This is 122 # utility programs is expected to be in ${srcdir}/lib-src. This is
123 # set by the configure script's `--srcdir' option. 123 # set by the configure script's `--srcdir' option.
124 srcdir=@srcdir@ 124 srcdir=@srcdir@
125 125
126 # Tell make where to find source files; this is needed for the makefiles.
127 VPATH=@srcdir@
128
129 # ==================== XEmacs-specific directories ==================== 126 # ==================== XEmacs-specific directories ====================
130 127
131 # These variables hold the values XEmacs will actually use. They are 128 # These variables hold the values XEmacs will actually use. They are
132 # based on the values of the standard Make variables above. 129 # based on the values of the standard Make variables above.
133 130
214 # When installing the info files, we need to do special things to 211 # When installing the info files, we need to do special things to
215 # avoid nuking an existing dir file, so we don't do that here; 212 # avoid nuking an existing dir file, so we don't do that here;
216 # instead, we have written out explicit code in the `install' targets. 213 # instead, we have written out explicit code in the `install' targets.
217 COPYDIR = ${srcdir}/etc ${srcdir}/lisp 214 COPYDIR = ${srcdir}/etc ${srcdir}/lisp
218 COPYDESTS = ${etcdir} ${lispdir} 215 COPYDESTS = ${etcdir} ${lispdir}
219 216 GENERATED_HEADERS = src/paths.h src/Emacs.ad.h src/config.h src/puresize_adjust.h
220 .NO_PARALLEL: src/paths.h src/Emacs.ad.h ${MAKE_SUBDIR} dump-elcs 217
221 218 all: ${GENERATED_HEADERS} ${MAKE_SUBDIR}
222 all: src/paths.h src/Emacs.ad.h ${MAKE_SUBDIR} 219
220 # For performance and consistency, no built-in rules
221 .SUFFIXES:
222
223 .NO_PARALLEL: ${GENERATED_HEADERS} ${MAKE_SUBDIR} dump-elcs
224 .PHONY: ${SUBDIR} all beta all-elc all-elcs dump-elc dump-elcs autoloads
223 225
224 # Convenience target for XEmacs beta testers 226 # Convenience target for XEmacs beta testers
225 beta: clean all-elc 227 beta: clean all-elc
226 228
227 # Build XEmacs and recompile out-of-date and missing .elc files along 229 # Build XEmacs and recompile out-of-date and missing .elc files along
228 # the way. 230 # the way.
229 all-elc all-elcs: src/paths.h src/Emacs.ad.h lib-src lwlib dump-elcs src 231 all-elc all-elcs: lib-src lwlib dump-elcs src
230 MAKE='$(MAKE)' sh ${srcdir}/lib-src/update-elc.sh 232 MAKE='$(MAKE)' sh ${srcdir}/lib-src/update-elc.sh
231 233
232 # Sub-target for all-elc. 234 # Sub-target for all-elc.
233 dump-elc dump-elcs: FRC.dump-elcs 235 dump-elc dump-elcs: ${GENERATED_HEADERS} FRC.dump-elcs
234 cd src && $(MAKE) dump-elcs $(MFLAGS) \ 236 cd src && $(MAKE) dump-elcs $(MFLAGS) \
235 CC='${CC}' CFLAGS='${CFLAGS}' MAKE='${MAKE}' 237 CC='${CC}' CFLAGS='${CFLAGS}' MAKE='${MAKE}'
236 238
237 autoloads: src 239 autoloads: src
238 MAKE='$(MAKE)' sh ${srcdir}/lib-src/update-autoloads.sh 240 MAKE='$(MAKE)' sh ${srcdir}/lib-src/update-autoloads.sh
243 # something notable, so the only unnecessary work we do is in building 245 # something notable, so the only unnecessary work we do is in building
244 # src/paths.h.tmp, which isn't much. Note that sed is not in /bin on 246 # src/paths.h.tmp, which isn't much. Note that sed is not in /bin on
245 # 386bsd. 247 # 386bsd.
246 src/paths.h: Makefile ${srcdir}/src/paths.h.in FRC.src.paths.h 248 src/paths.h: Makefile ${srcdir}/src/paths.h.in FRC.src.paths.h
247 @echo "Producing \`src/paths.h' from \`src/paths.h.in'." 249 @echo "Producing \`src/paths.h' from \`src/paths.h.in'."
248 -rm -f src/paths.h.tmp 250 @-rm -f src/paths.h.tmp
249 @cp ${srcdir}/src/paths.h.in src/paths.h.tmp 251 @cp ${srcdir}/src/paths.h.in src/paths.h.tmp
250 -chmod 0644 src/paths.h.tmp 252 @-chmod 0644 src/paths.h.tmp
251 @echo '#define PATH_PREFIX "${prefix}"' >> src/paths.h.tmp 253 @(echo '#define PATH_PREFIX "${prefix}"'; \
252 @if [ x"${lispdir_user_defined}" = x"yes" ]; then \ 254 if test "${lispdir_user_defined}" = "yes"; \
253 echo '#define PATH_LOADSEARCH "${lispdir}"' >> src/paths.h.tmp;\ 255 then echo '#define PATH_LOADSEARCH "${lispdir}"'; \
254 else \ 256 else echo '/* #define PATH_LOADSEARCH "${lispdir}" */'; \
255 echo '/* #define PATH_LOADSEARCH "${lispdir}" */' >>src/paths.h.tmp;\ 257 fi; \
256 fi 258 if test "${archlibdir_user_defined}" = "yes"; \
257 @if [ x"${archlibdir_user_defined}" = x"yes" ]; then \ 259 then echo '#define PATH_EXEC "${archlibdir}"'; \
258 echo '#define PATH_EXEC "${archlibdir}"' >> src/paths.h.tmp ;\ 260 else echo '/* #define PATH_EXEC "${archlibdir}" */'; \
259 else \ 261 fi; \
260 echo '/* #define PATH_EXEC "${archlibdir}" */' >> src/paths.h.tmp ;\ 262 if test "${etcdir_user_defined}" = "yes"; \
261 fi 263 then echo '#define PATH_DATA "${etcdir}"'; \
262 @if [ x"${etcdir_user_defined}" = x"yes" ]; then \ 264 else echo '/* #define PATH_DATA "${etcdir}" */'; \
263 echo '#define PATH_DATA "${etcdir}"' >> src/paths.h.tmp ;\ 265 fi; \
264 else \ 266 if test "${lockdir_user_defined}" = "yes"; \
265 echo '/* #define PATH_DATA "${etcdir}" */' >> src/paths.h.tmp ;\ 267 then echo '#define PATH_LOCK "${lockdir}"'; \
266 fi 268 else echo '/* #define PATH_LOCK "${lockdir}" */'; \
267 @if [ x"${lockdir_user_defined}" = x"yes" ]; then \ 269 fi; \
268 echo '#define PATH_LOCK "${lockdir}"' >> src/paths.h.tmp ;\ 270 if test "${infodir_user_defined}" = "yes"; \
269 else \ 271 then echo '#define PATH_INFO "${infodir}"'; \
270 echo '/* #define PATH_LOCK "${lockdir}" */' >> src/paths.h.tmp ;\ 272 else echo '/* #define PATH_INFO "${infodir}" */'; \
271 fi 273 fi; ) >> src/paths.h.tmp; \
272 @if [ x"${infodir_user_defined}" = x"yes" ]; then \ 274 sh ${srcdir}/move-if-change src/paths.h.tmp src/paths.h
273 echo '#define PATH_INFO "${infodir}"' >> src/paths.h.tmp ;\
274 else \
275 echo '/* #define PATH_INFO "${infodir}" */' >> src/paths.h.tmp ;\
276 fi
277 @sh ${srcdir}/move-if-change src/paths.h.tmp src/paths.h
278 275
279 # We have to force the building of Emacs.ad.h as well in order to get it 276 # We have to force the building of Emacs.ad.h as well in order to get it
280 # updated correctly when VPATH is being used. Since we use move-if-change, 277 # updated correctly when VPATH is being used. Since we use move-if-change,
281 # it will only actually change if the user modified ${etcdir}/Emacs.ad. 278 # it will only actually change if the user modified ${etcdir}/Emacs.ad.
282 src/Emacs.ad.h: ${srcdir}/etc/Emacs.ad 279 src/Emacs.ad.h: ${srcdir}/etc/Emacs.ad
286 echo " Automatically generated from ${srcdir}/etc/Emacs.ad" ; \ 283 echo " Automatically generated from ${srcdir}/etc/Emacs.ad" ; \
287 echo " */" ; \ 284 echo " */" ; \
288 /bin/sh ${srcdir}/lib-src/ad2c ${srcdir}/etc/Emacs.ad ) > \ 285 /bin/sh ${srcdir}/lib-src/ad2c ${srcdir}/etc/Emacs.ad ) > \
289 src/Emacs.ad.h 286 src/Emacs.ad.h
290 287
288 src/puresize_adjust.h: ${srcdir}/src/puresize.h
289 @echo "Resetting \`src/puresize_adjust.h'."; \
290 (echo "/* Do not edit this file!" ; \
291 echo " Automatically generated by XEmacs */" ; \
292 echo "#define PURESIZE_ADJUSTMENT 0") > $@
293
291 src: @SRC_SUBDIR_DEPS@ FRC.src 294 src: @SRC_SUBDIR_DEPS@ FRC.src
292 lib-src: FRC.lib-src 295 lib-src: FRC.lib-src
293 lwlib: FRC.lwlib 296 lwlib: FRC.lwlib
294 297
295 .RECURSIVE: ${SUBDIR} 298 .RECURSIVE: ${SUBDIR}
296 299
297 ${SUBDIR}: ${SUBDIR_MAKEFILES} src/config.h src/puresize_adjust.h FRC 300 ${SUBDIR}: ${SUBDIR_MAKEFILES} ${GENERATED_HEADERS} FRC
298 cd $@ && $(MAKE) all $(MFLAGS) \ 301 cd $@ && $(MAKE) all $(MFLAGS) \
299 CC='${CC}' CFLAGS='${CFLAGS}' MAKE='${MAKE}' 302 CC='${CC}' CFLAGS='${CFLAGS}' MAKE='${MAKE}'
300 303
301 Makefile: ${srcdir}/Makefile.in config.status 304 Makefile: ${srcdir}/Makefile.in config.status
302 ./config.status 305 ./config.status
310 lwlib/Makefile: ${srcdir}/lwlib/Makefile.in.in config.status 313 lwlib/Makefile: ${srcdir}/lwlib/Makefile.in.in config.status
311 ./config.status 314 ./config.status
312 315
313 src/config.h: ${srcdir}/src/config.h.in 316 src/config.h: ${srcdir}/src/config.h.in
314 ./config.status 317 ./config.status
315
316 src/puresize_adjust.h: ${srcdir}/src/puresize.h
317 @echo "Resetting \`src/puresize_adjust.h'."
318 @echo '/* This file is generated by XEmacs, DO NOT MODIFY!!! */' > src/puresize_adjust.h
319 @echo '#define PURESIZE_ADJUSTMENT 0' >> src/puresize_adjust.h
320
321 318
322 # ==================== Installation ==================== 319 # ==================== Installation ====================
323 320
324 ## If we let lib-src do its own installation, that means we 321 ## If we let lib-src do its own installation, that means we
325 ## don't have to duplicate the list of utilities to install in 322 ## don't have to duplicate the list of utilities to install in
326 ## this Makefile as well. 323 ## this Makefile as well.
327 324
328 ## On AIX, use tar xBf. 325 ## On AIX, use tar xBf.
329 ## On Xenix, use tar xpf. 326 ## On Xenix, use tar xpf.
330 327
331 .PHONY: install install-arch-dep install-arch-indep mkdir 328 .PHONY: install-only install install-arch-dep install-arch-indep gzip.el mkdir
332 329
333 ## We delete each directory in ${COPYDESTS} before we copy into it; 330 ## We delete each directory in ${COPYDESTS} before we copy into it;
334 ## that way, we can reinstall over directories that have been put in 331 ## that way, we can reinstall over directories that have been put in
335 ## place with their files read-only (perhaps because they are checked 332 ## place with their files read-only (perhaps because they are checked
336 ## into RCS). In order to make this safe, we make sure that the 333 ## into RCS). In order to make this safe, we make sure that the
540 ### and VC will swiftly let you know if this happens, and it is easily 537 ### and VC will swiftly let you know if this happens, and it is easily
541 ### corrected. 538 ### corrected.
542 SOURCES = ChangeLog GETTING.GNU.SOFTWARE INSTALL Makefile.in PROBLEMS \ 539 SOURCES = ChangeLog GETTING.GNU.SOFTWARE INSTALL Makefile.in PROBLEMS \
543 README build-install.in configure make-dist move-if-change 540 README build-install.in configure make-dist move-if-change
544 541
545 .PHONY: unlock relock 542 .PHONY: unlock relock TAGS tags check dist info dvi mcs
546 543
547 unlock: 544 unlock:
548 chmod u+w $(SOURCES) cpp/* 545 chmod u+w $(SOURCES) cpp/*
549 -(cd elisp && chmod u+w Makefile README *.texi) 546 -(cd elisp && chmod u+w Makefile README *.texi)
550 (cd etc && $(MAKE) $(MFLAGS) unlock) 547 (cd etc && $(MAKE) $(MFLAGS) unlock)
564 (cd lisp/term && chmod u+w README *.el) 561 (cd lisp/term && chmod u+w README *.el)
565 (cd man && chmod u+w *texi* ChangeLog split-man) 562 (cd man && chmod u+w *texi* ChangeLog split-man)
566 (cd lwlib && chmod u+w *.[ch] Makefile.in.in) 563 (cd lwlib && chmod u+w *.[ch] Makefile.in.in)
567 (cd src && $(MAKE) $(MFLAGS) relock) 564 (cd src && $(MAKE) $(MFLAGS) relock)
568 565
569 .PHONY: TAGS tags check dist 566 TAGS tags: FRC.tags
570
571 TAGS tags:
572 @echo "If you don't have a copy of etags around, then do 'make lib-src' first." 567 @echo "If you don't have a copy of etags around, then do 'make lib-src' first."
573 @PATH=`pwd`/lib-src:$$PATH HOME=/-=-; export PATH HOME; \ 568 @PATH=`pwd`/lib-src:$$PATH HOME=/-=-; export PATH HOME; \
574 echo "Using etags from `which etags`." 569 echo "Using etags from `which etags`."
575 PATH=`pwd`/lib-src:$$PATH ; export PATH; cd ${srcdir} && \ 570 PATH=`pwd`/lib-src:$$PATH ; export PATH; cd ${srcdir} && \
576 etags --regex='/[ ]*DEF\(VAR\|INE\)_[A-Z_]+[ ]*([ ]*"\([^"]+\)"/\2/' src/*.[ch] ; \ 571 etags --regex='/[ ]*DEF\(VAR\|INE\)_[A-Z_]+[ ]*([ ]*"\([^"]+\)"/\2/' src/*.[ch] ; \
583 @echo "We don't have any automated tests for XEmacs yet." 578 @echo "We don't have any automated tests for XEmacs yet."
584 579
585 dist: 580 dist:
586 cd ${srcdir} && make-dist 581 cd ${srcdir} && make-dist
587 582
588 .PHONY: info dvi 583 info: FRC.info
589 force-info:
590 info: force-info
591 cd ${srcdir}/man && $(MAKE) $(MFLAGS) $@ 584 cd ${srcdir}/man && $(MAKE) $(MFLAGS) $@
592 dvi: 585 dvi:
593 cd ${srcdir}/man && $(MAKE) $(MFLAGS) $@ 586 cd ${srcdir}/man && $(MAKE) $(MFLAGS) $@
594 587
595 # Fix up version information in executables (Solaris-only) 588 # Fix up version information in executables (Solaris-only)