Fixed DevStudio 2005 build.
[opal.git] / Makefile.in
blobef0c1e006c1b185566a6c51ae4c89667bf5e8566
2 # Makefile
4 # Make file for Open Phone Abstraction library
6 # Copyright (c) 2001 Equivalence Pty. Ltd.
8 # The contents of this file are subject to the Mozilla Public License
9 # Version 1.0 (the "License"); you may not use this file except in
10 # compliance with the License. You may obtain a copy of the License at
11 # http://www.mozilla.org/MPL/
13 # Software distributed under the License is distributed on an "AS IS"
14 # basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
15 # the License for the specific language governing rights and limitations
16 # under the License.
18 # The Original Code is Open Phone Abstraction Library.
20 # The Initial Developer of the Original Code is Equivalence Pty. Ltd.
22 # Contributor(s): ______________________________________.
24 # $Log$
25 # Revision 1.57 2007/06/14 13:07:47 csoutheren
26 # Fix problem with linking system Speex statically
28 # Revision 1.56 2007/06/14 00:43:27 csoutheren
29 # Fixed Makefile for new socket bundle code
31 # Revision 1.55 2007/06/02 13:38:37 dsandras
32 # Fixed build on linux which was broken due to partial commit of the RFC4175
33 # code.
35 # Revision 1.54 2007/05/28 14:48:58 dominance
36 # fix notrace compile. We already feed the OBJDIR_SUFFIX as 'n', no need to add another suffix.
38 # Revision 1.53 2007/05/15 20:47:20 dsandras
39 # Added various handlers to manage subscriptions for presence, message
40 # waiting indications, registrations, state publishing,
41 # message conversations, ...
42 # Adds/fixes support for RFC3856, RFC3903, RFC3863, RFC3265, ...
43 # Many improvements over the original SIPInfo code.
44 # Code contributed by NOVACOM (http://www.novacom.be) thanks to
45 # EuroWeb (http://www.euroweb.hu).
47 # Revision 1.52 2007/05/08 09:31:23 csoutheren
48 # Removed warnings on Unix
50 # Revision 1.51 2007/02/05 19:50:31 dsandras
51 # Fixed uninstallation of plugins.
53 # Revision 1.50 2007/01/11 03:24:57 dereksmithies
54 # It now references the new file to compile, iax2/iax2jitter.cxx
56 # Revision 1.49 2006/12/08 05:08:16 csoutheren
57 # Applied 1589270 - spec, pkgconfig, doxygen
58 # Thanks to Frederic Heem
60 # Revision 1.48 2006/10/16 21:30:55 dsandras
61 # Applied patch from Brian Lu <brian lu sun com> to fix compilation issues
62 # on OpenSolaris. Thanks!
64 # Revision 1.47 2006/10/10 10:12:34 csoutheren
65 # Allow correct operation if subdirs are missing
67 # Revision 1.46 2006/10/10 07:18:17 csoutheren
68 # Allow compilation with and without various options
70 # Revision 1.45 2006/10/05 07:11:49 csoutheren
71 # Add --disable-lid option
73 # Revision 1.44 2006/10/04 06:19:08 csoutheren
74 # Fixed SRTP configuration for Linux
76 # Revision 1.43 2006/10/02 13:30:50 rjongbloed
77 # Added LID plug ins
79 # Revision 1.42 2006/09/18 08:41:53 rjongbloed
80 # Added simple OPAL sample to default build.
81 # Added check that Makefile may need to be rebuilt from configure script.
83 # Revision 1.41 2006/09/11 20:44:17 dereksmithies
84 # Fix spacing at end of line for two iax files.
86 # Revision 1.40 2006/09/11 20:13:36 dsandras
87 # Fixed IAX2 build thanks to Stephen Cook <siti orcon net nz>.
89 # Revision 1.39 2006/09/07 10:05:55 rjongbloed
90 # Added "make update" target to do cvs update and rebuild
92 # Revision 1.38 2006/08/15 19:41:38 dsandras
93 # Only build plugins when building the library.
95 # Revision 1.37 2006/08/09 23:14:00 dereksmithies
96 # Add fix for compiling new iax processing files.
97 # Big thanks to Stephen Cook, (sitiveni@gmail.com) for this work.
98 # Thanks also for the Google Summer of Code.
100 # Revision 1.36 2006/08/08 09:16:47 rjongbloed
101 # Fixed building of audio plugins on linux
103 # Revision 1.35 2006/08/03 12:43:52 csoutheren
104 # Fixed compilation on Linux
106 # Revision 1.34 2006/07/24 14:03:38 csoutheren
107 # Merged in audio and video plugins from CVS branch PluginBranch
109 # Revision 1.33 2006/06/08 07:03:16 csoutheren
110 # Changed to force docs to build even when docs directory exists
112 # Revision 1.32 2006/05/30 12:04:08 hfriederich
113 # Enabling to build H.460
115 # Revision 1.31 2006/04/22 14:05:47 dsandras
116 # When building a shared library x that references symbols in libraries y,
117 # the y libraries need to be added to the linker command always. Thanks to
118 # Vitaly Lipatov. (Fixes Ekiga report #338310).
120 # Revision 1.30 2006/04/20 16:56:41 hfriederich
121 # Changes to allow compilation of H.224/H.281 code as well as to disable H.224 entirely
123 # Revision 1.29 2006/04/17 00:06:26 csoutheren
124 # Allow ILBC codec to be disabled and detect if not present
126 # Revision 1.28.2.1 2006/05/16 07:03:09 csoutheren
127 # Fixed Linux compile system
129 # Revision 1.28 2006/02/01 22:42:55 dominance
130 # ensure we have the full disctinct SONAME instead of just the major number version.
132 # Revision 1.27 2006/01/30 02:23:15 csoutheren
133 # First cut at fixing problem with speex libraries
135 # Revision 1.26 2006/01/20 00:00:59 csoutheren
136 # Added protected against some source directories not being present
137 # even wen configuration says they should be
139 # Revision 1.25 2006/01/19 22:40:33 dereksmithies
140 # Add iax2 to the list of instal directories. Thanks to Damien Sandras
141 # for reporting the bug in iax2 compilation.
143 # Revision 1.24 2006/01/18 11:26:29 dsandras
144 # Reverted previous change.
146 # Revision 1.22 2006/01/14 10:43:06 dsandras
147 # Applied patch from Brian Lu <Brian.Lu _AT_____ sun.com> to allow compilation
148 # with OpenSolaris compiler. Many thanks !!!
150 # Revision 1.21 2006/01/07 17:37:50 dsandras
151 # Updated to speex 1.1.11.2 to fix divergeance issues.
153 # Revision 1.20 2006/01/01 19:19:32 dsandras
154 # Added RFC2190 H.263 codec thanks to Salyens. Many thanks!
156 # Revision 1.19 2005/12/06 06:34:10 csoutheren
157 # Added configure support for Sangoma and empty LID source and header files
159 # Revision 1.18 2005/11/24 20:31:54 dsandras
160 # Added support for echo cancelation using Speex.
161 # Added possibility to add a filter to an OpalMediaPatch for all patches of a connection.
163 # Revision 1.17 2005/11/23 22:01:37 dsandras
164 # Reverted previous change. echocancel.cxx is not ready to go in yet.
166 # Revision 1.16 2005/11/23 21:58:33 dsandras
167 # Fixed Makefile.in.
169 # Revision 1.15 2005/11/20 21:03:50 dsandras
170 # Upgraded to Speex 1.1.10.
172 # Revision 1.14 2005/09/13 20:48:22 dominance
173 # minor cleanups needed to support mingw compilation. Thanks goes to Julien Puydt.
175 # Revision 1.13 2005/08/10 11:07:14 csoutheren
176 # Fixed bug #1255554
177 # Fixed dynamic linking on MacOSX
178 # Thanks to Hannes Friederich
180 # Revision 1.12 2005/07/30 07:39:26 csoutheren
181 # Added support for compiling new IAX2 code
183 # Revision 1.11 2005/04/26 10:58:37 dsandras
184 # Committed workaround for "make install".
186 # Revision 1.10 2005/04/25 10:14:14 dsandras
187 # Move LIBDIR down due to conflicting names.
189 # Revision 1.9 2005/04/25 09:31:35 dsandras
190 # Fixed make.
192 # Revision 1.8 2005/04/25 09:07:58 dsandras
193 # Fixed install/uninstall.
195 # Revision 1.7 2005/04/21 01:05:55 csoutheren
196 # New fix from Peter Robinson
198 # Revision 1.6 2005/04/20 05:46:32 csoutheren
199 # Patch 1146010. Fix problem with install targets
200 # Thanks to Peter Robinson
202 # Revision 1.5 2005/04/11 10:41:05 dsandras
203 # Added patch from Georgi Georgiev to fix compilation issues on Athlon64.
205 # Revision 1.4 2005/02/27 22:03:39 dereksmithies
206 # Add target to generate docs with doxygen.
208 # Revision 1.3 2005/01/31 07:40:41 csoutheren
209 # Fix for MacOSX thanks to Hannes Friederich
211 # Revision 1.2 2004/12/05 18:14:20 dsandras
212 # Cleanups.
214 # Revision 1.1 2004/12/04 18:37:58 dsandras
215 # Ported the "make install" / "make uninstall" system from OpenH323 to OPAL.
217 # Revision 2.29 2004/06/04 05:29:28 csoutheren
218 # Updated for ASN file changes and added silencedetect.cxx
220 # Revision 2.28 2004/04/25 02:53:28 rjongbloed
221 # Fixed GNU 3.4 warnings
223 # Revision 2.27 2004/03/11 06:54:25 csoutheren
224 # Added ability to disable SIP or H.323 stacks
226 # Revision 2.26 2004/02/23 01:28:49 rjongbloed
227 # Fixed unix build for recent upgrade to OpenH323 latest code.
229 # Revision 2.25 2004/02/16 09:15:19 csoutheren
230 # Fixed problems with codecs on Unix systems
232 # Revision 2.24 2003/04/08 11:46:35 robertj
233 # Better portability for tr command when doing ASN parse.
235 # Revision 2.23 2003/04/08 06:09:19 robertj
236 # Fixed ASN compilation so do not need -I on compile line for asn includes.
238 # Revision 2.22 2003/04/02 06:52:04 robertj
239 # Added dependencies for H450 ASN files
241 # Revision 2.21 2003/03/26 02:49:00 robertj
242 # Added service/daemon sample application.
244 # Revision 2.20 2003/03/19 04:45:29 robertj
245 # Added opalvxml to build
247 # Revision 2.19 2003/03/18 23:09:37 robertj
248 # Fixed LD_LIBRARY_PATH issue with Solaris
250 # Revision 2.18 2003/03/17 23:08:41 robertj
251 # Added IVR endpoint
253 # Revision 2.17 2003/03/17 22:36:38 robertj
254 # Added video support.
256 # Revision 2.16 2003/01/15 00:08:18 robertj
257 # Updated to OpenH323 v1.10.3
259 # Revision 2.15 2002/11/12 12:06:34 robertj
260 # Fixed Solaris compatibility
262 # Revision 2.14 2002/11/11 07:43:32 robertj
263 # Added speex codec files
265 # Revision 2.13 2002/09/11 05:56:16 robertj
266 # Fixed double inclusion of common.mak
267 # Added opalwavfile.cxx module
269 # Revision 2.12 2002/03/15 10:51:53 robertj
270 # Fixed problem with recursive inclusion on make files.
272 # Revision 2.11 2002/03/05 06:27:34 robertj
273 # Added ASN parser build and version check code.
275 # Revision 2.10 2002/02/22 04:16:25 robertj
276 # Added G.726 codec and fixed the lpc10 and GSM codecs.
278 # Revision 2.9 2002/02/11 09:38:28 robertj
279 # Moved version to root directory
281 # Revision 2.8 2002/02/06 11:52:53 rogerh
282 # Move -I$(ASN_INCDIR) so Opal's ldap.h is found instead of the OS's ldap.h
284 # Revision 2.7 2002/02/01 10:29:35 rogerh
285 # Use the right version.h file. (the other one had comments which confused
286 # pwlib's lib.mak)
288 # Revision 2.6 2002/02/01 04:58:23 craigs
289 # Added sip directory to VPATH
291 # Revision 2.5 2002/02/01 04:53:01 robertj
292 # Added (very primitive!) SIP support.
294 # Revision 2.4 2002/02/01 00:19:20 robertj
295 # Updated to latest pwlilb.
296 # Added rfc2833 module
298 # Revision 2.3 2001/08/17 05:24:22 robertj
299 # Updates from OpenH323 v1.6.0 release.
301 # Revision 2.2 2001/08/01 06:22:55 robertj
302 # Major changes to H.323 capabilities, uses OpalMediaFormat for base name.
303 # Added G.711 transcoder.
305 # Revision 2.1 2001/07/30 03:41:20 robertj
306 # Added build of subdirectories for samples.
307 # Hid the asnparser.version file.
308 # Changed default OPALDIR variable to be current directory.
310 # Revision 2.0 2001/07/27 15:48:24 robertj
311 # Conversion of OpenH323 to Open Phone Abstraction Library (OPAL)
314 export OPALDIR=@OPALDIR@
316 INSTALL=@INSTALL@
317 OS_NAME=$(shell uname -s)
318 ifeq ($(OS_NAME),SunOS)
319 override SHELL=/usr/bin/bash
320 endif
322 default :: optshared
324 all :: bothdepend both
326 update:
327 cvs -q update
328 $(MAKE) all
331 SUBDIRS := plugins
333 LIBRARY_MAKEFILE:=1
335 include $(OPALDIR)/opal_inc.mak
337 PREFIX=@INSTALLPREFIX@/
338 exec_prefix = ${PREFIX}
340 ifndef PREFIX
341 PREFIX=/usr/local
342 endif
344 ifeq ($(USE_GCC),yes)
345 ANSI_FLAG = -ansi
346 endif
348 OPAL_OBJDIR = $(OPAL_LIBDIR)/$(PT_OBJBASE)
350 OBJDIR = $(OPAL_OBJDIR)
351 LIBDIR = $(OPAL_LIBDIR)
352 TARGET = $(OPAL_LIBDIR)/$(OPAL_FILE)
354 STDCCFLAGS += @STDCCFLAGS@
356 ifdef NOTRACE
357 STDCCFLAGS += -DPASN_NOPRINTON
358 else
359 STDCCFLAGS += -DPTRACING
360 endif
362 VPATH_CXX := $(OPAL_SRCDIR)/opal \
363 $(OPAL_SRCDIR)/rtp \
364 $(OPAL_SRCDIR)/lids \
365 $(OPAL_SRCDIR)/codec
367 ifneq (,$(wildcard src/iax2))
368 IAX2_AVAIL = 1
369 VPATH_CXX += $(OPAL_SRCDIR)/iax2
370 endif
372 ifneq (,$(wildcard src/sip))
373 SIP_AVAIL = 1
374 VPATH_CXX += $(OPAL_SRCDIR)/sip
375 endif
377 ifneq (,$(wildcard src/h323))
378 H323_AVAIL = 1
379 VPATH_CXX += $(OPAL_SRCDIR)/h323 \
380 $(OPAL_SRCDIR)/t120 \
381 $(OPAL_SRCDIR)/t38 \
382 $(OPAL_SRCDIR)/asn
383 endif
385 ifneq (,$(wildcard src/h224))
386 H224_AVAIL = 1
387 VPATH_CXX += $(OPAL_SRCDIR)/h224
389 endif
391 VPATH_C := $(OPAL_SRCDIR)/codec
393 ########################################
394 # Source files for library
396 SOURCES := $(OPAL_SRCDIR)/opal/manager.cxx \
397 $(OPAL_SRCDIR)/opal/endpoint.cxx \
398 $(OPAL_SRCDIR)/opal/connection.cxx \
399 $(OPAL_SRCDIR)/opal/call.cxx \
400 $(OPAL_SRCDIR)/opal/mediafmt.cxx \
401 $(OPAL_SRCDIR)/opal/mediastrm.cxx \
402 $(OPAL_SRCDIR)/opal/patch.cxx \
403 $(OPAL_SRCDIR)/opal/transcoders.cxx \
404 $(OPAL_SRCDIR)/opal/transports.cxx \
405 $(OPAL_SRCDIR)/opal/guid.cxx \
406 $(OPAL_SRCDIR)/opal/opalmixer.cxx \
407 $(OPAL_SRCDIR)/opal/opalglobalstatics.cxx \
408 $(OPAL_SRCDIR)/rtp/rtp.cxx \
409 $(OPAL_SRCDIR)/rtp/jitter.cxx \
411 ifeq ($(HAS_AUDIO),1)
412 SOURCES += $(OPAL_SRCDIR)/opal/pcss.cxx
413 endif
415 ifeq ($(OPAL_IVR), 1)
416 SOURCES += $(OPAL_SRCDIR)/opal/ivr.cxx \
417 $(OPAL_SRCDIR)/opal/opalvxml.cxx
418 endif
420 ########################################
422 # H.323 files
424 ifeq ($(OPAL_H323),1)
425 ifdef H323_AVAIL
427 ASN_SRCDIR := $(OPAL_SRCDIR)/asn
428 ASN_INCDIR := $(OPAL_INCDIR)/asn
430 H450_ASN_FILES := h4501 h4502 h4503 h4504 h4505 h4506 h4507 h4508 h4509 h45010 h45011
431 SIMPLE_ASN_FILES := x880 $(H450_ASN_FILES) mcs gcc t38
433 ASN_H_FILES := $(addprefix $(ASN_INCDIR)/,$(addsuffix .h, $(SIMPLE_ASN_FILES)))
434 ASN_CXX_FILES := $(addprefix $(ASN_SRCDIR)/,$(addsuffix .cxx,$(SIMPLE_ASN_FILES)))
436 ASN_H_FILES += $(ASN_INCDIR)/h225.h
437 ASN_CXX_FILES += $(ASN_SRCDIR)/h225_1.cxx $(ASN_SRCDIR)/h225_2.cxx
439 ASN_H_FILES += $(ASN_INCDIR)/h235.h $(ASN_SRCDIR)/h235_t.cxx
440 ASN_CXX_FILES += $(ASN_SRCDIR)/h235.cxx
442 ASN_H_FILES += $(ASN_INCDIR)/h245.h
443 ASN_CXX_FILES += $(ASN_SRCDIR)/h245_1.cxx $(ASN_SRCDIR)/h245_2.cxx $(ASN_SRCDIR)/h245_3.cxx
445 ASN_H_FILES += $(ASN_INCDIR)/h248.h
446 ASN_CXX_FILES += $(ASN_SRCDIR)/h248.cxx
448 ASN_H_FILES += $(ASN_INCDIR)/h501.h
449 ASN_CXX_FILES += $(ASN_SRCDIR)/h501.cxx
451 .PRECIOUS: $(ASN_CXX_FILES) $(ASN_H_FILES)
454 SOURCES += $(ASN_CXX_FILES) \
455 $(OPAL_SRCDIR)/h323/h323ep.cxx \
456 $(OPAL_SRCDIR)/h323/h323.cxx \
457 $(OPAL_SRCDIR)/h323/h323caps.cxx \
458 $(OPAL_SRCDIR)/h323/h323neg.cxx \
459 $(OPAL_SRCDIR)/h323/h323pdu.cxx \
460 $(OPAL_SRCDIR)/h323/h323rtp.cxx \
461 $(OPAL_SRCDIR)/h323/channels.cxx \
462 $(OPAL_SRCDIR)/h323/svcctrl.cxx \
463 $(OPAL_SRCDIR)/h323/h450pdu.cxx \
464 $(OPAL_SRCDIR)/h323/q931.cxx \
465 $(OPAL_SRCDIR)/h323/transaddr.cxx \
466 $(OPAL_SRCDIR)/h323/gkclient.cxx \
467 $(OPAL_SRCDIR)/h323/gkserver.cxx \
468 $(OPAL_SRCDIR)/h323/h225ras.cxx \
469 $(OPAL_SRCDIR)/h323/h323trans.cxx \
470 $(OPAL_SRCDIR)/h323/h235auth.cxx \
471 $(OPAL_SRCDIR)/h323/h501pdu.cxx \
472 $(OPAL_SRCDIR)/h323/h323annexg.cxx \
473 $(OPAL_SRCDIR)/h323/peclient.cxx \
475 ifdef H323_H460
476 SOURCES += $(OPAL_SRCDIR)/h323/h4601.cxx
477 endif
479 ifdef HAS_OPENSSL
480 SOURCES += $(OPAL_SRCDIR)/h235auth1.cxx
481 endif
483 SOURCES += $(OPAL_SRCDIR)/t120/t120proto.cxx \
484 $(OPAL_SRCDIR)/t120/h323t120.cxx \
485 $(OPAL_SRCDIR)/t120/x224.cxx \
486 $(OPAL_SRCDIR)/t38/t38proto.cxx \
487 $(OPAL_SRCDIR)/t38/h323t38.cxx
489 ifeq ($(OPAL_H224), 1)
490 ifdef H224_AVAIL
491 SOURCES += $(OPAL_SRCDIR)/h224/h323h224.cxx
492 endif
493 endif
495 endif
496 endif
498 ##################
499 # IAX2 files
501 ifeq ($(OPAL_IAX2),1)
502 ifdef IAX2_AVAIL
504 SOURCES += \
505 $(OPAL_SRCDIR)/iax2/callprocessor.cxx \
506 $(OPAL_SRCDIR)/iax2/frame.cxx \
507 $(OPAL_SRCDIR)/iax2/iax2con.cxx \
508 $(OPAL_SRCDIR)/iax2/iax2ep.cxx \
509 $(OPAL_SRCDIR)/iax2/iax2jitter.cxx \
510 $(OPAL_SRCDIR)/iax2/iax2medstrm.cxx \
511 $(OPAL_SRCDIR)/iax2/iedata.cxx \
512 $(OPAL_SRCDIR)/iax2/ies.cxx \
513 $(OPAL_SRCDIR)/iax2/processor.cxx \
514 $(OPAL_SRCDIR)/iax2/receiver.cxx \
515 $(OPAL_SRCDIR)/iax2/regprocessor.cxx\
516 $(OPAL_SRCDIR)/iax2/remote.cxx \
517 $(OPAL_SRCDIR)/iax2/safestrings.cxx \
518 $(OPAL_SRCDIR)/iax2/sound.cxx \
519 $(OPAL_SRCDIR)/iax2/specialprocessor.cxx \
520 $(OPAL_SRCDIR)/iax2/transmit.cxx
521 endif
522 endif
524 ################################################################################
525 # SIP files
527 ifeq ($(OPAL_SIP),1)
528 ifdef SIP_AVAIL
530 SOURCES += $(OPAL_SRCDIR)/sip/sipep.cxx \
531 $(OPAL_SRCDIR)/sip/sipcon.cxx \
532 $(OPAL_SRCDIR)/sip/sippdu.cxx \
533 $(OPAL_SRCDIR)/sip/sdp.cxx \
534 $(OPAL_SRCDIR)/sip/handlers.cxx
536 endif
537 endif
539 ##################
540 # H.224 files
542 ifeq ($(OPAL_H224), 1)
543 ifdef H224_AVAIL
545 SOURCES += $(OPAL_SRCDIR)/h224/q922.cxx \
546 $(OPAL_SRCDIR)/h224/h224.cxx \
547 $(OPAL_SRCDIR)/h224/h281.cxx
548 endif
549 endif
551 ##################
552 # LIDS
554 ifeq ($(OPAL_LID), 1)
556 SOURCES += $(OPAL_SRCDIR)/lids/lid.cxx \
557 $(OPAL_SRCDIR)/lids/lidep.cxx \
558 $(OPAL_SRCDIR)/lids/lidpluginmgr.cxx \
560 endif
562 ##################
563 # SRTP
565 ifeq ($(OPAL_SRTP), 1)
566 SOURCES += $(OPAL_SRCDIR)/rtp/srtp.cxx \
568 endif
572 ##################
573 # Software codecs
575 SOURCES += $(OPAL_SRCDIR)/codec/g711codec.cxx \
576 $(OPAL_SRCDIR)/codec/g711.c \
577 $(OPAL_SRCDIR)/codec/rfc2833.cxx \
578 $(OPAL_SRCDIR)/codec/opalwavfile.cxx \
579 $(OPAL_SRCDIR)/codec/silencedetect.cxx \
580 $(OPAL_SRCDIR)/codec/echocancel.cxx \
581 $(OPAL_SRCDIR)/codec/opalpluginmgr.cxx
583 ifeq ($(HAS_VIDEO), 1)
584 SOURCES += $(OPAL_SRCDIR)/codec/vidcodec.cxx
585 endif
587 ifeq ($(OPAL_RFC4175), 1)
588 SOURCES += $(OPAL_SRCDIR)/codec/rfc4175.cxx
589 endif
591 SPEEX_DIR = $(OPAL_SRCDIR)/codec/speex
593 #HEADER_FILES += $(OPAL_INCDIR)/speexcodec.h
595 #SOURCES += $(OPAL_SRCDIR)/codec/speexcodec.cxx
597 ifndef OPAL_SYSTEM_SPEEX
599 SPEEX_INCDIR = $(SPEEX_DIR)/libspeex
600 SPEEX_SRCDIR = $(SPEEX_DIR)/libspeex
602 VPATH_C += $(SPEEX_SRCDIR)
603 VPATH_CXX += $(SPEEX_SRCDIR)
605 HEADER_FILES += $(SPEEX_INCDIR)/speex.h \
606 $(SPEEX_INCDIR)/speex_bits.h \
607 $(SPEEX_INCDIR)/speex_header.h \
608 $(SPEEX_INCDIR)/speex_callbacks.h \
609 $(SPEEX_INCDIR)/speex_config_types.h \
610 $(SPEEX_INCDIR)/speex_preprocess.h \
611 $(SPEEX_INCDIR)/speex_stereo.h \
612 $(SPEEX_INCDIR)/speex_types.h \
613 $(SPEEX_INCDIR)/speex_jitter.h \
614 $(SPEEX_INCDIR)/speex_echo.h
616 SOURCES += $(SPEEX_SRCDIR)/speex_preprocess.c \
617 $(SPEEX_SRCDIR)/smallft.c \
618 $(SPEEX_SRCDIR)/misc.c \
619 $(SPEEX_SRCDIR)/mdf.c \
620 $(SPEEX_SRCDIR)/math_approx.c \
621 $(SPEEX_SRCDIR)/kiss_fftr.c \
622 $(SPEEX_SRCDIR)/kiss_fft.c \
623 $(SPEEX_SRCDIR)/fftwrap.c \
625 endif # OPAL_SYSTEM_SPEEX
628 # Files to be cleaned during make clean
631 CLEAN_FILES = $(OPAL_LIB)
634 ####################################################
636 include @PWLIBDIR@/make/common.mak
638 PROG=opal
639 ####################################################
640 # replace lib.mak
642 ifneq ($(OSTYPE),Darwin)
643 LIBNAME_MAJ = $(OPAL_FILE).$(MAJOR_VERSION)
644 LIBNAME_MIN = $(LIBNAME_MAJ).$(MINOR_VERSION)
645 ifeq ($(BUILD_TYPE),.)
646 LIBNAME_PAT = $(LIBNAME_MIN).$(BUILD_NUMBER)
647 else
648 LIBNAME_PAT = $(LIBNAME_MIN)-$(BUILD_TYPE)$(BUILD_NUMBER)
649 endif
650 else
651 LIBNAME_MAJ = $(subst .$(LIB_SUFFIX),.$(MAJOR_VERSION).$(LIB_SUFFIX),$(OPAL_FILE))
652 LIBNAME_MIN = $(subst .$(LIB_SUFFIX),.$(MAJOR_VERSION).$(MINOR_VERSION).$(LIB_SUFFIX),$(OPAL_FILE))
653 ifeq ($(BUILD_TYPE),.)
654 LIBNAME_PAT = $(subst .$(LIB_SUFFIX),.$(MAJOR_VERSION).$(MINOR_VERSION).$(BUILD_NUMBER).$(LIB_SUFFIX),$(OPAL_FILE))
655 else
656 LIBNAME_PAT = $(subst .$(LIB_SUFFIX),.$(MAJOR_VERSION).$(MINOR_VERSION)-$(BUILD_TYPE)$(BUILD_NUMBER).$(LIB_SUFFIX),$(OPAL_FILE))
657 endif
658 endif
660 LIB_SONAME = $(LIBNAME_MIN)
662 CLEAN_FILES += $(LIBDIR)/$(LIBNAME_PAT) $(LIBDIR)/$(OPAL_FILE) $(LIBDIR)/$(LIBNAME_MAJ) $(LIBDIR)/$(LIBNAME_MIN)
664 ifneq ($(P_SHAREDLIB),1)
665 STATIC_LIB_FILE = $(LIBDIR)/$(OPAL_FILE)
666 else
667 STATIC_LIB_FILE = $(LIBDIR)/$(subst .$(LIB_SUFFIX),_s.$(STATICLIBEXT),$(OPAL_FILE))
668 endif
670 $(LIBDIR)/$(OPAL_FILE) : $(TARGETLIB)
672 ifeq ($(P_SHAREDLIB),1)
674 SYSLIBS += -L$(PW_LIBDIR) -l$(PTLIB_BASE)$(LIB_TYPE)
675 ifeq ($(OSTYPE),beos)
676 # BeOS requires different options when building shared libraries
677 LDSOOPTS = -nostdlib -nostart
678 EXTLIBS = -lstdc++.r4
679 else
680 ifeq ($(OSTYPE),Darwin)
681 LDSOOPTS = -dynamiclib
682 else
683 LDSOOPTS = -shared
684 endif
685 endif
687 ENDLDLIBS := $(SYSLIBS) $(ENDLDLIBS)
689 ifeq ($(OSTYPE),rtems)
690 EXTLIBS = -lstdc++
691 endif
693 ifneq ($(OSTYPE), QNX)
694 ifneq (,$(findstring $(OSTYPE),FreeBSD OpenBSDs))
695 ifdef P_PTHREADS
696 EXTLIBS += -pthread
697 endif
698 else
699 ifdef P_PTHREADS
700 EXTLIBS += -lpthread
701 endif
702 endif
703 endif
705 # Solaris loader doesn't grok -soname (sees it as -s -oname)
706 # We could use -Wl,-h,$(LIB_BASENAME).1 but then we find that the arglist
707 # to gcc is 2900+ bytes long and it will barf. I fix this by invoking ld
708 # directly and passing it the equivalent arguments...jpd@louisiana.edu
709 ifeq ($(OSTYPE),solaris)
710 LDSOOPTS = -Bdynamic -G -h $(LIB_SONAME)
711 LD = $(CPLUS)
712 else
713 ifeq ($(OSTYPE),mingw)
714 LDSOOPTS += -Wl,--kill-at
715 else
716 ifneq ($(OSTYPE),Darwin)
717 LDSOOPTS += -Wl,-soname,$(LIB_SONAME)
718 endif
719 endif
720 LD = $(CPLUS)
721 endif
723 $(LIBDIR)/$(OPAL_FILE): $(LIBDIR)/$(LIBNAME_PAT)
724 cd $(LIBDIR) ; rm -f $(OPAL_FILE) ; ln -sf $(LIBNAME_PAT) $(OPAL_FILE)
725 cd $(LIBDIR) ; rm -f $(LIBNAME_MAJ) ; ln -sf $(LIBNAME_PAT) $(LIBNAME_MAJ)
726 cd $(LIBDIR) ; rm -f $(LIBNAME_MIN) ; ln -sf $(LIBNAME_PAT) $(LIBNAME_MIN)
728 cd $(LIBDIR) ; rm -f libopal.$(LIB_SUFFIX) ; ln -sf $(LIBNAME_PAT) libopal.$(LIB_SUFFIX)
730 $(LIBDIR)/$(LIBNAME_PAT): $(STATIC_LIB_FILE)
731 @echo EXTLIBS = $(EXTLIBS)
732 @echo SYSLIBS = $(SYSLIBS)
733 @if [ ! -d $(LIBDIR) ] ; then mkdir $(LIBDIR) ; fi
734 $(LD) $(LDSOOPTS) -o $(LIBDIR)/$(LIBNAME_PAT) $(LDFLAGS) $(EXTLIBS) $(OBJS) $(ENDLDLIBS)
736 endif # P_SHAREDLIB
738 $(STATIC_LIB_FILE): $(OBJS)
739 @if [ ! -d $(LIBDIR) ] ; then mkdir $(LIBDIR) ; fi
740 $(ARCHIVE) $(STATIC_LIB_FILE) $(OBJS)
741 ifeq ($(P_USE_RANLIB),1)
742 $(RANLIB) $(STATIC_LIB_FILE)
743 endif
745 ####################################################
747 notrace::
748 $(MAKE) NOTRACE=1 opt
750 # Build rules for the Speex codec
752 $(OPAL_OBJDIR)/%.o : $(SPEEX_SRCDIR)/%.c
753 @if [ ! -d $(OPAL_OBJDIR) ] ; then mkdir -p $(OPAL_OBJDIR) ; fi
754 $(CC) $(STDCCFLAGS) -I$(SPEEX_INCDIR) $(OPTCCFLAGS) $(CFLAGS) -c $< -o $@
756 $(DEPDIR)/%.dep : $(SPEEX_SRCDIR)/%.c
757 @if [ ! -d $(DEPDIR) ] ; then mkdir -p $(DEPDIR) ; fi
758 @printf %s $(OPAL_OBJDIR)/ > $@
759 $(CC) -I$(SPEEX_INCDIR) $(CFLAGS) -M $< >> $@
761 ###############################################################################
762 #### Subdirectories
763 $(subst tagbuild,,$(STANDARD_TARGETS)) ::
764 @set -e; $(foreach dir,$(SUBDIRS),if test -e $(dir) ; then $(MAKE) -C $(dir) $@; fi ;)
767 $(STANDARD_TARGETS) :: Makefile
769 Makefile: Makefile.in configure
770 @echo
771 @echo "*******************************************************"
772 @echo Makefile is not up to date, is a ./configure necessary?
773 @echo "*******************************************************"
774 @false
776 test:
777 @echo $(ASN_CXX_FILES)
779 #### Install targets
780 install:
781 mkdir -p $(DESTDIR)@LIBDIR@
782 ( for dir in $(DESTDIR)@LIBDIR@ \
783 $(DESTDIR)$(PREFIX)/include/opal/asn \
784 $(DESTDIR)$(PREFIX)/include/opal/codec \
785 $(DESTDIR)$(PREFIX)/include/opal/h323 \
786 $(DESTDIR)$(PREFIX)/include/opal/iax2 \
787 $(DESTDIR)$(PREFIX)/include/opal/lids \
788 $(DESTDIR)$(PREFIX)/include/opal/opal \
789 $(DESTDIR)$(PREFIX)/include/opal/rtp \
790 $(DESTDIR)$(PREFIX)/include/opal/sip \
791 $(DESTDIR)$(PREFIX)/include/opal/t120 \
792 $(DESTDIR)$(PREFIX)/include/opal/t38 \
793 $(DESTDIR)$(PREFIX)/lib/pkgconfig \
794 $(DESTDIR)$(PREFIX)/share/opal ;\
795 do mkdir -p $$dir ; chmod 755 $$dir ; \
796 done)
797 $(INSTALL) -m 755 lib/$(LIBNAME_PAT) $(DESTDIR)@LIBDIR@
798 $(INSTALL) -m 444 opal.pc $(DESTDIR)$(PREFIX)/lib/pkgconfig
799 ln -snf $(LIBNAME_PAT) \
800 $(DESTDIR)@LIBDIR@/$(OPAL_FILE).$(MAJOR_VERSION).$(MINOR_VERSION)
801 ln -snf $(LIBNAME_PAT) \
802 $(DESTDIR)@LIBDIR@/$(OPAL_FILE).$(MAJOR_VERSION)
803 ln -snf $(LIBNAME_PAT) \
804 $(DESTDIR)@LIBDIR@/$(OPAL_FILE)
805 ln -snf $(LIBNAME_PAT) \
806 $(DESTDIR)@LIBDIR@/libopal.so
807 ( for fn in include/asn/*.h ; do \
808 $(INSTALL) -m 644 $$fn $(DESTDIR)$(PREFIX)/include/opal/asn ; \
809 done)
810 ( for fn in include/codec/*.h ; do \
811 $(INSTALL) -m 644 $$fn $(DESTDIR)$(PREFIX)/include/opal/codec ; \
812 done)
813 ( for fn in include/h323/*.h ; do \
814 $(INSTALL) -m 644 $$fn $(DESTDIR)$(PREFIX)/include/opal/h323 ; \
815 done)
816 ( for fn in include/iax2/*.h ; do \
817 $(INSTALL) -m 644 $$fn $(DESTDIR)$(PREFIX)/include/opal/iax2 ; \
818 done)
819 ( for fn in include/lids/*.h ; do \
820 $(INSTALL) -m 644 $$fn $(DESTDIR)$(PREFIX)/include/opal/lids ; \
821 done)
822 ( for fn in include/opal/*.h ; do \
823 $(INSTALL) -m 644 $$fn $(DESTDIR)$(PREFIX)/include/opal/opal ; \
824 done)
825 ( for fn in include/rtp/*.h ; do \
826 $(INSTALL) -m 644 $$fn $(DESTDIR)$(PREFIX)/include/opal/rtp ; \
827 done)
828 ( for fn in include/sip/*.h ; do \
829 $(INSTALL) -m 644 $$fn $(DESTDIR)$(PREFIX)/include/opal/sip ; \
830 done)
831 ( for fn in include/t120/*.h ; do \
832 $(INSTALL) -m 644 $$fn $(DESTDIR)$(PREFIX)/include/opal/t120 ; \
833 done)
834 ( for fn in include/t38/*.h ; do \
835 $(INSTALL) -m 644 $$fn $(DESTDIR)$(PREFIX)/include/opal/t38 ; \
836 done)
837 $(INSTALL) -m 644 opal_inc.mak $(DESTDIR)$(PREFIX)/share/opal
838 $(MAKE) -C plugins install
840 uninstall:
841 rm -rf $(DESTDIR)$(PREFIX)/include/opal \
842 $(DESTDIR)$(PREFIX)/share/opal
843 rm -f $(DESTDIR)@LIBDIR@/$(OPAL_FILE) \
844 $(DESTDIR)@LIBDIR@/libopal.so \
845 $(DESTDIR)@LIBDIR@/$(OPAL_FILE).$(MAJOR_VERSION).$(MINOR_VERSION) \
846 $(DESTDIR)@LIBDIR@/$(OPAL_FILE).$(MAJOR_VERSION) \
847 $(DESTDIR)@LIBDIR@/$(LIBNAME_PAT) \
848 $(DESTDIR)$(PREFIX)/lib/pkgconfig/opal.pc
849 $(MAKE) -C plugins uninstall
851 docs: FORCE
852 doxygen opal_cfg.dxy
854 FORCE:
857 # End of file #################################################################