yate/Makefile.in

232 lines
5.9 KiB
Makefile
Raw Normal View History

# Makefile
# This file holds the make rules for the Telephony Engine
# override DESTDIR at install time to prefix the install directory
DESTDIR :=
# override DEBUG at compile time to enable full debug or remove it all
DEBUG :=
CXX := @CXX@ -Wall
SED := sed
DEFS :=
LIBAUX:= -ldl
LIBTHR:= -lpthread
INCLUDES := -I. -I@srcdir@
CFLAGS := -O2 @MODULE_CFLAGS@ @INLINE_FLAGS@
LDFLAGS:=
LDCONFIG:=true
MKDEPS := ./config.status
PROGS:= yate
SLIBS:= libyate.so
INCS := telengine.h telephony.h
GENS := yateversn.h
LIBS :=
MAN8 := yate.8
DOCS := README COPYING ChangeLog
ENGOBJS := TelEngine.o String.o DataBlock.o ObjList.o \
NamedList.o Configuration.o \
Message.o Mutex.o Thread.o \
Plugin.o Engine.o
OBJS := main.o
LIBOBJS := $(ENGOBJS) $(TELOBJS)
CLEANS = $(PROGS) $(SLIBS) $(LIBS) $(OBJS) $(LIBOBJS) core
COMPILE = $(CXX) $(DEFS) $(DEBUG) $(INCLUDES) $(CFLAGS)
LINK = $(CXX) $(LDFLAGS)
prefix = @prefix@
exec_prefix = @exec_prefix@
bindir = @bindir@
libdir = @libdir@
incdir = @includedir@/yate
mandir = @mandir@
docdir = $(prefix)/share/doc/yate-@PACKAGE_VERSION@
vardir = @localstatedir@/lib/yate
moddir = @libdir@/yate
confdir = @sysconfdir@/yate
.PHONY: all
all: engine modules
.PHONY: clean
clean:
-rm $(CLEANS) 2>/dev/null
$(MAKE) -C ./modules $@
$(MAKE) -C ./test $@
$(MAKE) -C ./contrib/iax $@
$(MAKE) -C ./contrib/qt $@
.PHONY: engine
engine: tables yatepaths.h $(LIBS) $(SLIBS) $(PROGS)
.PHONY: apidocs-build
apidocs-build: check-topdir
kdoc -C ./kdoc-filter.sh -d docs/api/ $(INCS)
apidocs: @srcdir@/docs/api/index.html
@srcdir@/docs/api/index.html: @srcdir@/telengine.h @srcdir@/telephony.h
$(MAKE) apidocs-build
.PHONY: strip
strip: all
-strip --strip-debug --discard-locals $(PROGS) $(SLIBS)
.PHONY: sex
sex: strip
@echo 'Stripped for you!'
# Let's have a little fun
.PHONY: love
love:
@echo 'Not war?'
.PHONY: war
war:
@echo 'Please make love instead!'
.PHONY: test
test: engine
$(MAKE) -C ./test all
.PHONY: modules
modules: engine
$(MAKE) -C ./modules all
tables: @srcdir@/tables/all.h
@srcdir@/tables/all.h:
$(MAKE) -C @srcdir@/tables -f Makefile.tables all
yatepaths.h: $(MKDEPS)
@echo '#define MOD_PATH "$(DESTDIR)$(moddir)"' > $@
@echo '#define CFG_PATH "$(DESTDIR)$(confdir)"' >> $@
.PHONY: everything
everything: all apidocs test
.PHONY: install install-root
install install-root: all apidocs
@mkdir -p "$(DESTDIR)$(libdir)/" && \
install $(SLIBS) "$(DESTDIR)$(libdir)/" && $(LDCONFIG)
@mkdir -p "$(DESTDIR)$(bindir)/" && \
install $(PROGS) yate-config "$(DESTDIR)$(bindir)/"
$(MAKE) -C ./modules install
$(MAKE) -C ./scripts install
$(MAKE) -C ./conf.d install
@mkdir -p "$(DESTDIR)$(mandir)/man8/" && \
for i in $(MAN8) ; do \
install -m 0644 @srcdir@/$$i "$(DESTDIR)$(mandir)/man8/" ; \
done
@mkdir -p "$(DESTDIR)$(libdir)/pkgconfig/" && \
install -m 0644 yate.pc "$(DESTDIR)$(libdir)/pkgconfig/"
@mkdir -p "$(DESTDIR)$(incdir)/" && \
for i in $(INCS) ; do \
install -m 0644 @srcdir@/$$i "$(DESTDIR)$(incdir)/" ; \
done
for i in $(GENS) ; do \
install -m 0644 $$i "$(DESTDIR)$(incdir)/" ; \
done
@mkdir -p "$(DESTDIR)$(docdir)/api/" && \
for i in $(DOCS) ; do \
install -m 0644 @srcdir@/$$i "$(DESTDIR)$(docdir)/" ; \
done ;
install -m 0644 @srcdir@/docs/*.html "$(DESTDIR)$(docdir)/" && \
install -m 0644 @srcdir@/docs/api/*.html "$(DESTDIR)$(docdir)/api/"
.PHONY: uninstall uninstall-root
uninstall uninstall-root:
@-for i in $(SLIBS) ; do \
rm "$(DESTDIR)$(libdir)/$$i" ; \
done; \
$(LDCONFIG)
@-for i in $(PROGS) yate-config ; do \
rm "$(DESTDIR)$(bindir)/$$i" ; \
done
@-rm "$(DESTDIR)$(libdir)/pkgconfig/yate.pc" && \
rmdir $(DESTDIR)$(libdir)/pkgconfig
@-for i in $(INCS) $(GENS) ; do \
rm "$(DESTDIR)$(incdir)/$$i" ; \
done; \
rmdir "$(DESTDIR)$(incdir)"
@-for i in $(MAN8) ; do \
rm "$(DESTDIR)$(mandir)/man8/$$i" ; \
done
@rm -rf "$(DESTDIR)$(docdir)/"
$(MAKE) -C ./modules uninstall
$(MAKE) -C ./scripts uninstall
$(MAKE) -C ./conf.d uninstall
install-root uninstall-root: LDCONFIG:=ldconfig
.PHONY: snapshot tarball
snapshot tarball: check-topdir clean tables apidocs
@if [ $@ = snapshot ]; then ver="`date '+CVS-%Y%m%d'`"; else ver="@PACKAGE_VERSION@"; fi ; \
wd=`pwd|sed 's,^.*/,,'`; \
mkdir -p tarballs; cd ..; \
echo $$wd/tar-exclude >$$wd/tar-exclude; \
find $$wd -name Makefile >>$$wd/tar-exclude; \
find $$wd/conf.d -name '*.conf' >>$$wd/tar-exclude; \
find $$wd -name '*.cache' >>$$wd/tar-exclude; \
find $$wd -name '*~' >>$$wd/tar-exclude; \
find $$wd -name '.*.swp' >>$$wd/tar-exclude; \
if [ $@ = tarball ]; then \
find $$wd -name CVS >>$$wd/tar-exclude; \
find $$wd -name .cvsignore >>$$wd/tar-exclude; \
else \
echo "$$wd/yate.spec" >>$$wd/tar-exclude; \
fi ; \
tar czf $$wd/tarballs/$$wd-$$ver.tar.gz \
--exclude $$wd/tarballs \
--exclude $$wd/config.status \
--exclude $$wd/config.log \
--exclude $$wd/run \
--exclude $$wd/yate-config \
--exclude $$wd/yate.pc \
--exclude $$wd/yatepaths.h \
--exclude $$wd/yateversn.h \
-X $$wd/tar-exclude \
$$wd; \
rm $$wd/tar-exclude
.PHONY: check-topdir
check-topdir:
@test -f configure || (echo "Must make this target in the top source directory"; exit 1)
Engine.o: @srcdir@/Engine.cpp $(MKDEPS) @srcdir@/telengine.h yateversn.h yatepaths.h
$(COMPILE) -c $<
DataBlock.o: @srcdir@/DataBlock.cpp $(MKDEPS) @srcdir@/telengine.h @srcdir@/telephony.h
$(COMPILE) -c $<
Mutex.o: @srcdir@/Mutex.cpp $(MKDEPS) @srcdir@/telengine.h
$(COMPILE) @MUTEX_HACK@ -c $<
%.o: @srcdir@/%.cpp $(MKDEPS) @srcdir@/telengine.h
$(COMPILE) -c $<
@srcdir@/configure: @srcdir@/configure.in
cd @srcdir@ && autoconf
config.status: @srcdir@/configure
./config.status --recheck
Makefile: @srcdir@/Makefile.in $(MKDEPS)
./config.status
yate: $(OBJS) libyate.so $(LIBS)
$(LINK) -o $@ $(LIBTHR) $^
libyate.so: $(ENGOBJS) $(LIBS)
$(LINK) -shared -o $@ -Wl,--soname=$@ $(LIBTHR) $^ $(LIBAUX)
.PHONY: help
help:
@echo -e 'Usual make targets:\n\
all engine modules apidocs test everything\n\
install uninstall\n\
snapshot tarball'