1/*
2 * Copyright 1994 Network Computing Devices, Inc.
3 *
4 * Permission to use, copy, modify, distribute, and sell this software and
5 * its documentation for any purpose is hereby granted without fee, provided
6 * that the above copyright notice appear in all copies and that both that
7 * copyright notice and this permission notice appear in supporting
8 * documentation, and that the name Network Computing Devices, Inc. not be
9 * used in advertising or publicity pertaining to distribution of this
10 * software without specific, written prior permission.
11 *
12 * THIS SOFTWARE IS PROVIDED 'AS-IS'.  NETWORK COMPUTING DEVICES, INC.,
13 * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING WITHOUT
14 * LIMITATION ALL IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
15 * PARTICULAR PURPOSE, OR NONINFRINGEMENT.  IN NO EVENT SHALL NETWORK
16 * COMPUTING DEVICES, INC., BE LIABLE FOR ANY DAMAGES WHATSOEVER, INCLUDING
17 * SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES, INCLUDING LOSS OF USE, DATA,
18 * OR PROFITS, EVEN IF ADVISED OF THE POSSIBILITY THEREOF, AND REGARDLESS OF
19 * WHETHER IN AN ACTION IN CONTRACT, TORT OR NEGLIGENCE, ARISING OUT OF OR IN
20 * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
21 *
22 * $Id: Imakefile 280 2011-01-25 18:33:54Z auerswald $
23 * $NCDId: @(#)Imakefile,v 1.21 1996/09/04 23:06:02 greg Exp $
24 */
25
26#include "../../config/NetAudio.tmpl"
27
28#include <Threads.tmpl>
29
30#if ProjectX < 5
31/* Pre-X11R5 compatability */
32#ifndef NormalLibX
33#define NormalLibX	YES
34#endif
35#endif /* ProjectX < 5 */
36
37#ifndef NormalLibAudio
38#define NormalLibAudio NormalLibX
39#endif
40#ifndef SharedLibAudio
41#define SharedLibAudio SharedLibX
42#endif
43#ifndef DebugLibAudio
44#define DebugLibAudio DebugLibX
45#endif
46#ifndef ProfileLibAudio
47#define ProfileLibAudio ProfileLibX
48#endif
49
50#define DoDebugLib DebugLibAudio
51#define DoProfileLib ProfileLibAudio
52
53
54/* must include <Library.tmpl> *after* the above 4 lines */
55#include <Library.tmpl>
56
57#if SystemV && !SystemV4 && !defined(XFree86Version) && !defined(AIXArchitecture)
58   SYSV_DEFINES = -DAU_NOT_STDC_ENV -D_AuNEEDBCOPYFUNC -DNEED_FAKE_XWIN
59#endif
60
61XCOMM JET - hmmm.
62#if (defined(FreeBSDArchitecture) || defined(NetBSDArchitecture) || defined(BSDArchitecture)) && defined(HasBSD44Sockets)
63 EXTRA_DEFINES = -DBSD44SOCKETS
64#endif
65
66XCOMM JET - see if we should avoid streams
67#if (SystemV || SystemV4)
68/* JET - streams are just too problematic.  UNIX/TCP CONN will do fine */
69#undef ConnectionFlags
70#define ConnectionFlags -DTCPCONN -DUNIXCONN
71#endif
72
73#if Malloc0ReturnsNull
74 MALLOC_DEFINES = -DMALLOC_0_RETURNS_NULL
75#endif
76
77#if ProjectX < 5
78    COMPAT_SRCS = AuGetBest.c
79    COMPAT_OBJS = AuGetBest.o
80#endif /* ProjectX < 5 */
81
82     EDB_DEFINES = -DERRORDB=\"$(LIBDIR)/AuErrorDB\"
83
84        DEFINES = $(MALLOC_DEFINES) $(SYSV_DEFINES)
85   CONN_DEFINES = ConnectionFlags
86
87HEADERS = Alibint.h Alibnet.h Xtutil.h audiolib.h audioutil.h snd.h wave.h    \
88          voc.h aiff.h sound.h soundlib.h fileutil.h 8svx.h Astreams.h \
89	  audio.h Afuncproto.h Afuncs.h Amd.h Amd.h Aos.h Aosdefs.h Aproto.h \
90	  mutex.h release.h
91
92   SRCS = AlibAsync.c Alibint.c AuErrDes.c AuFreeEData.c CloseSvr.c ConnSvr.c \
93          CrFlow.c DesFlow.c Flush.c HandleEv.c IDOfEvent.c KillClient.c      \
94          NextEvent.c OpenSvr.c ReqEvent.c ScanEvents.c ScanTEvent.c	      \
95          SetElState.c GetElState.c SetElement.c GetElement.c SvrName.c Sync.c \
96          ReadEl.c WriteEl.c Util.c SetElParms.c GetDevAttr.c	      \
97          SetDevAttr.c CrBucket.c DesBucket.c GetBucAttr.c ListBucket.c	      \
98          ListDevice.c GetSvrTime.c SetClsDwnMd.c GetClsDwnMd.c		      \
99	  convutil.c fileutil.c monitor.c bcache.c			      \
100	  globals.c Astreams.c ErrHndlr.c $(COMPAT_SRCS)		      \
101          snd.c wave.c voc.c aiff.c 8svx.c sound.c soundlib.c mutex.c
102
103   OBJS = AlibAsync.o Alibint.o AuErrDes.o AuFreeEData.o CloseSvr.o ConnSvr.o \
104          CrFlow.o DesFlow.o Flush.o HandleEv.o IDOfEvent.o KillClient.o      \
105          NextEvent.o OpenSvr.o ReqEvent.o ScanEvents.o ScanTEvent.o	      \
106          SetElState.o GetElState.o SetElement.o GetElement.o SvrName.o Sync.o \
107          Xtutil.o ReadEl.o WriteEl.o Util.o SetElParms.o GetDevAttr.o	      \
108          SetDevAttr.o CrBucket.o DesBucket.o GetBucAttr.o ListBucket.o	      \
109          ListDevice.o GetSvrTime.o SetClsDwnMd.o GetClsDwnMd.o		      \
110	  convutil.o fileutil.o monitor.o bcache.o			      \
111	  globals.o Astreams.o ErrHndlr.o $(COMPAT_OBJS)		      \
112          snd.o wave.o voc.o aiff.o 8svx.o sound.o soundlib.o mutex.o
113
114#if ProjectX >= 5
115LibraryObjectRule()
116
117SpecialLibObjectRule(ConnSvr.o,/**/,$(CONN_DEFINES))
118SpecialLibObjectRule(AuErrDes.o,/**/,$(CONN_DEFINES) $(EDB_DEFINES))
119SpecialLibObjectRule(OpenSvr.o,/**/,$(CONN_DEFINES))
120SpecialLibObjectRule(Alibint.o,/**/,$(CONN_DEFINES))
121SpecialLibObjectRule(Astreams.o,/**/,$(CONN_DEFINES))
122SpecialLibObjectRule(globals.o,/**/,$(CONN_DEFINES))
123#else
124/* Pre-X11R5 compatability */
125NormalLibraryObjectRule()
126
127all:: libaudio.a
128
129SpecialObjectRule(ConnSvr.o,/**/,$(CONN_DEFINES))
130SpecialObjectRule(AuErrDes.o,/**/,$(CONN_DEFINES) $(EDB_DEFINES))
131SpecialObjectRule(OpenSvr.o,/**/,$(CONN_DEFINES))
132SpecialObjectRule(Alibint.o,/**/,$(CONN_DEFINES))
133SpecialObjectRule(Astreams.o,/**/,$(CONN_DEFINES))
134SpecialObjectRule(globals.o,/**/,$(CONN_DEFINES))
135
136#endif
137BuildIncludes($(HEADERS),audio,..)
138InstallMultiple($(HEADERS),$(INCDIR))
139#if ProjectX >= 5
140InstallNonExecFile(AuErrorDB,$(LIBDIR))
141#else
142install::
143	$(MKDIRHIER) $(LIBDIR)
144InstallNonExec(AuErrorDB,$(LIBDIR))
145#endif
146
147#if defined(HPArchitecture) && !defined(LinuxArchitecture) && !defined(GNUArchitecture) && !defined(DarwinArchitecture)
148XAULIB =
149#else
150XAULIB = -lXau
151#endif
152
153REQUIREDLIBS = -L$(USRLIBDIR) -lXt $(XAULIB) -lm
154
155#if defined(cygwinArchitecture)
156REQUIREDLIBS = $(LDPRELIB) $(XAUTHLIB) $(XTOOLLIB) $(XONLYLIB)
157STD_INCLUDES = -I/usr/include
158#endif
159
160
161#if DoSharedLib
162#if DoNormalLib
163#if ProjectX >= 5
164SharedLibraryTarget(audio,$(SOAUDIOREV),$(OBJS),.,.)
165#else
166SharedLibraryTarget(audio,$(SOAUDIOREV),$(OBJS),shared,..)
167#endif
168#else
169# if ProjectX >= 5
170#ifdef WIN32
171REQUIREDLIBS = $(XAUTHLIB) $(XTOOLLIB) $(XONLYLIB)
172#endif /* WIN32 */
173SharedLibraryTarget(audio,$(SOAUDIOREV),$(OBJS),unshared,..)
174#else
175SharedLibraryTarget(audio,$(SOAUDIOREV),$(OBJS),.,.)
176#endif
177#endif
178#ifdef notyet
179SharedLibraryDataTarget(audio,$(SOAUDIOREV),$(UNSHAREDOBJS))
180#endif
181InstallSharedLibrary(audio,$(SOAUDIOREV),$(USRLIBDIR))
182#ifdef notyet
183InstallSharedLibraryData(audio,$(SOAUDIOREV),$(USRLIBDIR))
184#endif
185#endif
186
187#if DoNormalLib
188NormalLibraryTarget(audio,$(OBJS))
189InstallLibrary(audio,$(USRLIBDIR))
190#endif
191
192#if DoProfileLib
193ProfiledLibraryTarget(audio,$(OBJS))
194InstallLibrary(audio_p,$(USRLIBDIR))
195#endif
196
197#if DoDebugLib
198DebuggedLibraryTarget(audio,$(OBJS))
199InstallLibrary(audio_d,$(USRLIBDIR))
200#endif
201
202BuildReleaseHeader()
203
204/* because nameaddr.c is conditionally included */
205Astreams.o: nameaddr.c
206Astreams.o: nameserver.c
207
208depend:: $(SRCS)
209
210DependTarget()
211