Chris@4
|
1 ----------------------------------------------------------------------
|
Chris@4
|
2 -- Premake4 configuration script for LibLo
|
Chris@4
|
3 -- Adapted from ODE's build script by Jason Perkins.
|
Chris@4
|
4 -- For more information on Premake: http://industriousone.com/premake
|
Chris@4
|
5 ----------------------------------------------------------------------
|
Chris@4
|
6
|
Chris@4
|
7 ----------------------------------------------------------------------
|
Chris@4
|
8 -- Configuration options
|
Chris@4
|
9 ----------------------------------------------------------------------
|
Chris@4
|
10
|
Chris@4
|
11 -- always clean all of the optional components and toolsets
|
Chris@4
|
12 if _ACTION == "clean" then
|
Chris@4
|
13 for action in pairs(premake.actions) do
|
Chris@4
|
14 os.rmdir(action)
|
Chris@4
|
15 end
|
Chris@4
|
16 end
|
Chris@4
|
17
|
Chris@4
|
18
|
Chris@4
|
19
|
Chris@4
|
20 ----------------------------------------------------------------------
|
Chris@4
|
21 -- The solution, and solution-wide settings
|
Chris@4
|
22 ----------------------------------------------------------------------
|
Chris@4
|
23
|
Chris@4
|
24 solution "liblo"
|
Chris@4
|
25
|
Chris@4
|
26 language "C"
|
Chris@4
|
27 location ( _OPTIONS["to"] or _ACTION )
|
Chris@4
|
28
|
Chris@4
|
29 includedirs {
|
Chris@4
|
30 "../lo",
|
Chris@4
|
31 "../src"
|
Chris@4
|
32 }
|
Chris@4
|
33
|
Chris@4
|
34 -- define all the possible build configurations
|
Chris@4
|
35 configurations {
|
Chris@4
|
36 "DebugDLL", "ReleaseDLL",
|
Chris@4
|
37 "DebugLib", "ReleaseLib",
|
Chris@4
|
38 }
|
Chris@4
|
39
|
Chris@4
|
40 configuration { "Debug*" }
|
Chris@4
|
41 defines { "_DEBUG" }
|
Chris@4
|
42 flags { "Symbols" }
|
Chris@4
|
43
|
Chris@4
|
44 configuration { "Release*" }
|
Chris@4
|
45 flags { "OptimizeSpeed", "NoFramePointer" }
|
Chris@4
|
46
|
Chris@4
|
47 configuration { "Windows" }
|
Chris@4
|
48 defines { "WIN32" }
|
Chris@4
|
49
|
Chris@4
|
50 -- give each configuration a unique output directory
|
Chris@4
|
51 for _, name in ipairs(configurations()) do
|
Chris@4
|
52 configuration { name }
|
Chris@4
|
53 targetdir ( "../lib/" .. name )
|
Chris@4
|
54 end
|
Chris@4
|
55
|
Chris@4
|
56 -- disable Visual Studio security warnings
|
Chris@4
|
57 configuration { "vs*" }
|
Chris@4
|
58 defines { "_CRT_SECURE_NO_DEPRECATE" }
|
Chris@4
|
59
|
Chris@4
|
60 -- tell source to use config.h
|
Chris@4
|
61 configuration { "vs*" }
|
Chris@4
|
62 defines { "HAVE_CONFIG_H" }
|
Chris@4
|
63
|
Chris@4
|
64 -- don't remember why we had to do this (from ODE)
|
Chris@4
|
65 configuration { "vs2002 or vs2003", "*Lib" }
|
Chris@4
|
66 flags { "StaticRuntime" }
|
Chris@4
|
67
|
Chris@4
|
68 ----------------------------------------------------------------------
|
Chris@4
|
69 -- Write a custom <config.h> to .., based on the supplied flags
|
Chris@4
|
70 ----------------------------------------------------------------------
|
Chris@4
|
71
|
Chris@4
|
72 -- First get the version number from "configure.ac" --
|
Chris@4
|
73
|
Chris@4
|
74 io.input("../configure.ac")
|
Chris@4
|
75 text = io.read("*all")
|
Chris@4
|
76 io.close()
|
Chris@4
|
77 text = string.sub(text,string.find(text, "AC_INIT.+"))
|
Chris@4
|
78 version = string.sub(text,string.find(text, "%d+%.%d+"))
|
Chris@4
|
79
|
Chris@4
|
80 -- Replace it in "config.h" --
|
Chris@4
|
81
|
Chris@4
|
82 io.input("config-msvc.h")
|
Chris@4
|
83 local text = io.read("*all")
|
Chris@4
|
84
|
Chris@4
|
85 text = string.gsub(text, '/%*VERSION%*/', '"'..version..'"')
|
Chris@4
|
86
|
Chris@4
|
87 io.output("../config.h")
|
Chris@4
|
88 io.write(text)
|
Chris@4
|
89 io.close()
|
Chris@4
|
90
|
Chris@4
|
91 ----------------------------------------------------------------------
|
Chris@4
|
92 -- Copy <lo_endian.h> to ../lo
|
Chris@4
|
93 ----------------------------------------------------------------------
|
Chris@4
|
94
|
Chris@4
|
95 io.input("lo_endian-msvc.h")
|
Chris@4
|
96 io.output("../lo/lo_endian.h")
|
Chris@4
|
97 local text = io.read("*all")
|
Chris@4
|
98 io.write(text)
|
Chris@4
|
99 io.close()
|
Chris@4
|
100
|
Chris@4
|
101 ----------------------------------------------------------------------
|
Chris@4
|
102 -- The LibLo library project
|
Chris@4
|
103 ----------------------------------------------------------------------
|
Chris@4
|
104
|
Chris@4
|
105 project "liblo"
|
Chris@4
|
106
|
Chris@4
|
107 kind "StaticLib"
|
Chris@4
|
108 location ( _OPTIONS["to"] or _ACTION )
|
Chris@4
|
109
|
Chris@4
|
110 includedirs {
|
Chris@4
|
111 "..",
|
Chris@4
|
112 }
|
Chris@4
|
113
|
Chris@4
|
114 files {
|
Chris@4
|
115 "../src/*.c",
|
Chris@4
|
116 "../src/*.h",
|
Chris@4
|
117 "../lo/*.h",
|
Chris@4
|
118 "../src/liblo.def",
|
Chris@4
|
119 }
|
Chris@4
|
120
|
Chris@4
|
121 excludes {
|
Chris@4
|
122 "../src/testlo.c",
|
Chris@4
|
123 "../src/subtest.c",
|
Chris@4
|
124 "../src/tools",
|
Chris@4
|
125 }
|
Chris@4
|
126
|
Chris@4
|
127 configuration { "windows" }
|
Chris@4
|
128 links { "user32",
|
Chris@4
|
129 "wsock32",
|
Chris@4
|
130 "ws2_32",
|
Chris@4
|
131 "pthreadVC2",
|
Chris@4
|
132 }
|
Chris@4
|
133
|
Chris@4
|
134 configuration { "*Lib" }
|
Chris@4
|
135 kind "StaticLib"
|
Chris@4
|
136 defines "LIBLO_LIB"
|
Chris@4
|
137
|
Chris@4
|
138 configuration { "*DLL" }
|
Chris@4
|
139 kind "SharedLib"
|
Chris@4
|
140 defines "LIBLO_DLL"
|
Chris@4
|
141
|
Chris@4
|
142 configuration { "Debug*" }
|
Chris@4
|
143 targetname "liblo_d"
|
Chris@4
|
144
|
Chris@4
|
145 configuration { "Release*" }
|
Chris@4
|
146 targetname "liblo"
|
Chris@4
|
147
|
Chris@4
|
148
|
Chris@4
|
149 ----------------------------------------------------------------------
|
Chris@4
|
150 -- The automated test application
|
Chris@4
|
151 ----------------------------------------------------------------------
|
Chris@4
|
152
|
Chris@4
|
153
|
Chris@4
|
154 project "testlo"
|
Chris@4
|
155
|
Chris@4
|
156 kind "ConsoleApp"
|
Chris@4
|
157 location ( _OPTIONS["to"] or _ACTION )
|
Chris@4
|
158 links { "user32",
|
Chris@4
|
159 "wsock32",
|
Chris@4
|
160 "ws2_32",
|
Chris@4
|
161 "pthreadVC2",
|
Chris@4
|
162 }
|
Chris@4
|
163
|
Chris@4
|
164 includedirs {
|
Chris@4
|
165 "..",
|
Chris@4
|
166 }
|
Chris@4
|
167
|
Chris@4
|
168 files {
|
Chris@4
|
169 "../src/testlo.c",
|
Chris@4
|
170 }
|
Chris@4
|
171
|
Chris@4
|
172 configuration { "DebugDLL" }
|
Chris@4
|
173 links { "liblo_d" }
|
Chris@4
|
174 libdirs { "../lib/debugdll" }
|
Chris@4
|
175
|
Chris@4
|
176 configuration { "DebugLib" }
|
Chris@4
|
177 links { "liblo_d" }
|
Chris@4
|
178 libdirs { "../lib/debuglib" }
|
Chris@4
|
179
|
Chris@4
|
180 configuration { "Release*" }
|
Chris@4
|
181 links { "liblo" }
|
Chris@4
|
182
|
Chris@4
|
183 project "subtest"
|
Chris@4
|
184
|
Chris@4
|
185 kind "ConsoleApp"
|
Chris@4
|
186 location ( _OPTIONS["to"] or _ACTION )
|
Chris@4
|
187 links { "user32",
|
Chris@4
|
188 "wsock32",
|
Chris@4
|
189 "ws2_32",
|
Chris@4
|
190 "pthreadVC2",
|
Chris@4
|
191 }
|
Chris@4
|
192
|
Chris@4
|
193 includedirs {
|
Chris@4
|
194 "..",
|
Chris@4
|
195 }
|
Chris@4
|
196
|
Chris@4
|
197 files {
|
Chris@4
|
198 "../src/subtest.c",
|
Chris@4
|
199 }
|
Chris@4
|
200
|
Chris@4
|
201 configuration { "DebugDLL" }
|
Chris@4
|
202 links { "liblo_d" }
|
Chris@4
|
203 libdirs { "../lib/debugdll" }
|
Chris@4
|
204
|
Chris@4
|
205 configuration { "DebugLib" }
|
Chris@4
|
206 links { "liblo_d" }
|
Chris@4
|
207 libdirs { "../lib/debuglib" }
|
Chris@4
|
208
|
Chris@4
|
209 configuration { "Release*" }
|
Chris@4
|
210 links { "liblo" }
|