Makefile: some refactoring for "make vanilla"
[org-mode.git] / mk / default.mk
blobfecb0b54a2f85b8d9b9451d9bb62a760ea5888b2
1 ##----------------------------------------------------------------------
2 ## NEVER EDIT THIS FILE, PUT ANY ADAPTATIONS INTO local.mk
3 ##-8<-------------------------------------------------------------------
4 ## CHECK AND ADAPT THE FOLLOWING DEFINITIONS
5 ##----------------------------------------------------------------------
7 # Name of your emacs binary
8 EMACS = emacs
10 # Where local software is found
11 prefix = /usr/share
13 # Where local lisp files go.
14 lispdir= $(prefix)/emacs/site-lisp/org
16 # Where local data files go.
17 datadir = $(prefix)/emacs/etc/org
19 # Where info files go.
20 infodir = $(prefix)/info
22 # Define if you only need info documentation, the default includes html and pdf
23 #ORG_MAKE_DOC = info # html pdf
25 # Define if you want to include some (or all) files from contrib/lisp
26 # just the filename please (no path prefix, no .el suffix), maybe with globbing
27 #ORG_ADD_CONTRIB = ox-* # e.g. the contributed exporter
29 # Where to create temporary files for the testsuite
30 # respect TMPDIR if it is already defined in the environment
31 TMPDIR ?= /tmp
32 testdir = $(TMPDIR)/tmp-orgtest
34 # Configuration for testing
35 # add options before standard load-path
36 BTEST_PRE =
37 # add options after standard load path
38 BTEST_POST =
39 # -L <path-to>/ert # needed for Emacs23, Emacs24 has ert built in
40 # -L <path-to>/ess # needed for running R tests
41 # -L <path-to>/htmlize # need at least version 1.34 for source code formatting
42 BTEST_OB_LANGUAGES = awk C fortran maxima lilypond octave perl python
43 # R # requires ESS to be installed and configured
44 # ruby # requires inf-ruby to be installed and configured
45 # extra packages to require for testing
46 BTEST_EXTRA =
47 # ess-site # load ESS for R tests
48 ##->8-------------------------------------------------------------------
49 ## YOU MAY NEED TO ADAPT THESE DEFINITIONS
50 ##----------------------------------------------------------------------
52 # How to run tests
53 req-ob-lang = --eval '(require '"'"'ob-$(ob-lang))'
54 lst-ob-lang = ($(ob-lang) . t)
55 req-extra = --eval '(require '"'"'$(req))'
56 BTEST_RE ?= \\(org\\|ob\\)
57 BTEST_LOAD = \
58 --eval '(add-to-list '"'"'load-path (concat default-directory "lisp"))' \
59 --eval '(add-to-list '"'"'load-path (concat default-directory "testing"))'
60 BTEST_INIT = $(BTEST_PRE) $(BTEST_LOAD) $(BTEST_POST)
62 BTEST = $(BATCH) $(BTEST_INIT) \
63 -l org-batch-test-init \
64 --eval '(setq \
65 org-batch-test t \
66 org-babel-load-languages \
67 (quote ($(foreach ob-lang,\
68 $(BTEST_OB_LANGUAGES) emacs-lisp shell org,\
69 $(lst-ob-lang)))) \
70 org-test-select-re "$(BTEST_RE)" \
71 )' \
72 -l org-loaddefs.el \
73 -l cl -l testing/org-test.el \
74 -l ert -l org -l ox \
75 $(foreach req,$(BTEST_EXTRA),$(req-extra)) \
76 --eval '(org-test-run-batch-tests org-test-select-re)'
78 # Running a plain emacs with no config and this Org-mode loaded. This
79 # should be useful for manual testing and verification of problems.
80 NOBATCH = $(EMACSQ) $(BTEST_INIT) -l org -f org-version
82 # start Emacs with no user and site configuration
83 # EMACSQ = -vanilla # XEmacs
84 EMACSQ = $(EMACS) -Q
86 # Using emacs in batch mode.
87 BATCH = $(EMACSQ) -batch \
88 --eval '(setq vc-handled-backends nil org-startup-folded nil)'
90 # Emacs must be started in toplevel directory
91 BATCHO = $(BATCH) \
92 --eval '(add-to-list '"'"'load-path "./lisp")'
94 # How to generate local.mk
95 MAKE_LOCAL_MK = $(BATCHO) \
96 --eval '(load "org-compat.el")' \
97 --eval '(load "../mk/org-fixup.el")' \
98 --eval '(org-make-local-mk)'
100 # Emacs must be started in lisp directory
101 BATCHL = $(BATCH) \
102 --eval '(add-to-list '"'"'load-path ".")'
104 # How to generate org-loaddefs.el
105 MAKE_ORG_INSTALL = $(BATCHL) \
106 --eval '(load "org-compat.el")' \
107 --eval '(load "../mk/org-fixup.el")' \
108 --eval '(org-make-org-loaddefs)'
110 # How to generate org-version.el
111 MAKE_ORG_VERSION = $(BATCHL) \
112 --eval '(load "org-compat.el")' \
113 --eval '(load "../mk/org-fixup.el")' \
114 --eval '(org-make-org-version "$(ORGVERSION)" "$(GITVERSION)" "'$(datadir)'")'
116 # How to byte-compile the whole source directory
117 ELCDIR = $(BATCHL) \
118 --eval '(batch-byte-recompile-directory 0)'
120 # How to byte-compile a single file
121 ELC = $(BATCHL) \
122 --eval '(batch-byte-compile)'
124 # How to make a pdf file from a texinfo file
125 TEXI2PDF = texi2pdf --batch --clean --expand
127 # How to make a pdf file from a tex file
128 PDFTEX = pdftex
130 # How to create directories with leading path components
131 # MKDIR = mkdir -m 755 -p # try this if you have no install
132 MKDIR = install -m 755 -d
134 # How to create the info files from the texinfo file
135 MAKEINFO = makeinfo
137 # How to create the HTML file
138 TEXI2HTML = makeinfo --html --number-sections
140 # How to find files
141 FIND = find
143 # How to remove files
144 RM = rm -f
146 # How to remove files recursively
147 RMR = rm -fr
149 # How to copy the lisp files and elc files to their destination.
150 # CP = cp -p # try this if you have no install
151 CP = install -m 644 -p
153 # How to obtain administrative privileges
154 # leave blank if you don't need this
155 # SUDO =
156 SUDO = sudo
158 # Name of the program to install info files
159 # INSTALL_INFO = ginstall-info # Debian: avoid harmless warning message
160 INSTALL_INFO = install-info
162 # target method for 'compile'
163 ORGCM = dirall
164 # ORGCM = dirall # 1x slowdown compared to default compilation method
165 # ORGCM = single # 4x one Emacs process per compilation
166 # ORGCM = source # 5x ditto, but remove compiled file immediately
167 # ORGCM = slint1 # 3x possibly elicit more warnings
168 # ORGCM = slint2 # 7x possibly elicit even more warnings