Added functions to get average audio signal level from audio streams in
[opal.git] / Makefile.in
blob9c540c40a9a398c1dbc2f4cb0445f565f902b660
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.38 2006/08/15 19:41:38 dsandras
26 # Only build plugins when building the library.
28 # Revision 1.37 2006/08/09 23:14:00 dereksmithies
29 # Add fix for compiling new iax processing files.
30 # Big thanks to Stephen Cook, (sitiveni@gmail.com) for this work.
31 # Thanks also for the Google Summer of Code.
33 # Revision 1.36 2006/08/08 09:16:47 rjongbloed
34 # Fixed building of audio plugins on linux
36 # Revision 1.35 2006/08/03 12:43:52 csoutheren
37 # Fixed compilation on Linux
39 # Revision 1.34 2006/07/24 14:03:38 csoutheren
40 # Merged in audio and video plugins from CVS branch PluginBranch
42 # Revision 1.33 2006/06/08 07:03:16 csoutheren
43 # Changed to force docs to build even when docs directory exists
45 # Revision 1.32 2006/05/30 12:04:08 hfriederich
46 # Enabling to build H.460
48 # Revision 1.31 2006/04/22 14:05:47 dsandras
49 # When building a shared library x that references symbols in libraries y,
50 # the y libraries need to be added to the linker command always. Thanks to
51 # Vitaly Lipatov. (Fixes Ekiga report #338310).
53 # Revision 1.30 2006/04/20 16:56:41 hfriederich
54 # Changes to allow compilation of H.224/H.281 code as well as to disable H.224 entirely
56 # Revision 1.29 2006/04/17 00:06:26 csoutheren
57 # Allow ILBC codec to be disabled and detect if not present
59 # Revision 1.28.2.1 2006/05/16 07:03:09 csoutheren
60 # Fixed Linux compile system
62 # Revision 1.28 2006/02/01 22:42:55 dominance
63 # ensure we have the full disctinct SONAME instead of just the major number version.
65 # Revision 1.27 2006/01/30 02:23:15 csoutheren
66 # First cut at fixing problem with speex libraries
68 # Revision 1.26 2006/01/20 00:00:59 csoutheren
69 # Added protected against some source directories not being present
70 # even wen configuration says they should be
72 # Revision 1.25 2006/01/19 22:40:33 dereksmithies
73 # Add iax2 to the list of instal directories. Thanks to Damien Sandras
74 # for reporting the bug in iax2 compilation.
76 # Revision 1.24 2006/01/18 11:26:29 dsandras
77 # Reverted previous change.
79 # Revision 1.22 2006/01/14 10:43:06 dsandras
80 # Applied patch from Brian Lu <Brian.Lu _AT_____ sun.com> to allow compilation
81 # with OpenSolaris compiler. Many thanks !!!
83 # Revision 1.21 2006/01/07 17:37:50 dsandras
84 # Updated to speex 1.1.11.2 to fix divergeance issues.
86 # Revision 1.20 2006/01/01 19:19:32 dsandras
87 # Added RFC2190 H.263 codec thanks to Salyens. Many thanks!
89 # Revision 1.19 2005/12/06 06:34:10 csoutheren
90 # Added configure support for Sangoma and empty LID source and header files
92 # Revision 1.18 2005/11/24 20:31:54 dsandras
93 # Added support for echo cancelation using Speex.
94 # Added possibility to add a filter to an OpalMediaPatch for all patches of a connection.
96 # Revision 1.17 2005/11/23 22:01:37 dsandras
97 # Reverted previous change. echocancel.cxx is not ready to go in yet.
99 # Revision 1.16 2005/11/23 21:58:33 dsandras
100 # Fixed Makefile.in.
102 # Revision 1.15 2005/11/20 21:03:50 dsandras
103 # Upgraded to Speex 1.1.10.
105 # Revision 1.14 2005/09/13 20:48:22 dominance
106 # minor cleanups needed to support mingw compilation. Thanks goes to Julien Puydt.
108 # Revision 1.13 2005/08/10 11:07:14 csoutheren
109 # Fixed bug #1255554
110 # Fixed dynamic linking on MacOSX
111 # Thanks to Hannes Friederich
113 # Revision 1.12 2005/07/30 07:39:26 csoutheren
114 # Added support for compiling new IAX2 code
116 # Revision 1.11 2005/04/26 10:58:37 dsandras
117 # Committed workaround for "make install".
119 # Revision 1.10 2005/04/25 10:14:14 dsandras
120 # Move LIBDIR down due to conflicting names.
122 # Revision 1.9 2005/04/25 09:31:35 dsandras
123 # Fixed make.
125 # Revision 1.8 2005/04/25 09:07:58 dsandras
126 # Fixed install/uninstall.
128 # Revision 1.7 2005/04/21 01:05:55 csoutheren
129 # New fix from Peter Robinson
131 # Revision 1.6 2005/04/20 05:46:32 csoutheren
132 # Patch 1146010. Fix problem with install targets
133 # Thanks to Peter Robinson
135 # Revision 1.5 2005/04/11 10:41:05 dsandras
136 # Added patch from Georgi Georgiev to fix compilation issues on Athlon64.
138 # Revision 1.4 2005/02/27 22:03:39 dereksmithies
139 # Add target to generate docs with doxygen.
141 # Revision 1.3 2005/01/31 07:40:41 csoutheren
142 # Fix for MacOSX thanks to Hannes Friederich
144 # Revision 1.2 2004/12/05 18:14:20 dsandras
145 # Cleanups.
147 # Revision 1.1 2004/12/04 18:37:58 dsandras
148 # Ported the "make install" / "make uninstall" system from OpenH323 to OPAL.
150 # Revision 2.29 2004/06/04 05:29:28 csoutheren
151 # Updated for ASN file changes and added silencedetect.cxx
153 # Revision 2.28 2004/04/25 02:53:28 rjongbloed
154 # Fixed GNU 3.4 warnings
156 # Revision 2.27 2004/03/11 06:54:25 csoutheren
157 # Added ability to disable SIP or H.323 stacks
159 # Revision 2.26 2004/02/23 01:28:49 rjongbloed
160 # Fixed unix build for recent upgrade to OpenH323 latest code.
162 # Revision 2.25 2004/02/16 09:15:19 csoutheren
163 # Fixed problems with codecs on Unix systems
165 # Revision 2.24 2003/04/08 11:46:35 robertj
166 # Better portability for tr command when doing ASN parse.
168 # Revision 2.23 2003/04/08 06:09:19 robertj
169 # Fixed ASN compilation so do not need -I on compile line for asn includes.
171 # Revision 2.22 2003/04/02 06:52:04 robertj
172 # Added dependencies for H450 ASN files
174 # Revision 2.21 2003/03/26 02:49:00 robertj
175 # Added service/daemon sample application.
177 # Revision 2.20 2003/03/19 04:45:29 robertj
178 # Added opalvxml to build
180 # Revision 2.19 2003/03/18 23:09:37 robertj
181 # Fixed LD_LIBRARY_PATH issue with Solaris
183 # Revision 2.18 2003/03/17 23:08:41 robertj
184 # Added IVR endpoint
186 # Revision 2.17 2003/03/17 22:36:38 robertj
187 # Added video support.
189 # Revision 2.16 2003/01/15 00:08:18 robertj
190 # Updated to OpenH323 v1.10.3
192 # Revision 2.15 2002/11/12 12:06:34 robertj
193 # Fixed Solaris compatibility
195 # Revision 2.14 2002/11/11 07:43:32 robertj
196 # Added speex codec files
198 # Revision 2.13 2002/09/11 05:56:16 robertj
199 # Fixed double inclusion of common.mak
200 # Added opalwavfile.cxx module
202 # Revision 2.12 2002/03/15 10:51:53 robertj
203 # Fixed problem with recursive inclusion on make files.
205 # Revision 2.11 2002/03/05 06:27:34 robertj
206 # Added ASN parser build and version check code.
208 # Revision 2.10 2002/02/22 04:16:25 robertj
209 # Added G.726 codec and fixed the lpc10 and GSM codecs.
211 # Revision 2.9 2002/02/11 09:38:28 robertj
212 # Moved version to root directory
214 # Revision 2.8 2002/02/06 11:52:53 rogerh
215 # Move -I$(ASN_INCDIR) so Opal's ldap.h is found instead of the OS's ldap.h
217 # Revision 2.7 2002/02/01 10:29:35 rogerh
218 # Use the right version.h file. (the other one had comments which confused
219 # pwlib's lib.mak)
221 # Revision 2.6 2002/02/01 04:58:23 craigs
222 # Added sip directory to VPATH
224 # Revision 2.5 2002/02/01 04:53:01 robertj
225 # Added (very primitive!) SIP support.
227 # Revision 2.4 2002/02/01 00:19:20 robertj
228 # Updated to latest pwlilb.
229 # Added rfc2833 module
231 # Revision 2.3 2001/08/17 05:24:22 robertj
232 # Updates from OpenH323 v1.6.0 release.
234 # Revision 2.2 2001/08/01 06:22:55 robertj
235 # Major changes to H.323 capabilities, uses OpalMediaFormat for base name.
236 # Added G.711 transcoder.
238 # Revision 2.1 2001/07/30 03:41:20 robertj
239 # Added build of subdirectories for samples.
240 # Hid the asnparser.version file.
241 # Changed default OPALDIR variable to be current directory.
243 # Revision 2.0 2001/07/27 15:48:24 robertj
244 # Conversion of OpenH323 to Open Phone Abstraction Library (OPAL)
247 export OPALDIR=@OPALDIR@
249 INSTALL=@INSTALL@
251 default :: optshared
253 all :: bothdepend both
255 SUBDIRS := plugins
257 LIBRARY_MAKEFILE:=1
259 include $(OPALDIR)/opal_inc.mak
261 PREFIX=@INSTALLPREFIX@/
262 exec_prefix = ${PREFIX}
264 ifndef PREFIX
265 PREFIX=/usr/local
266 endif
268 ifeq ($(USE_GCC),yes)
269 ANSI_FLAG = -ansi
270 endif
272 OPAL_OBJDIR = $(OPAL_LIBDIR)/$(PT_OBJBASE)
273 ifdef NOTRACE
274 OPAL_OBJDIR += n
275 endif
277 OBJDIR = $(OPAL_OBJDIR)
278 LIBDIR = $(OPAL_LIBDIR)
279 TARGET = $(OPAL_LIBDIR)/$(OPAL_FILE)
281 STDCCFLAGS += @STDCCFLAGS@
283 ifdef NOTRACE
284 STDCCFLAGS += -DPASN_NOPRINTON
285 else
286 STDCCFLAGS += -DPTRACING
287 endif
289 VPATH_CXX := $(OPAL_SRCDIR)/opal \
290 $(OPAL_SRCDIR)/rtp \
291 $(OPAL_SRCDIR)/lids \
292 $(OPAL_SRCDIR)/codec
294 ifneq (,$(wildcard src/iax2))
295 IAX2_AVAIL = 1
296 VPATH_CXX += $(OPAL_SRCDIR)/iax2
297 endif
299 ifneq (,$(wildcard src/sip))
300 SIP_AVAIL = 1
301 VPATH_CXX += $(OPAL_SRCDIR)/sip
302 endif
304 ifneq (,$(wildcard src/h323))
305 H323_AVAIL = 1
306 VPATH_CXX += $(OPAL_SRCDIR)/h323 \
307 $(OPAL_SRCDIR)/t120 \
308 $(OPAL_SRCDIR)/t38 \
309 $(OPAL_SRCDIR)/asn
310 endif
312 ifneq (,$(wildcard src/h224))
313 H224_AVAIL = 1
314 VPATH_CXX += $(OPAL_SRCDIR)/h224
316 endif
318 VPATH_C := $(OPAL_SRCDIR)/codec
320 ########################################
321 # Source files for library
323 SOURCES := $(OPAL_SRCDIR)/opal/manager.cxx \
324 $(OPAL_SRCDIR)/opal/endpoint.cxx \
325 $(OPAL_SRCDIR)/opal/connection.cxx \
326 $(OPAL_SRCDIR)/opal/call.cxx \
327 $(OPAL_SRCDIR)/opal/mediafmt.cxx \
328 $(OPAL_SRCDIR)/opal/mediastrm.cxx \
329 $(OPAL_SRCDIR)/opal/patch.cxx \
330 $(OPAL_SRCDIR)/opal/transcoders.cxx \
331 $(OPAL_SRCDIR)/opal/transports.cxx \
332 $(OPAL_SRCDIR)/opal/guid.cxx \
333 $(OPAL_SRCDIR)/opal/opalglobalstatics.cxx \
334 $(OPAL_SRCDIR)/opal/pcss.cxx \
335 $(OPAL_SRCDIR)/opal/ivr.cxx \
336 $(OPAL_SRCDIR)/opal/opalvxml.cxx \
337 $(OPAL_SRCDIR)/rtp/rtp.cxx \
338 $(OPAL_SRCDIR)/rtp/jitter.cxx \
340 ########################################
342 # H.323 files
344 ifeq ($(OPAL_H323),1)
345 ifdef H323_AVAIL
347 ASN_SRCDIR := $(OPAL_SRCDIR)/asn
348 ASN_INCDIR := $(OPAL_INCDIR)/asn
350 H450_ASN_FILES := h4501 h4502 h4503 h4504 h4505 h4506 h4507 h4508 h4509 h45010 h45011
351 SIMPLE_ASN_FILES := x880 $(H450_ASN_FILES) mcs gcc t38
353 ASN_H_FILES := $(addprefix $(ASN_INCDIR)/,$(addsuffix .h, $(SIMPLE_ASN_FILES)))
354 ASN_CXX_FILES := $(addprefix $(ASN_SRCDIR)/,$(addsuffix .cxx,$(SIMPLE_ASN_FILES)))
356 ASN_H_FILES += $(ASN_INCDIR)/h225.h
357 ASN_CXX_FILES += $(ASN_SRCDIR)/h225_1.cxx $(ASN_SRCDIR)/h225_2.cxx
359 ASN_H_FILES += $(ASN_INCDIR)/h235.h $(ASN_SRCDIR)/h235_t.cxx
360 ASN_CXX_FILES += $(ASN_SRCDIR)/h235.cxx
362 ASN_H_FILES += $(ASN_INCDIR)/h245.h
363 ASN_CXX_FILES += $(ASN_SRCDIR)/h245_1.cxx $(ASN_SRCDIR)/h245_2.cxx $(ASN_SRCDIR)/h245_3.cxx
365 ASN_H_FILES += $(ASN_INCDIR)/h248.h
366 ASN_CXX_FILES += $(ASN_SRCDIR)/h248.cxx
368 ASN_H_FILES += $(ASN_INCDIR)/h501.h
369 ASN_CXX_FILES += $(ASN_SRCDIR)/h501.cxx
371 .PRECIOUS: $(ASN_CXX_FILES) $(ASN_H_FILES)
374 SOURCES += $(ASN_CXX_FILES) \
375 $(OPAL_SRCDIR)/h323/h323ep.cxx \
376 $(OPAL_SRCDIR)/h323/h323.cxx \
377 $(OPAL_SRCDIR)/h323/h323caps.cxx \
378 $(OPAL_SRCDIR)/h323/h323neg.cxx \
379 $(OPAL_SRCDIR)/h323/h323pdu.cxx \
380 $(OPAL_SRCDIR)/h323/h323rtp.cxx \
381 $(OPAL_SRCDIR)/h323/channels.cxx \
382 $(OPAL_SRCDIR)/h323/svcctrl.cxx \
383 $(OPAL_SRCDIR)/h323/h450pdu.cxx \
384 $(OPAL_SRCDIR)/h323/q931.cxx \
385 $(OPAL_SRCDIR)/h323/transaddr.cxx \
386 $(OPAL_SRCDIR)/h323/gkclient.cxx \
387 $(OPAL_SRCDIR)/h323/gkserver.cxx \
388 $(OPAL_SRCDIR)/h323/h225ras.cxx \
389 $(OPAL_SRCDIR)/h323/h323trans.cxx \
390 $(OPAL_SRCDIR)/h323/h235auth.cxx \
391 $(OPAL_SRCDIR)/h323/h501pdu.cxx \
392 $(OPAL_SRCDIR)/h323/h323annexg.cxx \
393 $(OPAL_SRCDIR)/h323/peclient.cxx \
395 ifdef H323_H460
396 SOURCES += $(OPAL_SRCDIR)/h323/h4601.cxx
397 endif
399 ifdef HAS_OPENSSL
400 SOURCES += $(OPAL_SRCDIR)/h235auth1.cxx
401 endif
403 SOURCES += $(OPAL_SRCDIR)/t120/t120proto.cxx \
404 $(OPAL_SRCDIR)/t120/h323t120.cxx \
405 $(OPAL_SRCDIR)/t120/x224.cxx \
406 $(OPAL_SRCDIR)/t38/t38proto.cxx \
407 $(OPAL_SRCDIR)/t38/h323t38.cxx
409 ifeq ($(OPAL_H224), 1)
410 ifdef H224_AVAIL
411 SOURCES += $(OPAL_SRCDIR)/h224/h323h224.cxx
412 endif
413 endif
415 endif
416 endif
418 ##################
419 # IAX2 files
421 ifeq ($(OPAL_IAX2),1)
422 ifdef IAX2_AVAIL
424 SOURCES += \
425 $(OPAL_SRCDIR)/iax2/callprocessor.cxx\
426 $(OPAL_SRCDIR)/iax2/frame.cxx \
427 $(OPAL_SRCDIR)/iax2/iax2con.cxx \
428 $(OPAL_SRCDIR)/iax2/iax2ep.cxx \
429 $(OPAL_SRCDIR)/iax2/iax2medstrm.cxx \
430 $(OPAL_SRCDIR)/iax2/iedata.cxx \
431 $(OPAL_SRCDIR)/iax2/ies.cxx \
432 $(OPAL_SRCDIR)/iax2/processor.cxx \
433 $(OPAL_SRCDIR)/iax2/receiver.cxx \
434 $(OPAL_SRCDIR)/iax2/regprocessor.cxx\
435 $(OPAL_SRCDIR)/iax2/remote.cxx \
436 $(OPAL_SRCDIR)/iax2/safestrings.cxx \
437 $(OPAL_SRCDIR)/iax2/sound.cxx \
438 $(OPAL_SRCDIR)/iax2/transmit.cxx
439 endif
440 endif
442 ################################################################################
443 # SIP files
445 ifeq ($(OPAL_SIP),1)
446 ifdef SIP_AVAIL
448 SOURCES += $(OPAL_SRCDIR)/sip/sipep.cxx \
449 $(OPAL_SRCDIR)/sip/sipcon.cxx \
450 $(OPAL_SRCDIR)/sip/sippdu.cxx \
451 $(OPAL_SRCDIR)/sip/sdp.cxx \
453 endif
454 endif
456 ##################
457 # H.224 files
459 ifeq ($(OPAL_H224), 1)
460 ifdef H224_AVAIL
462 SOURCES += $(OPAL_SRCDIR)/h224/q922.cxx \
463 $(OPAL_SRCDIR)/h224/h224.cxx \
464 $(OPAL_SRCDIR)/h224/h281.cxx
465 endif
466 endif
468 ##################
469 # LIDS
471 SOURCES += $(OPAL_SRCDIR)/lids/lid.cxx \
472 $(OPAL_SRCDIR)/lids/lidep.cxx \
474 ifdef HAS_IXJ
475 SOURCES += $(OPAL_SRCDIR)/lids/ixjunix.cxx
476 endif
478 ifdef HAS_VPB
479 SOURCES += $(OPAL_SRCDIR)/lids/vpblid.cxx
480 endif
482 ifdef HAS_SANGOMA
483 SOURCES += $(OPAL_SRCDIR)/lids/sangomalid.cxx
484 endif
487 ##################
488 # Software codecs
490 SOURCES += $(OPAL_SRCDIR)/codec/g711codec.cxx \
491 $(OPAL_SRCDIR)/codec/g711.c \
492 $(OPAL_SRCDIR)/codec/rfc2833.cxx \
493 $(OPAL_SRCDIR)/codec/vidcodec.cxx \
494 $(OPAL_SRCDIR)/codec/opalwavfile.cxx \
495 $(OPAL_SRCDIR)/codec/silencedetect.cxx \
496 $(OPAL_SRCDIR)/codec/echocancel.cxx \
497 $(OPAL_SRCDIR)/codec/opalpluginmgr.cxx
499 SPEEX_DIR = $(OPAL_SRCDIR)/codec/speex
501 #HEADER_FILES += $(OPAL_INCDIR)/speexcodec.h
503 #SOURCES += $(OPAL_SRCDIR)/codec/speexcodec.cxx
505 ifdef OPAL_SYSTEM_SPEEX
507 ENDLDLIBS := -lspeex $(ENDLDLIBS)
509 else
511 SPEEX_INCDIR = $(SPEEX_DIR)/libspeex
512 SPEEX_SRCDIR = $(SPEEX_DIR)/libspeex
514 VPATH_C += $(SPEEX_SRCDIR)
515 VPATH_CXX += $(SPEEX_SRCDIR)
517 HEADER_FILES += $(SPEEX_INCDIR)/speex.h \
518 $(SPEEX_INCDIR)/speex_bits.h \
519 $(SPEEX_INCDIR)/speex_header.h \
520 $(SPEEX_INCDIR)/speex_callbacks.h \
521 $(SPEEX_INCDIR)/speex_config_types.h \
522 $(SPEEX_INCDIR)/speex_preprocess.h \
523 $(SPEEX_INCDIR)/speex_stereo.h \
524 $(SPEEX_INCDIR)/speex_types.h \
525 $(SPEEX_INCDIR)/speex_jitter.h \
526 $(SPEEX_INCDIR)/speex_echo.h
528 SOURCES += $(SPEEX_SRCDIR)/speex_preprocess.c \
529 $(SPEEX_SRCDIR)/smallft.c \
530 $(SPEEX_SRCDIR)/misc.c \
531 $(SPEEX_SRCDIR)/mdf.c \
532 $(SPEEX_SRCDIR)/math_approx.c \
533 $(SPEEX_SRCDIR)/kiss_fftr.c \
534 $(SPEEX_SRCDIR)/kiss_fft.c \
535 $(SPEEX_SRCDIR)/fftwrap.c \
537 endif # OPAL_SYSTEM_SPEEX
540 # Files to be cleaned during make clean
543 CLEAN_FILES = $(OPAL_LIB)
546 ####################################################
548 include @PWLIBDIR@/make/common.mak
550 ####################################################
551 # replace lib.mak
553 ifneq ($(OSTYPE),Darwin)
554 LIBNAME_MAJ = $(OPAL_FILE).$(MAJOR_VERSION)
555 LIBNAME_MIN = $(LIBNAME_MAJ).$(MINOR_VERSION)
556 ifeq ($(BUILD_TYPE),.)
557 LIBNAME_PAT = $(LIBNAME_MIN).$(BUILD_NUMBER)
558 else
559 LIBNAME_PAT = $(LIBNAME_MIN)-$(BUILD_TYPE)$(BUILD_NUMBER)
560 endif
561 else
562 LIBNAME_MAJ = $(subst .$(LIB_SUFFIX),.$(MAJOR_VERSION).$(LIB_SUFFIX),$(OPAL_FILE))
563 LIBNAME_MIN = $(subst .$(LIB_SUFFIX),.$(MAJOR_VERSION).$(MINOR_VERSION).$(LIB_SUFFIX),$(OPAL_FILE))
564 ifeq ($(BUILD_TYPE),.)
565 LIBNAME_PAT = $(subst .$(LIB_SUFFIX),.$(MAJOR_VERSION).$(MINOR_VERSION).$(BUILD_NUMBER).$(LIB_SUFFIX),$(OPAL_FILE))
566 else
567 LIBNAME_PAT = $(subst .$(LIB_SUFFIX),.$(MAJOR_VERSION).$(MINOR_VERSION)-$(BUILD_TYPE)$(BUILD_NUMBER).$(LIB_SUFFIX),$(OPAL_FILE))
568 endif
569 endif
571 LIB_SONAME = $(LIBNAME_MIN)
573 CLEAN_FILES += $(LIBDIR)/$(LIBNAME_PAT) $(LIBDIR)/$(OPAL_FILE) $(LIBDIR)/$(LIBNAME_MAJ) $(LIBDIR)/$(LIBNAME_MIN)
575 ifneq ($(P_SHAREDLIB),1)
576 STATIC_LIB_FILE = $(LIBDIR)/$(OPAL_FILE)
577 else
578 STATIC_LIB_FILE = $(LIBDIR)/$(subst .$(LIB_SUFFIX),_s.$(STATICLIBEXT),$(OPAL_FILE))
579 endif
581 $(LIBDIR)/$(OPAL_FILE) : $(TARGETLIB)
583 ifeq ($(P_SHAREDLIB),1)
585 SYSLIBS += -L$(PW_LIBDIR) -l$(PTLIB_BASE)$(LIB_TYPE)
586 ifeq ($(OSTYPE),beos)
587 # BeOS requires different options when building shared libraries
588 LDSOOPTS = -nostdlib -nostart
589 EXTLIBS = -lstdc++.r4
590 else
591 ifeq ($(OSTYPE),Darwin)
592 LDSOOPTS = -dynamiclib
593 else
594 LDSOOPTS = -shared
595 endif
596 endif
598 ENDLDLIBS := $(SYSLIBS) $(ENDLDLIBS)
600 ifeq ($(OSTYPE),rtems)
601 EXTLIBS = -lstdc++
602 endif
604 ifneq ($(OSTYPE), QNX)
605 ifneq (,$(findstring $(OSTYPE),FreeBSD OpenBSDs))
606 ifdef P_PTHREADS
607 EXTLIBS += -pthread
608 endif
609 else
610 ifdef P_PTHREADS
611 EXTLIBS += -lpthread
612 endif
613 endif
614 endif
616 # Solaris loader doesn't grok -soname (sees it as -s -oname)
617 # We could use -Wl,-h,$(LIB_BASENAME).1 but then we find that the arglist
618 # to gcc is 2900+ bytes long and it will barf. I fix this by invoking ld
619 # directly and passing it the equivalent arguments...jpd@louisiana.edu
620 ifeq ($(OSTYPE),solaris)
621 LDSOOPTS = -Bdynamic -G -h $(LIB_SONAME)
622 LD = $(CPLUS)
623 else
624 ifeq ($(OSTYPE),mingw)
625 LDSOOPTS += -Wl,--kill-at
626 else
627 ifneq ($(OSTYPE),Darwin)
628 LDSOOPTS += -Wl,-soname,$(LIB_SONAME)
629 endif
630 endif
631 LD = $(CPLUS)
632 endif
634 $(LIBDIR)/$(OPAL_FILE): $(LIBDIR)/$(LIBNAME_PAT)
635 cd $(LIBDIR) ; rm -f $(OPAL_FILE) ; ln -sf $(LIBNAME_PAT) $(OPAL_FILE)
636 cd $(LIBDIR) ; rm -f $(LIBNAME_MAJ) ; ln -sf $(LIBNAME_PAT) $(LIBNAME_MAJ)
637 cd $(LIBDIR) ; rm -f $(LIBNAME_MIN) ; ln -sf $(LIBNAME_PAT) $(LIBNAME_MIN)
639 $(LIBDIR)/$(LIBNAME_PAT): $(STATIC_LIB_FILE)
640 @echo EXTLIBS = $(EXTLIBS)
641 @echo SYSLIBS = $(SYSLIBS)
642 @if [ ! -d $(LIBDIR) ] ; then mkdir $(LIBDIR) ; fi
643 $(LD) $(LDSOOPTS) -o $(LIBDIR)/$(LIBNAME_PAT) $(LDFLAGS) $(EXTLIBS) $(OBJS) $(ENDLDLIBS)
645 endif # P_SHAREDLIB
647 $(STATIC_LIB_FILE): $(OBJS)
648 @if [ ! -d $(LIBDIR) ] ; then mkdir $(LIBDIR) ; fi
649 $(ARCHIVE) $(STATIC_LIB_FILE) $(OBJS)
650 ifeq ($(P_USE_RANLIB),1)
651 $(RANLIB) $(STATIC_LIB_FILE)
652 endif
654 ####################################################
656 notrace::
657 $(MAKE) NOTRACE=1 opt
659 # Build rules for the Speex codec
661 $(OPAL_OBJDIR)/%.o : $(SPEEX_SRCDIR)/%.c
662 @if [ ! -d $(OPAL_OBJDIR) ] ; then mkdir -p $(OPAL_OBJDIR) ; fi
663 $(CC) $(STDCCFLAGS) -I$(SPEEX_INCDIR) $(OPTCCFLAGS) $(CFLAGS) -c $< -o $@
665 $(DEPDIR)/%.dep : $(SPEEX_SRCDIR)/%.c
666 @if [ ! -d $(DEPDIR) ] ; then mkdir -p $(DEPDIR) ; fi
667 @printf %s $(OPAL_OBJDIR)/ > $@
668 $(CC) -I$(SPEEX_INCDIR) $(CFLAGS) -M $< >> $@
670 ###############################################################################
671 #### Subdirectories
672 $(subst tagbuild,,$(STANDARD_TARGETS)) ::
673 @set -e; $(foreach dir,$(SUBDIRS),$(MAKE) -C $(dir) $@;)
676 test:
677 @echo $(ASN_CXX_FILES)
679 #### Install targets
680 install:
681 mkdir -p $(DESTDIR)@LIBDIR@
682 ( for dir in $(DESTDIR)@LIBDIR@ \
683 $(DESTDIR)$(PREFIX)/include/opal/asn \
684 $(DESTDIR)$(PREFIX)/include/opal/codec \
685 $(DESTDIR)$(PREFIX)/include/opal/h323 \
686 $(DESTDIR)$(PREFIX)/include/opal/iax2 \
687 $(DESTDIR)$(PREFIX)/include/opal/lids \
688 $(DESTDIR)$(PREFIX)/include/opal/opal \
689 $(DESTDIR)$(PREFIX)/include/opal/rtp \
690 $(DESTDIR)$(PREFIX)/include/opal/sip \
691 $(DESTDIR)$(PREFIX)/include/opal/t120 \
692 $(DESTDIR)$(PREFIX)/include/opal/t38 \
693 $(DESTDIR)$(PREFIX)/share/opal ;\
694 do mkdir -p $$dir ; chmod 755 $$dir ; \
695 done)
696 $(INSTALL) -m 755 lib/$(LIBNAME_PAT) $(DESTDIR)@LIBDIR@
697 ln -snf $(LIBNAME_PAT) \
698 $(DESTDIR)@LIBDIR@/$(OPAL_FILE).$(MAJOR_VERSION).$(MINOR_VERSION)
699 ln -snf $(LIBNAME_PAT) \
700 $(DESTDIR)@LIBDIR@/$(OPAL_FILE).$(MAJOR_VERSION)
701 ln -snf $(LIBNAME_PAT) \
702 $(DESTDIR)@LIBDIR@/$(OPAL_FILE)
703 ln -snf $(LIBNAME_PAT) \
704 $(DESTDIR)@LIBDIR@/libopal.so
705 ( for fn in include/asn/*.h ; do \
706 $(INSTALL) -m 644 $$fn $(DESTDIR)$(PREFIX)/include/opal/asn ; \
707 done)
708 ( for fn in include/codec/*.h ; do \
709 $(INSTALL) -m 644 $$fn $(DESTDIR)$(PREFIX)/include/opal/codec ; \
710 done)
711 ( for fn in include/h323/*.h ; do \
712 $(INSTALL) -m 644 $$fn $(DESTDIR)$(PREFIX)/include/opal/h323 ; \
713 done)
714 ( for fn in include/iax2/*.h ; do \
715 $(INSTALL) -m 644 $$fn $(DESTDIR)$(PREFIX)/include/opal/iax2 ; \
716 done)
717 ( for fn in include/lids/*.h ; do \
718 $(INSTALL) -m 644 $$fn $(DESTDIR)$(PREFIX)/include/opal/lids ; \
719 done)
720 ( for fn in include/opal/*.h ; do \
721 $(INSTALL) -m 644 $$fn $(DESTDIR)$(PREFIX)/include/opal/opal ; \
722 done)
723 ( for fn in include/rtp/*.h ; do \
724 $(INSTALL) -m 644 $$fn $(DESTDIR)$(PREFIX)/include/opal/rtp ; \
725 done)
726 ( for fn in include/sip/*.h ; do \
727 $(INSTALL) -m 644 $$fn $(DESTDIR)$(PREFIX)/include/opal/sip ; \
728 done)
729 ( for fn in include/t120/*.h ; do \
730 $(INSTALL) -m 644 $$fn $(DESTDIR)$(PREFIX)/include/opal/t120 ; \
731 done)
732 ( for fn in include/t38/*.h ; do \
733 $(INSTALL) -m 644 $$fn $(DESTDIR)$(PREFIX)/include/opal/t38 ; \
734 done)
735 $(INSTALL) -m 644 opal_inc.mak $(DESTDIR)$(PREFIX)/share/opal
736 $(MAKE) -C plugins install
738 uninstall:
739 rm -rf $(DESTDIR)$(PREFIX)/include/opal \
740 $(DESTDIR)$(PREFIX)/share/opal
741 rm -f $(DESTDIR)@LIBDIR@/$(OPAL_FILE) \
742 $(DESTDIR)@LIBDIR@/libopal.so \
743 $(DESTDIR)@LIBDIR@/$(OPAL_FILE).$(MAJOR_VERSION).$(MINOR_VERSION) \
744 $(DESTDIR)@LIBDIR@/$(OPAL_FILE).$(MAJOR_VERSION) \
745 $(DESTDIR)@LIBDIR@/$(LIBNAME_PAT)
746 $(MAKE) -C plugins uninstall
748 docs: FORCE
749 doxygen opal_cfg.dxy
751 FORCE:
754 # End of file #################################################################