Handle streams separately in tree_add_track()
[cmus.git] / scripts / lib.mk
blobb85c0898e49db32fb50dd3287653aea52cd93fc6
2 # Copyright 2005-2006 Timo Hirvonen
4 # This file is licensed under the GPLv2.
6 # cmd macro copied from kbuild (Linux kernel build system)
8 # Build verbosity:
9 # make V=0 silent
10 # make V=1 clean (default)
11 # make V=2 verbose
13 # build verbosity (0-2), default is 1
14 ifneq ($(origin V),command line)
15 V := 1
16 endif
17 ifneq ($(findstring s,$(MAKEFLAGS)),)
18 V := 0
19 endif
21 ifeq ($(V),2)
22 quiet =
23 Q =
24 else
25 ifeq ($(V),1)
26 quiet = quiet_
27 Q = @
28 else
29 quiet = silent_
30 Q = @
31 endif
32 endif
34 # simple wrapper around install(1)
36 # - creates directories automatically
37 # - adds $(DESTDIR) to front of files
38 INSTALL := @$(topdir)/scripts/install
39 INSTALL_LOG := $(topdir)/.install.log
41 dependencies := $(wildcard .dep-*)
42 clean := $(dependencies)
43 distclean :=
45 LC_ALL := C
46 LANG := C
48 export INSTALL_LOG LC_ALL LANG GINSTALL
50 # remove files generated by make
51 clean:
52 rm -f $(clean)
54 # remove files generated by make and configure
55 distclean: clean
56 rm -f $(distclean)
58 uninstall:
59 @$(topdir)/scripts/uninstall
61 %.o: %.S
62 $(call cmd,as)
64 # object files for programs and static libs
65 %.o: %.c
66 $(call cmd,cc)
68 %.o: %.cc
69 $(call cmd,cxx)
71 %.o: %.cpp
72 $(call cmd,cxx)
74 # object files for shared libs
75 %.lo: %.c
76 $(call cmd,cc_lo)
78 %.lo: %.cc
79 $(call cmd,cxx_lo)
81 %.lo: %.cpp
82 $(call cmd,cxx_lo)
84 # CC for program object files (.o)
85 quiet_cmd_cc = CC $@
86 cmd_cc = $(CC) -c $(CFLAGS) -o $@ $<
88 # CC for shared library and dynamically loadable module objects (.lo)
89 quiet_cmd_cc_lo = CC $@
90 cmd_cc_lo = $(CC) -c $(CFLAGS) $(SOFLAGS) -o $@ $<
92 # LD for programs, optional parameter: libraries
93 quiet_cmd_ld = LD $@
94 cmd_ld = $(LD) $(LDFLAGS) -o $@ $^ $(1)
96 # LD for shared libraries, optional parameter: libraries
97 quiet_cmd_ld_so = LD $@
98 cmd_ld_so = $(LD) $(LDSOFLAGS) $(LDFLAGS) -o $@ $^ $(1)
100 # LD for dynamically loadable modules, optional parameter: libraries
101 quiet_cmd_ld_dl = LD $@
102 cmd_ld_dl = $(LD) $(LDDLFLAGS) $(LDFLAGS) -o $@ $^ $(1)
104 # CXX for program object files (.o)
105 quiet_cmd_cxx = CXX $@
106 cmd_cxx = $(CXX) -c $(CXXFLAGS) -o $@ $<
108 # CXX for shared library and dynamically loadable module objects (.lo)
109 quiet_cmd_cxx_lo = CXX $@
110 cmd_cxx_lo = $(CXX) -c $(CXXFLAGS) $(SOFLAGS) -o $@ $<
112 # CXXLD for programs, optional parameter: libraries
113 quiet_cmd_cxxld = CXXLD $@
114 cmd_cxxld = $(CXXLD) $(CXXLDFLAGS) -o $@ $^ $(1)
116 # CXXLD for shared libraries, optional parameter: libraries
117 quiet_cmd_cxxld_so = CXXLD $@
118 cmd_cxxld_so = $(CXXLD) $(LDSOFLAGS) $(CXXLDFLAGS) -o $@ $^ $(1)
120 # CXXLD for dynamically loadable modules, optional parameter: libraries
121 quiet_cmd_cxxld_dl = CXXLD $@
122 cmd_cxxld_dl = $(CXXLD) $(LDDLFLAGS) $(CXXLDFLAGS) -o $@ $^ $(1)
124 # create archive
125 quiet_cmd_ar = AR $@
126 cmd_ar = $(AR) $(ARFLAGS) $@ $^
128 # assembler
129 quiet_cmd_as = AS $@
130 cmd_as = $(AS) -c $(ASFLAGS) -o $@ $<
132 cmd = @$(if $($(quiet)cmd_$(1)),echo ' $(call $(quiet)cmd_$(1),$(2))' &&) $(call cmd_$(1),$(2))
134 ifneq ($(dependencies),)
135 -include $(dependencies)
136 endif
138 .SECONDARY:
140 .PHONY: clean distclean uninstall