summaryrefslogtreecommitdiff
path: root/lib/am/lisp.am
blob: c6fb923335baa1d5dba58bb25d9fa578fa290838 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
## automake - create Makefile.in from Makefile.am
## Copyright (C) 1996-2012 Free Software Foundation, Inc.

## This program 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.

## This program 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 this program.  If not, see <http://www.gnu.org/licenses/>.

## ---------- ##
## Building.  ##
## ---------- ##

if %?FIRST%
am.elisp.includes = -L $1 $(if $(filter-out .,$(srcdir)), -L $(srcdir)/$1)
endif

%.elc: %.el
## We add $(builddir) and $(srcdir) to load-path, so that any '.el' files
## that $< depends upon can be found (including generated ones).
## We prefer files from the build directory to those from the source
## directory, in true VPATH spirit.
## The destination file is normally determined by appending "c" to the
## input (which would erronously put it in $(srcdir) in VPATH builds),
## so we override that, too.
	if test "$(EMACS)" != "no"; then \
## Emacs byte-compilation won't create this automatically, sadly.
	  $(call am.cmd.ensure-dir-exists,$(@D)); \
	  $(EMACS) --batch \
	    $(AM_ELCFLAGS) $(ELCFLAGS) \
	    $(if $(filter-out .,$(@D)),$(call am.elisp.includes,$(@D))) \
	    $(call am.elisp.includes,.) \
	    --eval "(defun byte-compile-dest-file (f) \"$@\")" \
	    --eval "(unless (byte-compile-file \"$<\") (kill-emacs 1))"; \
	else :; fi


## ------------ ##
## Installing.  ##
## ------------ ##

if %?INSTALL%
am__installdirs += "$(DESTDIR)$(%NDIR%dir)"

?BASE?%DIR%LISP_INSTALL = $(INSTALL_DATA)
?!BASE?%DIR%LISP_INSTALL = $(install_sh_DATA)

?EXEC?.PHONY install-exec-am: install-%DIR%LISP
?!EXEC?.PHONY install-data-am: install-%DIR%LISP

install-%DIR%LISP: $(%DIR%_LISP) $(ELCFILES)
	@$(NORMAL_INSTALL)
## Do not install anything if EMACS was not found.
	@if test "$(EMACS)" != no && test -n "$(%NDIR%dir)"; then \
## Funny invocation because Makefile variable can be empty, leading to
## a syntax error in sh.
	  list='$(%DIR%_LISP)'; \
	  if test -n "$$list"; then \
	    echo " $(MKDIR_P) '$(DESTDIR)$(%NDIR%dir)'"; \
	    $(MKDIR_P) "$(DESTDIR)$(%NDIR%dir)" || exit 1; \
	  fi; \
	  for p in $$list; do \
## A lisp file can be in the source directory or the build directory.
	    if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
?BASE?	    $(am__strip_dir) \
?!BASE?	    f=$$p; \
	    echo " $(%DIR%LISP_INSTALL) '$$d$$p' '$(DESTDIR)$(%NDIR%dir)/$$f'"; \
	    $(%DIR%LISP_INSTALL) "$$d$$p" "$(DESTDIR)$(%NDIR%dir)/$$f" || exit $$?; \
## Only install .elc file if it exists.
	    if test -f $${p}c; then \
	      echo " $(%DIR%LISP_INSTALL) '$${p}c' '$(DESTDIR)$(%NDIR%dir)/$${f}c'"; \
	      $(%DIR%LISP_INSTALL) "$${p}c" "$(DESTDIR)$(%NDIR%dir)/$${f}c" || exit $$?; \
	    else : ; fi; \
	  done; \
	else : ; fi
endif %?INSTALL%


## -------------- ##
## Uninstalling.  ##
## -------------- ##

if %?INSTALL%
.PHONY uninstall-am: uninstall-%DIR%LISP
uninstall-%DIR%LISP:
	@$(NORMAL_UNINSTALL)
## Do not uninstall anything if EMACS was not found.
	@test "$(EMACS)" != no && test -n "$(%NDIR%dir)" || exit 0; \
	list='$(%DIR%_LISP)'; \
?BASE?	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
?!BASE?	$(am__nobase_strip_setup); files=`$(am__nobase_strip)`; \
	files="$$files "`echo "$$files" | sed 's|$$|c|'`; \
	dir='$(DESTDIR)$(%NDIR%dir)'; $(am__uninstall_files_from_dir)
endif %?INSTALL%


## ---------- ##
## Cleaning.  ##
## ---------- ##

am.clean.normal.f += $(ELCFILES)

## -------------- ##
## Distributing.  ##
## -------------- ##

if %?DIST%
am.dist.common-files += %DISTVAR%
endif %?DIST%