xref: /libuv/Makefile.am (revision 14644080)
1# Copyright (c) 2013, Ben Noordhuis <info@bnoordhuis.nl>
2#
3# Permission to use, copy, modify, and/or distribute this software for any
4# purpose with or without fee is hereby granted, provided that the above
5# copyright notice and this permission notice appear in all copies.
6#
7# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
8# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
9# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
10# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
11# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
12# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
13# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
14
15ACLOCAL_AMFLAGS = -I m4
16
17AM_CPPFLAGS = -I$(top_srcdir)/include \
18              -I$(top_srcdir)/src
19
20include_HEADERS=include/uv.h
21
22uvincludedir = $(includedir)/uv
23uvinclude_HEADERS = include/uv/errno.h \
24                    include/uv/threadpool.h \
25                    include/uv/version.h
26
27CLEANFILES =
28
29lib_LTLIBRARIES = libuv.la
30libuv_la_CFLAGS = $(AM_CFLAGS)
31libuv_la_LDFLAGS = $(AM_LDFLAGS) -no-undefined -version-info 1:0:0
32libuv_la_SOURCES = src/fs-poll.c \
33                   src/heap-inl.h \
34                   src/idna.c \
35                   src/idna.h \
36                   src/inet.c \
37                   src/queue.h \
38                   src/random.c \
39                   src/strscpy.c \
40                   src/strscpy.h \
41                   src/thread-common.c \
42                   src/threadpool.c \
43                   src/timer.c \
44                   src/uv-data-getter-setters.c \
45                   src/uv-common.c \
46                   src/uv-common.h \
47                   src/version.c \
48                   src/strtok.c \
49                   src/strtok.h
50
51if SUNOS
52# Can't be turned into a CC_CHECK_CFLAGS in configure.ac, it makes compilers
53# on other platforms complain that the argument is unused during compilation.
54libuv_la_CFLAGS += -pthreads
55endif
56
57if WINNT
58
59uvinclude_HEADERS += include/uv/win.h include/uv/tree.h
60AM_CPPFLAGS += -I$(top_srcdir)/src/win \
61               -DWIN32_LEAN_AND_MEAN \
62               -D_WIN32_WINNT=0x0A00
63libuv_la_SOURCES += src/win/async.c \
64                    src/win/atomicops-inl.h \
65                    src/win/core.c \
66                    src/win/detect-wakeup.c \
67                    src/win/dl.c \
68                    src/win/error.c \
69                    src/win/fs-event.c \
70                    src/win/fs.c \
71                    src/win/getaddrinfo.c \
72                    src/win/getnameinfo.c \
73                    src/win/handle.c \
74                    src/win/handle-inl.h \
75                    src/win/internal.h \
76                    src/win/loop-watcher.c \
77                    src/win/pipe.c \
78                    src/win/poll.c \
79                    src/win/process-stdio.c \
80                    src/win/process.c \
81                    src/win/req-inl.h \
82                    src/win/signal.c \
83                    src/win/stream.c \
84                    src/win/stream-inl.h \
85                    src/win/tcp.c \
86                    src/win/thread.c \
87                    src/win/tty.c \
88                    src/win/udp.c \
89                    src/win/util.c \
90                    src/win/winapi.c \
91                    src/win/winapi.h \
92                    src/win/winsock.c \
93                    src/win/winsock.h
94
95else  # WINNT
96
97uvinclude_HEADERS += include/uv/unix.h
98AM_CPPFLAGS += -I$(top_srcdir)/src/unix
99libuv_la_SOURCES += src/unix/async.c \
100                   src/unix/core.c \
101                   src/unix/dl.c \
102                   src/unix/fs.c \
103                   src/unix/getaddrinfo.c \
104                   src/unix/getnameinfo.c \
105                   src/unix/internal.h \
106                   src/unix/loop-watcher.c \
107                   src/unix/loop.c \
108                   src/unix/pipe.c \
109                   src/unix/poll.c \
110                   src/unix/process.c \
111                   src/unix/random-devurandom.c \
112                   src/unix/signal.c \
113                   src/unix/stream.c \
114                   src/unix/tcp.c \
115                   src/unix/thread.c \
116                   src/unix/tty.c \
117                   src/unix/udp.c
118
119endif  # WINNT
120
121EXTRA_DIST = test/fixtures/empty_file \
122             test/fixtures/load_error.node \
123             test/fixtures/lorem_ipsum.txt \
124             test/fixtures/one_file/one_file \
125             include \
126             docs \
127             img \
128             CONTRIBUTING.md \
129             LICENSE \
130             LICENSE-extra \
131             README.md
132
133
134
135TESTS = test/run-tests
136check_PROGRAMS = test/run-tests
137test_run_tests_CFLAGS = $(AM_CFLAGS)
138
139if WINNT
140check-am: test/run-tests_no_ext
141test/run-tests_no_ext: test/run-tests$(EXEEXT)
142	cp test/run-tests$(EXEEXT) test/run-tests_no_ext
143endif
144
145if SUNOS
146# Can't be turned into a CC_CHECK_CFLAGS in configure.ac, it makes compilers
147# on other platforms complain that the argument is unused during compilation.
148test_run_tests_CFLAGS += -pthreads
149endif
150
151test_run_tests_LDFLAGS = $(AM_LDFLAGS)
152test_run_tests_SOURCES = test/blackhole-server.c \
153                         test/echo-server.c \
154                         test/run-tests.c \
155                         test/runner.c \
156                         test/runner.h \
157                         test/task.h \
158                         test/test-active.c \
159                         test/test-async.c \
160                         test/test-async-null-cb.c \
161                         test/test-barrier.c \
162                         test/test-callback-stack.c \
163                         test/test-close-fd.c \
164                         test/test-close-order.c \
165                         test/test-condvar.c \
166                         test/test-connect-unspecified.c \
167                         test/test-connection-fail.c \
168                         test/test-cwd-and-chdir.c \
169                         test/test-default-loop-close.c \
170                         test/test-delayed-accept.c \
171                         test/test-dlerror.c \
172                         test/test-eintr-handling.c \
173                         test/test-embed.c \
174                         test/test-emfile.c \
175                         test/test-env-vars.c \
176                         test/test-error.c \
177                         test/test-fail-always.c \
178                         test/test-fs-copyfile.c \
179                         test/test-fs-event.c \
180                         test/test-fs-poll.c \
181                         test/test-fs.c \
182                         test/test-fs-readdir.c \
183                         test/test-fs-fd-hash.c \
184                         test/test-fs-open-flags.c \
185                         test/test-fork.c \
186                         test/test-getters-setters.c \
187                         test/test-get-currentexe.c \
188                         test/test-get-loadavg.c \
189                         test/test-get-memory.c \
190                         test/test-get-passwd.c \
191                         test/test-getaddrinfo.c \
192                         test/test-gethostname.c \
193                         test/test-getnameinfo.c \
194                         test/test-getsockname.c \
195                         test/test-gettimeofday.c \
196                         test/test-handle-fileno.c \
197                         test/test-homedir.c \
198                         test/test-hrtime.c \
199                         test/test-idle.c \
200                         test/test-idna.c \
201                         test/test-iouring-pollhup.c \
202                         test/test-ip4-addr.c \
203                         test/test-ip6-addr.c \
204                         test/test-ip-name.c \
205                         test/test-ipc-heavy-traffic-deadlock-bug.c \
206                         test/test-ipc-send-recv.c \
207                         test/test-ipc.c \
208                         test/test-list.h \
209                         test/test-loop-handles.c \
210                         test/test-loop-alive.c \
211                         test/test-loop-close.c \
212                         test/test-loop-stop.c \
213                         test/test-loop-time.c \
214                         test/test-loop-configure.c \
215                         test/test-metrics.c \
216                         test/test-multiple-listen.c \
217                         test/test-mutexes.c \
218                         test/test-not-readable-nor-writable-on-read-error.c \
219                         test/test-not-writable-after-shutdown.c \
220                         test/test-osx-select.c \
221                         test/test-pass-always.c \
222                         test/test-ping-pong.c \
223                         test/test-pipe-bind-error.c \
224                         test/test-pipe-connect-error.c \
225                         test/test-pipe-connect-multiple.c \
226                         test/test-pipe-connect-prepare.c \
227                         test/test-pipe-getsockname.c \
228                         test/test-pipe-pending-instances.c \
229                         test/test-pipe-sendmsg.c \
230                         test/test-pipe-server-close.c \
231                         test/test-pipe-close-stdout-read-stdin.c \
232                         test/test-pipe-set-non-blocking.c \
233                         test/test-pipe-set-fchmod.c \
234                         test/test-platform-output.c \
235                         test/test-poll.c \
236                         test/test-poll-close.c \
237                         test/test-poll-close-doesnt-corrupt-stack.c \
238                         test/test-poll-closesocket.c \
239                         test/test-poll-multiple-handles.c \
240                         test/test-poll-oob.c \
241                         test/test-process-priority.c \
242                         test/test-process-title.c \
243                         test/test-process-title-threadsafe.c \
244                         test/test-queue-foreach-delete.c \
245                         test/test-random.c \
246                         test/test-readable-on-eof.c \
247                         test/test-ref.c \
248                         test/test-run-nowait.c \
249                         test/test-run-once.c \
250                         test/test-semaphore.c \
251                         test/test-shutdown-close.c \
252                         test/test-shutdown-eof.c \
253                         test/test-shutdown-simultaneous.c \
254                         test/test-shutdown-twice.c \
255                         test/test-signal-multiple-loops.c \
256                         test/test-signal-pending-on-close.c \
257                         test/test-signal.c \
258                         test/test-socket-buffer-size.c \
259                         test/test-spawn.c \
260                         test/test-stdio-over-pipes.c \
261                         test/test-strscpy.c \
262                         test/test-strtok.c \
263                         test/test-tcp-alloc-cb-fail.c \
264                         test/test-tcp-bind-error.c \
265                         test/test-tcp-bind6-error.c \
266                         test/test-tcp-close-accept.c \
267                         test/test-tcp-close-while-connecting.c \
268                         test/test-tcp-close-after-read-timeout.c \
269                         test/test-tcp-close.c \
270                         test/test-tcp-close-reset.c \
271                         test/test-tcp-create-socket-early.c \
272                         test/test-tcp-connect-error-after-write.c \
273                         test/test-tcp-connect-error.c \
274                         test/test-tcp-connect-timeout.c \
275                         test/test-tcp-connect6-error.c \
276                         test/test-tcp-flags.c \
277                         test/test-tcp-open.c \
278                         test/test-tcp-read-stop.c \
279                         test/test-tcp-reuseport.c \
280                         test/test-tcp-read-stop-start.c \
281                         test/test-tcp-rst.c \
282                         test/test-tcp-shutdown-after-write.c \
283                         test/test-tcp-unexpected-read.c \
284                         test/test-tcp-oob.c \
285                         test/test-tcp-write-to-half-open-connection.c \
286                         test/test-tcp-write-after-connect.c \
287                         test/test-tcp-writealot.c \
288                         test/test-tcp-write-fail.c \
289                         test/test-tcp-try-write.c \
290                         test/test-tcp-write-in-a-row.c \
291                         test/test-tcp-try-write-error.c \
292                         test/test-tcp-write-queue-order.c \
293                         test/test-test-macros.c \
294                         test/test-thread-equal.c \
295                         test/test-thread.c \
296                         test/test-thread-affinity.c \
297                         test/test-thread-name.c \
298                         test/test-thread-priority.c \
299                         test/test-threadpool-cancel.c \
300                         test/test-threadpool.c \
301                         test/test-timer-again.c \
302                         test/test-timer-from-check.c \
303                         test/test-timer.c \
304                         test/test-tmpdir.c \
305                         test/test-tty-duplicate-key.c \
306                         test/test-tty-escape-sequence-processing.c \
307                         test/test-tty.c \
308                         test/test-udp-alloc-cb-fail.c \
309                         test/test-udp-bind.c \
310                         test/test-udp-connect.c \
311                         test/test-udp-connect6.c \
312                         test/test-udp-create-socket-early.c \
313                         test/test-udp-dgram-too-big.c \
314                         test/test-udp-ipv6.c \
315                         test/test-udp-mmsg.c \
316                         test/test-udp-multicast-interface.c \
317                         test/test-udp-multicast-interface6.c \
318                         test/test-udp-multicast-join.c \
319                         test/test-udp-multicast-join6.c \
320                         test/test-udp-multicast-ttl.c \
321                         test/test-udp-open.c \
322                         test/test-udp-options.c \
323                         test/test-udp-send-and-recv.c \
324                         test/test-udp-send-hang-loop.c \
325                         test/test-udp-send-immediate.c \
326                         test/test-udp-sendmmsg-error.c \
327                         test/test-udp-send-unreachable.c \
328                         test/test-udp-try-send.c \
329                         test/test-udp-recv-in-a-row.c \
330                         test/test-udp-reuseport.c \
331                         test/test-uname.c \
332                         test/test-walk-handles.c \
333                         test/test-watcher-cross-stop.c
334test_run_tests_LDADD = libuv.la
335
336if WINNT
337test_run_tests_SOURCES += test/runner-win.c \
338                          test/runner-win.h
339else
340test_run_tests_SOURCES += test/runner-unix.c \
341                          test/runner-unix.h
342endif
343
344if AIX
345test_run_tests_CFLAGS += -D_ALL_SOURCE \
346                         -D_XOPEN_SOURCE=500 \
347                         -D_LINUX_SOURCE_COMPAT
348endif
349
350if OS400
351test_run_tests_CFLAGS += -D_ALL_SOURCE \
352                         -D_XOPEN_SOURCE=500 \
353                         -D_LINUX_SOURCE_COMPAT
354endif
355
356if HAIKU
357test_run_tests_CFLAGS += -D_BSD_SOURCE
358endif
359
360if LINUX
361test_run_tests_CFLAGS += -D_GNU_SOURCE
362endif
363
364if SUNOS
365test_run_tests_CFLAGS += -D__EXTENSIONS__ \
366                         -D_XOPEN_SOURCE=500 \
367                         -D_REENTRANT
368endif
369
370if OS390
371test_run_tests_CFLAGS += -D_ISOC99_SOURCE \
372                         -D_UNIX03_THREADS \
373                         -D_UNIX03_SOURCE \
374                         -D_OPEN_SYS_IF_EXT=1 \
375                         -D_OPEN_SYS_SOCK_IPV6 \
376                         -D_OPEN_MSGQ_EXT \
377                         -D_XOPEN_SOURCE_EXTENDED \
378                         -D_ALL_SOURCE \
379                         -D_LARGE_TIME_API \
380                         -D_OPEN_SYS_FILE_EXT \
381                         -DPATH_MAX=255 \
382                         -qCHARS=signed \
383                         -qXPLINK \
384                         -qFLOAT=IEEE
385endif
386
387if AIX
388libuv_la_CFLAGS += -D_ALL_SOURCE \
389                   -D_XOPEN_SOURCE=500 \
390                   -D_LINUX_SOURCE_COMPAT \
391                   -D_THREAD_SAFE \
392                   -DHAVE_SYS_AHAFS_EVPRODS_H
393uvinclude_HEADERS += include/uv/aix.h
394libuv_la_SOURCES += src/unix/aix.c src/unix/aix-common.c
395endif
396
397if OS400
398libuv_la_CFLAGS += -D_ALL_SOURCE \
399                   -D_XOPEN_SOURCE=500 \
400                   -D_LINUX_SOURCE_COMPAT \
401                   -D_THREAD_SAFE
402uvinclude_HEADERS += include/uv/posix.h
403libuv_la_SOURCES += src/unix/aix-common.c \
404                    src/unix/ibmi.c \
405                    src/unix/posix-poll.c \
406                    src/unix/no-fsevents.c
407endif
408
409if ANDROID
410libuv_la_CFLAGS += -D_GNU_SOURCE
411endif
412
413if CYGWIN
414uvinclude_HEADERS += include/uv/posix.h
415libuv_la_CFLAGS += -D_GNU_SOURCE
416libuv_la_SOURCES += src/unix/cygwin.c \
417                    src/unix/bsd-ifaddrs.c \
418                    src/unix/no-fsevents.c \
419                    src/unix/no-proctitle.c \
420                    src/unix/posix-hrtime.c \
421                    src/unix/posix-poll.c \
422                    src/unix/procfs-exepath.c \
423                    src/unix/sysinfo-loadavg.c \
424                    src/unix/sysinfo-memory.c
425endif
426
427if DARWIN
428uvinclude_HEADERS += include/uv/darwin.h
429libuv_la_CFLAGS += -D_DARWIN_USE_64_BIT_INODE=1
430libuv_la_CFLAGS += -D_DARWIN_UNLIMITED_SELECT=1
431libuv_la_SOURCES += src/unix/bsd-ifaddrs.c \
432                    src/unix/darwin-proctitle.c \
433                    src/unix/darwin-stub.h \
434                    src/unix/darwin-syscalls.h \
435                    src/unix/darwin.c \
436                    src/unix/fsevents.c \
437                    src/unix/kqueue.c \
438                    src/unix/proctitle.c \
439                    src/unix/random-getentropy.c
440test_run_tests_LDFLAGS += -lutil
441endif
442
443if DRAGONFLY
444uvinclude_HEADERS += include/uv/bsd.h
445libuv_la_SOURCES += src/unix/bsd-ifaddrs.c \
446                    src/unix/bsd-proctitle.c \
447                    src/unix/freebsd.c \
448                    src/unix/kqueue.c \
449                    src/unix/posix-hrtime.c
450test_run_tests_LDFLAGS += -lutil
451endif
452
453if FREEBSD
454uvinclude_HEADERS += include/uv/bsd.h
455libuv_la_SOURCES += src/unix/bsd-ifaddrs.c \
456                    src/unix/bsd-proctitle.c \
457                    src/unix/freebsd.c \
458                    src/unix/kqueue.c \
459                    src/unix/posix-hrtime.c \
460                    src/unix/random-getrandom.c
461test_run_tests_LDFLAGS += -lutil
462endif
463
464if HAIKU
465uvinclude_HEADERS += include/uv/posix.h
466libuv_la_CFLAGS += -D_BSD_SOURCE
467libuv_la_SOURCES += src/unix/bsd-ifaddrs.c \
468                    src/unix/haiku.c \
469                    src/unix/no-fsevents.c \
470                    src/unix/no-proctitle.c \
471                    src/unix/posix-hrtime.c \
472                    src/unix/posix-poll.c
473endif
474
475if HURD
476uvinclude_HEADERS += include/uv/posix.h
477libuv_la_SOURCES += src/unix/bsd-ifaddrs.c \
478                    src/unix/no-fsevents.c \
479                    src/unix/no-proctitle.c \
480                    src/unix/posix-hrtime.c \
481                    src/unix/posix-poll.c \
482                    src/unix/hurd.c
483endif
484
485if LINUX
486uvinclude_HEADERS += include/uv/linux.h
487libuv_la_CFLAGS += -D_GNU_SOURCE
488libuv_la_SOURCES += src/unix/linux.c \
489                    src/unix/procfs-exepath.c \
490                    src/unix/proctitle.c \
491                    src/unix/random-getrandom.c \
492                    src/unix/random-sysctl-linux.c
493test_run_tests_LDFLAGS += -lutil
494endif
495
496if MSYS
497libuv_la_CFLAGS += -D_GNU_SOURCE
498libuv_la_SOURCES += src/unix/cygwin.c \
499                    src/unix/bsd-ifaddrs.c \
500                    src/unix/no-fsevents.c \
501                    src/unix/no-proctitle.c \
502                    src/unix/posix-hrtime.c \
503                    src/unix/posix-poll.c \
504                    src/unix/procfs-exepath.c \
505                    src/unix/sysinfo-loadavg.c \
506                    src/unix/sysinfo-memory.c
507endif
508
509if NETBSD
510uvinclude_HEADERS += include/uv/bsd.h
511libuv_la_SOURCES += src/unix/bsd-ifaddrs.c \
512                    src/unix/bsd-proctitle.c \
513                    src/unix/kqueue.c \
514                    src/unix/netbsd.c \
515                    src/unix/posix-hrtime.c
516test_run_tests_LDFLAGS += -lutil
517endif
518
519if OPENBSD
520uvinclude_HEADERS += include/uv/bsd.h
521libuv_la_SOURCES += src/unix/bsd-ifaddrs.c \
522                    src/unix/bsd-proctitle.c \
523                    src/unix/kqueue.c \
524                    src/unix/openbsd.c \
525                    src/unix/posix-hrtime.c \
526                    src/unix/random-getentropy.c
527test_run_tests_LDFLAGS += -lutil
528endif
529
530if SUNOS
531uvinclude_HEADERS += include/uv/sunos.h
532libuv_la_CFLAGS += -D__EXTENSIONS__ \
533                   -D_XOPEN_SOURCE=500 \
534                   -D_REENTRANT
535libuv_la_SOURCES += src/unix/no-proctitle.c \
536                    src/unix/sunos.c
537endif
538
539if OS390
540libuv_la_CFLAGS += -D_UNIX03_THREADS \
541                   -D_UNIX03_SOURCE \
542                   -D_OPEN_SYS_IF_EXT=1 \
543                   -D_OPEN_MSGQ_EXT \
544                   -D_XOPEN_SOURCE_EXTENDED \
545                   -D_ALL_SOURCE \
546                   -D_LARGE_TIME_API \
547                   -D_OPEN_SYS_SOCK_EXT3 \
548                   -D_OPEN_SYS_SOCK_IPV6 \
549                   -D_OPEN_SYS_FILE_EXT \
550                   -DUV_PLATFORM_SEM_T=int \
551                   -DPATH_MAX=255 \
552                   -qCHARS=signed \
553                   -qXPLINK \
554                   -qFLOAT=IEEE
555libuv_la_LDFLAGS += -qXPLINK
556libuv_la_SOURCES += src/unix/os390.c \
557                    src/unix/os390-syscalls.c \
558                    src/unix/proctitle.c
559endif
560
561pkgconfigdir = $(libdir)/pkgconfig
562pkgconfig_DATA = @PACKAGE_NAME@.pc
563