automake: migrate tools from Makefile.legacy
[dahdi/tools.git] / Makefile.legacy
1 #
2 # Makefile for DAHDI tools
3 #
4 # Copyright (C) 2001-2010 Digium, Inc.
5 #
6 #
7
8 ifeq ($(strip $(foreach var,clean,$(findstring $(var),$(MAKECMDGOALS)))),)
9 endif
10
11 ifeq ($(strip $(foreach var,clean,$(findstring $(var),$(MAKECMDGOALS)))),)
12  ifneq ($(wildcard makeopts),)
13   include makeopts
14  endif
15 endif
16
17 OPTFLAGS=-O2
18 CFLAGS+=-I. $(OPTFLAGS) -g -fPIC -Wall -DBUILDING_TONEZONE #-DTONEZONE_DRIVER
19 ifneq (,$(findstring ppc,$(UNAME_M)))
20 CFLAGS+=-fsigned-char
21 endif
22 ifneq (,$(findstring x86_64,$(UNAME_M)))
23 CFLAGS+=-m64
24 endif
25
26 ifeq ($(DAHDI_DEVMODE),yes)
27   CFLAGS+=-Werror -Wunused -Wundef $(DAHDI_DECLARATION_AFTER_STATEMENT) -Wmissing-format-attribute -Wformat-security #-Wformat=2
28 endif
29
30 ROOT_PREFIX=
31
32 # extra cflags to build dependencies. Recursively expanded.
33 MAKE_DEPS= -MD -MT $@ -MF .$(subst /,_,$@).d -MP
34
35 CFLAGS+=$(DAHDI_INCLUDE)
36
37 CHKCONFIG       := $(wildcard /sbin/chkconfig)
38 UPDATE_RCD      := $(wildcard /usr/sbin/update-rc.d)
39 ifeq (,$(DESTDIR))
40   ifneq (,$(CHKCONFIG))
41     ADD_INITD   := $(CHKCONFIG) --add dahdi
42   else
43     ifneq (,$(UPDATE_RCD))
44       ADD_INITD := $(UPDATE_RCD) dahdi defaults 15 30
45     endif
46   endif
47 endif
48
49 INITRD_DIR      := $(firstword $(wildcard $(DESTDIR)/etc/rc.d/init.d $(DESTDIR)/etc/init.d))
50 ifneq (,$(INITRD_DIR))
51   INIT_TARGET   := $(INITRD_DIR)/dahdi
52   COPY_INITD    := install -D dahdi.init $(INIT_TARGET)
53 endif
54
55 RCCONF_FILE     = /etc/dahdi/init.conf
56 MODULES_FILE    = /etc/dahdi/modules
57 GENCONF_FILE    = /etc/dahdi/genconf_parameters
58 MODPROBE_FILE   = /etc/modprobe.d/dahdi.conf
59 BLACKLIST_FILE  = /etc/modprobe.d/dahdi.blacklist.conf
60 BASH_COMP_DIR   = /etc/bash_completion.d
61 BASH_COMP_FILE  = $(BASH_COMP_DIR)/dahdi
62
63 NETSCR_DIR      := $(firstword $(wildcard $(DESTDIR)/etc/sysconfig/network-scripts ))
64 ifneq (,$(NETSCR_DIR))
65   NETSCR_TARGET := $(NETSCR_DIR)/ifup-hdlc
66   COPY_NETSCR   := install -D ifup-hdlc $(NETSCR_TARGET)
67 endif
68
69 TOOLSVERSION=$(shell build_tools/make_version . dahdi/tools)
70
71 # sbindir, libdir, includedir and mandir are defined in makeopts
72 # (from configure).
73 LIB_DIR:=$(libdir)
74 DATA_DIR:=${datadir}/dahdi
75 CONFIG_DIR:=$(sysconfdir)/dahdi
76 CONFIG_FILE:=$(CONFIG_DIR)/system.conf
77 UDEVRULES_DIR:=$(sysconfdir)/udev/rules.d
78
79
80 ASSIGNED_DATA_SCRIPTS:=\
81         dahdi_handle_device     \
82         dahdi_span_config       \
83         dahdi_auto_assign_compat        \
84         span_config.d/10-dahdi-cfg      \
85         span_config.d/20-fxotune        \
86         span_config.d/50-asterisk       \
87         handle_device.d/10-span-types   \
88         handle_device.d/20-span-assignments
89
90 ASSIGNED_CONF:=assigned-spans.conf.sample span-types.conf.sample
91
92 # All the man pages. Not just installed ones:
93 GROFF_PAGES     := $(wildcard doc/*.8 xpp/*.8)
94 GROFF_HTML      := $(GROFF_PAGES:%=%.html)
95
96 GENERATED_DOCS  := $(GROFF_HTML) README.html README.Astribank.html
97
98 all:
99
100 dahdi_pcap:
101         $(CC) $(CFLAGS) dahdi_pcap.c -lpcap -o $@ $<
102         
103
104 tonezones.txt: zonedata.c
105         perl -ne 'next unless (/\.(country|description) = *"([^"]*)/); \
106                 print (($$1 eq "country")? "* $$2\t":"$$2\n");' $<  \
107         >$@
108
109 %.asciidoc: %.sample
110         perl -n -e \
111                 'if (/^#($$|\s)(.*)/){ if (!$$in_doc){print "\n"}; $$in_doc=1; print "$$2\n" } else { if ($$in_doc){print "\n"}; $$in_doc=0; print "  $$_" }' \
112                 $< \
113         | perl -p -e 'if (/^  #?(\w+)=/ && ! exists $$cfgs{$$1}){my $$cfg = $$1; $$cfgs{$$cfg} = 1; s/^/\n[[cfg_$$cfg]]\n/}'  >$@
114
115 docs: $(GENERATED_DOCS)
116
117 genconf_parameters.sample: xpp/genconf_parameters
118         cp $< $@
119
120 README.html: README system.conf.asciidoc init.conf.asciidoc tonezones.txt \
121   UPGRADE.txt genconf_parameters.asciidoc assigned-spans.conf.asciidoc \
122   span-types.conf.asciidoc
123         $(ASCIIDOC) -n -a toc -a toclevels=4 $<
124
125 README.Astribank.html: xpp/README.Astribank
126         $(ASCIIDOC) -o $@ -n -a toc -a toclevels=4 $<
127
128 # on Debian: this requires the full groff, not just groff-base.
129 %.8.html: %.8
130         man -Thtml $^ >$@
131
132 htmlman: $(GROFF_HTML)
133
134 install: all install-programs
135         @echo "###################################################"
136         @echo "###"
137         @echo "### DAHDI tools installed successfully."
138         @echo "### If you have not done so before, install init scripts with:"
139         @echo "###"
140         @echo "###   make config"
141         @echo "###"
142         @echo "###################################################"
143
144 install-programs: install-utils install-libs
145
146 install-utils:
147 ifeq (,$(wildcard $(DESTDIR)$(CONFIG_FILE)))
148         $(INSTALL) -d $(DESTDIR)$(CONFIG_DIR)
149         $(INSTALL) -m 644 system.conf.sample $(DESTDIR)$(CONFIG_FILE)
150 endif
151         install -d $(DESTDIR)$(DATA_DIR)
152         tar cf - -C hotplug $(ASSIGNED_DATA_SCRIPTS) | tar xf - -C $(DESTDIR)$(DATA_DIR)/
153         install -m 644 $(ASSIGNED_CONF) $(DESTDIR)/$(CONFIG_DIR)/
154         install -d $(DESTDIR)$(BASH_COMP_DIR)
155         install -m 644 dahdi-bash-completion $(DESTDIR)$(BASH_COMP_FILE)
156
157 install-libs:
158 ifneq (no,$(USE_SELINUX))
159   ifeq (,$(DESTDIR))
160         /sbin/restorecon -v $(DESTDIR)$(LIB_DIR)/$(LTZ_SO)
161   endif
162 endif
163
164 config:
165 ifneq (,$(COPY_INITD))
166         $(COPY_INITD)
167 endif
168 ifeq (,$(wildcard $(DESTDIR)$(RCCONF_FILE)))
169         $(INSTALL) -D -m 644 init.conf.sample $(DESTDIR)$(RCCONF_FILE)
170 endif
171 ifeq (,$(wildcard $(DESTDIR)$(MODULES_FILE)))
172         $(INSTALL) -D -m 644 modules.sample $(DESTDIR)$(MODULES_FILE)
173 endif
174 ifeq (,$(wildcard $(DESTDIR)$(GENCONF_FILE)))
175         $(INSTALL) -D -m 644 xpp/genconf_parameters $(DESTDIR)$(GENCONF_FILE)
176 endif
177 ifeq (,$(wildcard $(DESTDIR)$(MODPROBE_FILE)))
178         $(INSTALL) -D -m 644 modprobe.conf.sample $(DESTDIR)$(MODPROBE_FILE)
179 endif
180 ifeq (,$(wildcard $(DESTDIR)$(BLACKLIST_FILE)))
181         $(INSTALL) -D -m 644 blacklist.sample $(DESTDIR)$(BLACKLIST_FILE)
182 endif
183         $(INSTALL) -d $(DESTDIR)$(UDEVRULES_DIR)
184         $(INSTALL) -D -m 644 dahdi.rules $(DESTDIR)$(UDEVRULES_DIR)/
185 ifneq (,$(COPY_NETSCR))
186         $(COPY_NETSCR)
187 endif
188 ifneq (,$(ADD_INITD))
189         $(ADD_INITD)
190 endif
191         @echo "DAHDI has been configured."
192         @echo ""
193         @echo "List of detected DAHDI devices:"
194         @echo ""
195         @if [ `xpp/dahdi_hardware | tee /dev/stderr | wc -l` -eq 0 ]; then \
196                 echo "No hardware found"; \
197         else \
198                 echo ""; \
199                 echo "run 'dahdi_genconf modules' to load support for only " ;\
200                 echo "the DAHDI hardware installed in this system.  By "; \
201                 echo "default support for all DAHDI hardware is loaded at "; \
202                 echo "DAHDI start. "; \
203         fi
204
205 dist:
206         @./build_tools/make_dist "dahdi-tools" "$(TOOLSVERSION)"
207
208 clean:
209         rm -f *.o tzdriver
210         rm -f core
211         rm -rf $(GENERATED_DOCS) *.asciidoc tonezones.txt
212         rm -f dahdi_pcap
213
214 .PHONY: clean all install devel data config install-programs install-libs dist
215
216 FORCE:
217
218 ifneq ($(wildcard .*.d),)
219    include .*.d
220 endif