fordon_greeman / voidfiles

Branch: main
Switch branches/tags
main
theidioticdev add emacs 2079ec5 1d ago
136 lines · 4.2 KB Raw Blame History
1 ## Copyright (C) 2006, 2008, 2010, 2012, 2014, 2016-2023 Free Software Foundation, Inc.
2 ##
3 ## This file is part of EMMS.
4 ##
5 ## EMMS is free software; you can redistribute it and/or modify
6 ## it under the terms of the GNU General Public License as published by
7 ## the Free Software Foundation; either version 3, or (at your option)
8 ## any later version.
9 ##
10 ## EMMS is distributed in the hope that it will be useful,
11 ## but WITHOUT ANY WARRANTY; without even the implied warranty of
12 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 ## GNU General Public License for more details.
14 ##
15 ## You should have received a copy of the GNU General Public License
16 ## along with EMMS; if not, write to the Free Software Foundation,
17 ## Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
18
19 ## Release testing
20 ##
21 ## As a policy, each release of Emms should be tested to compile and
22 ## run well on the two latest Emacs releases.
23
24
25 ## Code:
26 GZIP=gzip
27 MAN1PAGES=emms-print-metadata.1
28 DOCDIR=doc/
29 SRCDIR=src
30 SITEFLAG=--no-site-file
31 EMACS=emacs
32
33 ALLSOURCE=$(wildcard *.el)
34 SOURCE=$(filter-out $(SPECIAL),$(ALLSOURCE))
35 TARGET=$(patsubst %.el,%.elc,$(SOURCE))
36 ALLCOMPILED=$(wildcard *.elc)
37
38 DESTDIR=
39 PREFIX=$(DESTDIR)/usr/local
40 INFODIR=$(PREFIX)/info
41 MAN1DIR=$(PREFIX)/share/man/man1
42 BINDIR=$(PREFIX)/bin
43 SITELISP=$(PREFIX)/share/emacs/site-lisp/emms
44
45 # testing against previous versions
46 RELEASE_BIN=$(EMACS)
47 PREV_RELEASE_BIN=$(EMACS)
48
49 GINSTALLINFO = /usr/bin/ginstall-info --info-dir=$(INFODIR)
50 # For systems without ginstall-info
51 INSTALLINFO = /usr/bin/install-info --info-dir=$(INFODIR)
52 CHANGELOG_CMD = git log --pretty=medium --no-merges
53
54 # The currently released version of EMMS (no longer in use)
55 VERSION=100.00
56
57 .PHONY: all install docs clean
58 .PRECIOUS: %.elc
59 all: show_version emms-auto.el $(TARGET) docs
60
61 emms-auto.el: emms-auto.in $(SOURCE)
62 cp emms-auto.in emms-auto.el
63 -rm -f emms-auto.elc
64 @$(EMACS) -q $(SITEFLAG) -batch \
65 -l emms-maint.el \
66 -l emms-auto.el \
67 -f emms-generate-autoloads \
68 $(shell pwd)/emms-auto.el .
69
70 %.elc: %.el
71 @$(EMACS) -q $(SITEFLAG) -batch \
72 -l emms-maint.el \
73 -f batch-byte-compile $<
74
75 docs:
76 $(MAKE) -C $(DOCDIR)
77
78 .PHONY: show_version
79 show_version:
80 @$(EMACS) $(SITEFLAG) -batch --eval='(message "\n%s" (emacs-version))'
81
82 .PHONY:
83 test_releases:
84 ($(MAKE) EMACS=$(RELEASE_BIN); $(MAKE) clean)
85 ($(MAKE) EMACS=$(PREV_RELEASE_BIN); $(MAKE) clean)
86
87 emms-print-metadata: $(SRCDIR)/emms-print-metadata.cpp
88 $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(LDFLAGS) -o $(SRCDIR)/$@ $< `taglib-config --cflags --libs`
89
90 install:
91 test -d $(SITELISP) || mkdir -p $(SITELISP)
92 test -d $(INFODIR) || install -d $(INFODIR)
93 install -m 644 $(ALLSOURCE) $(SITELISP)
94 install -m 644 $(ALLCOMPILED) $(SITELISP)
95 install -m 0644 $(DOCDIR)emms.info $(INFODIR)/emms.info
96 for p in $(MAN1PAGES) ; do $(GZIP) -9c $$p > $(MAN1DIR)/$$p.gz ; done
97 if [ -x /usr/bin/ginstall-info ]; then \
98 $(GINSTALLINFO) $(DOCDIR)emms.info; \
99 else \
100 $(INSTALLINFO) $(DOCDIR)emms.info; \
101 fi
102 if [ -x $(SRCDIR)/emms-print-metadata ]; then \
103 echo "emms-print-metadata found, installing"; \
104 install -m 755 $(SRCDIR)/emms-print-metadata $(BINDIR)/emms-print-metadata; \
105 else \
106 echo "skipping emms-print-metadata install"; \
107 fi
108
109 remove-info:
110 if [ -x /usr/bin/ginstall-info ]; then \
111 $(GINSTALLINFO) --remove $(DOCDIR)emms.info; \
112 else \
113 $(INSTALLINFO) --remove $(DOCDIR)emms.info; \
114 fi
115
116 ChangeLog:
117 $(CHANGELOG_CMD) > $@
118
119 clean:
120 -rm -f *~ $(DOCDIR)emms.info $(DOCDIR)emms.html $(SRCDIR)/emms-print-metadata
121 -rm -f *~ *.elc emms-auto.el
122
123 dist: clean emms-auto.el
124 git archive --format=tar --prefix=emms-$(VERSION)/ HEAD | \
125 (cd .. && tar xf -)
126 rm -f ../emms-$(VERSION)/.gitignore
127 cp emms-auto.el ../emms-$(VERSION)
128 $(CHANGELOG_CMD) > ../emms-$(VERSION)/ChangeLog
129
130 release: dist
131 (cd .. && tar -czf emms-$(VERSION).tar.gz \
132 emms-$(VERSION) ; \
133 gpg --detach emms-$(VERSION).tar.gz)
134
135 upload:
136 (cd .. && echo "version: 1.2\ndirectory: emms\nfilename: "emms-$(VERSION).tar.gz"\ncomment: new version of Emms" | gpg --clearsign > emms-$(VERSION).tar.gz.directive.asc && echo open ftp://ftp-upload.gnu.org > upload.lftp ; echo cd /incoming/ftp >> upload.lftp ; echo mput emms-$(VERSION).tar.gz* >> upload.lftp ; echo close >> upload.lftp ; lftp -f upload.lftp ; rm -f upload.lftp)