# Copyright (c) 2013, Ben Noordhuis <info@bnoordhuis.nl>
#
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
# copyright notice and this permission notice appear in all copies.
#
# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

CC ?= gcc

CFLAGS += -Wall \
          -Wextra \
          -Wno-unused-parameter \
          -Iinclude \
          -Isrc \
          -Isrc/win \
          -DWIN32_LEAN_AND_MEAN \
          -D_WIN32_WINNT=0x0600

INCLUDES = include/stdint-msvc2008.h \
           include/tree.h \
           include/uv-errno.h \
           include/uv-threadpool.h \
           include/uv-version.h \
           include/uv-win.h \
           include/uv.h \
           src/heap-inl.h \
           src/queue.h \
           src/uv-common.h \
           src/win/atomicops-inl.h \
           src/win/handle-inl.h \
           src/win/internal.h \
           src/win/req-inl.h \
           src/win/stream-inl.h \
           src/win/winapi.h \
           src/win/winsock.h

OBJS = src/fs-poll.o \
       src/inet.o \
       src/threadpool.o \
       src/uv-common.o \
       src/version.o \
       src/win/async.o \
       src/win/core.o \
       src/win/dl.o \
       src/win/error.o \
       src/win/fs-event.o \
       src/win/fs.o \
       src/win/getaddrinfo.o \
       src/win/getnameinfo.o \
       src/win/handle.o \
       src/win/loop-watcher.o \
       src/win/pipe.o \
       src/win/poll.o \
       src/win/process-stdio.o \
       src/win/process.o \
       src/win/req.o \
       src/win/signal.o \
       src/win/stream.o \
       src/win/tcp.o \
       src/win/thread.o \
       src/win/timer.o \
       src/win/tty.o \
       src/win/udp.o \
       src/win/util.o \
       src/win/winapi.o \
       src/win/winsock.o

all: libuv.a

clean:
	-$(RM) $(OBJS) libuv.a

libuv.a: $(OBJS)
	$(AR) crs $@ $^

$(OBJS): %.o : %.c $(INCLUDES)
	$(CC) $(CFLAGS) -c -o $@ $<
