blob: 72310ae01e92dd40f184df8ff5f58fd3109c2e79 [file] [log] [blame]
Tristan Matthews0a329cc2013-07-17 13:20:14 -04001include build.mak
2include build/host-$(HOST_NAME).mak
3-include user.mak
4include version.mak
5
6LIB_DIRS = pjlib/build pjlib-util/build pjnath/build third_party/build pjmedia/build pjsip/build
7DIRS = $(LIB_DIRS) pjsip-apps/build $(EXTRA_DIRS)
8
9ifdef MINSIZE
10MAKE_FLAGS := MINSIZE=1
11endif
12
13all clean dep depend distclean print realclean:
14 for dir in $(DIRS); do \
15 if $(MAKE) $(MAKE_FLAGS) -C $$dir $@; then \
16 true; \
17 else \
18 exit 1; \
19 fi; \
20 done
21
22lib:
23 for dir in $(LIB_DIRS); do \
24 if $(MAKE) $(MAKE_FLAGS) -C $$dir all; then \
25 true; \
26 else \
27 exit 1; \
28 fi; \
29 done; \
30
31
32.PHONY: lib
33
34doc:
35 @if test \( ! "$(WWWDIR)" == "" \) -a \( ! -d $(WWWDIR)/pjlib/docs/html \) ; then \
36 echo 'Directory "$(WWWDIR)" does not look like a valid pjsip web directory'; \
37 exit 1; \
38 fi
39 for dir in $(DIRS); do \
40 if $(MAKE) $(MAKE_FLAGS) -C $$dir $@; then \
41 true; \
42 else \
43 exit 1; \
44 fi; \
45 done
46
47LIBS = pjlib/lib/libpj-$(TARGET_NAME).a \
48 pjlib-util/lib/libpjlib-util-$(TARGET_NAME).a \
49 pjnath/lib/libpjnath-$(TARGET_NAME).a \
50 pjmedia/lib/libpjmedia-$(TARGET_NAME).a \
51 pjmedia/lib/libpjmedia-audiodev-$(TARGET_NAME).a \
52 pjmedia/lib/libpjmedia-codec-$(TARGET_NAME).a \
53 pjsip/lib/libpjsip-$(TARGET_NAME).a \
54 pjsip/lib/libpjsip-ua-$(TARGET_NAME).a \
55 pjsip/lib/libpjsip-simple-$(TARGET_NAME).a \
56 pjsip/lib/libpjsua-$(TARGET_NAME).a
57BINS = pjsip-apps/bin/pjsua-$(TARGET_NAME)$(HOST_EXE)
58
59size:
60 @echo -n 'Date: '
61 @date
62 @echo
63 @for lib in $(LIBS); do \
64 echo "$$lib:"; \
65 size -t $$lib | awk '{print $$1 "\t" $$2 "\t" $$3 "\t" $$6}'; \
66 echo; \
67 done
68 @echo
69 @for bin in $(BINS); do \
70 echo "size $$bin:"; \
71 size $$bin; \
72 done
73
74#dos2unix:
75# for f in `find . | egrep '(mak|h|c|S|s|Makefile)$$'`; do \
76# dos2unix "$$f" > dos2unix.tmp; \
77# cp dos2unix.tmp "$$f"; \
78# done
79# rm -f dos2unix.tmp
80
81xhdrid:
82 for f in `find . | egrep '\.(h|c|S|s|cpp|hpp)$$'`; do \
83 echo Processing $$f...; \
84 cat $$f | sed 's/.*\$$Author\$$/ */' > /tmp/id; \
85 cp /tmp/id $$f; \
86 done
87
88selftest: pjlib-test pjlib-util-test pjnath-test pjmedia-test pjsip-test pjsua-test
89
90pjlib-test: pjlib/bin/pjlib-test-$(TARGET_NAME)
91 cd pjlib/build && ../bin/pjlib-test-$(TARGET_NAME)
92
93pjlib-util-test: pjlib-util/bin/pjlib-util-test-$(TARGET_NAME)
94 cd pjlib-util/build && ../bin/pjlib-util-test-$(TARGET_NAME)
95
96pjnath-test: pjnath/bin/pjnath-test-$(TARGET_NAME)
97 cd pjnath/build && ../bin/pjnath-test-$(TARGET_NAME)
98
99pjmedia-test: pjmedia/bin/pjmedia-test-$(TARGET_NAME)
100 cd pjmedia/build && ../bin/pjmedia-test-$(TARGET_NAME)
101
102pjsip-test: pjsip/bin/pjsip-test-$(TARGET_NAME)
103 cd pjsip/build && ../bin/pjsip-test-$(TARGET_NAME)
104
105pjsua-test:
106 cd tests/pjsua && python runall.py
107
Tristan Matthews0a329cc2013-07-17 13:20:14 -0400108install:
Alexandre Lision8af73cb2013-12-10 14:11:20 -0500109 mkdir -p $(DESTDIR)$(libdir)/
110 cp -af $(APP_LIB_FILES) $(DESTDIR)$(libdir)/
111 mkdir -p $(DESTDIR)$(includedir)/
Tristan Matthews0a329cc2013-07-17 13:20:14 -0400112 for d in pjlib pjlib-util pjnath pjmedia pjsip; do \
Alexandre Lision8af73cb2013-12-10 14:11:20 -0500113 cp -RLf $$d/include/* $(DESTDIR)$(includedir)/; \
Tristan Matthews0a329cc2013-07-17 13:20:14 -0400114 done
Alexandre Lision8af73cb2013-12-10 14:11:20 -0500115 mkdir -p $(DESTDIR)$(libdir)/pkgconfig
116 sed -e "s!@PREFIX@!$(prefix)!" libpjproject.pc.in | \
117 sed -e "s!@INCLUDEDIR@!$(includedir)!" | \
118 sed -e "s!@LIBDIR@!$(libdir)!" | \
Tristan Matthews0a329cc2013-07-17 13:20:14 -0400119 sed -e "s/@PJ_VERSION@/$(PJ_VERSION)/" | \
120 sed -e "s!@PJ_LDLIBS@!$(PJ_LDLIBS)!" | \
Alexandre Lision8af73cb2013-12-10 14:11:20 -0500121 sed -e "s!@PJ_INSTALL_CFLAGS@!$(PJ_INSTALL_CFLAGS)!" > $(DESTDIR)/$(libdir)/pkgconfig/libpjproject.pc
122
123uninstall:
124 $(RM) $(DESTDIR)$(libdir)/pkgconfig/libpjproject.pc
125 -rmdir $(DESTDIR)$(libdir)/pkgconfig 2> /dev/null
126 for d in pjlib pjlib-util pjnath pjmedia pjsip; do \
127 for f in $$d/include/*; do \
128 $(RM) -r "$(DESTDIR)$(includedir)/`basename $$f`"; \
129 done; \
130 done
131 -rmdir $(DESTDIR)$(includedir) 2> /dev/null
132 $(RM) $(addprefix $(DESTDIR)$(libdir)/,$(notdir $(APP_LIB_FILES)))
133 -rmdir $(DESTDIR)$(libdir) 2> /dev/null