summaryrefslogtreecommitdiff
path: root/lisp/Makefile
blob: 4bc86d4c6f12ac301de99bacb6403db812bd22e8 (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
.NOTPARALLEL:	# always run this make serially
.SUFFIXES:	# we don't need default suffix rules
ifeq ($(MAKELEVEL), 0)
  $(error This make needs to be started as a sub-make from the toplevel directory.)
endif

LISPV = org-version.el
LISPI = org-install.el
LISPA = $(LISPV) $(LISPI)
LISPF = $(filter-out $(LISPA),$(sort $(wildcard *.el)))
LISPC = $(filter-out $(LISPN:%el=%elc),$(LISPF:%el=%elc))
_ORGCM_ = dirall single source slint1 slint2
-include local.mk

.PHONY:	all compile compile-dirty \
	$(_ORGCM_) $(_ORGCM_:%=compile-%) \
	autoloads addcontrib \
	install clean cleanauto cleanall cleanelc clean-install

# do not clean here, done in toplevel make
all compile compile-dirty::	 autoloads
ifeq ($(filter-out $(_ORGCM_),$(ORGCM)),)
	$(MAKE) compile-$(ORGCM)
else
	$(error ORGCM has illegal value $(ORGCM) (valid: $(_ORGCM_)))
endif

compile-dirall:	dirall
compile-single: single $(LISPC)
compile-source:	source dirall
compile-slint1:	dirall slint1
compile-slint2:	source dirall slint1

# internal
dirall:
	@$(info ==================== $@ ====================)
	@$(ELCDIR)
single:
	@$(info ==================== $@ ====================)
source: cleanelc
	@$(info ==================== $@ ====================)
	@$(foreach elc,$(LISPC),$(MAKE) $(elc) && $(RM) $(elc);)
slint1:
	@$(info ==================== $@ ====================)
	@$(foreach elc,$(LISPC),$(RM) $(elc); $(MAKE) $(elc);)

%.elc:	%.el
	@$(info Compiling single $(abspath $<)...)
	-@$(ELC) $<

addcontrib:
ifneq ($(ORG_ADD_CONTRIB),)
	$(CP) $(wildcard \
		$(addsuffix .el, \
		$(addprefix ../contrib/lisp/, \
		$(basename \
		$(notdir $(ORG_ADD_CONTRIB)))))) .
endif

autoloads:	cleanauto addcontrib $(LISPI) $(LISPV)

$(LISPV):	$(LISPF)
	@echo "org-version: $(ORGVERSION) ($(GITVERSION))"
	@$(RM) $(@)
	@$(MAKE_ORG_VERSION)

$(LISPI):	$(LISPV) $(LISPF)
	@echo "org-install: $(ORGVERSION) ($(GITVERSION))"
	@$(RM) $(@)
	@$(MAKE_ORG_INSTALL)

install:	$(LISPF) compile
	if [ ! -d $(DESTDIR)$(lispdir) ] ; then \
	  $(MKDIR) $(DESTDIR)$(lispdir) ; \
	fi ;
	$(CP) $(LISPC) $(LISPF) $(LISPA) $(DESTDIR)$(lispdir)

cleanauto clean cleanall::
	$(RM) $(LISPA) $(LISPA:%el=%elc)
clean cleanall cleanelc::
	$(RM) *.elc

clean-install:
	if [ -d $(DESTDIR)$(lispdir) ] ; then \
	  $(RM) $(DESTDIR)$(lispdir)/org*.el* $(DESTDIR)$(lispdir)/ob*.el* ; \
	fi ;