File: Makefile

package info (click to toggle)
caml-mode 4.9-4
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 372 kB
  • sloc: lisp: 4,009; makefile: 185
file content (129 lines) | stat: -rw-r--r-- 4,411 bytes parent folder | download
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
117
118
119
120
121
122
123
124
125
126
127
128
129
#**************************************************************************
#*                                                                        *
#*                                 OCaml                                  *
#*                                                                        *
#*            Xavier Leroy, projet Cristal, INRIA Rocquencourt            *
#*                                                                        *
#*   Copyright 1997 Institut National de Recherche en Informatique et     *
#*     en Automatique.                                                    *
#*                                                                        *
#*   All rights reserved.  This file is distributed under the terms of    *
#*   the GNU General Public License.                                      *
#*                                                                        *
#**************************************************************************

VERSION = $(shell grep "^;; *Version" caml.el \
	| sed -e 's/;; *Version: *\([^ \t]*\)/\1/')
SYNOPSIS = $(shell grep ';;; caml.el ---' caml.el \
	| sed 's/[^-]*--- *\([^-]\+\) \+.*/\1/')
DIST_NAME = caml-mode-$(VERSION)
TARBALL = caml-mode-$(VERSION).tgz
OPAM_FILE = packages/caml-mode/caml-mode.$(VERSION)/opam

# Files to install
FILES=	caml-font.el caml.el camldebug.el      \
	inf-caml.el caml-help.el caml-types.el

INSTALL_DIR ?= $(shell opam var share)/emacs/site-lisp
INSTALL_BIN ?= $(shell opam var bin)

DIST_FILES = $(FILES) Makefile README* COPYING* CHANGES.md ocamltags.in

# Name of Emacs executable
EMACSFORMACOSX = /Applications/Emacs.app/Contents/MacOS/Emacs
EMACSMACPORTS = /Applications/MacPorts/Emacs.app/Contents/MacOS/Emacs
AQUAMACS = $(shell test -d /Applications \
	&& find /Applications -type f | grep 'Aquamacs$$')
ifeq ($(wildcard $(EMACSFORMACOSX)),$(EMACSFORMACOSX))
EMACS ?= $(EMACSFORMACOSX)
else
ifeq ($(wildcard $(EMACSMACPORTS)),$(EMACSMACPORTS))
EMACS ?= $(EMACSMACPORTS)
else
ifneq ($(strip $(AQUAMACS)),)
ifeq ($(wildcard $(AQUAMACS)),$(AQUAMACS))
EMACS ?= $(AQUAMACS)
endif
endif
endif
endif
EMACS ?= emacs

INSTALL_MKDIR = mkdir -p
INSTALL_DATA = cp
INSTALL_RM_R = $(RM) -r

# Command for byte-compiling the files
COMPILECMD=(progn \
	      (setq load-path (cons "." load-path)) \
	      (byte-compile-file "caml.el") \
	      (byte-compile-file "inf-caml.el") \
	      (byte-compile-file "caml-help.el") \
	      (byte-compile-file "caml-types.el") \
	      (byte-compile-file "caml-font.el") \
	      (byte-compile-file "camldebug.el"))

caml-pkg.el:
	echo "(define-package \"caml\" \"$(VERSION)\" \"$(DESCRIPTION)\" \
		)" > caml-pkg.el

# This is for testing purposes
compile-only:
	$(EMACS) --batch --eval '$(COMPILECMD)'

# install the .el files, but do not compile them.
install-el:
	$(MAKE) NOCOMPILE=true install

install:
	@echo "Installing in $(INSTALL_DIR)..."
	$(INSTALL_MKDIR) $(INSTALL_DIR)
	$(INSTALL_DATA) $(FILES) $(INSTALL_DIR)
	if [ -z "$(NOCOMPILE)" ]; then \
	  cd $(INSTALL_DIR); $(EMACS) --batch --eval '$(COMPILECMD)'; \
	fi

uninstall:
	cd $(INSTALL_DIR) && $(INSTALL_RM_R) $(FILES) $(FILES:.el=.elc)

ocamltags:	ocamltags.in
	sed -e 's:@EMACS@:$(EMACS):' ocamltags.in >ocamltags
	chmod a+x ocamltags

install-ocamltags: ocamltags
	$(INSTALL_DATA) ocamltags $(INSTALL_BIN)/ocamltags

uninstall-ocamltags:
	$(INSTALL_RM_R) $(INSTALL_BIN)/ocamltags

tarball: $(TARBALL)
$(TARBALL): $(DIST_FILES)
	$(INSTALL_MKDIR) $(DIST_NAME)
	for f in $(DIST_FILES); do cp $$f $(DIST_NAME); done
	echo "(define-package \"caml\" \"$(VERSION)\" \"$(SYNOPSIS)\")" \
	     > $(DIST_NAME)/caml-pkg.el
	tar acvf $@ $(DIST_NAME)
	$(INSTALL_RM_R) $(DIST_NAME)

submit: $(TARBALL)
	@if [ ! -d packages/ ]; then \
	  echo "Make a symbolic link packages → OPAM repository/packages"; \
	  exit 1; \
	fi
	$(INSTALL_MKDIR) $(dir $(OPAM_FILE))
	sed -e "s/VERSION/$(VERSION)/" -e 's/SYNOPSIS/$(SYNOPSIS)/' \
	  caml-mode.opam > $(OPAM_FILE)
	echo "url {" >> $(OPAM_FILE)
	echo "  src: \"https://github.com/ocaml/caml-mode/releases/download/$(VERSION)/$(TARBALL)\"" >> $(OPAM_FILE)
	echo "  checksum: \"md5=`md5sum $(TARBALL) | cut -d ' ' -f 1`\"" \
	  >> $(OPAM_FILE)
	echo "}" >> $(OPAM_FILE)

clean:
	rm -f ocamltags *~ \#*# *.elc
	$(RM) -r $(TARBALL)


.PHONY: install uninstall install-el \
	ocamltags install-ocamltags uninstall-ocamltags \
        tarball submit compile-only clean