build: support building a .so

You can now select to build a shared object at configure time:

  $ ./gyp_uv -Dcomponent=shared_library -Dlibrary=shared_library

And build it with:

  $ make -C out BUILDTYPE=Debug # or BUILDTYPE=Release

Or, if you use ninja:

  $ ninja -C out/Debug
This commit is contained in:
Ben Noordhuis 2012-11-06 16:24:49 -05:00
parent e318b06a0e
commit d56434a21d
3 changed files with 15 additions and 7 deletions

5
gyp_uv
View File

@ -72,12 +72,13 @@ if __name__ == '__main__':
args.append('-Dgcc_version=%d' % (10 * major + minor))
args.append('-Dclang=%d' % int(is_clang))
if not any(a.startswith('-Dtarget_arch') for a in args):
if not any(a.startswith('-Dtarget_arch=') for a in args):
args.append('-Dtarget_arch=ia32')
if not any(a.startswith('-Dlibrary') for a in args):
if not any(a.startswith('-Dlibrary=') for a in args):
args.append('-Dlibrary=static_library')
if not any(a.startswith('-Dcomponent=') for a in args):
args.append('-Dcomponent=static_library')
gyp_args = list(args)

View File

@ -1639,9 +1639,11 @@ struct uv_signal_s {
};
/* These functions are no-ops on Windows. */
int uv_signal_init(uv_loop_t* loop, uv_signal_t* handle);
int uv_signal_start(uv_signal_t* handle, uv_signal_cb signal_cb, int signum);
int uv_signal_stop(uv_signal_t* handle);
UV_EXTERN int uv_signal_init(uv_loop_t* loop, uv_signal_t* handle);
UV_EXTERN int uv_signal_start(uv_signal_t* handle,
uv_signal_cb signal_cb,
int signum);
UV_EXTERN int uv_signal_stop(uv_signal_t* handle);
/*

7
uv.gyp
View File

@ -144,7 +144,12 @@
'src/unix/udp.c',
],
'include_dirs': [ 'src/unix/ev', ],
'libraries': [ '-lm' ]
'libraries': [ '-lm' ],
'conditions': [
['"<(library)" == "shared_library"', {
'cflags': [ '-fPIC' ],
}],
],
}],
[ 'OS=="mac"', {
'sources': [ 'src/unix/darwin.c', 'src/unix/fsevents.c' ],