Utilise new MergeSym feature to no longer overwrite the source .DEF file when buildin...
[openh323.git] / Makefile.in
blobd20484e9c6cb2b46c73158fae71ca6a08490de6d
2 # Makefile
4 # Make file for Open H323 library
6 # Copyright (c) 1998-2000 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 H323 library.
20 # The Initial Developer of the Original Code is Equivalence Pty. Ltd.
22 # Contributor(s): ______________________________________.
24 # $Log$
25 # Revision 1.20 2006/08/10 04:14:21 csoutheren
26 # Fixed problem with usage of SHAREDLIBEXT
28 # Revision 1.19 2005/08/04 19:31:59 csoutheren
29 # Applied patch #1243078
30 # Fixed links for library when using make install
31 # Thanks to Alain Nakache
33 # Revision 1.18 2004/11/27 18:42:15 rogerhardiman
34 # Use $(MAKE) and not 'make'. Needed for FreeBSD which uses gmake.
36 # Revision 1.17 2004/08/22 04:21:45 csoutheren
37 # Fixed make install to create all target directories
38 # Thanks to Klaus Kaempf
40 # Revision 1.16 2004/06/24 13:20:38 csoutheren
41 # Checked in possible fix for bug 970090
43 # Revision 1.15 2004/06/17 23:17:38 csoutheren
44 # Fixed permissions on install directories as suggested by Al Piszcz
46 # Revision 1.14 2004/05/17 06:08:47 csoutheren
47 # Changed "make docs" to use Doxygen
48 # Added new doc main page and config file
50 # Revision 1.13 2004/05/03 13:01:29 csoutheren
51 # Fixed still more problems in install targets
53 # Revision 1.12 2004/05/03 12:33:54 csoutheren
54 # Changed install target to work on multiple platforms
56 # Revision 1.11 2004/04/29 15:03:00 csoutheren
57 # Fixed INSTALL var
59 # Revision 1.10 2004/04/29 14:47:55 csoutheren
60 # Reconfigured plugin makefiles per suggestions from Damien Sandras
61 # Changed install targets to use $(INSTALL)
63 # Revision 1.9 2004/04/27 10:18:03 csoutheren
64 # Added plugins to standard builds
66 # Revision 1.8 2004/04/13 23:13:49 csoutheren
67 # Change default build to library only
68 # Added "apps" target for applications
70 # Revision 1.7 2004/02/26 12:08:55 csoutheren
71 # Fixed various problems thanks to Klaus Kaempf
73 # Revision 1.6 2004/02/01 12:24:11 dsandras
74 # Set default target to optshared.
76 # Revision 1.5 2003/09/01 09:38:29 dsandras
77 # Fixed install target thanks to Stefan BrĂ¼ns <lurchi@kawo1.rwth-aachen.de>.
79 # Revision 1.4 2003/08/27 09:39:49 dsandras
80 # Readded DESTDIR support (thanks to Stefan Bruns <lurch@gmx.li>)
82 # Revision 1.3 2003/07/28 19:30:29 dsandras
83 # Do not export the PREFIX as it can give problems to compile other openh323
84 # software..
86 # Revision 1.2 2003/07/28 18:55:49 dsandras
87 # Added --libdir support thanks to Alexander Larsson <alexl@redhat.com>.
89 # Revision 1.1 2003/05/22 12:25:38 dsandras
91 # Initial commit.
93 # Revision 1.62 2002/12/04 19:36:30 rogerh
94 # Remove un-needed / in PREFIX
96 # Revision 1.61 2002/11/13 23:52:23 robertj
97 # Added install and uninstall targets, thanks Damien Sandras
99 # Revision 1.60 2002/07/19 01:51:41 robertj
100 # Fixed up directory defaults for openh323 directory.
102 # Revision 1.59 2002/02/11 06:20:07 robertj
103 # Moved version.h to root directory so have one for the library and not just
104 # the sample application. SimpH323 uses the library version so they remain
105 # in sync.
107 # Revision 1.58 2001/11/11 23:07:52 robertj
108 # Some clean ups after T.38 commit, thanks Adam Lazur
110 # Revision 1.57 2001/11/09 05:39:54 craigs
111 # Added initial T.38 support thanks to Adam Lazur
113 # Revision 1.56 2001/09/14 08:57:39 robertj
114 # Added update target to do cvs update and rebuild all
116 # Revision 1.55 2001/05/17 00:01:06 robertj
117 # Fixed stupid mistake with included make file
119 # Revision 1.54 2001/05/16 07:43:33 robertj
120 # Fixed location of version file
122 # Revision 1.53 2001/05/16 07:42:38 robertj
123 # Changed Makefile to use common stuff, primarily so can go tagbuild
125 # Revision 1.52 2001/03/20 04:08:33 robertj
126 # Major improvement to multiple targets over subdirectories, thanks Jac Goudsmit
128 # Revision 1.51 2000/05/18 11:53:33 robertj
129 # Changes to support doc++ documentation generation.
131 # Revision 1.50 2000/05/11 02:27:52 robertj
132 # Removed "sample" directory and added "samples/simple" for demo app.
134 # Revision 1.49 2000/05/02 04:32:23 robertj
135 # Fixed copyright notice comment.
137 # Revision 1.48 2000/04/26 01:07:23 robertj
138 # Removed tarfile creation target, this is done differently now.
140 # Revision 1.47 2000/04/06 20:10:53 craigs
141 # Added install target
143 # Revision 1.46 2000/03/24 03:17:44 robertj
144 # Directory restructuring.
146 # Revision 1.45 2000/03/08 00:25:09 robertj
147 # Changed check for compile of openphone to be AND not OR.
149 # Revision 1.44 2000/03/03 18:04:01 craigs
150 # Fixed problem with openphone being built when no GUI code installed
152 # Revision 1.43 2000/03/03 12:20:40 robertj
153 # Fixed non fatal error in make rules and allowed for missing sample apps.
155 # Revision 1.42 2000/02/24 11:53:31 craigs
156 # Fixed problem with .o files not going into correct directory
158 # Revision 1.41 2000/02/24 11:17:01 craigs
159 # Fixed problem with making PW projects
161 # Revision 1.40 2000/02/16 12:38:31 craigs
162 # Fixed problem with noshared targets
164 # Revision 1.39 2000/02/04 04:59:31 craigs
165 # Changed for new library make system and makefile layout
167 # Revision 1.38 2000/02/02 04:09:12 craigs
168 # Changed to use subdirectories
170 # Revision 1.35 2000/01/13 04:03:45 robertj
171 # Added video transmission
173 # Revision 1.34 2000/01/04 00:22:28 craigs
174 # Changed directory list
176 # Revision 1.33 1999/12/29 01:27:01 craigs
177 # Added detection of new Linux kernel telephony code
179 # Revision 1.32 1999/12/24 00:27:39 robertj
180 # Added LID abstraction and split RTP classes from H323.
182 # Revision 1.31 1999/12/16 05:48:36 robertj
183 # Fixed problem with correct inclusion of ixj files under Linux.
185 # Revision 1.30 1999/11/19 14:01:41 craigs
186 # Added ixjuser.h to the tarfiles
188 # Revision 1.29 1999/11/19 13:13:40 craigs
189 # Changed to add CVS directories to the tarball
191 # Revision 1.28 1999/11/16 13:45:12 craigs
192 # Fixed dependencies to be SMP friendly
194 # Revision 1.27 1999/11/12 04:51:34 craigs
195 # Fixed problem with excluding IXJ device on Linux
197 # Revision 1.26 1999/11/07 03:43:38 craigs
198 # Added conditional for ixj files for linux only
200 # Revision 1.25 1999/11/02 01:22:26 robertj
201 # Added answering machine
203 # Revision 1.24 1999/10/24 14:43:20 robertj
204 # Added platform independent support for Quicknet xJACK cards.
206 # Revision 1.23 1999/10/11 07:35:03 craigs
207 # Added missing config.h to VIC sources macro
209 # Revision 1.22 1999/09/27 01:22:45 robertj
210 # Added H.261 video support via vic code.
212 # Revision 1.21 1999/09/21 08:33:58 craigs
213 # Added support for VIC video codecs
215 # Revision 1.20 1999/09/09 01:14:49 robertj
216 # Added support for video capabilities & codec, still needs the actual codec itself!
218 # Revision 1.19 1999/09/03 14:05:19 robertj
219 # Fixed creation of tarball
221 # Revision 1.18 1999/08/31 12:43:04 robertj
222 # Added gatekeeper supprt.
224 # Revision 1.17 1999/08/25 07:11:54 robertj
225 # Unix port
227 # Revision 1.16 1999/08/09 04:51:21 robertj
228 # Added subdirectories to build, including dump323
230 # Revision 1.15 1999/07/31 04:09:11 robertj
231 # Added ability to create binary with no tracing code in it.
233 # Revision 1.14 1999/07/26 09:18:28 craigs
234 # Added README.QUICKNET file to test app
236 # Revision 1.13 1999/07/26 07:22:10 craigs
237 # Added files for quicknet test apps
239 # Revision 1.12 1999/07/10 03:42:26 robertj
240 # Added automatic version inclusion in tar file.
242 # Revision 1.11 1999/06/28 09:48:57 robertj
243 # Fixed dependencies for GSM files
245 # Revision 1.10 1999/06/25 17:51:08 robertj
246 # Fixed tarball
248 # Revision 1.9 1999/06/25 17:20:18 robertj
249 # New directory structure.
251 # Revision 1.8 1999/06/22 14:40:19 robertj
252 # Added GSM code.
254 # Revision 1.7 1999/06/14 09:09:36 robertj
255 # Transmit channel and RTP implementation.
257 # Revision 1.6 1999/06/09 06:51:57 robertj
258 # Added tracing to optimised version.
260 # Revision 1.5 1999/06/09 06:18:00 robertj
261 # GCC compatibiltiy.
263 # Revision 1.4 1999/06/07 00:32:41 robertj
264 # Put packet dump code back in
266 # Revision 1.3 1999/06/06 06:06:36 robertj
267 # Changes for new ASN compiler and v2 protocol ASN files.
269 # Revision 1.2 1999/01/16 11:16:53 robertj
270 # Fixed library name
272 # Revision 1.1 1999/01/16 10:32:26 robertj
273 # Initial revision
276 PREFIX=@INSTALLPREFIX@
277 exec_prefix = $(PREFIX)
278 LIBDIR=@LIBDIR@
279 export OPENH323DIR=@OPENH323DIR@
281 INSTALL=@INSTALL@
283 default :: optshared
285 all :: bothdepend both
287 include $(OPENH323DIR)/openh323u.mak
290 # export NOAUDIOCODECS=true
291 # export NOVIDEO=true
293 SUBDIRS := samples/simple
295 ifneq (,$(wildcard dump323))
296 SUBDIRS += dump323
297 endif
299 ifneq (,$(wildcard openam))
300 SUBDIRS += openam
301 endif
303 ifneq (,$(wildcard pstngw))
304 SUBDIRS += pstngw
305 endif
307 ifneq (,$(wildcard openphone))
308 ifneq (,$(wildcard $(PWLIBDIR)/src/pwlib))
309 SUBDIRS += openphone
310 endif
311 endif
313 PREFIX=@INSTALLPREFIX@/
314 exec_prefix = ${PREFIX}
315 LIBDIR=@LIBDIR@
317 ifndef PREFIX
318 PREFIX=/usr/local
319 endif
321 update:
322 cvs update
323 $(MAKE) all
325 # standard build command
326 $(subst tagbuild,,$(STANDARD_TARGETS)) ::
327 $(MAKE) -C src $@
328 $(MAKE) -C plugins $@
330 # Pass through commands to the subdirectory for sample app
331 apps:
332 set -e; $(foreach dir,$(SUBDIRS),$(MAKE) -C $(dir) opt)
334 notrace::
335 $(MAKE) NOTRACE=1 opt
337 docs:
338 doxygen openh323_cfg.dxy
340 install:
341 mkdir -p $(DESTDIR)$(LIBDIR)
342 rm -f $(DESTDIR)$(LIBDIR)/libh323_*_r.so*
343 $(INSTALL) -m 444 lib/$(OH323_FILE).@MAJOR_VERSION@.@MINOR_VERSION@.@BUILD_NUMBER@ $(DESTDIR)$(LIBDIR)
344 (cd $(DESTDIR)$(LIBDIR) ; \
345 rm -f $(OH323_FILE).@MAJOR_VERSION@.@MINOR_VERSION@ ; \
346 ln -sf $(OH323_FILE).@MAJOR_VERSION@.@MINOR_VERSION@.@BUILD_NUMBER@ $(OH323_FILE).@MAJOR_VERSION@.@MINOR_VERSION@ \
348 (cd $(DESTDIR)$(LIBDIR) ; \
349 rm -f $(OH323_FILE).@MAJOR_VERSION@ ; \
350 ln -sf $(OH323_FILE).@MAJOR_VERSION@.@MINOR_VERSION@.@BUILD_NUMBER@ $(OH323_FILE).@MAJOR_VERSION@ \
352 (cd $(DESTDIR)$(LIBDIR) ; \
353 rm -f $(OH323_FILE) ; \
354 ln -sf $(OH323_FILE).@MAJOR_VERSION@.@MINOR_VERSION@.@BUILD_NUMBER@ $(OH323_FILE) \
356 (cd $(DESTDIR)$(LIBDIR); \
357 rm -f libopenh323.$(SHAREDLIBEXT) ; \
358 ln -sf $(OH323_FILE) libopenh323.$(SHAREDLIBEXT) \
360 ( for dir in $(DESTDIR)$(LIBDIR) \
361 $(DESTDIR)$(PREFIX)/include/openh323 \
362 $(DESTDIR)$(PREFIX)/share/openh323 ;\
363 do mkdir -p $$dir ; chmod 755 $$dir ; \
364 done)
365 ( for fn in include/*.h ; do \
366 $(INSTALL) -m 444 $$fn $(DESTDIR)$(PREFIX)/include/openh323 ; \
367 done)
368 $(INSTALL) -m 444 openh323u.mak $(DESTDIR)$(PREFIX)/share/openh323
369 (cd plugins; $(MAKE) install)
371 uninstall:
372 rm -rf $(DESTDIR)$(PREFIX)/include/openh323 \
373 $(PREFIX)/share/openh323
374 rm -f $(DESTDIR)$(LIBDIR)/$(OH323_FILE) \
375 $(DESTDIR)$(LIBDIR)/libopenh323.so
376 (cd plugins; $(MAKE) uninstall)