Sort playlist file for library views in same order as view 2
[cmus.git] / Makefile
blobc0abfdb88249c56e3052417caf10b14879d944d4
1 VERSION = 2.1.0
3 all: main plugins man
5 include config.mk
6 include scripts/lib.mk
8 CFLAGS += -D_FILE_OFFSET_BITS=64
10 input.o main.o ui_curses.o: .version
11 input.o main.o ui_curses.o: CFLAGS += -DVERSION=\"$(VERSION)\"
12 main.o server.o: CFLAGS += -DDEFAULT_PORT=3000
14 .version: Makefile
15 @test "`cat $@ 2> /dev/null`" = "$(VERSION)" && exit 0; \
16 echo " GEN $@"; echo $(VERSION) > $@
18 # programs {{{
19 cmus-y := \
20 browser.o buffer.o cmdline.o cmus.o command_mode.o comment.o \
21 db.o debug.o editable.o expr.o filters.o \
22 format_print.o glob.o help.o history.o http.o input.o \
23 keys.o lib.o load_dir.o locking.o mergesort.o misc.o options.o \
24 output.o pcm.o pl.o play_queue.o player.o \
25 read_wrapper.o server.o search.o \
26 search_mode.o spawn.o tabexp.o tabexp_file.o \
27 track.o track_db.o track_info.o tree.o uchar.o ui_curses.o window.o \
28 worker.o xstrjoin.o
30 $(cmus-y): CFLAGS += $(PTHREAD_CFLAGS) $(NCURSES_CFLAGS) $(ICONV_CFLAGS) $(DL_CFLAGS)
32 cmus: $(cmus-y) file.o path.o prog.o xmalloc.o
33 $(call cmd,ld,$(PTHREAD_LIBS) $(NCURSES_LIBS) $(ICONV_LIBS) $(DL_LIBS) -lm $(COMPAT_LIBS))
35 cmus-remote: main.o file.o path.o prog.o xmalloc.o
36 $(call cmd,ld,$(COMPAT_LIBS))
37 # }}}
39 # input plugins {{{
40 flac-objs := flac.lo
41 mad-objs := id3.lo mad.lo nomad.lo utf8_encode.lo
42 mikmod-objs := mikmod.lo
43 modplug-objs := modplug.lo
44 mpc-objs := mpc.lo
45 vorbis-objs := vorbis.lo
46 wav-objs := wav.lo
47 mp4-objs := mp4.lo
48 aac-objs := id3.lo utf8_encode.lo aac.lo
50 ip-$(CONFIG_FLAC) += flac.so
51 ip-$(CONFIG_MAD) += mad.so
52 ip-$(CONFIG_MIKMOD) += mikmod.so
53 ip-$(CONFIG_MODPLUG) += modplug.so
54 ip-$(CONFIG_MPC) += mpc.so
55 ip-$(CONFIG_VORBIS) += vorbis.so
56 ip-$(CONFIG_WAV) += wav.so
57 ip-$(CONFIG_MP4) += mp4.so
58 ip-$(CONFIG_AAC) += aac.so
60 $(flac-objs): CFLAGS += $(FLAC_CFLAGS)
61 $(mad-objs): CFLAGS += $(MAD_CFLAGS)
62 $(mikmod-objs): CFLAGS += $(MIKMOD_CFLAGS)
63 $(modplug-objs): CFLAGS += $(MODPLUG_CFLAGS)
64 $(mpc-objs): CFLAGS += $(MPC_CFLAGS)
65 $(vorbis-objs): CFLAGS += $(VORBIS_CFLAGS)
66 $(mp4-objs): CFLAGS += $(MP4_CFLAGS)
67 $(aac-objs): CFLAGS += $(AAC_CFLAGS)
69 flac.so: $(flac-objs)
70 $(call cmd,ld_dl,$(FLAC_LIBS))
72 mad.so: $(mad-objs)
73 $(call cmd,ld_dl,$(MAD_LIBS))
75 mikmod.so: $(mikmod-objs)
76 $(call cmd,ld_dl,$(MIKMOD_LIBS))
78 modplug.so: $(modplug-objs)
79 $(call cmd,ld_dl,$(MODPLUG_LIBS))
81 mpc.so: $(mpc-objs)
82 $(call cmd,ld_dl,$(MPC_LIBS))
84 vorbis.so: $(vorbis-objs)
85 $(call cmd,ld_dl,$(VORBIS_LIBS))
87 wav.so: $(wav-objs)
88 $(call cmd,ld_dl,)
90 mp4.so: $(mp4-objs)
91 $(call cmd,ld_dl,$(MP4_LIBS))
93 aac.so: $(aac-objs)
94 $(call cmd,ld_dl,$(AAC_LIBS))
96 # }}}
98 # output plugins {{{
99 alsa-objs := alsa.lo mixer_alsa.lo
100 arts-objs := arts.lo
101 oss-objs := oss.lo mixer_oss.lo
102 sun-objs := sun.lo mixer_sun.lo
103 ao-objs := ao.lo
105 op-$(CONFIG_ALSA) += alsa.so
106 op-$(CONFIG_ARTS) += arts.so
107 op-$(CONFIG_OSS) += oss.so
108 op-$(CONFIG_SUN) += sun.so
109 op-$(CONFIG_AO) += ao.so
111 $(alsa-objs): CFLAGS += $(ALSA_CFLAGS)
112 $(arts-objs): CFLAGS += $(ARTS_CFLAGS)
113 $(oss-objs): CFLAGS += $(OSS_CFLAGS)
114 $(sun-objs): CFLAGS += $(SUN_CFLAGS)
115 $(ao-objs): CFLAGS += $(AO_CFLAGS)
117 alsa.so: $(alsa-objs)
118 $(call cmd,ld_dl,$(ALSA_LIBS))
120 arts.so: $(arts-objs)
121 $(call cmd,ld_dl,$(ARTS_LIBS))
123 oss.so: $(oss-objs)
124 $(call cmd,ld_dl,$(OSS_LIBS))
126 sun.so: $(sun-objs)
127 $(call cmd,ld_dl,$(SUN_LIBS))
129 ao.so: $(ao-objs)
130 $(call cmd,ld_dl,$(AO_LIBS))
131 # }}}
133 # man {{{
134 man1 := Doc/cmus.1 Doc/cmus-remote.1
136 $(man1): Doc/ttman
138 %.1: %.txt
139 $(call cmd,ttman)
141 Doc/ttman: Doc/ttman.o
142 $(call cmd,ld,)
144 quiet_cmd_ttman = MAN $@
145 cmd_ttman = Doc/ttman $< $@
146 # }}}
148 data = $(wildcard data/*)
150 clean += *.o *.lo *.so cmus cmus-remote Doc/*.o Doc/ttman Doc/*.1
151 distclean += .version config.mk config/*.h tags
153 main: cmus cmus-remote
154 plugins: $(ip-y) $(op-y)
155 man: $(man1)
157 install-main: main
158 $(INSTALL) -m755 $(bindir) cmus cmus-remote
160 install-plugins: plugins
161 $(INSTALL) -m755 $(libdir)/cmus/ip $(ip-y)
162 $(INSTALL) -m755 $(libdir)/cmus/op $(op-y)
164 install-data: man
165 $(INSTALL) -m644 $(datadir)/cmus $(data)
166 $(INSTALL) -m755 $(datadir)/doc/cmus/examples cmus-status-display
167 $(INSTALL) -m644 $(mandir)/man1 $(man1)
169 install: all install-main install-plugins install-data
171 tags:
172 exuberant-ctags *.[ch]
174 # generating tarball using GIT {{{
175 REV = HEAD
177 # version from an annotated tag
178 _ver0 = $(shell git describe $(REV) 2>/dev/null)
179 # version from a plain tag
180 _ver1 = $(shell git describe --tags $(REV) 2>/dev/null)
181 # SHA1
182 _ver2 = $(shell git rev-parse --verify --short $(REV) 2>/dev/null)
184 TARNAME = cmus-$(or $(_ver0),$(_ver1),g$(_ver2))
186 dist:
187 @tarname=$(TARNAME); \
188 test "$(_ver2)" || { echo "No such revision $(REV)"; exit 1; }; \
189 echo " DIST $$tarname.tar.bz2"; \
190 git archive --format=tar --prefix=$$tarname/ $(REV)^{tree} | bzip2 -c -9 > $$tarname.tar.bz2
192 # }}}
194 .PHONY: all main plugins man dist tags
195 .PHONY: install install-main install-plugins install-man