Commit | Line | Data |
---|---|---|
112f0c66 JVH |
1 | Import('env') |
2 | ||
3 | files = [Glob('lib/*.c'),Glob('lib/alac/*.c'),Glob('lib/crypto/*.c')] | |
4 | ||
5 | env.Append(CPPPATH = ['include']) | |
6 | ||
7 | # Set up the environment for compiling the libraries | |
8 | libenv = env.Clone() | |
9 | libenv.Append(CPPPATH = ['lib']) | |
10 | ||
11 | # Make sure libraries are compiled with DLL_EXPORT on windows | |
12 | if libenv['PLATFORM'] == 'win32' or GetOption('mingw32') or GetOption('mingw64'): | |
13 | libenv.Append(CPPDEFINES = ['DLL_EXPORT']) | |
14 | ||
15 | # Prepare the libobj and shlibobj object files | |
16 | libobj = libenv.Object(files) | |
17 | if libenv['STATIC_AND_SHARED_OBJECTS_ARE_THE_SAME']: | |
18 | shlibobj = libobj | |
19 | else: | |
20 | shlibobj = libenv.SharedObject(files) | |
21 | ||
22 | # Compile the static library into lib directory and shared library | |
23 | # for the bindings | |
24 | if not libenv['STATIC_AND_SHARED_OBJECTS_ARE_THE_SAME']: | |
25 | libenv.Library('airplay', libobj, install=False) | |
26 | libenv.SharedLibrary('airplay', shlibobj, install=False) | |
27 | ||
28 | # If we want to create universal binaries of the dynamic library on Mac, do it here | |
29 | if GetOption('universal'): | |
30 | libenv["ENV"]["MACOSX_DEPLOYMENT_TARGET"] = "10.4" | |
31 | libenv.Append(CFLAGS = ['-arch', 'i386', '-arch', 'x86_64']) | |
32 | libenv32 = libenv.Clone() | |
33 | libenv64 = libenv.Clone() | |
34 | ||
35 | libenv32.Append(LINKFLAGS = ['-undefined', 'dynamic_lookup']) | |
36 | libenv32.Append(LINKFLAGS = ['-arch', 'i386']) | |
37 | libenv32.Append(LINKFLAGS = ['-install_name', 'libairplay32.dylib']) | |
38 | libenv32.SharedLibrary('airplay32', shlibobj, install=False) | |
39 | ||
40 | libenv64.Append(LINKFLAGS = ['-undefined', 'dynamic_lookup']) | |
41 | libenv64.Append(LINKFLAGS = ['-arch', 'x86_64']) | |
42 | libenv64.Append(LINKFLAGS = ['-install_name', 'libairplay64.dylib']) | |
43 | libenv64.SharedLibrary('airplay64', shlibobj, install=False) | |
44 | ||
45 | libenv.Append(LINKFLAGS = ['-undefined', 'dynamic_lookup']) | |
46 | libenv.Append(LINKFLAGS = ['-arch', 'i386', '-arch', 'x86_64']) | |
47 | libenv.Append(LINKFLAGS = ['-install_name', 'libairplay.dylib']) | |
48 | ||
49 | # Set up the environment for compiling the examples | |
50 | appenv = env.Clone() | |
51 | conf = Configure(appenv) | |
52 | conf.CheckLib('pthread') | |
53 | appenv = conf.Finish() | |
54 | appenv.Append(LIBPATH = ['.']) | |
55 | appenv.Prepend(LIBS = ['airplay']) | |
56 | ||
57 | exampleobj = appenv.Object(['test/example.c']) | |
58 | appenv.Program('example', exampleobj, install=False) |