From c485301d210872c38fe840c58d27d97c4e97d7a5 Mon Sep 17 00:00:00 2001 From: Graydon Hoare Date: Thu, 2 Feb 2012 17:39:47 -0800 Subject: [PATCH] Update libuv. --- .gitmodules | 2 +- configure | 2 + mk/libuv/ia32/mac/Makefile | 18 +- mk/libuv/ia32/mac/Makefile-e | 375 ------------------ mk/libuv/ia32/mac/gyp-mac-tool | 17 +- .../mac/src/libuv/run-benchmarks.target.mk | 84 +++- .../ia32/mac/src/libuv/run-tests.target.mk | 93 ++++- mk/libuv/ia32/mac/src/libuv/uv.target.mk | 89 ++++- mk/libuv/ia32/unix/Makefile | 13 +- mk/libuv/ia32/unix/Makefile-e | 353 ----------------- .../unix/src/libuv/run-benchmarks.target.mk | 57 ++- .../ia32/unix/src/libuv/run-tests.target.mk | 66 ++- mk/libuv/ia32/unix/src/libuv/uv.target.mk | 72 +++- mk/libuv/ia32/win/Makefile | 13 +- mk/libuv/ia32/win/Makefile-e | 353 ----------------- .../win/src/libuv/run-benchmarks.target.mk | 47 ++- .../ia32/win/src/libuv/run-tests.target.mk | 56 ++- mk/libuv/ia32/win/src/libuv/uv.target.mk | 56 ++- mk/libuv/ia32/win/src/libuv/uv.target.mk.bak | 167 ++++++++ mk/libuv/x86_64/freebsd/Makefile | 353 ----------------- .../src/libuv/run-benchmarks.target.mk | 83 ---- .../freebsd/src/libuv/run-tests.target.mk | 117 ------ mk/libuv/x86_64/freebsd/src/libuv/uv.Makefile | 6 - .../x86_64/freebsd/src/libuv/uv.target.mk | 138 ------- mk/libuv/x86_64/mac/Makefile | 18 +- mk/libuv/x86_64/mac/Makefile-e | 375 ------------------ mk/libuv/x86_64/mac/gyp-mac-tool | 17 +- .../mac/src/libuv/run-benchmarks.target.mk | 84 +++- .../mac/src/libuv/run-benchmarks.target.mk-e | 97 ----- .../x86_64/mac/src/libuv/run-tests.target.mk | 93 ++++- .../mac/src/libuv/run-tests.target.mk-e | 131 ------ mk/libuv/x86_64/mac/src/libuv/uv.target.mk | 89 ++++- mk/libuv/x86_64/mac/src/libuv/uv.target.mk-e | 145 ------- mk/libuv/x86_64/unix/Makefile | 13 +- mk/libuv/x86_64/unix/Makefile-e | 353 ----------------- .../unix/src/libuv/run-benchmarks.target.mk | 57 ++- .../x86_64/unix/src/libuv/run-tests.target.mk | 66 ++- mk/libuv/x86_64/unix/src/libuv/uv.target.mk | 72 +++- mk/libuv/x86_64/win/Makefile | 13 +- mk/libuv/x86_64/win/Makefile-e | 353 ----------------- .../win/src/libuv/run-benchmarks.target.mk | 47 ++- .../x86_64/win/src/libuv/run-tests.target.mk | 56 ++- mk/libuv/x86_64/win/src/libuv/uv.target.mk | 56 ++- mk/rt.mk | 9 +- src/etc/gyp-uv | 52 +-- src/etc/x86.supp | 11 +- src/libstd/uv.rs | 76 ++-- src/libstd/uvtmp.rs | 134 +++---- src/libuv | 2 +- 49 files changed, 1406 insertions(+), 3643 deletions(-) delete mode 100644 mk/libuv/ia32/mac/Makefile-e delete mode 100644 mk/libuv/ia32/unix/Makefile-e delete mode 100644 mk/libuv/ia32/win/Makefile-e create mode 100644 mk/libuv/ia32/win/src/libuv/uv.target.mk.bak delete mode 100644 mk/libuv/x86_64/freebsd/Makefile delete mode 100644 mk/libuv/x86_64/freebsd/src/libuv/run-benchmarks.target.mk delete mode 100644 mk/libuv/x86_64/freebsd/src/libuv/run-tests.target.mk delete mode 100644 mk/libuv/x86_64/freebsd/src/libuv/uv.Makefile delete mode 100644 mk/libuv/x86_64/freebsd/src/libuv/uv.target.mk delete mode 100644 mk/libuv/x86_64/mac/Makefile-e delete mode 100644 mk/libuv/x86_64/mac/src/libuv/run-benchmarks.target.mk-e delete mode 100644 mk/libuv/x86_64/mac/src/libuv/run-tests.target.mk-e delete mode 100644 mk/libuv/x86_64/mac/src/libuv/uv.target.mk-e delete mode 100644 mk/libuv/x86_64/unix/Makefile-e delete mode 100644 mk/libuv/x86_64/win/Makefile-e diff --git a/.gitmodules b/.gitmodules index bd5c14b7f46..d750f8eb5b7 100644 --- a/.gitmodules +++ b/.gitmodules @@ -3,4 +3,4 @@ url = git://github.com/brson/llvm.git [submodule "src/libuv"] path = src/libuv - url = git://github.com/joyent/libuv + url = git://github.com/graydon/libuv.git diff --git a/configure b/configure index 9ec8f2e7bff..10770c07b74 100755 --- a/configure +++ b/configure @@ -467,6 +467,8 @@ cd ${CFG_SRC_DIR} if [ -z $CFG_DISABLE_MANAGE_SUBMODULES ] then +msg "git: submodule sync" +"${CFG_GIT}" submodule sync --quiet SUBMODULE_STATUS=$("${CFG_GIT}" submodule status) NEED_INIT_COUNT=$(echo "$SUBMODULE_STATUS" | grep -c "^-") NEED_UPDATE_COUNT=$(echo "$SUBMODULE_STATUS" | grep -c "^+") diff --git a/mk/libuv/ia32/mac/Makefile b/mk/libuv/ia32/mac/Makefile index 22b574234f9..002fef0390a 100644 --- a/mk/libuv/ia32/mac/Makefile +++ b/mk/libuv/ia32/mac/Makefile @@ -8,6 +8,7 @@ MAKEFLAGS=-r # The source directory tree. srcdir := ../../../.. +abs_srcdir := $(abspath $(srcdir)) # The name of the builddir. builddir_name ?= out @@ -20,7 +21,7 @@ else endif # Specify BUILDTYPE=Release on the command line for a release build. -BUILDTYPE ?= Default +BUILDTYPE ?= Debug # Directory all our build output goes into. # Note that this must be two directories beneath src/ for unit tests to pass, @@ -147,7 +148,7 @@ cmd_objcxx = $(CXX.$(TOOLSET)) $(GYP_OBJCXXFLAGS) $(DEPFLAGS) -c -o $@ $< quiet_cmd_pch_c = CXX($(TOOLSET)) $@ cmd_pch_c = $(CC.$(TOOLSET)) $(GYP_PCH_CFLAGS) $(DEPFLAGS) $(CXXFLAGS.$(TOOLSET)) -c -o $@ $< quiet_cmd_pch_cc = CXX($(TOOLSET)) $@ -cmd_pch_cc = $(CC.$(TOOLSET)) $(GYP_PCH_CCFLAGS) $(DEPFLAGS) $(CXXFLAGS.$(TOOLSET)) -c -o $@ $< +cmd_pch_cc = $(CC.$(TOOLSET)) $(GYP_PCH_CXXFLAGS) $(DEPFLAGS) $(CXXFLAGS.$(TOOLSET)) -c -o $@ $< quiet_cmd_pch_m = CXX($(TOOLSET)) $@ cmd_pch_m = $(CC.$(TOOLSET)) $(GYP_PCH_OBJCFLAGS) $(DEPFLAGS) -c -o $@ $< quiet_cmd_pch_mm = CXX($(TOOLSET)) $@ @@ -162,6 +163,9 @@ cmd_mac_tool = ./gyp-mac-tool $(4) $< "$@" quiet_cmd_mac_package_framework = PACKAGE FRAMEWORK $@ cmd_mac_package_framework = ./gyp-mac-tool package-framework "$@" $(4) +quiet_cmd_infoplist = INFOPLIST $@ +cmd_infoplist = $(CC.$(TOOLSET)) -E -P -Wno-trigraphs -x c $(INFOPLIST_DEFINES) "$<" -o "$@" + quiet_cmd_touch = TOUCH $@ cmd_touch = touch $@ @@ -262,8 +266,8 @@ $(if $(or $(command_changed),$(prereq_changed)), ) endef -# Declare "all" target first so it is the default, even though we don't have the -# deps yet. +# Declare the "all" target first so it is the default, +# even though we don't have the deps yet. .PHONY: all all: @@ -343,9 +347,9 @@ ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ include src/libuv/uv.target.mk endif -quiet_cmd_regen_makefile = ACTION Regenerating $@ -cmd_regen_makefile = ./src/libuv/build/gyp/gyp -fmake --ignore-environment "--toplevel-dir=." "--depth=." "--generator-output=mk/libuv/ia32/mac" "-Dlibrary=static_library" "-Dtarget_arch=ia32" "-DOS=mac" src/libuv/uv.gyp -Makefile: $(srcdir)/src/libuv/uv.gyp +#quiet_cmd_regen_makefile = ACTION Regenerating $@ +#cmd_regen_makefile = ./src/libuv/build/gyp/gyp -fmake --ignore-environment "--toplevel-dir=." -Isrc/libuv/common.gypi "--depth=." "--generator-output=mk/libuv/ia32/mac" "-Ddefault_configuration=Default" "-Dcomponent=static_library" "-Dlibrary=static_library" "-Dtarget_arch=ia32" "-DOS=mac" src/libuv/uv.gyp +#Makefile: $(srcdir)/src/libuv/uv.gyp $(srcdir)/src/libuv/common.gypi # $(call do_cmd,regen_makefile) # "all" is a concatenation of the "all" targets from all the included diff --git a/mk/libuv/ia32/mac/Makefile-e b/mk/libuv/ia32/mac/Makefile-e deleted file mode 100644 index 6aca32e6e32..00000000000 --- a/mk/libuv/ia32/mac/Makefile-e +++ /dev/null @@ -1,375 +0,0 @@ -# We borrow heavily from the kernel build setup, though we are simpler since -# we don't have Kconfig tweaking settings on us. - -# The implicit make rules have it looking for RCS files, among other things. -# We instead explicitly write all the rules we care about. -# It's even quicker (saves ~200ms) to pass -r on the command line. -MAKEFLAGS=-r - -# The source directory tree. -srcdir := ../../../.. - -# The name of the builddir. -builddir_name ?= out - -# The V=1 flag on command line makes us verbosely print command lines. -ifdef V - quiet= -else - quiet=quiet_ -endif - -# Specify BUILDTYPE=Release on the command line for a release build. -BUILDTYPE ?= Default - -# Directory all our build output goes into. -# Note that this must be two directories beneath src/ for unit tests to pass, -# as they reach into the src/ directory for data with relative paths. -builddir ?= $(builddir_name)/$(BUILDTYPE) -abs_builddir := $(abspath $(builddir)) -depsdir := $(builddir)/.deps - -# Object output directory. -obj := $(builddir)/obj -abs_obj := $(abspath $(obj)) - -# We build up a list of every single one of the targets so we can slurp in the -# generated dependency rule Makefiles in one pass. -all_deps := - - - -# C++ apps need to be linked with g++. -# -# Note: flock is used to seralize linking. Linking is a memory-intensive -# process so running parallel links can often lead to thrashing. To disable -# the serialization, override LINK via an envrionment variable as follows: -# -# export LINK=g++ -# -# This will allow make to invoke N linker processes as specified in -jN. -LINK ?= ./gyp-mac-tool flock $(builddir)/linker.lock $(CXX) - -CC.target ?= $(CC) -CFLAGS.target ?= $(CFLAGS) -CXX.target ?= $(CXX) -CXXFLAGS.target ?= $(CXXFLAGS) -LINK.target ?= $(LINK) -LDFLAGS.target ?= $(LDFLAGS) -AR.target ?= $(AR) -ARFLAGS.target ?= crs - -# N.B.: the logic of which commands to run should match the computation done -# in gyp's make.py where ARFLAGS.host etc. is computed. -# TODO(evan): move all cross-compilation logic to gyp-time so we don't need -# to replicate this environment fallback in make as well. -CC.host ?= gcc -CFLAGS.host ?= -CXX.host ?= g++ -CXXFLAGS.host ?= -LINK.host ?= g++ -LDFLAGS.host ?= -AR.host ?= ar -ARFLAGS.host := crs - -# Define a dir function that can handle spaces. -# http://www.gnu.org/software/make/manual/make.html#Syntax-of-Functions -# "leading spaces cannot appear in the text of the first argument as written. -# These characters can be put into the argument value by variable substitution." -empty := -space := $(empty) $(empty) - -# http://stackoverflow.com/questions/1189781/using-make-dir-or-notdir-on-a-path-with-spaces -replace_spaces = $(subst $(space),?,$1) -unreplace_spaces = $(subst ?,$(space),$1) -dirx = $(call unreplace_spaces,$(dir $(call replace_spaces,$1))) - -# Flags to make gcc output dependency info. Note that you need to be -# careful here to use the flags that ccache and distcc can understand. -# We write to a dep file on the side first and then rename at the end -# so we can't end up with a broken dep file. -depfile = $(depsdir)/$(call replace_spaces,$@).d -DEPFLAGS = -MMD -MF $(depfile).raw - -# We have to fixup the deps output in a few ways. -# (1) the file output should mention the proper .o file. -# ccache or distcc lose the path to the target, so we convert a rule of -# the form: -# foobar.o: DEP1 DEP2 -# into -# path/to/foobar.o: DEP1 DEP2 -# (2) we want missing files not to cause us to fail to build. -# We want to rewrite -# foobar.o: DEP1 DEP2 \ -# DEP3 -# to -# DEP1: -# DEP2: -# DEP3: -# so if the files are missing, they're just considered phony rules. -# We have to do some pretty insane escaping to get those backslashes -# and dollar signs past make, the shell, and sed at the same time. -# Doesn't work with spaces, but that's fine: .d files have spaces in -# their names replaced with other characters. -define fixup_dep -# The depfile may not exist if the input file didn't have any #includes. -touch $(depfile).raw -# Fixup path as in (1). -sed -e "s|^$(notdir $@)|$@|" $(depfile).raw >> $(depfile) -# Add extra rules as in (2). -# We remove slashes and replace spaces with new lines; -# remove blank lines; -# delete the first line and append a colon to the remaining lines. -sed -e 's|\\||' -e 'y| |\n|' $(depfile).raw |\ - grep -v '^$$' |\ - sed -e 1d -e 's|$$|:|' \ - >> $(depfile) -rm $(depfile).raw -endef - -# Command definitions: -# - cmd_foo is the actual command to run; -# - quiet_cmd_foo is the brief-output summary of the command. - -quiet_cmd_cc = CC($(TOOLSET)) $@ -cmd_cc = $(CC.$(TOOLSET)) $(GYP_CFLAGS) $(DEPFLAGS) $(CFLAGS.$(TOOLSET)) -c -o $@ $< - -quiet_cmd_cxx = CXX($(TOOLSET)) $@ -cmd_cxx = $(CXX.$(TOOLSET)) $(GYP_CXXFLAGS) $(DEPFLAGS) $(CXXFLAGS.$(TOOLSET)) -c -o $@ $< - -quiet_cmd_objc = CXX($(TOOLSET)) $@ -cmd_objc = $(CC.$(TOOLSET)) $(GYP_OBJCFLAGS) $(DEPFLAGS) -c -o $@ $< - -quiet_cmd_objcxx = CXX($(TOOLSET)) $@ -cmd_objcxx = $(CXX.$(TOOLSET)) $(GYP_OBJCXXFLAGS) $(DEPFLAGS) -c -o $@ $< - -# Commands for precompiled header files. -quiet_cmd_pch_c = CXX($(TOOLSET)) $@ -cmd_pch_c = $(CC.$(TOOLSET)) $(GYP_PCH_CFLAGS) $(DEPFLAGS) $(CXXFLAGS.$(TOOLSET)) -c -o $@ $< -quiet_cmd_pch_cc = CXX($(TOOLSET)) $@ -cmd_pch_cc = $(CC.$(TOOLSET)) $(GYP_PCH_CCFLAGS) $(DEPFLAGS) $(CXXFLAGS.$(TOOLSET)) -c -o $@ $< -quiet_cmd_pch_m = CXX($(TOOLSET)) $@ -cmd_pch_m = $(CC.$(TOOLSET)) $(GYP_PCH_OBJCFLAGS) $(DEPFLAGS) -c -o $@ $< -quiet_cmd_pch_mm = CXX($(TOOLSET)) $@ -cmd_pch_mm = $(CC.$(TOOLSET)) $(GYP_PCH_OBJCXXFLAGS) $(DEPFLAGS) -c -o $@ $< - -# gyp-mac-tool is written next to the root Makefile by gyp. -# Use $(4) for the command, since $(2) and $(3) are used as flag by do_cmd -# already. -quiet_cmd_mac_tool = MACTOOL $(4) $< -cmd_mac_tool = ./gyp-mac-tool $(4) $< "$@" - -quiet_cmd_mac_package_framework = PACKAGE FRAMEWORK $@ -cmd_mac_package_framework = ./gyp-mac-tool package-framework "$@" $(4) - -quiet_cmd_touch = TOUCH $@ -cmd_touch = touch $@ - -quiet_cmd_copy = COPY $@ -# send stderr to /dev/null to ignore messages when linking directories. -cmd_copy = ln -f "$<" "$@" 2>/dev/null || (rm -rf "$@" && cp -af "$<" "$@") - -quiet_cmd_alink = LIBTOOL-STATIC $@ -cmd_alink = rm -f $@ && libtool -static -o $@ $(filter %.o,$^) - -quiet_cmd_link = LINK($(TOOLSET)) $@ -cmd_link = $(LINK.$(TOOLSET)) $(GYP_LDFLAGS) $(LDFLAGS.$(TOOLSET)) -o "$@" $(LD_INPUTS) $(LIBS) - -# TODO(thakis): Find out and document the difference between shared_library and -# loadable_module on mac. -quiet_cmd_solink = SOLINK($(TOOLSET)) $@ -cmd_solink = $(LINK.$(TOOLSET)) -shared $(GYP_LDFLAGS) $(LDFLAGS.$(TOOLSET)) -o "$@" $(LD_INPUTS) $(LIBS) - -# TODO(thakis): The solink_module rule is likely wrong. Xcode seems to pass -# -bundle -single_module here (for osmesa.so). -quiet_cmd_solink_module = SOLINK_MODULE($(TOOLSET)) $@ -cmd_solink_module = $(LINK.$(TOOLSET)) -shared $(GYP_LDFLAGS) $(LDFLAGS.$(TOOLSET)) -o $@ $(filter-out FORCE_DO_CMD, $^) $(LIBS) - - -# Define an escape_quotes function to escape single quotes. -# This allows us to handle quotes properly as long as we always use -# use single quotes and escape_quotes. -escape_quotes = $(subst ','\'',$(1)) -# This comment is here just to include a ' to unconfuse syntax highlighting. -# Define an escape_vars function to escape '$' variable syntax. -# This allows us to read/write command lines with shell variables (e.g. -# $LD_LIBRARY_PATH), without triggering make substitution. -escape_vars = $(subst $$,$$$$,$(1)) -# Helper that expands to a shell command to echo a string exactly as it is in -# make. This uses printf instead of echo because printf's behaviour with respect -# to escape sequences is more portable than echo's across different shells -# (e.g., dash, bash). -exact_echo = printf '%s\n' '$(call escape_quotes,$(1))' - -# Helper to compare the command we're about to run against the command -# we logged the last time we ran the command. Produces an empty -# string (false) when the commands match. -# Tricky point: Make has no string-equality test function. -# The kernel uses the following, but it seems like it would have false -# positives, where one string reordered its arguments. -# arg_check = $(strip $(filter-out $(cmd_$(1)), $(cmd_$@)) \ -# $(filter-out $(cmd_$@), $(cmd_$(1)))) -# We instead substitute each for the empty string into the other, and -# say they're equal if both substitutions produce the empty string. -# .d files contain ? instead of spaces, take that into account. -command_changed = $(or $(subst $(cmd_$(1)),,$(cmd_$(call replace_spaces,$@))),\ - $(subst $(cmd_$(call replace_spaces,$@)),,$(cmd_$(1)))) - -# Helper that is non-empty when a prerequisite changes. -# Normally make does this implicitly, but we force rules to always run -# so we can check their command lines. -# $? -- new prerequisites -# $| -- order-only dependencies -prereq_changed = $(filter-out FORCE_DO_CMD,$(filter-out $|,$?)) - -# Helper that executes all postbuilds, and deletes the output file when done -# if any of the postbuilds failed. -define do_postbuilds - @E=0;\ - for p in $(POSTBUILDS); do\ - eval $$p;\ - F=$$?;\ - if [ $$F -ne 0 ]; then\ - E=$$F;\ - fi;\ - done;\ - if [ $$E -ne 0 ]; then\ - rm -rf "$@";\ - exit $$E;\ - fi -endef - -# do_cmd: run a command via the above cmd_foo names, if necessary. -# Should always run for a given target to handle command-line changes. -# Second argument, if non-zero, makes it do asm/C/C++ dependency munging. -# Third argument, if non-zero, makes it do POSTBUILDS processing. -# Note: We intentionally do NOT call dirx for depfile, since it contains ? for -# spaces already and dirx strips the ? characters. -define do_cmd -$(if $(or $(command_changed),$(prereq_changed)), - @$(call exact_echo, $($(quiet)cmd_$(1))) - @mkdir -p "$(call dirx,$@)" "$(dir $(depfile))" - $(if $(findstring flock,$(word 2,$(cmd_$1))), - @$(cmd_$(1)) - @echo " $(quiet_cmd_$(1)): Finished", - @$(cmd_$(1)) - ) - @$(call exact_echo,$(call escape_vars,cmd_$(call replace_spaces,$@) := $(cmd_$(1)))) > $(depfile) - @$(if $(2),$(fixup_dep)) - $(if $(and $(3), $(POSTBUILDS)), - $(call do_postbuilds) - ) -) -endef - -# Declare "all" target first so it is the default, even though we don't have the -# deps yet. -.PHONY: all -all: - -# Use FORCE_DO_CMD to force a target to run. Should be coupled with -# do_cmd. -.PHONY: FORCE_DO_CMD -FORCE_DO_CMD: - -TOOLSET := target -# Suffix rules, putting all outputs into $(obj). -$(obj).$(TOOLSET)/%.o: $(srcdir)/%.c FORCE_DO_CMD - @$(call do_cmd,cc,1) -$(obj).$(TOOLSET)/%.o: $(srcdir)/%.cc FORCE_DO_CMD - @$(call do_cmd,cxx,1) -$(obj).$(TOOLSET)/%.o: $(srcdir)/%.cpp FORCE_DO_CMD - @$(call do_cmd,cxx,1) -$(obj).$(TOOLSET)/%.o: $(srcdir)/%.cxx FORCE_DO_CMD - @$(call do_cmd,cxx,1) -$(obj).$(TOOLSET)/%.o: $(srcdir)/%.m FORCE_DO_CMD - @$(call do_cmd,objc,1) -$(obj).$(TOOLSET)/%.o: $(srcdir)/%.mm FORCE_DO_CMD - @$(call do_cmd,objcxx,1) -$(obj).$(TOOLSET)/%.o: $(srcdir)/%.S FORCE_DO_CMD - @$(call do_cmd,cc,1) -$(obj).$(TOOLSET)/%.o: $(srcdir)/%.s FORCE_DO_CMD - @$(call do_cmd,cc,1) - -# Try building from generated source, too. -$(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.c FORCE_DO_CMD - @$(call do_cmd,cc,1) -$(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.cc FORCE_DO_CMD - @$(call do_cmd,cxx,1) -$(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.cpp FORCE_DO_CMD - @$(call do_cmd,cxx,1) -$(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.cxx FORCE_DO_CMD - @$(call do_cmd,cxx,1) -$(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.m FORCE_DO_CMD - @$(call do_cmd,objc,1) -$(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.mm FORCE_DO_CMD - @$(call do_cmd,objcxx,1) -$(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.S FORCE_DO_CMD - @$(call do_cmd,cc,1) -$(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.s FORCE_DO_CMD - @$(call do_cmd,cc,1) - -$(obj).$(TOOLSET)/%.o: $(obj)/%.c FORCE_DO_CMD - @$(call do_cmd,cc,1) -$(obj).$(TOOLSET)/%.o: $(obj)/%.cc FORCE_DO_CMD - @$(call do_cmd,cxx,1) -$(obj).$(TOOLSET)/%.o: $(obj)/%.cpp FORCE_DO_CMD - @$(call do_cmd,cxx,1) -$(obj).$(TOOLSET)/%.o: $(obj)/%.cxx FORCE_DO_CMD - @$(call do_cmd,cxx,1) -$(obj).$(TOOLSET)/%.o: $(obj)/%.m FORCE_DO_CMD - @$(call do_cmd,objc,1) -$(obj).$(TOOLSET)/%.o: $(obj)/%.mm FORCE_DO_CMD - @$(call do_cmd,objcxx,1) -$(obj).$(TOOLSET)/%.o: $(obj)/%.S FORCE_DO_CMD - @$(call do_cmd,cc,1) -$(obj).$(TOOLSET)/%.o: $(obj)/%.s FORCE_DO_CMD - @$(call do_cmd,cc,1) - - -ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ - $(findstring $(join ^,$(prefix)),\ - $(join ^,src/libuv/run-benchmarks.target.mk)))),) - include src/libuv/run-benchmarks.target.mk -endif -ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ - $(findstring $(join ^,$(prefix)),\ - $(join ^,src/libuv/run-tests.target.mk)))),) - include src/libuv/run-tests.target.mk -endif -ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ - $(findstring $(join ^,$(prefix)),\ - $(join ^,src/libuv/uv.target.mk)))),) - include src/libuv/uv.target.mk -endif - -quiet_cmd_regen_makefile = ACTION Regenerating $@ -cmd_regen_makefile = ./src/libuv/build/gyp/gyp -fmake --ignore-environment "--toplevel-dir=." "--depth=." "--generator-output=mk/libuv/ia32/mac" "-Dlibrary=static_library" "-Dtarget_arch=ia32" "-DOS=mac" src/libuv/uv.gyp -Makefile: $(srcdir)/src/libuv/uv.gyp - $(call do_cmd,regen_makefile) - -# "all" is a concatenation of the "all" targets from all the included -# sub-makefiles. This is just here to clarify. -all: - -# Add in dependency-tracking rules. $(all_deps) is the list of every single -# target in our tree. Only consider the ones with .d (dependency) info: -d_files := $(wildcard $(foreach f,$(all_deps),$(depsdir)/$(f).d)) -ifneq ($(d_files),) - # Rather than include each individual .d file, concatenate them into a - # single file which make is able to load faster. We split this into - # commands that take 1000 files at a time to avoid overflowing the - # command line. - $(shell cat $(wordlist 1,1000,$(d_files)) > $(depsdir)/all.deps) - - ifneq ($(word 1001,$(d_files)),) - $(error Found unprocessed dependency files (gyp didn't generate enough rules!)) - endif - - # make looks for ways to re-generate included makefiles, but in our case, we - # don't have a direct way. Explicitly telling make that it has nothing to do - # for them makes it go faster. - $(depsdir)/all.deps: ; - - include $(depsdir)/all.deps -endif diff --git a/mk/libuv/ia32/mac/gyp-mac-tool b/mk/libuv/ia32/mac/gyp-mac-tool index 7eb894b23ef..bd4059840ea 100755 --- a/mk/libuv/ia32/mac/gyp-mac-tool +++ b/mk/libuv/ia32/mac/gyp-mac-tool @@ -1,4 +1,4 @@ -#!/usr/bin/python +#!/usr/bin/env python # Generated by gyp. Do not edit. # Copyright (c) 2011 Google Inc. All rights reserved. # Use of this source code is governed by a BSD-style license that can be @@ -17,10 +17,12 @@ import string import subprocess import sys + def main(args): executor = MacTool() executor.Dispatch(args) + class MacTool(object): """This class performs all the Mac tooling steps. The methods can either be executed directly, or dispatched from an argument list.""" @@ -74,12 +76,14 @@ class MacTool(object): if not plist: return - # The format of PkgInfo is eight characters, representing the bundle type - # and bundle signature, each four characters. If either is missing, four - # '?' characters are used instead. + # Only create PkgInfo for executable types. package_type = plist['CFBundlePackageType'] - if len(package_type) != 4: - package_type = '?' * 4 + if package_type != 'APPL': + return + + # The format of PkgInfo is eight characters, representing the bundle type + # and bundle signature, each four characters. If that is missing, four + # '?' characters are used instead. signature_code = plist['CFBundleSignature'] if len(signature_code) != 4: signature_code = '?' * 4 @@ -184,5 +188,6 @@ class MacTool(object): else: return None + if __name__ == '__main__': sys.exit(main(sys.argv[1:])) diff --git a/mk/libuv/ia32/mac/src/libuv/run-benchmarks.target.mk b/mk/libuv/ia32/mac/src/libuv/run-benchmarks.target.mk index 64d150f24fc..b8cc0a1c483 100644 --- a/mk/libuv/ia32/mac/src/libuv/run-benchmarks.target.mk +++ b/mk/libuv/ia32/mac/src/libuv/run-benchmarks.target.mk @@ -2,31 +2,77 @@ TOOLSET := target TARGET := run-benchmarks -DEFS_Default := '-D_LARGEFILE_SOURCE' \ +DEFS_Debug := '-D_LARGEFILE_SOURCE' \ '-D_FILE_OFFSET_BITS=64' \ '-D_GNU_SOURCE' \ - '-DEIO_STACKSIZE=262144' + '-DEIO_STACKSIZE=262144' \ + '-DDEBUG' \ + '-D_DEBUG' \ + '-DEV_VERIFY=2' # Flags passed to all source files. -CFLAGS_Default := -fasm-blocks \ - -mpascal-strings \ - -Os \ +CFLAGS_Debug := -Os \ -gdwarf-2 \ - -arch i386 + -fvisibility=hidden \ + -Wnewline-eof \ + -arch i386 \ + -fno-strict-aliasing \ + -Wall \ + -Wendif-labels \ + -W \ + -Wno-unused-parameter # Flags passed to only C files. -CFLAGS_C_Default := +CFLAGS_C_Debug := # Flags passed to only C++ files. -CFLAGS_CC_Default := +CFLAGS_CC_Debug := -fno-rtti \ + -fno-exceptions \ + -fvisibility-inlines-hidden \ + -fno-threadsafe-statics # Flags passed to only ObjC files. -CFLAGS_OBJC_Default := +CFLAGS_OBJC_Debug := # Flags passed to only ObjC++ files. -CFLAGS_OBJCC_Default := +CFLAGS_OBJCC_Debug := -INCS_Default := -I$(srcdir)/src/libuv/include +INCS_Debug := -I$(srcdir)/src/libuv/include + +DEFS_Release := '-D_LARGEFILE_SOURCE' \ + '-D_FILE_OFFSET_BITS=64' \ + '-D_GNU_SOURCE' \ + '-DEIO_STACKSIZE=262144' \ + '-DNDEBUG' + +# Flags passed to all source files. +CFLAGS_Release := -Os \ + -gdwarf-2 \ + -fvisibility=hidden \ + -Wnewline-eof \ + -arch i386 \ + -fno-strict-aliasing \ + -Wall \ + -Wendif-labels \ + -W \ + -Wno-unused-parameter + +# Flags passed to only C files. +CFLAGS_C_Release := + +# Flags passed to only C++ files. +CFLAGS_CC_Release := -fno-rtti \ + -fno-exceptions \ + -fvisibility-inlines-hidden \ + -fno-threadsafe-statics + +# Flags passed to only ObjC files. +CFLAGS_OBJC_Release := + +# Flags passed to only ObjC++ files. +CFLAGS_OBJCC_Release := + +INCS_Release := -I$(srcdir)/src/libuv/include OBJS := $(obj).target/$(TARGET)/src/libuv/test/benchmark-ares.o \ $(obj).target/$(TARGET)/src/libuv/test/benchmark-getaddrinfo.o \ @@ -35,6 +81,7 @@ OBJS := $(obj).target/$(TARGET)/src/libuv/test/benchmark-ares.o \ $(obj).target/$(TARGET)/src/libuv/test/benchmark-pump.o \ $(obj).target/$(TARGET)/src/libuv/test/benchmark-sizes.o \ $(obj).target/$(TARGET)/src/libuv/test/benchmark-spawn.o \ + $(obj).target/$(TARGET)/src/libuv/test/benchmark-thread.o \ $(obj).target/$(TARGET)/src/libuv/test/benchmark-tcp-write-batch.o \ $(obj).target/$(TARGET)/src/libuv/test/benchmark-udp-packet-storm.o \ $(obj).target/$(TARGET)/src/libuv/test/dns-server.o \ @@ -53,10 +100,10 @@ $(OBJS): | $(builddir)/libuv.a # CFLAGS et al overrides must be target-local. # See "Target-specific Variable Values" in the GNU Make manual. $(OBJS): TOOLSET := $(TOOLSET) -$(OBJS): GYP_CFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_C_$(BUILDTYPE)) -$(OBJS): GYP_CXXFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_CC_$(BUILDTYPE)) -$(OBJS): GYP_OBJCFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_C_$(BUILDTYPE)) $(CFLAGS_OBJC_$(BUILDTYPE)) -$(OBJS): GYP_OBJCXXFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_CC_$(BUILDTYPE)) $(CFLAGS_OBJCC_$(BUILDTYPE)) +$(OBJS): GYP_CFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_C_$(BUILDTYPE)) +$(OBJS): GYP_CXXFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_CC_$(BUILDTYPE)) +$(OBJS): GYP_OBJCFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_C_$(BUILDTYPE)) $(CFLAGS_OBJC_$(BUILDTYPE)) +$(OBJS): GYP_OBJCXXFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_CC_$(BUILDTYPE)) $(CFLAGS_OBJCC_$(BUILDTYPE)) # Suffix rules, putting all outputs into $(obj). @@ -73,7 +120,12 @@ $(obj).$(TOOLSET)/$(TARGET)/%.o: $(obj)/%.c FORCE_DO_CMD # End of this set of suffix rules ### Rules for final target. -LDFLAGS_Default := -arch i386 \ +LDFLAGS_Debug := -Wl,-search_paths_first \ + -arch i386 \ + -L$(builddir) + +LDFLAGS_Release := -Wl,-search_paths_first \ + -arch i386 \ -L$(builddir) LIBS := -framework Carbon \ diff --git a/mk/libuv/ia32/mac/src/libuv/run-tests.target.mk b/mk/libuv/ia32/mac/src/libuv/run-tests.target.mk index 5a5730b0f65..be0c2c60856 100644 --- a/mk/libuv/ia32/mac/src/libuv/run-tests.target.mk +++ b/mk/libuv/ia32/mac/src/libuv/run-tests.target.mk @@ -2,42 +2,91 @@ TOOLSET := target TARGET := run-tests -DEFS_Default := '-D_LARGEFILE_SOURCE' \ +DEFS_Debug := '-D_LARGEFILE_SOURCE' \ '-D_FILE_OFFSET_BITS=64' \ '-D_GNU_SOURCE' \ - '-DEIO_STACKSIZE=262144' + '-DEIO_STACKSIZE=262144' \ + '-DDEBUG' \ + '-D_DEBUG' \ + '-DEV_VERIFY=2' # Flags passed to all source files. -CFLAGS_Default := -fasm-blocks \ - -mpascal-strings \ - -Os \ +CFLAGS_Debug := -Os \ -gdwarf-2 \ - -arch i386 + -fvisibility=hidden \ + -Wnewline-eof \ + -arch i386 \ + -fno-strict-aliasing \ + -Wall \ + -Wendif-labels \ + -W \ + -Wno-unused-parameter # Flags passed to only C files. -CFLAGS_C_Default := +CFLAGS_C_Debug := # Flags passed to only C++ files. -CFLAGS_CC_Default := +CFLAGS_CC_Debug := -fno-rtti \ + -fno-exceptions \ + -fvisibility-inlines-hidden \ + -fno-threadsafe-statics # Flags passed to only ObjC files. -CFLAGS_OBJC_Default := +CFLAGS_OBJC_Debug := # Flags passed to only ObjC++ files. -CFLAGS_OBJCC_Default := +CFLAGS_OBJCC_Debug := -INCS_Default := -I$(srcdir)/src/libuv/include +INCS_Debug := -I$(srcdir)/src/libuv/include + +DEFS_Release := '-D_LARGEFILE_SOURCE' \ + '-D_FILE_OFFSET_BITS=64' \ + '-D_GNU_SOURCE' \ + '-DEIO_STACKSIZE=262144' \ + '-DNDEBUG' + +# Flags passed to all source files. +CFLAGS_Release := -Os \ + -gdwarf-2 \ + -fvisibility=hidden \ + -Wnewline-eof \ + -arch i386 \ + -fno-strict-aliasing \ + -Wall \ + -Wendif-labels \ + -W \ + -Wno-unused-parameter + +# Flags passed to only C files. +CFLAGS_C_Release := + +# Flags passed to only C++ files. +CFLAGS_CC_Release := -fno-rtti \ + -fno-exceptions \ + -fvisibility-inlines-hidden \ + -fno-threadsafe-statics + +# Flags passed to only ObjC files. +CFLAGS_OBJC_Release := + +# Flags passed to only ObjC++ files. +CFLAGS_OBJCC_Release := + +INCS_Release := -I$(srcdir)/src/libuv/include OBJS := $(obj).target/$(TARGET)/src/libuv/test/blackhole-server.o \ $(obj).target/$(TARGET)/src/libuv/test/echo-server.o \ $(obj).target/$(TARGET)/src/libuv/test/run-tests.o \ $(obj).target/$(TARGET)/src/libuv/test/runner.o \ $(obj).target/$(TARGET)/src/libuv/test/test-get-loadavg.o \ + $(obj).target/$(TARGET)/src/libuv/test/test-util.o \ $(obj).target/$(TARGET)/src/libuv/test/test-async.o \ $(obj).target/$(TARGET)/src/libuv/test/test-error.o \ $(obj).target/$(TARGET)/src/libuv/test/test-callback-stack.o \ $(obj).target/$(TARGET)/src/libuv/test/test-connection-fail.o \ + $(obj).target/$(TARGET)/src/libuv/test/test-cwd-and-chdir.o \ $(obj).target/$(TARGET)/src/libuv/test/test-delayed-accept.o \ + $(obj).target/$(TARGET)/src/libuv/test/test-eio-overflow.o \ $(obj).target/$(TARGET)/src/libuv/test/test-fail-always.o \ $(obj).target/$(TARGET)/src/libuv/test/test-fs.o \ $(obj).target/$(TARGET)/src/libuv/test/test-fs-event.o \ @@ -49,12 +98,15 @@ OBJS := $(obj).target/$(TARGET)/src/libuv/test/blackhole-server.o \ $(obj).target/$(TARGET)/src/libuv/test/test-hrtime.o \ $(obj).target/$(TARGET)/src/libuv/test/test-idle.o \ $(obj).target/$(TARGET)/src/libuv/test/test-ipc.o \ + $(obj).target/$(TARGET)/src/libuv/test/test-ipc-threads.o \ $(obj).target/$(TARGET)/src/libuv/test/test-loop-handles.o \ $(obj).target/$(TARGET)/src/libuv/test/test-multiple-listen.o \ $(obj).target/$(TARGET)/src/libuv/test/test-pass-always.o \ $(obj).target/$(TARGET)/src/libuv/test/test-ping-pong.o \ $(obj).target/$(TARGET)/src/libuv/test/test-pipe-bind-error.o \ $(obj).target/$(TARGET)/src/libuv/test/test-pipe-connect-error.o \ + $(obj).target/$(TARGET)/src/libuv/test/test-platform-output.o \ + $(obj).target/$(TARGET)/src/libuv/test/test-process-title.o \ $(obj).target/$(TARGET)/src/libuv/test/test-ref.o \ $(obj).target/$(TARGET)/src/libuv/test/test-shutdown-eof.o \ $(obj).target/$(TARGET)/src/libuv/test/test-spawn.o \ @@ -69,13 +121,17 @@ OBJS := $(obj).target/$(TARGET)/src/libuv/test/blackhole-server.o \ $(obj).target/$(TARGET)/src/libuv/test/test-tcp-write-to-half-open-connection.o \ $(obj).target/$(TARGET)/src/libuv/test/test-tcp-writealot.o \ $(obj).target/$(TARGET)/src/libuv/test/test-threadpool.o \ + $(obj).target/$(TARGET)/src/libuv/test/test-mutexes.o \ + $(obj).target/$(TARGET)/src/libuv/test/test-thread.o \ $(obj).target/$(TARGET)/src/libuv/test/test-timer-again.o \ $(obj).target/$(TARGET)/src/libuv/test/test-timer.o \ $(obj).target/$(TARGET)/src/libuv/test/test-tty.o \ $(obj).target/$(TARGET)/src/libuv/test/test-udp-dgram-too-big.o \ $(obj).target/$(TARGET)/src/libuv/test/test-udp-ipv6.o \ + $(obj).target/$(TARGET)/src/libuv/test/test-udp-options.o \ $(obj).target/$(TARGET)/src/libuv/test/test-udp-send-and-recv.o \ $(obj).target/$(TARGET)/src/libuv/test/test-udp-multicast-join.o \ + $(obj).target/$(TARGET)/src/libuv/test/test-counters-init.o \ $(obj).target/$(TARGET)/src/libuv/test/runner-unix.o # Add to the list of files we specially track dependencies for. @@ -87,10 +143,10 @@ $(OBJS): | $(builddir)/libuv.a # CFLAGS et al overrides must be target-local. # See "Target-specific Variable Values" in the GNU Make manual. $(OBJS): TOOLSET := $(TOOLSET) -$(OBJS): GYP_CFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_C_$(BUILDTYPE)) -$(OBJS): GYP_CXXFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_CC_$(BUILDTYPE)) -$(OBJS): GYP_OBJCFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_C_$(BUILDTYPE)) $(CFLAGS_OBJC_$(BUILDTYPE)) -$(OBJS): GYP_OBJCXXFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_CC_$(BUILDTYPE)) $(CFLAGS_OBJCC_$(BUILDTYPE)) +$(OBJS): GYP_CFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_C_$(BUILDTYPE)) +$(OBJS): GYP_CXXFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_CC_$(BUILDTYPE)) +$(OBJS): GYP_OBJCFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_C_$(BUILDTYPE)) $(CFLAGS_OBJC_$(BUILDTYPE)) +$(OBJS): GYP_OBJCXXFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_CC_$(BUILDTYPE)) $(CFLAGS_OBJCC_$(BUILDTYPE)) # Suffix rules, putting all outputs into $(obj). @@ -107,7 +163,12 @@ $(obj).$(TOOLSET)/$(TARGET)/%.o: $(obj)/%.c FORCE_DO_CMD # End of this set of suffix rules ### Rules for final target. -LDFLAGS_Default := -arch i386 \ +LDFLAGS_Debug := -Wl,-search_paths_first \ + -arch i386 \ + -L$(builddir) + +LDFLAGS_Release := -Wl,-search_paths_first \ + -arch i386 \ -L$(builddir) LIBS := -framework Carbon \ diff --git a/mk/libuv/ia32/mac/src/libuv/uv.target.mk b/mk/libuv/ia32/mac/src/libuv/uv.target.mk index 28f911f4dc7..98386060982 100644 --- a/mk/libuv/ia32/mac/src/libuv/uv.target.mk +++ b/mk/libuv/ia32/mac/src/libuv/uv.target.mk @@ -2,34 +2,87 @@ TOOLSET := target TARGET := uv -DEFS_Default := '-D_LARGEFILE_SOURCE' \ +DEFS_Debug := '-D_LARGEFILE_SOURCE' \ '-D_FILE_OFFSET_BITS=64' \ '-D_GNU_SOURCE' \ '-DEIO_STACKSIZE=262144' \ '-DHAVE_CONFIG_H' \ '-DEV_CONFIG_H="config_darwin.h"' \ - '-DEIO_CONFIG_H="config_darwin.h"' + '-DEIO_CONFIG_H="config_darwin.h"' \ + '-DDEBUG' \ + '-D_DEBUG' \ + '-DEV_VERIFY=2' # Flags passed to all source files. -CFLAGS_Default := -fasm-blocks \ - -mpascal-strings \ - -Os \ +CFLAGS_Debug := -Os \ -gdwarf-2 \ - -arch i386 + -fvisibility=hidden \ + -Wnewline-eof \ + -arch i386 \ + -fno-strict-aliasing \ + -Wall \ + -Wendif-labels \ + -W \ + -Wno-unused-parameter # Flags passed to only C files. -CFLAGS_C_Default := +CFLAGS_C_Debug := # Flags passed to only C++ files. -CFLAGS_CC_Default := +CFLAGS_CC_Debug := -fno-rtti \ + -fno-exceptions \ + -fvisibility-inlines-hidden \ + -fno-threadsafe-statics # Flags passed to only ObjC files. -CFLAGS_OBJC_Default := +CFLAGS_OBJC_Debug := # Flags passed to only ObjC++ files. -CFLAGS_OBJCC_Default := +CFLAGS_OBJCC_Debug := -INCS_Default := -I$(srcdir)/src/libuv/include \ +INCS_Debug := -I$(srcdir)/src/libuv/include \ + -I$(srcdir)/src/libuv/include/uv-private \ + -I$(srcdir)/src/libuv/src \ + -I$(srcdir)/src/libuv/src/unix/ev \ + -I$(srcdir)/src/libuv/src/ares/config_darwin + +DEFS_Release := '-D_LARGEFILE_SOURCE' \ + '-D_FILE_OFFSET_BITS=64' \ + '-D_GNU_SOURCE' \ + '-DEIO_STACKSIZE=262144' \ + '-DHAVE_CONFIG_H' \ + '-DEV_CONFIG_H="config_darwin.h"' \ + '-DEIO_CONFIG_H="config_darwin.h"' \ + '-DNDEBUG' + +# Flags passed to all source files. +CFLAGS_Release := -Os \ + -gdwarf-2 \ + -fvisibility=hidden \ + -Wnewline-eof \ + -arch i386 \ + -fno-strict-aliasing \ + -Wall \ + -Wendif-labels \ + -W \ + -Wno-unused-parameter + +# Flags passed to only C files. +CFLAGS_C_Release := + +# Flags passed to only C++ files. +CFLAGS_CC_Release := -fno-rtti \ + -fno-exceptions \ + -fvisibility-inlines-hidden \ + -fno-threadsafe-statics + +# Flags passed to only ObjC files. +CFLAGS_OBJC_Release := + +# Flags passed to only ObjC++ files. +CFLAGS_OBJCC_Release := + +INCS_Release := -I$(srcdir)/src/libuv/include \ -I$(srcdir)/src/libuv/include/uv-private \ -I$(srcdir)/src/libuv/src \ -I$(srcdir)/src/libuv/src/unix/ev \ @@ -91,6 +144,7 @@ OBJS := $(obj).target/$(TARGET)/src/libuv/src/uv-common.o \ $(obj).target/$(TARGET)/src/libuv/src/unix/cares.o \ $(obj).target/$(TARGET)/src/libuv/src/unix/dl.o \ $(obj).target/$(TARGET)/src/libuv/src/unix/error.o \ + $(obj).target/$(TARGET)/src/libuv/src/unix/thread.o \ $(obj).target/$(TARGET)/src/libuv/src/unix/process.o \ $(obj).target/$(TARGET)/src/libuv/src/unix/eio/eio.o \ $(obj).target/$(TARGET)/src/libuv/src/unix/ev/ev.o \ @@ -103,10 +157,10 @@ all_deps += $(OBJS) # CFLAGS et al overrides must be target-local. # See "Target-specific Variable Values" in the GNU Make manual. $(OBJS): TOOLSET := $(TOOLSET) -$(OBJS): GYP_CFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_C_$(BUILDTYPE)) -$(OBJS): GYP_CXXFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_CC_$(BUILDTYPE)) -$(OBJS): GYP_OBJCFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_C_$(BUILDTYPE)) $(CFLAGS_OBJC_$(BUILDTYPE)) -$(OBJS): GYP_OBJCXXFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_CC_$(BUILDTYPE)) $(CFLAGS_OBJCC_$(BUILDTYPE)) +$(OBJS): GYP_CFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_C_$(BUILDTYPE)) +$(OBJS): GYP_CXXFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_CC_$(BUILDTYPE)) +$(OBJS): GYP_OBJCFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_C_$(BUILDTYPE)) $(CFLAGS_OBJC_$(BUILDTYPE)) +$(OBJS): GYP_OBJCXXFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_CC_$(BUILDTYPE)) $(CFLAGS_OBJCC_$(BUILDTYPE)) # Suffix rules, putting all outputs into $(obj). @@ -123,7 +177,10 @@ $(obj).$(TOOLSET)/$(TARGET)/%.o: $(obj)/%.c FORCE_DO_CMD # End of this set of suffix rules ### Rules for final target. -LDFLAGS_Default := -arch i386 \ +LDFLAGS_Debug := -arch i386 \ + -L$(builddir) + +LDFLAGS_Release := -arch i386 \ -L$(builddir) LIBS := -lm diff --git a/mk/libuv/ia32/unix/Makefile b/mk/libuv/ia32/unix/Makefile index 66a9e7d2058..4369fdb9a23 100644 --- a/mk/libuv/ia32/unix/Makefile +++ b/mk/libuv/ia32/unix/Makefile @@ -8,6 +8,7 @@ MAKEFLAGS=-r # The source directory tree. srcdir := ../../../.. +abs_srcdir := $(abspath $(srcdir)) # The name of the builddir. builddir_name ?= out @@ -20,7 +21,7 @@ else endif # Specify BUILDTYPE=Release on the command line for a release build. -BUILDTYPE ?= Default +BUILDTYPE ?= Debug # Directory all our build output goes into. # Note that this must be two directories beneath src/ for unit tests to pass, @@ -252,8 +253,8 @@ $(if $(or $(command_changed),$(prereq_changed)), ) endef -# Declare "all" target first so it is the default, even though we don't have the -# deps yet. +# Declare the "all" target first so it is the default, +# even though we don't have the deps yet. .PHONY: all all: @@ -321,9 +322,9 @@ ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ include src/libuv/uv.target.mk endif -quiet_cmd_regen_makefile = ACTION Regenerating $@ -cmd_regen_makefile = ./src/libuv/build/gyp/gyp -fmake --ignore-environment "--toplevel-dir=." "--depth=." "--generator-output=mk/libuv/ia32/unix" "-Dlibrary=static_library" "-Dtarget_arch=ia32" "-DOS=linux" src/libuv/uv.gyp -Makefile: $(srcdir)/src/libuv/uv.gyp +#quiet_cmd_regen_makefile = ACTION Regenerating $@ +#cmd_regen_makefile = ./src/libuv/build/gyp/gyp -fmake --ignore-environment "--toplevel-dir=." -Isrc/libuv/common.gypi "--depth=." "--generator-output=mk/libuv/ia32/unix" "-Ddefault_configuration=Default" "-Dcomponent=static_library" "-Dlibrary=static_library" "-Dtarget_arch=ia32" "-DOS=linux" src/libuv/uv.gyp +#Makefile: $(srcdir)/src/libuv/uv.gyp $(srcdir)/src/libuv/common.gypi # $(call do_cmd,regen_makefile) # "all" is a concatenation of the "all" targets from all the included diff --git a/mk/libuv/ia32/unix/Makefile-e b/mk/libuv/ia32/unix/Makefile-e deleted file mode 100644 index ffbb1064221..00000000000 --- a/mk/libuv/ia32/unix/Makefile-e +++ /dev/null @@ -1,353 +0,0 @@ -# We borrow heavily from the kernel build setup, though we are simpler since -# we don't have Kconfig tweaking settings on us. - -# The implicit make rules have it looking for RCS files, among other things. -# We instead explicitly write all the rules we care about. -# It's even quicker (saves ~200ms) to pass -r on the command line. -MAKEFLAGS=-r - -# The source directory tree. -srcdir := ../../../.. - -# The name of the builddir. -builddir_name ?= out - -# The V=1 flag on command line makes us verbosely print command lines. -ifdef V - quiet= -else - quiet=quiet_ -endif - -# Specify BUILDTYPE=Release on the command line for a release build. -BUILDTYPE ?= Default - -# Directory all our build output goes into. -# Note that this must be two directories beneath src/ for unit tests to pass, -# as they reach into the src/ directory for data with relative paths. -builddir ?= $(builddir_name)/$(BUILDTYPE) -abs_builddir := $(abspath $(builddir)) -depsdir := $(builddir)/.deps - -# Object output directory. -obj := $(builddir)/obj -abs_obj := $(abspath $(obj)) - -# We build up a list of every single one of the targets so we can slurp in the -# generated dependency rule Makefiles in one pass. -all_deps := - - - -# C++ apps need to be linked with g++. -# -# Note: flock is used to seralize linking. Linking is a memory-intensive -# process so running parallel links can often lead to thrashing. To disable -# the serialization, override LINK via an envrionment variable as follows: -# -# export LINK=g++ -# -# This will allow make to invoke N linker processes as specified in -jN. -LINK ?= flock $(builddir)/linker.lock $(CXX) - -CC.target ?= $(CC) -CFLAGS.target ?= $(CFLAGS) -CXX.target ?= $(CXX) -CXXFLAGS.target ?= $(CXXFLAGS) -LINK.target ?= $(LINK) -LDFLAGS.target ?= $(LDFLAGS) -AR.target ?= $(AR) -ARFLAGS.target ?= crsT - -# N.B.: the logic of which commands to run should match the computation done -# in gyp's make.py where ARFLAGS.host etc. is computed. -# TODO(evan): move all cross-compilation logic to gyp-time so we don't need -# to replicate this environment fallback in make as well. -CC.host ?= gcc -CFLAGS.host ?= -CXX.host ?= g++ -CXXFLAGS.host ?= -LINK.host ?= g++ -LDFLAGS.host ?= -AR.host ?= ar -ARFLAGS.host := crsT - -# Define a dir function that can handle spaces. -# http://www.gnu.org/software/make/manual/make.html#Syntax-of-Functions -# "leading spaces cannot appear in the text of the first argument as written. -# These characters can be put into the argument value by variable substitution." -empty := -space := $(empty) $(empty) - -# http://stackoverflow.com/questions/1189781/using-make-dir-or-notdir-on-a-path-with-spaces -replace_spaces = $(subst $(space),?,$1) -unreplace_spaces = $(subst ?,$(space),$1) -dirx = $(call unreplace_spaces,$(dir $(call replace_spaces,$1))) - -# Flags to make gcc output dependency info. Note that you need to be -# careful here to use the flags that ccache and distcc can understand. -# We write to a dep file on the side first and then rename at the end -# so we can't end up with a broken dep file. -depfile = $(depsdir)/$(call replace_spaces,$@).d -DEPFLAGS = -MMD -MF $(depfile).raw - -# We have to fixup the deps output in a few ways. -# (1) the file output should mention the proper .o file. -# ccache or distcc lose the path to the target, so we convert a rule of -# the form: -# foobar.o: DEP1 DEP2 -# into -# path/to/foobar.o: DEP1 DEP2 -# (2) we want missing files not to cause us to fail to build. -# We want to rewrite -# foobar.o: DEP1 DEP2 \ -# DEP3 -# to -# DEP1: -# DEP2: -# DEP3: -# so if the files are missing, they're just considered phony rules. -# We have to do some pretty insane escaping to get those backslashes -# and dollar signs past make, the shell, and sed at the same time. -# Doesn't work with spaces, but that's fine: .d files have spaces in -# their names replaced with other characters. -define fixup_dep -# The depfile may not exist if the input file didn't have any #includes. -touch $(depfile).raw -# Fixup path as in (1). -sed -e "s|^$(notdir $@)|$@|" $(depfile).raw >> $(depfile) -# Add extra rules as in (2). -# We remove slashes and replace spaces with new lines; -# remove blank lines; -# delete the first line and append a colon to the remaining lines. -sed -e 's|\\||' -e 'y| |\n|' $(depfile).raw |\ - grep -v '^$$' |\ - sed -e 1d -e 's|$$|:|' \ - >> $(depfile) -rm $(depfile).raw -endef - -# Command definitions: -# - cmd_foo is the actual command to run; -# - quiet_cmd_foo is the brief-output summary of the command. - -quiet_cmd_cc = CC($(TOOLSET)) $@ -cmd_cc = $(CC.$(TOOLSET)) $(GYP_CFLAGS) $(DEPFLAGS) $(CFLAGS.$(TOOLSET)) -c -o $@ $< - -quiet_cmd_cxx = CXX($(TOOLSET)) $@ -cmd_cxx = $(CXX.$(TOOLSET)) $(GYP_CXXFLAGS) $(DEPFLAGS) $(CXXFLAGS.$(TOOLSET)) -c -o $@ $< - -quiet_cmd_touch = TOUCH $@ -cmd_touch = touch $@ - -quiet_cmd_copy = COPY $@ -# send stderr to /dev/null to ignore messages when linking directories. -cmd_copy = ln -f "$<" "$@" 2>/dev/null || (rm -rf "$@" && cp -af "$<" "$@") - -quiet_cmd_alink = AR($(TOOLSET)) $@ -cmd_alink = rm -f $@ && $(AR.$(TOOLSET)) $(ARFLAGS.$(TOOLSET)) $@ $(filter %.o,$^) - -# Due to circular dependencies between libraries :(, we wrap the -# special "figure out circular dependencies" flags around the entire -# input list during linking. -quiet_cmd_link = LINK($(TOOLSET)) $@ -cmd_link = $(LINK.$(TOOLSET)) $(GYP_LDFLAGS) $(LDFLAGS.$(TOOLSET)) -o $@ -Wl,--start-group $(LD_INPUTS) -Wl,--end-group $(LIBS) - -# We support two kinds of shared objects (.so): -# 1) shared_library, which is just bundling together many dependent libraries -# into a link line. -# 2) loadable_module, which is generating a module intended for dlopen(). -# -# They differ only slightly: -# In the former case, we want to package all dependent code into the .so. -# In the latter case, we want to package just the API exposed by the -# outermost module. -# This means shared_library uses --whole-archive, while loadable_module doesn't. -# (Note that --whole-archive is incompatible with the --start-group used in -# normal linking.) - -# Other shared-object link notes: -# - Set SONAME to the library filename so our binaries don't reference -# the local, absolute paths used on the link command-line. -quiet_cmd_solink = SOLINK($(TOOLSET)) $@ -cmd_solink = $(LINK.$(TOOLSET)) -shared $(GYP_LDFLAGS) $(LDFLAGS.$(TOOLSET)) -Wl,-soname=$(@F) -o $@ -Wl,--whole-archive $(LD_INPUTS) -Wl,--no-whole-archive $(LIBS) - -quiet_cmd_solink_module = SOLINK_MODULE($(TOOLSET)) $@ -cmd_solink_module = $(LINK.$(TOOLSET)) -shared $(GYP_LDFLAGS) $(LDFLAGS.$(TOOLSET)) -Wl,-soname=$(@F) -o $@ -Wl,--start-group $(filter-out FORCE_DO_CMD, $^) -Wl,--end-group $(LIBS) - - -# Define an escape_quotes function to escape single quotes. -# This allows us to handle quotes properly as long as we always use -# use single quotes and escape_quotes. -escape_quotes = $(subst ','\'',$(1)) -# This comment is here just to include a ' to unconfuse syntax highlighting. -# Define an escape_vars function to escape '$' variable syntax. -# This allows us to read/write command lines with shell variables (e.g. -# $LD_LIBRARY_PATH), without triggering make substitution. -escape_vars = $(subst $$,$$$$,$(1)) -# Helper that expands to a shell command to echo a string exactly as it is in -# make. This uses printf instead of echo because printf's behaviour with respect -# to escape sequences is more portable than echo's across different shells -# (e.g., dash, bash). -exact_echo = printf '%s\n' '$(call escape_quotes,$(1))' - -# Helper to compare the command we're about to run against the command -# we logged the last time we ran the command. Produces an empty -# string (false) when the commands match. -# Tricky point: Make has no string-equality test function. -# The kernel uses the following, but it seems like it would have false -# positives, where one string reordered its arguments. -# arg_check = $(strip $(filter-out $(cmd_$(1)), $(cmd_$@)) \ -# $(filter-out $(cmd_$@), $(cmd_$(1)))) -# We instead substitute each for the empty string into the other, and -# say they're equal if both substitutions produce the empty string. -# .d files contain ? instead of spaces, take that into account. -command_changed = $(or $(subst $(cmd_$(1)),,$(cmd_$(call replace_spaces,$@))),\ - $(subst $(cmd_$(call replace_spaces,$@)),,$(cmd_$(1)))) - -# Helper that is non-empty when a prerequisite changes. -# Normally make does this implicitly, but we force rules to always run -# so we can check their command lines. -# $? -- new prerequisites -# $| -- order-only dependencies -prereq_changed = $(filter-out FORCE_DO_CMD,$(filter-out $|,$?)) - -# Helper that executes all postbuilds, and deletes the output file when done -# if any of the postbuilds failed. -define do_postbuilds - @E=0;\ - for p in $(POSTBUILDS); do\ - eval $$p;\ - F=$$?;\ - if [ $$F -ne 0 ]; then\ - E=$$F;\ - fi;\ - done;\ - if [ $$E -ne 0 ]; then\ - rm -rf "$@";\ - exit $$E;\ - fi -endef - -# do_cmd: run a command via the above cmd_foo names, if necessary. -# Should always run for a given target to handle command-line changes. -# Second argument, if non-zero, makes it do asm/C/C++ dependency munging. -# Third argument, if non-zero, makes it do POSTBUILDS processing. -# Note: We intentionally do NOT call dirx for depfile, since it contains ? for -# spaces already and dirx strips the ? characters. -define do_cmd -$(if $(or $(command_changed),$(prereq_changed)), - @$(call exact_echo, $($(quiet)cmd_$(1))) - @mkdir -p "$(call dirx,$@)" "$(dir $(depfile))" - $(if $(findstring flock,$(word 1,$(cmd_$1))), - @$(cmd_$(1)) - @echo " $(quiet_cmd_$(1)): Finished", - @$(cmd_$(1)) - ) - @$(call exact_echo,$(call escape_vars,cmd_$(call replace_spaces,$@) := $(cmd_$(1)))) > $(depfile) - @$(if $(2),$(fixup_dep)) - $(if $(and $(3), $(POSTBUILDS)), - $(call do_postbuilds) - ) -) -endef - -# Declare "all" target first so it is the default, even though we don't have the -# deps yet. -.PHONY: all -all: - -# Use FORCE_DO_CMD to force a target to run. Should be coupled with -# do_cmd. -.PHONY: FORCE_DO_CMD -FORCE_DO_CMD: - -TOOLSET := target -# Suffix rules, putting all outputs into $(obj). -$(obj).$(TOOLSET)/%.o: $(srcdir)/%.c FORCE_DO_CMD - @$(call do_cmd,cc,1) -$(obj).$(TOOLSET)/%.o: $(srcdir)/%.cc FORCE_DO_CMD - @$(call do_cmd,cxx,1) -$(obj).$(TOOLSET)/%.o: $(srcdir)/%.cpp FORCE_DO_CMD - @$(call do_cmd,cxx,1) -$(obj).$(TOOLSET)/%.o: $(srcdir)/%.cxx FORCE_DO_CMD - @$(call do_cmd,cxx,1) -$(obj).$(TOOLSET)/%.o: $(srcdir)/%.S FORCE_DO_CMD - @$(call do_cmd,cc,1) -$(obj).$(TOOLSET)/%.o: $(srcdir)/%.s FORCE_DO_CMD - @$(call do_cmd,cc,1) - -# Try building from generated source, too. -$(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.c FORCE_DO_CMD - @$(call do_cmd,cc,1) -$(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.cc FORCE_DO_CMD - @$(call do_cmd,cxx,1) -$(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.cpp FORCE_DO_CMD - @$(call do_cmd,cxx,1) -$(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.cxx FORCE_DO_CMD - @$(call do_cmd,cxx,1) -$(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.S FORCE_DO_CMD - @$(call do_cmd,cc,1) -$(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.s FORCE_DO_CMD - @$(call do_cmd,cc,1) - -$(obj).$(TOOLSET)/%.o: $(obj)/%.c FORCE_DO_CMD - @$(call do_cmd,cc,1) -$(obj).$(TOOLSET)/%.o: $(obj)/%.cc FORCE_DO_CMD - @$(call do_cmd,cxx,1) -$(obj).$(TOOLSET)/%.o: $(obj)/%.cpp FORCE_DO_CMD - @$(call do_cmd,cxx,1) -$(obj).$(TOOLSET)/%.o: $(obj)/%.cxx FORCE_DO_CMD - @$(call do_cmd,cxx,1) -$(obj).$(TOOLSET)/%.o: $(obj)/%.S FORCE_DO_CMD - @$(call do_cmd,cc,1) -$(obj).$(TOOLSET)/%.o: $(obj)/%.s FORCE_DO_CMD - @$(call do_cmd,cc,1) - - -ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ - $(findstring $(join ^,$(prefix)),\ - $(join ^,src/libuv/run-benchmarks.target.mk)))),) - include src/libuv/run-benchmarks.target.mk -endif -ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ - $(findstring $(join ^,$(prefix)),\ - $(join ^,src/libuv/run-tests.target.mk)))),) - include src/libuv/run-tests.target.mk -endif -ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ - $(findstring $(join ^,$(prefix)),\ - $(join ^,src/libuv/uv.target.mk)))),) - include src/libuv/uv.target.mk -endif - -quiet_cmd_regen_makefile = ACTION Regenerating $@ -cmd_regen_makefile = ./src/libuv/build/gyp/gyp -fmake --ignore-environment "--toplevel-dir=." "--depth=." "--generator-output=mk/libuv/ia32/unix" "-Dlibrary=static_library" "-Dtarget_arch=ia32" "-DOS=linux" src/libuv/uv.gyp -Makefile: $(srcdir)/src/libuv/uv.gyp - $(call do_cmd,regen_makefile) - -# "all" is a concatenation of the "all" targets from all the included -# sub-makefiles. This is just here to clarify. -all: - -# Add in dependency-tracking rules. $(all_deps) is the list of every single -# target in our tree. Only consider the ones with .d (dependency) info: -d_files := $(wildcard $(foreach f,$(all_deps),$(depsdir)/$(f).d)) -ifneq ($(d_files),) - # Rather than include each individual .d file, concatenate them into a - # single file which make is able to load faster. We split this into - # commands that take 1000 files at a time to avoid overflowing the - # command line. - $(shell cat $(wordlist 1,1000,$(d_files)) > $(depsdir)/all.deps) - - ifneq ($(word 1001,$(d_files)),) - $(error Found unprocessed dependency files (gyp didn't generate enough rules!)) - endif - - # make looks for ways to re-generate included makefiles, but in our case, we - # don't have a direct way. Explicitly telling make that it has nothing to do - # for them makes it go faster. - $(depsdir)/all.deps: ; - - include $(depsdir)/all.deps -endif diff --git a/mk/libuv/ia32/unix/src/libuv/run-benchmarks.target.mk b/mk/libuv/ia32/unix/src/libuv/run-benchmarks.target.mk index b5680d2c557..25b01014e79 100644 --- a/mk/libuv/ia32/unix/src/libuv/run-benchmarks.target.mk +++ b/mk/libuv/ia32/unix/src/libuv/run-benchmarks.target.mk @@ -2,21 +2,57 @@ TOOLSET := target TARGET := run-benchmarks -DEFS_Default := '-D_LARGEFILE_SOURCE' \ +DEFS_Debug := '-D_LARGEFILE_SOURCE' \ '-D_FILE_OFFSET_BITS=64' \ '-D_GNU_SOURCE' \ - '-DEIO_STACKSIZE=262144' + '-DEIO_STACKSIZE=262144' \ + '-DDEBUG' \ + '-D_DEBUG' \ + '-DEV_VERIFY=2' # Flags passed to all source files. -CFLAGS_Default := -pthread +CFLAGS_Debug := -pthread \ + -Wall \ + -ansi \ + -pthread \ + -fvisibility=hidden \ + -g \ + -O0 # Flags passed to only C files. -CFLAGS_C_Default := +CFLAGS_C_Debug := # Flags passed to only C++ files. -CFLAGS_CC_Default := +CFLAGS_CC_Debug := -fno-rtti \ + -fno-exceptions -INCS_Default := -I$(srcdir)/src/libuv/include +INCS_Debug := -I$(srcdir)/src/libuv/include + +DEFS_Release := '-D_LARGEFILE_SOURCE' \ + '-D_FILE_OFFSET_BITS=64' \ + '-D_GNU_SOURCE' \ + '-DEIO_STACKSIZE=262144' \ + '-DNDEBUG' + +# Flags passed to all source files. +CFLAGS_Release := -pthread \ + -Wall \ + -ansi \ + -pthread \ + -fvisibility=hidden \ + -O3 \ + -fomit-frame-pointer \ + -fdata-sections \ + -ffunction-sections + +# Flags passed to only C files. +CFLAGS_C_Release := + +# Flags passed to only C++ files. +CFLAGS_CC_Release := -fno-rtti \ + -fno-exceptions + +INCS_Release := -I$(srcdir)/src/libuv/include OBJS := $(obj).target/$(TARGET)/src/libuv/test/benchmark-ares.o \ $(obj).target/$(TARGET)/src/libuv/test/benchmark-getaddrinfo.o \ @@ -25,6 +61,7 @@ OBJS := $(obj).target/$(TARGET)/src/libuv/test/benchmark-ares.o \ $(obj).target/$(TARGET)/src/libuv/test/benchmark-pump.o \ $(obj).target/$(TARGET)/src/libuv/test/benchmark-sizes.o \ $(obj).target/$(TARGET)/src/libuv/test/benchmark-spawn.o \ + $(obj).target/$(TARGET)/src/libuv/test/benchmark-thread.o \ $(obj).target/$(TARGET)/src/libuv/test/benchmark-tcp-write-batch.o \ $(obj).target/$(TARGET)/src/libuv/test/benchmark-udp-packet-storm.o \ $(obj).target/$(TARGET)/src/libuv/test/dns-server.o \ @@ -43,8 +80,8 @@ $(OBJS): | $(obj).target/src/libuv/libuv.a # CFLAGS et al overrides must be target-local. # See "Target-specific Variable Values" in the GNU Make manual. $(OBJS): TOOLSET := $(TOOLSET) -$(OBJS): GYP_CFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_C_$(BUILDTYPE)) -$(OBJS): GYP_CXXFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_CC_$(BUILDTYPE)) +$(OBJS): GYP_CFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_C_$(BUILDTYPE)) +$(OBJS): GYP_CXXFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_CC_$(BUILDTYPE)) # Suffix rules, putting all outputs into $(obj). @@ -61,7 +98,9 @@ $(obj).$(TOOLSET)/$(TARGET)/%.o: $(obj)/%.c FORCE_DO_CMD # End of this set of suffix rules ### Rules for final target. -LDFLAGS_Default := +LDFLAGS_Debug := -pthread + +LDFLAGS_Release := -pthread LIBS := -lrt diff --git a/mk/libuv/ia32/unix/src/libuv/run-tests.target.mk b/mk/libuv/ia32/unix/src/libuv/run-tests.target.mk index 34bc8551b44..a2fe0d2065e 100644 --- a/mk/libuv/ia32/unix/src/libuv/run-tests.target.mk +++ b/mk/libuv/ia32/unix/src/libuv/run-tests.target.mk @@ -2,32 +2,71 @@ TOOLSET := target TARGET := run-tests -DEFS_Default := '-D_LARGEFILE_SOURCE' \ +DEFS_Debug := '-D_LARGEFILE_SOURCE' \ '-D_FILE_OFFSET_BITS=64' \ '-D_GNU_SOURCE' \ - '-DEIO_STACKSIZE=262144' + '-DEIO_STACKSIZE=262144' \ + '-DDEBUG' \ + '-D_DEBUG' \ + '-DEV_VERIFY=2' # Flags passed to all source files. -CFLAGS_Default := -pthread +CFLAGS_Debug := -pthread \ + -Wall \ + -ansi \ + -pthread \ + -fvisibility=hidden \ + -g \ + -O0 # Flags passed to only C files. -CFLAGS_C_Default := +CFLAGS_C_Debug := # Flags passed to only C++ files. -CFLAGS_CC_Default := +CFLAGS_CC_Debug := -fno-rtti \ + -fno-exceptions -INCS_Default := -I$(srcdir)/src/libuv/include +INCS_Debug := -I$(srcdir)/src/libuv/include + +DEFS_Release := '-D_LARGEFILE_SOURCE' \ + '-D_FILE_OFFSET_BITS=64' \ + '-D_GNU_SOURCE' \ + '-DEIO_STACKSIZE=262144' \ + '-DNDEBUG' + +# Flags passed to all source files. +CFLAGS_Release := -pthread \ + -Wall \ + -ansi \ + -pthread \ + -fvisibility=hidden \ + -O3 \ + -fomit-frame-pointer \ + -fdata-sections \ + -ffunction-sections + +# Flags passed to only C files. +CFLAGS_C_Release := + +# Flags passed to only C++ files. +CFLAGS_CC_Release := -fno-rtti \ + -fno-exceptions + +INCS_Release := -I$(srcdir)/src/libuv/include OBJS := $(obj).target/$(TARGET)/src/libuv/test/blackhole-server.o \ $(obj).target/$(TARGET)/src/libuv/test/echo-server.o \ $(obj).target/$(TARGET)/src/libuv/test/run-tests.o \ $(obj).target/$(TARGET)/src/libuv/test/runner.o \ $(obj).target/$(TARGET)/src/libuv/test/test-get-loadavg.o \ + $(obj).target/$(TARGET)/src/libuv/test/test-util.o \ $(obj).target/$(TARGET)/src/libuv/test/test-async.o \ $(obj).target/$(TARGET)/src/libuv/test/test-error.o \ $(obj).target/$(TARGET)/src/libuv/test/test-callback-stack.o \ $(obj).target/$(TARGET)/src/libuv/test/test-connection-fail.o \ + $(obj).target/$(TARGET)/src/libuv/test/test-cwd-and-chdir.o \ $(obj).target/$(TARGET)/src/libuv/test/test-delayed-accept.o \ + $(obj).target/$(TARGET)/src/libuv/test/test-eio-overflow.o \ $(obj).target/$(TARGET)/src/libuv/test/test-fail-always.o \ $(obj).target/$(TARGET)/src/libuv/test/test-fs.o \ $(obj).target/$(TARGET)/src/libuv/test/test-fs-event.o \ @@ -39,12 +78,15 @@ OBJS := $(obj).target/$(TARGET)/src/libuv/test/blackhole-server.o \ $(obj).target/$(TARGET)/src/libuv/test/test-hrtime.o \ $(obj).target/$(TARGET)/src/libuv/test/test-idle.o \ $(obj).target/$(TARGET)/src/libuv/test/test-ipc.o \ + $(obj).target/$(TARGET)/src/libuv/test/test-ipc-threads.o \ $(obj).target/$(TARGET)/src/libuv/test/test-loop-handles.o \ $(obj).target/$(TARGET)/src/libuv/test/test-multiple-listen.o \ $(obj).target/$(TARGET)/src/libuv/test/test-pass-always.o \ $(obj).target/$(TARGET)/src/libuv/test/test-ping-pong.o \ $(obj).target/$(TARGET)/src/libuv/test/test-pipe-bind-error.o \ $(obj).target/$(TARGET)/src/libuv/test/test-pipe-connect-error.o \ + $(obj).target/$(TARGET)/src/libuv/test/test-platform-output.o \ + $(obj).target/$(TARGET)/src/libuv/test/test-process-title.o \ $(obj).target/$(TARGET)/src/libuv/test/test-ref.o \ $(obj).target/$(TARGET)/src/libuv/test/test-shutdown-eof.o \ $(obj).target/$(TARGET)/src/libuv/test/test-spawn.o \ @@ -59,13 +101,17 @@ OBJS := $(obj).target/$(TARGET)/src/libuv/test/blackhole-server.o \ $(obj).target/$(TARGET)/src/libuv/test/test-tcp-write-to-half-open-connection.o \ $(obj).target/$(TARGET)/src/libuv/test/test-tcp-writealot.o \ $(obj).target/$(TARGET)/src/libuv/test/test-threadpool.o \ + $(obj).target/$(TARGET)/src/libuv/test/test-mutexes.o \ + $(obj).target/$(TARGET)/src/libuv/test/test-thread.o \ $(obj).target/$(TARGET)/src/libuv/test/test-timer-again.o \ $(obj).target/$(TARGET)/src/libuv/test/test-timer.o \ $(obj).target/$(TARGET)/src/libuv/test/test-tty.o \ $(obj).target/$(TARGET)/src/libuv/test/test-udp-dgram-too-big.o \ $(obj).target/$(TARGET)/src/libuv/test/test-udp-ipv6.o \ + $(obj).target/$(TARGET)/src/libuv/test/test-udp-options.o \ $(obj).target/$(TARGET)/src/libuv/test/test-udp-send-and-recv.o \ $(obj).target/$(TARGET)/src/libuv/test/test-udp-multicast-join.o \ + $(obj).target/$(TARGET)/src/libuv/test/test-counters-init.o \ $(obj).target/$(TARGET)/src/libuv/test/runner-unix.o # Add to the list of files we specially track dependencies for. @@ -77,8 +123,8 @@ $(OBJS): | $(obj).target/src/libuv/libuv.a # CFLAGS et al overrides must be target-local. # See "Target-specific Variable Values" in the GNU Make manual. $(OBJS): TOOLSET := $(TOOLSET) -$(OBJS): GYP_CFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_C_$(BUILDTYPE)) -$(OBJS): GYP_CXXFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_CC_$(BUILDTYPE)) +$(OBJS): GYP_CFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_C_$(BUILDTYPE)) +$(OBJS): GYP_CXXFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_CC_$(BUILDTYPE)) # Suffix rules, putting all outputs into $(obj). @@ -95,7 +141,9 @@ $(obj).$(TOOLSET)/$(TARGET)/%.o: $(obj)/%.c FORCE_DO_CMD # End of this set of suffix rules ### Rules for final target. -LDFLAGS_Default := +LDFLAGS_Debug := -pthread + +LDFLAGS_Release := -pthread LIBS := -lrt diff --git a/mk/libuv/ia32/unix/src/libuv/uv.target.mk b/mk/libuv/ia32/unix/src/libuv/uv.target.mk index 65c2cf17b83..60e0e8fd2de 100644 --- a/mk/libuv/ia32/unix/src/libuv/uv.target.mk +++ b/mk/libuv/ia32/unix/src/libuv/uv.target.mk @@ -2,30 +2,79 @@ TOOLSET := target TARGET := uv -DEFS_Default := '-D_LARGEFILE_SOURCE' \ +DEFS_Debug := '-D_LARGEFILE_SOURCE' \ '-D_FILE_OFFSET_BITS=64' \ '-D_GNU_SOURCE' \ '-DEIO_STACKSIZE=262144' \ '-DHAVE_CONFIG_H' \ '-DEV_CONFIG_H="config_linux.h"' \ - '-DEIO_CONFIG_H="config_linux.h"' + '-DEIO_CONFIG_H="config_linux.h"' \ + '-DDEBUG' \ + '-D_DEBUG' \ + '-DEV_VERIFY=2' # Flags passed to all source files. -CFLAGS_Default := -pthread \ +CFLAGS_Debug := -pthread \ + -Wall \ + -ansi \ + -pthread \ + -fvisibility=hidden \ -g \ --std=gnu89 \ -pedantic \ -Wall \ -Wextra \ - -Wno-unused-parameter + -Wno-unused-parameter \ + -g \ + -O0 # Flags passed to only C files. -CFLAGS_C_Default := +CFLAGS_C_Debug := # Flags passed to only C++ files. -CFLAGS_CC_Default := +CFLAGS_CC_Debug := -fno-rtti \ + -fno-exceptions -INCS_Default := -I$(srcdir)/src/libuv/include \ +INCS_Debug := -I$(srcdir)/src/libuv/include \ + -I$(srcdir)/src/libuv/include/uv-private \ + -I$(srcdir)/src/libuv/src \ + -I$(srcdir)/src/libuv/src/unix/ev \ + -I$(srcdir)/src/libuv/src/ares/config_linux + +DEFS_Release := '-D_LARGEFILE_SOURCE' \ + '-D_FILE_OFFSET_BITS=64' \ + '-D_GNU_SOURCE' \ + '-DEIO_STACKSIZE=262144' \ + '-DHAVE_CONFIG_H' \ + '-DEV_CONFIG_H="config_linux.h"' \ + '-DEIO_CONFIG_H="config_linux.h"' \ + '-DNDEBUG' + +# Flags passed to all source files. +CFLAGS_Release := -pthread \ + -Wall \ + -ansi \ + -pthread \ + -fvisibility=hidden \ + -g \ + --std=gnu89 \ + -pedantic \ + -Wall \ + -Wextra \ + -Wno-unused-parameter \ + -O3 \ + -fomit-frame-pointer \ + -fdata-sections \ + -ffunction-sections + +# Flags passed to only C files. +CFLAGS_C_Release := + +# Flags passed to only C++ files. +CFLAGS_CC_Release := -fno-rtti \ + -fno-exceptions + +INCS_Release := -I$(srcdir)/src/libuv/include \ -I$(srcdir)/src/libuv/include/uv-private \ -I$(srcdir)/src/libuv/src \ -I$(srcdir)/src/libuv/src/unix/ev \ @@ -87,6 +136,7 @@ OBJS := $(obj).target/$(TARGET)/src/libuv/src/uv-common.o \ $(obj).target/$(TARGET)/src/libuv/src/unix/cares.o \ $(obj).target/$(TARGET)/src/libuv/src/unix/dl.o \ $(obj).target/$(TARGET)/src/libuv/src/unix/error.o \ + $(obj).target/$(TARGET)/src/libuv/src/unix/thread.o \ $(obj).target/$(TARGET)/src/libuv/src/unix/process.o \ $(obj).target/$(TARGET)/src/libuv/src/unix/eio/eio.o \ $(obj).target/$(TARGET)/src/libuv/src/unix/ev/ev.o \ @@ -98,8 +148,8 @@ all_deps += $(OBJS) # CFLAGS et al overrides must be target-local. # See "Target-specific Variable Values" in the GNU Make manual. $(OBJS): TOOLSET := $(TOOLSET) -$(OBJS): GYP_CFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_C_$(BUILDTYPE)) -$(OBJS): GYP_CXXFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_CC_$(BUILDTYPE)) +$(OBJS): GYP_CFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_C_$(BUILDTYPE)) +$(OBJS): GYP_CXXFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_CC_$(BUILDTYPE)) # Suffix rules, putting all outputs into $(obj). @@ -116,7 +166,9 @@ $(obj).$(TOOLSET)/$(TARGET)/%.o: $(obj)/%.c FORCE_DO_CMD # End of this set of suffix rules ### Rules for final target. -LDFLAGS_Default := +LDFLAGS_Debug := -pthread + +LDFLAGS_Release := -pthread LIBS := -lm diff --git a/mk/libuv/ia32/win/Makefile b/mk/libuv/ia32/win/Makefile index d24668d336d..8a6222228d8 100644 --- a/mk/libuv/ia32/win/Makefile +++ b/mk/libuv/ia32/win/Makefile @@ -8,6 +8,7 @@ MAKEFLAGS=-r # The source directory tree. srcdir := ../../../.. +abs_srcdir := $(abspath $(srcdir)) # The name of the builddir. builddir_name ?= out @@ -20,7 +21,7 @@ else endif # Specify BUILDTYPE=Release on the command line for a release build. -BUILDTYPE ?= Default +BUILDTYPE ?= Debug # Directory all our build output goes into. # Note that this must be two directories beneath src/ for unit tests to pass, @@ -252,8 +253,8 @@ $(if $(or $(command_changed),$(prereq_changed)), ) endef -# Declare "all" target first so it is the default, even though we don't have the -# deps yet. +# Declare the "all" target first so it is the default, +# even though we don't have the deps yet. .PHONY: all all: @@ -321,9 +322,9 @@ ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ include src/libuv/uv.target.mk endif -quiet_cmd_regen_makefile = ACTION Regenerating $@ -cmd_regen_makefile = ./src/libuv/build/gyp/gyp -fmake --ignore-environment "--toplevel-dir=." "--depth=." "--generator-output=mk/libuv/ia32/win" "-Dlibrary=static_library" "-Dtarget_arch=ia32" "-DOS=win" src/libuv/uv.gyp -Makefile: $(srcdir)/src/libuv/uv.gyp +#quiet_cmd_regen_makefile = ACTION Regenerating $@ +#cmd_regen_makefile = ./src/libuv/build/gyp/gyp -fmake --ignore-environment "--toplevel-dir=." -Isrc/libuv/common.gypi "--depth=." "--generator-output=mk/libuv/ia32/win" "-Ddefault_configuration=Default" "-Dcomponent=static_library" "-Dlibrary=static_library" "-Dtarget_arch=ia32" "-DOS=win" src/libuv/uv.gyp +#Makefile: $(srcdir)/src/libuv/uv.gyp $(srcdir)/src/libuv/common.gypi # $(call do_cmd,regen_makefile) # "all" is a concatenation of the "all" targets from all the included diff --git a/mk/libuv/ia32/win/Makefile-e b/mk/libuv/ia32/win/Makefile-e deleted file mode 100644 index 4c05b46dcbf..00000000000 --- a/mk/libuv/ia32/win/Makefile-e +++ /dev/null @@ -1,353 +0,0 @@ -# We borrow heavily from the kernel build setup, though we are simpler since -# we don't have Kconfig tweaking settings on us. - -# The implicit make rules have it looking for RCS files, among other things. -# We instead explicitly write all the rules we care about. -# It's even quicker (saves ~200ms) to pass -r on the command line. -MAKEFLAGS=-r - -# The source directory tree. -srcdir := ../../../.. - -# The name of the builddir. -builddir_name ?= out - -# The V=1 flag on command line makes us verbosely print command lines. -ifdef V - quiet= -else - quiet=quiet_ -endif - -# Specify BUILDTYPE=Release on the command line for a release build. -BUILDTYPE ?= Default - -# Directory all our build output goes into. -# Note that this must be two directories beneath src/ for unit tests to pass, -# as they reach into the src/ directory for data with relative paths. -builddir ?= $(builddir_name)/$(BUILDTYPE) -abs_builddir := $(abspath $(builddir)) -depsdir := $(builddir)/.deps - -# Object output directory. -obj := $(builddir)/obj -abs_obj := $(abspath $(obj)) - -# We build up a list of every single one of the targets so we can slurp in the -# generated dependency rule Makefiles in one pass. -all_deps := - - - -# C++ apps need to be linked with g++. -# -# Note: flock is used to seralize linking. Linking is a memory-intensive -# process so running parallel links can often lead to thrashing. To disable -# the serialization, override LINK via an envrionment variable as follows: -# -# export LINK=g++ -# -# This will allow make to invoke N linker processes as specified in -jN. -LINK ?= flock $(builddir)/linker.lock $(CXX) - -CC.target ?= $(CC) -CFLAGS.target ?= $(CFLAGS) -CXX.target ?= $(CXX) -CXXFLAGS.target ?= $(CXXFLAGS) -LINK.target ?= $(LINK) -LDFLAGS.target ?= $(LDFLAGS) -AR.target ?= $(AR) -ARFLAGS.target ?= crsT - -# N.B.: the logic of which commands to run should match the computation done -# in gyp's make.py where ARFLAGS.host etc. is computed. -# TODO(evan): move all cross-compilation logic to gyp-time so we don't need -# to replicate this environment fallback in make as well. -CC.host ?= gcc -CFLAGS.host ?= -CXX.host ?= g++ -CXXFLAGS.host ?= -LINK.host ?= g++ -LDFLAGS.host ?= -AR.host ?= ar -ARFLAGS.host := crsT - -# Define a dir function that can handle spaces. -# http://www.gnu.org/software/make/manual/make.html#Syntax-of-Functions -# "leading spaces cannot appear in the text of the first argument as written. -# These characters can be put into the argument value by variable substitution." -empty := -space := $(empty) $(empty) - -# http://stackoverflow.com/questions/1189781/using-make-dir-or-notdir-on-a-path-with-spaces -replace_spaces = $(subst $(space),?,$1) -unreplace_spaces = $(subst ?,$(space),$1) -dirx = $(call unreplace_spaces,$(dir $(call replace_spaces,$1))) - -# Flags to make gcc output dependency info. Note that you need to be -# careful here to use the flags that ccache and distcc can understand. -# We write to a dep file on the side first and then rename at the end -# so we can't end up with a broken dep file. -depfile = $(depsdir)/$(call replace_spaces,$@).d -DEPFLAGS = -MMD -MF $(depfile).raw - -# We have to fixup the deps output in a few ways. -# (1) the file output should mention the proper .o file. -# ccache or distcc lose the path to the target, so we convert a rule of -# the form: -# foobar.o: DEP1 DEP2 -# into -# path/to/foobar.o: DEP1 DEP2 -# (2) we want missing files not to cause us to fail to build. -# We want to rewrite -# foobar.o: DEP1 DEP2 \ -# DEP3 -# to -# DEP1: -# DEP2: -# DEP3: -# so if the files are missing, they're just considered phony rules. -# We have to do some pretty insane escaping to get those backslashes -# and dollar signs past make, the shell, and sed at the same time. -# Doesn't work with spaces, but that's fine: .d files have spaces in -# their names replaced with other characters. -define fixup_dep -# The depfile may not exist if the input file didn't have any #includes. -touch $(depfile).raw -# Fixup path as in (1). -sed -e "s|^$(notdir $@)|$@|" $(depfile).raw >> $(depfile) -# Add extra rules as in (2). -# We remove slashes and replace spaces with new lines; -# remove blank lines; -# delete the first line and append a colon to the remaining lines. -sed -e 's|\\||' -e 'y| |\n|' $(depfile).raw |\ - grep -v '^$$' |\ - sed -e 1d -e 's|$$|:|' \ - >> $(depfile) -rm $(depfile).raw -endef - -# Command definitions: -# - cmd_foo is the actual command to run; -# - quiet_cmd_foo is the brief-output summary of the command. - -quiet_cmd_cc = CC($(TOOLSET)) $@ -cmd_cc = $(CC.$(TOOLSET)) $(GYP_CFLAGS) $(DEPFLAGS) $(CFLAGS.$(TOOLSET)) -c -o $@ $< - -quiet_cmd_cxx = CXX($(TOOLSET)) $@ -cmd_cxx = $(CXX.$(TOOLSET)) $(GYP_CXXFLAGS) $(DEPFLAGS) $(CXXFLAGS.$(TOOLSET)) -c -o $@ $< - -quiet_cmd_touch = TOUCH $@ -cmd_touch = touch $@ - -quiet_cmd_copy = COPY $@ -# send stderr to /dev/null to ignore messages when linking directories. -cmd_copy = ln -f "$<" "$@" 2>/dev/null || (rm -rf "$@" && cp -af "$<" "$@") - -quiet_cmd_alink = AR($(TOOLSET)) $@ -cmd_alink = rm -f $@ && $(AR.$(TOOLSET)) $(ARFLAGS.$(TOOLSET)) $@ $(filter %.o,$^) - -# Due to circular dependencies between libraries :(, we wrap the -# special "figure out circular dependencies" flags around the entire -# input list during linking. -quiet_cmd_link = LINK($(TOOLSET)) $@ -cmd_link = $(LINK.$(TOOLSET)) $(GYP_LDFLAGS) $(LDFLAGS.$(TOOLSET)) -o $@ -Wl,--start-group $(LD_INPUTS) -Wl,--end-group $(LIBS) - -# We support two kinds of shared objects (.so): -# 1) shared_library, which is just bundling together many dependent libraries -# into a link line. -# 2) loadable_module, which is generating a module intended for dlopen(). -# -# They differ only slightly: -# In the former case, we want to package all dependent code into the .so. -# In the latter case, we want to package just the API exposed by the -# outermost module. -# This means shared_library uses --whole-archive, while loadable_module doesn't. -# (Note that --whole-archive is incompatible with the --start-group used in -# normal linking.) - -# Other shared-object link notes: -# - Set SONAME to the library filename so our binaries don't reference -# the local, absolute paths used on the link command-line. -quiet_cmd_solink = SOLINK($(TOOLSET)) $@ -cmd_solink = $(LINK.$(TOOLSET)) -shared $(GYP_LDFLAGS) $(LDFLAGS.$(TOOLSET)) -Wl,-soname=$(@F) -o $@ -Wl,--whole-archive $(LD_INPUTS) -Wl,--no-whole-archive $(LIBS) - -quiet_cmd_solink_module = SOLINK_MODULE($(TOOLSET)) $@ -cmd_solink_module = $(LINK.$(TOOLSET)) -shared $(GYP_LDFLAGS) $(LDFLAGS.$(TOOLSET)) -Wl,-soname=$(@F) -o $@ -Wl,--start-group $(filter-out FORCE_DO_CMD, $^) -Wl,--end-group $(LIBS) - - -# Define an escape_quotes function to escape single quotes. -# This allows us to handle quotes properly as long as we always use -# use single quotes and escape_quotes. -escape_quotes = $(subst ','\'',$(1)) -# This comment is here just to include a ' to unconfuse syntax highlighting. -# Define an escape_vars function to escape '$' variable syntax. -# This allows us to read/write command lines with shell variables (e.g. -# $LD_LIBRARY_PATH), without triggering make substitution. -escape_vars = $(subst $$,$$$$,$(1)) -# Helper that expands to a shell command to echo a string exactly as it is in -# make. This uses printf instead of echo because printf's behaviour with respect -# to escape sequences is more portable than echo's across different shells -# (e.g., dash, bash). -exact_echo = printf '%s\n' '$(call escape_quotes,$(1))' - -# Helper to compare the command we're about to run against the command -# we logged the last time we ran the command. Produces an empty -# string (false) when the commands match. -# Tricky point: Make has no string-equality test function. -# The kernel uses the following, but it seems like it would have false -# positives, where one string reordered its arguments. -# arg_check = $(strip $(filter-out $(cmd_$(1)), $(cmd_$@)) \ -# $(filter-out $(cmd_$@), $(cmd_$(1)))) -# We instead substitute each for the empty string into the other, and -# say they're equal if both substitutions produce the empty string. -# .d files contain ? instead of spaces, take that into account. -command_changed = $(or $(subst $(cmd_$(1)),,$(cmd_$(call replace_spaces,$@))),\ - $(subst $(cmd_$(call replace_spaces,$@)),,$(cmd_$(1)))) - -# Helper that is non-empty when a prerequisite changes. -# Normally make does this implicitly, but we force rules to always run -# so we can check their command lines. -# $? -- new prerequisites -# $| -- order-only dependencies -prereq_changed = $(filter-out FORCE_DO_CMD,$(filter-out $|,$?)) - -# Helper that executes all postbuilds, and deletes the output file when done -# if any of the postbuilds failed. -define do_postbuilds - @E=0;\ - for p in $(POSTBUILDS); do\ - eval $$p;\ - F=$$?;\ - if [ $$F -ne 0 ]; then\ - E=$$F;\ - fi;\ - done;\ - if [ $$E -ne 0 ]; then\ - rm -rf "$@";\ - exit $$E;\ - fi -endef - -# do_cmd: run a command via the above cmd_foo names, if necessary. -# Should always run for a given target to handle command-line changes. -# Second argument, if non-zero, makes it do asm/C/C++ dependency munging. -# Third argument, if non-zero, makes it do POSTBUILDS processing. -# Note: We intentionally do NOT call dirx for depfile, since it contains ? for -# spaces already and dirx strips the ? characters. -define do_cmd -$(if $(or $(command_changed),$(prereq_changed)), - @$(call exact_echo, $($(quiet)cmd_$(1))) - @mkdir -p "$(call dirx,$@)" "$(dir $(depfile))" - $(if $(findstring flock,$(word 1,$(cmd_$1))), - @$(cmd_$(1)) - @echo " $(quiet_cmd_$(1)): Finished", - @$(cmd_$(1)) - ) - @$(call exact_echo,$(call escape_vars,cmd_$(call replace_spaces,$@) := $(cmd_$(1)))) > $(depfile) - @$(if $(2),$(fixup_dep)) - $(if $(and $(3), $(POSTBUILDS)), - $(call do_postbuilds) - ) -) -endef - -# Declare "all" target first so it is the default, even though we don't have the -# deps yet. -.PHONY: all -all: - -# Use FORCE_DO_CMD to force a target to run. Should be coupled with -# do_cmd. -.PHONY: FORCE_DO_CMD -FORCE_DO_CMD: - -TOOLSET := target -# Suffix rules, putting all outputs into $(obj). -$(obj).$(TOOLSET)/%.o: $(srcdir)/%.c FORCE_DO_CMD - @$(call do_cmd,cc,1) -$(obj).$(TOOLSET)/%.o: $(srcdir)/%.cc FORCE_DO_CMD - @$(call do_cmd,cxx,1) -$(obj).$(TOOLSET)/%.o: $(srcdir)/%.cpp FORCE_DO_CMD - @$(call do_cmd,cxx,1) -$(obj).$(TOOLSET)/%.o: $(srcdir)/%.cxx FORCE_DO_CMD - @$(call do_cmd,cxx,1) -$(obj).$(TOOLSET)/%.o: $(srcdir)/%.S FORCE_DO_CMD - @$(call do_cmd,cc,1) -$(obj).$(TOOLSET)/%.o: $(srcdir)/%.s FORCE_DO_CMD - @$(call do_cmd,cc,1) - -# Try building from generated source, too. -$(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.c FORCE_DO_CMD - @$(call do_cmd,cc,1) -$(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.cc FORCE_DO_CMD - @$(call do_cmd,cxx,1) -$(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.cpp FORCE_DO_CMD - @$(call do_cmd,cxx,1) -$(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.cxx FORCE_DO_CMD - @$(call do_cmd,cxx,1) -$(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.S FORCE_DO_CMD - @$(call do_cmd,cc,1) -$(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.s FORCE_DO_CMD - @$(call do_cmd,cc,1) - -$(obj).$(TOOLSET)/%.o: $(obj)/%.c FORCE_DO_CMD - @$(call do_cmd,cc,1) -$(obj).$(TOOLSET)/%.o: $(obj)/%.cc FORCE_DO_CMD - @$(call do_cmd,cxx,1) -$(obj).$(TOOLSET)/%.o: $(obj)/%.cpp FORCE_DO_CMD - @$(call do_cmd,cxx,1) -$(obj).$(TOOLSET)/%.o: $(obj)/%.cxx FORCE_DO_CMD - @$(call do_cmd,cxx,1) -$(obj).$(TOOLSET)/%.o: $(obj)/%.S FORCE_DO_CMD - @$(call do_cmd,cc,1) -$(obj).$(TOOLSET)/%.o: $(obj)/%.s FORCE_DO_CMD - @$(call do_cmd,cc,1) - - -ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ - $(findstring $(join ^,$(prefix)),\ - $(join ^,src/libuv/run-benchmarks.target.mk)))),) - include src/libuv/run-benchmarks.target.mk -endif -ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ - $(findstring $(join ^,$(prefix)),\ - $(join ^,src/libuv/run-tests.target.mk)))),) - include src/libuv/run-tests.target.mk -endif -ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ - $(findstring $(join ^,$(prefix)),\ - $(join ^,src/libuv/uv.target.mk)))),) - include src/libuv/uv.target.mk -endif - -quiet_cmd_regen_makefile = ACTION Regenerating $@ -cmd_regen_makefile = ./src/libuv/build/gyp/gyp -fmake --ignore-environment "--toplevel-dir=." "--depth=." "--generator-output=mk/libuv/ia32/win" "-Dlibrary=static_library" "-Dtarget_arch=ia32" "-DOS=win" src/libuv/uv.gyp -Makefile: $(srcdir)/src/libuv/uv.gyp - $(call do_cmd,regen_makefile) - -# "all" is a concatenation of the "all" targets from all the included -# sub-makefiles. This is just here to clarify. -all: - -# Add in dependency-tracking rules. $(all_deps) is the list of every single -# target in our tree. Only consider the ones with .d (dependency) info: -d_files := $(wildcard $(foreach f,$(all_deps),$(depsdir)/$(f).d)) -ifneq ($(d_files),) - # Rather than include each individual .d file, concatenate them into a - # single file which make is able to load faster. We split this into - # commands that take 1000 files at a time to avoid overflowing the - # command line. - $(shell cat $(wordlist 1,1000,$(d_files)) > $(depsdir)/all.deps) - - ifneq ($(word 1001,$(d_files)),) - $(error Found unprocessed dependency files (gyp didn't generate enough rules!)) - endif - - # make looks for ways to re-generate included makefiles, but in our case, we - # don't have a direct way. Explicitly telling make that it has nothing to do - # for them makes it go faster. - $(depsdir)/all.deps: ; - - include $(depsdir)/all.deps -endif diff --git a/mk/libuv/ia32/win/src/libuv/run-benchmarks.target.mk b/mk/libuv/ia32/win/src/libuv/run-benchmarks.target.mk index 68dc04f2105..25bf58f8548 100644 --- a/mk/libuv/ia32/win/src/libuv/run-benchmarks.target.mk +++ b/mk/libuv/ia32/win/src/libuv/run-benchmarks.target.mk @@ -2,18 +2,42 @@ TOOLSET := target TARGET := run-benchmarks -DEFS_Default := +DEFS_Debug := '-DWIN32' \ + '-D_CRT_SECURE_NO_DEPRECATE' \ + '-D_CRT_NONSTDC_NO_DEPRECATE' \ + '-DDEBUG' \ + '-D_DEBUG' # Flags passed to all source files. -CFLAGS_Default := +CFLAGS_Debug := -g \ + -O0 # Flags passed to only C files. -CFLAGS_C_Default := +CFLAGS_C_Debug := # Flags passed to only C++ files. -CFLAGS_CC_Default := +CFLAGS_CC_Debug := -INCS_Default := -I$(srcdir)/src/libuv/include +INCS_Debug := -I$(srcdir)/src/libuv/include + +DEFS_Release := '-DWIN32' \ + '-D_CRT_SECURE_NO_DEPRECATE' \ + '-D_CRT_NONSTDC_NO_DEPRECATE' \ + '-DNDEBUG' + +# Flags passed to all source files. +CFLAGS_Release := -O3 \ + -fomit-frame-pointer \ + -fdata-sections \ + -ffunction-sections + +# Flags passed to only C files. +CFLAGS_C_Release := + +# Flags passed to only C++ files. +CFLAGS_CC_Release := + +INCS_Release := -I$(srcdir)/src/libuv/include OBJS := $(obj).target/$(TARGET)/src/libuv/test/benchmark-ares.o \ $(obj).target/$(TARGET)/src/libuv/test/benchmark-getaddrinfo.o \ @@ -22,6 +46,7 @@ OBJS := $(obj).target/$(TARGET)/src/libuv/test/benchmark-ares.o \ $(obj).target/$(TARGET)/src/libuv/test/benchmark-pump.o \ $(obj).target/$(TARGET)/src/libuv/test/benchmark-sizes.o \ $(obj).target/$(TARGET)/src/libuv/test/benchmark-spawn.o \ + $(obj).target/$(TARGET)/src/libuv/test/benchmark-thread.o \ $(obj).target/$(TARGET)/src/libuv/test/benchmark-tcp-write-batch.o \ $(obj).target/$(TARGET)/src/libuv/test/benchmark-udp-packet-storm.o \ $(obj).target/$(TARGET)/src/libuv/test/dns-server.o \ @@ -40,8 +65,8 @@ $(OBJS): | $(obj).target/src/libuv/libuv.a # CFLAGS et al overrides must be target-local. # See "Target-specific Variable Values" in the GNU Make manual. $(OBJS): TOOLSET := $(TOOLSET) -$(OBJS): GYP_CFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_C_$(BUILDTYPE)) -$(OBJS): GYP_CXXFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_CC_$(BUILDTYPE)) +$(OBJS): GYP_CFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_C_$(BUILDTYPE)) +$(OBJS): GYP_CXXFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_CC_$(BUILDTYPE)) # Suffix rules, putting all outputs into $(obj). @@ -58,10 +83,14 @@ $(obj).$(TOOLSET)/$(TARGET)/%.o: $(obj)/%.c FORCE_DO_CMD # End of this set of suffix rules ### Rules for final target. -LDFLAGS_Default := +LDFLAGS_Debug := + +LDFLAGS_Release := LIBS := ws2_32.lib \ - -lws2_32.lib + -lws2_32.lib \ + -lpsapi.lib \ + -liphlpapi.lib $(builddir)/run-benchmarks: GYP_LDFLAGS := $(LDFLAGS_$(BUILDTYPE)) $(builddir)/run-benchmarks: LIBS := $(LIBS) diff --git a/mk/libuv/ia32/win/src/libuv/run-tests.target.mk b/mk/libuv/ia32/win/src/libuv/run-tests.target.mk index 9b09db73373..51b62f7a3e2 100644 --- a/mk/libuv/ia32/win/src/libuv/run-tests.target.mk +++ b/mk/libuv/ia32/win/src/libuv/run-tests.target.mk @@ -2,29 +2,56 @@ TOOLSET := target TARGET := run-tests -DEFS_Default := +DEFS_Debug := '-DWIN32' \ + '-D_CRT_SECURE_NO_DEPRECATE' \ + '-D_CRT_NONSTDC_NO_DEPRECATE' \ + '-DDEBUG' \ + '-D_DEBUG' # Flags passed to all source files. -CFLAGS_Default := +CFLAGS_Debug := -g \ + -O0 # Flags passed to only C files. -CFLAGS_C_Default := +CFLAGS_C_Debug := # Flags passed to only C++ files. -CFLAGS_CC_Default := +CFLAGS_CC_Debug := -INCS_Default := -I$(srcdir)/src/libuv/include +INCS_Debug := -I$(srcdir)/src/libuv/include + +DEFS_Release := '-DWIN32' \ + '-D_CRT_SECURE_NO_DEPRECATE' \ + '-D_CRT_NONSTDC_NO_DEPRECATE' \ + '-DNDEBUG' + +# Flags passed to all source files. +CFLAGS_Release := -O3 \ + -fomit-frame-pointer \ + -fdata-sections \ + -ffunction-sections + +# Flags passed to only C files. +CFLAGS_C_Release := + +# Flags passed to only C++ files. +CFLAGS_CC_Release := + +INCS_Release := -I$(srcdir)/src/libuv/include OBJS := $(obj).target/$(TARGET)/src/libuv/test/blackhole-server.o \ $(obj).target/$(TARGET)/src/libuv/test/echo-server.o \ $(obj).target/$(TARGET)/src/libuv/test/run-tests.o \ $(obj).target/$(TARGET)/src/libuv/test/runner.o \ $(obj).target/$(TARGET)/src/libuv/test/test-get-loadavg.o \ + $(obj).target/$(TARGET)/src/libuv/test/test-util.o \ $(obj).target/$(TARGET)/src/libuv/test/test-async.o \ $(obj).target/$(TARGET)/src/libuv/test/test-error.o \ $(obj).target/$(TARGET)/src/libuv/test/test-callback-stack.o \ $(obj).target/$(TARGET)/src/libuv/test/test-connection-fail.o \ + $(obj).target/$(TARGET)/src/libuv/test/test-cwd-and-chdir.o \ $(obj).target/$(TARGET)/src/libuv/test/test-delayed-accept.o \ + $(obj).target/$(TARGET)/src/libuv/test/test-eio-overflow.o \ $(obj).target/$(TARGET)/src/libuv/test/test-fail-always.o \ $(obj).target/$(TARGET)/src/libuv/test/test-fs.o \ $(obj).target/$(TARGET)/src/libuv/test/test-fs-event.o \ @@ -36,12 +63,15 @@ OBJS := $(obj).target/$(TARGET)/src/libuv/test/blackhole-server.o \ $(obj).target/$(TARGET)/src/libuv/test/test-hrtime.o \ $(obj).target/$(TARGET)/src/libuv/test/test-idle.o \ $(obj).target/$(TARGET)/src/libuv/test/test-ipc.o \ + $(obj).target/$(TARGET)/src/libuv/test/test-ipc-threads.o \ $(obj).target/$(TARGET)/src/libuv/test/test-loop-handles.o \ $(obj).target/$(TARGET)/src/libuv/test/test-multiple-listen.o \ $(obj).target/$(TARGET)/src/libuv/test/test-pass-always.o \ $(obj).target/$(TARGET)/src/libuv/test/test-ping-pong.o \ $(obj).target/$(TARGET)/src/libuv/test/test-pipe-bind-error.o \ $(obj).target/$(TARGET)/src/libuv/test/test-pipe-connect-error.o \ + $(obj).target/$(TARGET)/src/libuv/test/test-platform-output.o \ + $(obj).target/$(TARGET)/src/libuv/test/test-process-title.o \ $(obj).target/$(TARGET)/src/libuv/test/test-ref.o \ $(obj).target/$(TARGET)/src/libuv/test/test-shutdown-eof.o \ $(obj).target/$(TARGET)/src/libuv/test/test-spawn.o \ @@ -56,13 +86,17 @@ OBJS := $(obj).target/$(TARGET)/src/libuv/test/blackhole-server.o \ $(obj).target/$(TARGET)/src/libuv/test/test-tcp-write-to-half-open-connection.o \ $(obj).target/$(TARGET)/src/libuv/test/test-tcp-writealot.o \ $(obj).target/$(TARGET)/src/libuv/test/test-threadpool.o \ + $(obj).target/$(TARGET)/src/libuv/test/test-mutexes.o \ + $(obj).target/$(TARGET)/src/libuv/test/test-thread.o \ $(obj).target/$(TARGET)/src/libuv/test/test-timer-again.o \ $(obj).target/$(TARGET)/src/libuv/test/test-timer.o \ $(obj).target/$(TARGET)/src/libuv/test/test-tty.o \ $(obj).target/$(TARGET)/src/libuv/test/test-udp-dgram-too-big.o \ $(obj).target/$(TARGET)/src/libuv/test/test-udp-ipv6.o \ + $(obj).target/$(TARGET)/src/libuv/test/test-udp-options.o \ $(obj).target/$(TARGET)/src/libuv/test/test-udp-send-and-recv.o \ $(obj).target/$(TARGET)/src/libuv/test/test-udp-multicast-join.o \ + $(obj).target/$(TARGET)/src/libuv/test/test-counters-init.o \ $(obj).target/$(TARGET)/src/libuv/test/runner-win.o # Add to the list of files we specially track dependencies for. @@ -74,8 +108,8 @@ $(OBJS): | $(obj).target/src/libuv/libuv.a # CFLAGS et al overrides must be target-local. # See "Target-specific Variable Values" in the GNU Make manual. $(OBJS): TOOLSET := $(TOOLSET) -$(OBJS): GYP_CFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_C_$(BUILDTYPE)) -$(OBJS): GYP_CXXFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_CC_$(BUILDTYPE)) +$(OBJS): GYP_CFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_C_$(BUILDTYPE)) +$(OBJS): GYP_CXXFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_CC_$(BUILDTYPE)) # Suffix rules, putting all outputs into $(obj). @@ -92,10 +126,14 @@ $(obj).$(TOOLSET)/$(TARGET)/%.o: $(obj)/%.c FORCE_DO_CMD # End of this set of suffix rules ### Rules for final target. -LDFLAGS_Default := +LDFLAGS_Debug := + +LDFLAGS_Release := LIBS := ws2_32.lib \ - -lws2_32.lib + -lws2_32.lib \ + -lpsapi.lib \ + -liphlpapi.lib $(builddir)/run-tests: GYP_LDFLAGS := $(LDFLAGS_$(BUILDTYPE)) $(builddir)/run-tests: LIBS := $(LIBS) diff --git a/mk/libuv/ia32/win/src/libuv/uv.target.mk b/mk/libuv/ia32/win/src/libuv/uv.target.mk index 86ed7071555..53576a0f935 100644 --- a/mk/libuv/ia32/win/src/libuv/uv.target.mk +++ b/mk/libuv/ia32/win/src/libuv/uv.target.mk @@ -2,21 +2,53 @@ TOOLSET := target TARGET := uv -DEFS_Default := '-DHAVE_CONFIG_H' \ - '-D_WIN32_WINNT=0x0502' \ +DEFS_Debug := '-DWIN32' \ + '-D_CRT_SECURE_NO_DEPRECATE' \ + '-D_CRT_NONSTDC_NO_DEPRECATE' \ + '-DHAVE_CONFIG_H' \ + '-D_WIN32_WINNT=0x0600' \ '-DEIO_STACKSIZE=262144' \ - '-D_GNU_SOURCE' + '-D_GNU_SOURCE' \ + '-DDEBUG' \ + '-D_DEBUG' # Flags passed to all source files. -CFLAGS_Default := +CFLAGS_Debug := -g \ + -O0 # Flags passed to only C files. -CFLAGS_C_Default := +CFLAGS_C_Debug := # Flags passed to only C++ files. -CFLAGS_CC_Default := +CFLAGS_CC_Debug := -INCS_Default := -I$(srcdir)/src/libuv/include \ +INCS_Debug := -I$(srcdir)/src/libuv/include \ + -I$(srcdir)/src/libuv/include/uv-private \ + -I$(srcdir)/src/libuv/src \ + -I$(srcdir)/src/libuv/src/ares/config_win32 + +DEFS_Release := '-DWIN32' \ + '-D_CRT_SECURE_NO_DEPRECATE' \ + '-D_CRT_NONSTDC_NO_DEPRECATE' \ + '-DHAVE_CONFIG_H' \ + '-D_WIN32_WINNT=0x0600' \ + '-DEIO_STACKSIZE=262144' \ + '-D_GNU_SOURCE' \ + '-DNDEBUG' + +# Flags passed to all source files. +CFLAGS_Release := -O3 \ + -fomit-frame-pointer \ + -fdata-sections \ + -ffunction-sections + +# Flags passed to only C files. +CFLAGS_C_Release := + +# Flags passed to only C++ files. +CFLAGS_CC_Release := + +INCS_Release := -I$(srcdir)/src/libuv/include \ -I$(srcdir)/src/libuv/include/uv-private \ -I$(srcdir)/src/libuv/src \ -I$(srcdir)/src/libuv/src/ares/config_win32 @@ -79,13 +111,13 @@ OBJS := $(obj).target/$(TARGET)/src/libuv/src/uv-common.o \ $(obj).target/$(TARGET)/src/libuv/src/win/handle.o \ $(obj).target/$(TARGET)/src/libuv/src/win/loop-watcher.o \ $(obj).target/$(TARGET)/src/libuv/src/win/pipe.o \ + $(obj).target/$(TARGET)/src/libuv/src/win/thread.o \ $(obj).target/$(TARGET)/src/libuv/src/win/process.o \ $(obj).target/$(TARGET)/src/libuv/src/win/req.o \ $(obj).target/$(TARGET)/src/libuv/src/win/stream.o \ $(obj).target/$(TARGET)/src/libuv/src/win/tcp.o \ $(obj).target/$(TARGET)/src/libuv/src/win/tty.o \ $(obj).target/$(TARGET)/src/libuv/src/win/threadpool.o \ - $(obj).target/$(TARGET)/src/libuv/src/win/threads.o \ $(obj).target/$(TARGET)/src/libuv/src/win/timer.o \ $(obj).target/$(TARGET)/src/libuv/src/win/udp.o \ $(obj).target/$(TARGET)/src/libuv/src/win/util.o \ @@ -98,8 +130,8 @@ all_deps += $(OBJS) # CFLAGS et al overrides must be target-local. # See "Target-specific Variable Values" in the GNU Make manual. $(OBJS): TOOLSET := $(TOOLSET) -$(OBJS): GYP_CFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_C_$(BUILDTYPE)) -$(OBJS): GYP_CXXFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_CC_$(BUILDTYPE)) +$(OBJS): GYP_CFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_C_$(BUILDTYPE)) +$(OBJS): GYP_CXXFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_CC_$(BUILDTYPE)) # Suffix rules, putting all outputs into $(obj). @@ -116,7 +148,9 @@ $(obj).$(TOOLSET)/$(TARGET)/%.o: $(obj)/%.c FORCE_DO_CMD # End of this set of suffix rules ### Rules for final target. -LDFLAGS_Default := +LDFLAGS_Debug := + +LDFLAGS_Release := LIBS := diff --git a/mk/libuv/ia32/win/src/libuv/uv.target.mk.bak b/mk/libuv/ia32/win/src/libuv/uv.target.mk.bak new file mode 100644 index 00000000000..00b34e4bae5 --- /dev/null +++ b/mk/libuv/ia32/win/src/libuv/uv.target.mk.bak @@ -0,0 +1,167 @@ +# This file is generated by gyp; do not edit. + +TOOLSET := target +TARGET := uv +DEFS_Debug := '-DWIN32' \ + '-D_CRT_SECURE_NO_DEPRECATE' \ + '-D_CRT_NONSTDC_NO_DEPRECATE' \ + '-DHAVE_CONFIG_H' \ + '-D_WIN32_WINNT=0x0600' \ + '-DEIO_STACKSIZE=262144' \ + '-D_GNU_SOURCE' \ + '-DDEBUG' \ + '-D_DEBUG' + +# Flags passed to all source files. +CFLAGS_Debug := -g \ + -O0 + +# Flags passed to only C files. +CFLAGS_C_Debug := + +# Flags passed to only C++ files. +CFLAGS_CC_Debug := + +INCS_Debug := -I$(srcdir)\src\libuv\include \ + -I$(srcdir)\src\libuv\include\uv-private \ + -I$(srcdir)\src\libuv\src \ + -I$(srcdir)\src\libuv\src\ares\config_win32 + +DEFS_Release := '-DWIN32' \ + '-D_CRT_SECURE_NO_DEPRECATE' \ + '-D_CRT_NONSTDC_NO_DEPRECATE' \ + '-DHAVE_CONFIG_H' \ + '-D_WIN32_WINNT=0x0600' \ + '-DEIO_STACKSIZE=262144' \ + '-D_GNU_SOURCE' \ + '-DNDEBUG' + +# Flags passed to all source files. +CFLAGS_Release := -O3 \ + -fomit-frame-pointer \ + -fdata-sections \ + -ffunction-sections + +# Flags passed to only C files. +CFLAGS_C_Release := + +# Flags passed to only C++ files. +CFLAGS_CC_Release := + +INCS_Release := -I$(srcdir)\src\libuv\include \ + -I$(srcdir)\src\libuv\include\uv-private \ + -I$(srcdir)\src\libuv\src \ + -I$(srcdir)\src\libuv\src\ares\config_win32 + +OBJS := $(obj).target\$(TARGET)\src\libuv\src\uv-common.o \ + $(obj).target\$(TARGET)\src\libuv\src\ares\ares_cancel.o \ + $(obj).target\$(TARGET)\src\libuv\src\ares\ares__close_sockets.o \ + $(obj).target\$(TARGET)\src\libuv\src\ares\ares_data.o \ + $(obj).target\$(TARGET)\src\libuv\src\ares\ares_destroy.o \ + $(obj).target\$(TARGET)\src\libuv\src\ares\ares_expand_name.o \ + $(obj).target\$(TARGET)\src\libuv\src\ares\ares_expand_string.o \ + $(obj).target\$(TARGET)\src\libuv\src\ares\ares_fds.o \ + $(obj).target\$(TARGET)\src\libuv\src\ares\ares_free_hostent.o \ + $(obj).target\$(TARGET)\src\libuv\src\ares\ares_free_string.o \ + $(obj).target\$(TARGET)\src\libuv\src\ares\ares_gethostbyaddr.o \ + $(obj).target\$(TARGET)\src\libuv\src\ares\ares_gethostbyname.o \ + $(obj).target\$(TARGET)\src\libuv\src\ares\ares__get_hostent.o \ + $(obj).target\$(TARGET)\src\libuv\src\ares\ares_getnameinfo.o \ + $(obj).target\$(TARGET)\src\libuv\src\ares\ares_getopt.o \ + $(obj).target\$(TARGET)\src\libuv\src\ares\ares_getsock.o \ + $(obj).target\$(TARGET)\src\libuv\src\ares\ares_init.o \ + $(obj).target\$(TARGET)\src\libuv\src\ares\ares_library_init.o \ + $(obj).target\$(TARGET)\src\libuv\src\ares\ares_llist.o \ + $(obj).target\$(TARGET)\src\libuv\src\ares\ares_mkquery.o \ + $(obj).target\$(TARGET)\src\libuv\src\ares\ares_nowarn.o \ + $(obj).target\$(TARGET)\src\libuv\src\ares\ares_options.o \ + $(obj).target\$(TARGET)\src\libuv\src\ares\ares_parse_aaaa_reply.o \ + $(obj).target\$(TARGET)\src\libuv\src\ares\ares_parse_a_reply.o \ + $(obj).target\$(TARGET)\src\libuv\src\ares\ares_parse_mx_reply.o \ + $(obj).target\$(TARGET)\src\libuv\src\ares\ares_parse_ns_reply.o \ + $(obj).target\$(TARGET)\src\libuv\src\ares\ares_parse_ptr_reply.o \ + $(obj).target\$(TARGET)\src\libuv\src\ares\ares_parse_srv_reply.o \ + $(obj).target\$(TARGET)\src\libuv\src\ares\ares_parse_txt_reply.o \ + $(obj).target\$(TARGET)\src\libuv\src\ares\ares_process.o \ + $(obj).target\$(TARGET)\src\libuv\src\ares\ares_query.o \ + $(obj).target\$(TARGET)\src\libuv\src\ares\ares__read_line.o \ + $(obj).target\$(TARGET)\src\libuv\src\ares\ares_search.o \ + $(obj).target\$(TARGET)\src\libuv\src\ares\ares_send.o \ + $(obj).target\$(TARGET)\src\libuv\src\ares\ares_strcasecmp.o \ + $(obj).target\$(TARGET)\src\libuv\src\ares\ares_strdup.o \ + $(obj).target\$(TARGET)\src\libuv\src\ares\ares_strerror.o \ + $(obj).target\$(TARGET)\src\libuv\src\ares\ares_timeout.o \ + $(obj).target\$(TARGET)\src\libuv\src\ares\ares__timeval.o \ + $(obj).target\$(TARGET)\src\libuv\src\ares\ares_version.o \ + $(obj).target\$(TARGET)\src\libuv\src\ares\ares_writev.o \ + $(obj).target\$(TARGET)\src\libuv\src\ares\bitncmp.o \ + $(obj).target\$(TARGET)\src\libuv\src\ares\inet_net_pton.o \ + $(obj).target\$(TARGET)\src\libuv\src\ares\inet_ntop.o \ + $(obj).target\$(TARGET)\src\libuv\src\ares\windows_port.o \ + $(obj).target\$(TARGET)\src\libuv\src\ares\ares_getenv.o \ + $(obj).target\$(TARGET)\src\libuv\src\ares\ares_platform.o \ + $(obj).target\$(TARGET)\src\libuv\src\win\async.o \ + $(obj).target\$(TARGET)\src\libuv\src\win\cares.o \ + $(obj).target\$(TARGET)\src\libuv\src\win\core.o \ + $(obj).target\$(TARGET)\src\libuv\src\win\dl.o \ + $(obj).target\$(TARGET)\src\libuv\src\win\error.o \ + $(obj).target\$(TARGET)\src\libuv\src\win\fs.o \ + $(obj).target\$(TARGET)\src\libuv\src\win\fs-event.o \ + $(obj).target\$(TARGET)\src\libuv\src\win\getaddrinfo.o \ + $(obj).target\$(TARGET)\src\libuv\src\win\handle.o \ + $(obj).target\$(TARGET)\src\libuv\src\win\loop-watcher.o \ + $(obj).target\$(TARGET)\src\libuv\src\win\pipe.o \ + $(obj).target\$(TARGET)\src\libuv\src\win\thread.o \ + $(obj).target\$(TARGET)\src\libuv\src\win\process.o \ + $(obj).target\$(TARGET)\src\libuv\src\win\req.o \ + $(obj).target\$(TARGET)\src\libuv\src\win\stream.o \ + $(obj).target\$(TARGET)\src\libuv\src\win\tcp.o \ + $(obj).target\$(TARGET)\src\libuv\src\win\tty.o \ + $(obj).target\$(TARGET)\src\libuv\src\win\threadpool.o \ + $(obj).target\$(TARGET)\src\libuv\src\win\timer.o \ + $(obj).target\$(TARGET)\src\libuv\src\win\udp.o \ + $(obj).target\$(TARGET)\src\libuv\src\win\util.o \ + $(obj).target\$(TARGET)\src\libuv\src\win\winapi.o \ + $(obj).target\$(TARGET)\src\libuv\src\win\winsock.o + +# Add to the list of files we specially track dependencies for. +all_deps += $(OBJS) + +# CFLAGS et al overrides must be target-local. +# See "Target-specific Variable Values" in the GNU Make manual. +$(OBJS): TOOLSET := $(TOOLSET) +$(OBJS): GYP_CFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_C_$(BUILDTYPE)) +$(OBJS): GYP_CXXFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_CC_$(BUILDTYPE)) + +# Suffix rules, putting all outputs into $(obj). + +$(obj).$(TOOLSET)\$(TARGET)\%.o: $(srcdir)\%.c FORCE_DO_CMD + @$(call do_cmd,cc,1) + +# Try building from generated source, too. + +$(obj).$(TOOLSET)\$(TARGET)\%.o: $(obj).$(TOOLSET)\%.c FORCE_DO_CMD + @$(call do_cmd,cc,1) + +$(obj).$(TOOLSET)\$(TARGET)\%.o: $(obj)\%.c FORCE_DO_CMD + @$(call do_cmd,cc,1) + +# End of this set of suffix rules +### Rules for final target. +LDFLAGS_Debug := + +LDFLAGS_Release := + +LIBS := + +$(obj).target\src\libuv\libuv.a: GYP_LDFLAGS := $(LDFLAGS_$(BUILDTYPE)) +$(obj).target\src\libuv\libuv.a: LIBS := $(LIBS) +$(obj).target\src\libuv\libuv.a: TOOLSET := $(TOOLSET) +$(obj).target\src\libuv\libuv.a: $(OBJS) FORCE_DO_CMD + $(call do_cmd,alink) + +all_deps += $(obj).target\src\libuv\libuv.a +# Add target alias +.PHONY: uv +uv: $(obj).target\src\libuv\libuv.a + diff --git a/mk/libuv/x86_64/freebsd/Makefile b/mk/libuv/x86_64/freebsd/Makefile deleted file mode 100644 index 98a175dd3f0..00000000000 --- a/mk/libuv/x86_64/freebsd/Makefile +++ /dev/null @@ -1,353 +0,0 @@ -# We borrow heavily from the kernel build setup, though we are simpler since -# we don't have Kconfig tweaking settings on us. - -# The implicit make rules have it looking for RCS files, among other things. -# We instead explicitly write all the rules we care about. -# It's even quicker (saves ~200ms) to pass -r on the command line. -MAKEFLAGS=-r - -# The source directory tree. -srcdir := ../../../.. - -# The name of the builddir. -builddir_name ?= out - -# The V=1 flag on command line makes us verbosely print command lines. -ifdef V - quiet= -else - quiet=quiet_ -endif - -# Specify BUILDTYPE=Release on the command line for a release build. -BUILDTYPE ?= Default - -# Directory all our build output goes into. -# Note that this must be two directories beneath src/ for unit tests to pass, -# as they reach into the src/ directory for data with relative paths. -builddir ?= $(builddir_name)/$(BUILDTYPE) -abs_builddir := $(abspath $(builddir)) -depsdir := $(builddir)/.deps - -# Object output directory. -obj := $(builddir)/obj -abs_obj := $(abspath $(obj)) - -# We build up a list of every single one of the targets so we can slurp in the -# generated dependency rule Makefiles in one pass. -all_deps := - - - -# C++ apps need to be linked with g++. -# -# Note: flock is used to seralize linking. Linking is a memory-intensive -# process so running parallel links can often lead to thrashing. To disable -# the serialization, override LINK via an envrionment variable as follows: -# -# export LINK=g++ -# -# This will allow make to invoke N linker processes as specified in -jN. -LINK ?= lockf $(builddir)/linker.lock $(CXX) - -CC.target ?= $(CC) -CFLAGS.target ?= $(CFLAGS) -CXX.target ?= $(CXX) -CXXFLAGS.target ?= $(CXXFLAGS) -LINK.target ?= $(LINK) -LDFLAGS.target ?= $(LDFLAGS) -AR.target ?= $(AR) -ARFLAGS.target ?= crs - -# N.B.: the logic of which commands to run should match the computation done -# in gyp's make.py where ARFLAGS.host etc. is computed. -# TODO(evan): move all cross-compilation logic to gyp-time so we don't need -# to replicate this environment fallback in make as well. -CC.host ?= gcc -CFLAGS.host ?= -CXX.host ?= g++ -CXXFLAGS.host ?= -LINK.host ?= g++ -LDFLAGS.host ?= -AR.host ?= ar -ARFLAGS.host := crs - -# Define a dir function that can handle spaces. -# http://www.gnu.org/software/make/manual/make.html#Syntax-of-Functions -# "leading spaces cannot appear in the text of the first argument as written. -# These characters can be put into the argument value by variable substitution." -empty := -space := $(empty) $(empty) - -# http://stackoverflow.com/questions/1189781/using-make-dir-or-notdir-on-a-path-with-spaces -replace_spaces = $(subst $(space),?,$1) -unreplace_spaces = $(subst ?,$(space),$1) -dirx = $(call unreplace_spaces,$(dir $(call replace_spaces,$1))) - -# Flags to make gcc output dependency info. Note that you need to be -# careful here to use the flags that ccache and distcc can understand. -# We write to a dep file on the side first and then rename at the end -# so we can't end up with a broken dep file. -depfile = $(depsdir)/$(call replace_spaces,$@).d -DEPFLAGS = -MMD -MF $(depfile).raw - -# We have to fixup the deps output in a few ways. -# (1) the file output should mention the proper .o file. -# ccache or distcc lose the path to the target, so we convert a rule of -# the form: -# foobar.o: DEP1 DEP2 -# into -# path/to/foobar.o: DEP1 DEP2 -# (2) we want missing files not to cause us to fail to build. -# We want to rewrite -# foobar.o: DEP1 DEP2 \ -# DEP3 -# to -# DEP1: -# DEP2: -# DEP3: -# so if the files are missing, they're just considered phony rules. -# We have to do some pretty insane escaping to get those backslashes -# and dollar signs past make, the shell, and sed at the same time. -# Doesn't work with spaces, but that's fine: .d files have spaces in -# their names replaced with other characters. -define fixup_dep -# The depfile may not exist if the input file didn't have any #includes. -touch $(depfile).raw -# Fixup path as in (1). -sed -e "s|^$(notdir $@)|$@|" $(depfile).raw >> $(depfile) -# Add extra rules as in (2). -# We remove slashes and replace spaces with new lines; -# remove blank lines; -# delete the first line and append a colon to the remaining lines. -sed -e 's|\\||' -e 'y| |\n|' $(depfile).raw |\ - grep -v '^$$' |\ - sed -e 1d -e 's|$$|:|' \ - >> $(depfile) -rm $(depfile).raw -endef - -# Command definitions: -# - cmd_foo is the actual command to run; -# - quiet_cmd_foo is the brief-output summary of the command. - -quiet_cmd_cc = CC($(TOOLSET)) $@ -cmd_cc = $(CC.$(TOOLSET)) $(GYP_CFLAGS) $(DEPFLAGS) $(CFLAGS.$(TOOLSET)) -c -o $@ $< - -quiet_cmd_cxx = CXX($(TOOLSET)) $@ -cmd_cxx = $(CXX.$(TOOLSET)) $(GYP_CXXFLAGS) $(DEPFLAGS) $(CXXFLAGS.$(TOOLSET)) -c -o $@ $< - -quiet_cmd_touch = TOUCH $@ -cmd_touch = touch $@ - -quiet_cmd_copy = COPY $@ -# send stderr to /dev/null to ignore messages when linking directories. -cmd_copy = ln -f "$<" "$@" 2>/dev/null || (rm -rf "$@" && cp -af "$<" "$@") - -quiet_cmd_alink = AR($(TOOLSET)) $@ -cmd_alink = rm -f $@ && $(AR.$(TOOLSET)) $(ARFLAGS.$(TOOLSET)) $@ $(filter %.o,$^) - -# Due to circular dependencies between libraries :(, we wrap the -# special "figure out circular dependencies" flags around the entire -# input list during linking. -quiet_cmd_link = LINK($(TOOLSET)) $@ -cmd_link = $(LINK.$(TOOLSET)) $(GYP_LDFLAGS) $(LDFLAGS.$(TOOLSET)) -o $@ -Wl,--start-group $(LD_INPUTS) -Wl,--end-group $(LIBS) - -# We support two kinds of shared objects (.so): -# 1) shared_library, which is just bundling together many dependent libraries -# into a link line. -# 2) loadable_module, which is generating a module intended for dlopen(). -# -# They differ only slightly: -# In the former case, we want to package all dependent code into the .so. -# In the latter case, we want to package just the API exposed by the -# outermost module. -# This means shared_library uses --whole-archive, while loadable_module doesn't. -# (Note that --whole-archive is incompatible with the --start-group used in -# normal linking.) - -# Other shared-object link notes: -# - Set SONAME to the library filename so our binaries don't reference -# the local, absolute paths used on the link command-line. -quiet_cmd_solink = SOLINK($(TOOLSET)) $@ -cmd_solink = $(LINK.$(TOOLSET)) -shared $(GYP_LDFLAGS) $(LDFLAGS.$(TOOLSET)) -Wl,-soname=$(@F) -o $@ -Wl,--whole-archive $(LD_INPUTS) -Wl,--no-whole-archive $(LIBS) - -quiet_cmd_solink_module = SOLINK_MODULE($(TOOLSET)) $@ -cmd_solink_module = $(LINK.$(TOOLSET)) -shared $(GYP_LDFLAGS) $(LDFLAGS.$(TOOLSET)) -Wl,-soname=$(@F) -o $@ -Wl,--start-group $(filter-out FORCE_DO_CMD, $^) -Wl,--end-group $(LIBS) - - -# Define an escape_quotes function to escape single quotes. -# This allows us to handle quotes properly as long as we always use -# use single quotes and escape_quotes. -escape_quotes = $(subst ','\'',$(1)) -# This comment is here just to include a ' to unconfuse syntax highlighting. -# Define an escape_vars function to escape '$' variable syntax. -# This allows us to read/write command lines with shell variables (e.g. -# $LD_LIBRARY_PATH), without triggering make substitution. -escape_vars = $(subst $$,$$$$,$(1)) -# Helper that expands to a shell command to echo a string exactly as it is in -# make. This uses printf instead of echo because printf's behaviour with respect -# to escape sequences is more portable than echo's across different shells -# (e.g., dash, bash). -exact_echo = printf '%s\n' '$(call escape_quotes,$(1))' - -# Helper to compare the command we're about to run against the command -# we logged the last time we ran the command. Produces an empty -# string (false) when the commands match. -# Tricky point: Make has no string-equality test function. -# The kernel uses the following, but it seems like it would have false -# positives, where one string reordered its arguments. -# arg_check = $(strip $(filter-out $(cmd_$(1)), $(cmd_$@)) \ -# $(filter-out $(cmd_$@), $(cmd_$(1)))) -# We instead substitute each for the empty string into the other, and -# say they're equal if both substitutions produce the empty string. -# .d files contain ? instead of spaces, take that into account. -command_changed = $(or $(subst $(cmd_$(1)),,$(cmd_$(call replace_spaces,$@))),\ - $(subst $(cmd_$(call replace_spaces,$@)),,$(cmd_$(1)))) - -# Helper that is non-empty when a prerequisite changes. -# Normally make does this implicitly, but we force rules to always run -# so we can check their command lines. -# $? -- new prerequisites -# $| -- order-only dependencies -prereq_changed = $(filter-out FORCE_DO_CMD,$(filter-out $|,$?)) - -# Helper that executes all postbuilds, and deletes the output file when done -# if any of the postbuilds failed. -define do_postbuilds - @E=0;\ - for p in $(POSTBUILDS); do\ - eval $$p;\ - F=$$?;\ - if [ $$F -ne 0 ]; then\ - E=$$F;\ - fi;\ - done;\ - if [ $$E -ne 0 ]; then\ - rm -rf "$@";\ - exit $$E;\ - fi -endef - -# do_cmd: run a command via the above cmd_foo names, if necessary. -# Should always run for a given target to handle command-line changes. -# Second argument, if non-zero, makes it do asm/C/C++ dependency munging. -# Third argument, if non-zero, makes it do POSTBUILDS processing. -# Note: We intentionally do NOT call dirx for depfile, since it contains ? for -# spaces already and dirx strips the ? characters. -define do_cmd -$(if $(or $(command_changed),$(prereq_changed)), - @$(call exact_echo, $($(quiet)cmd_$(1))) - @mkdir -p "$(call dirx,$@)" "$(dir $(depfile))" - $(if $(findstring flock,$(word 1,$(cmd_$1))), - @$(cmd_$(1)) - @echo " $(quiet_cmd_$(1)): Finished", - @$(cmd_$(1)) - ) - @$(call exact_echo,$(call escape_vars,cmd_$(call replace_spaces,$@) := $(cmd_$(1)))) > $(depfile) - @$(if $(2),$(fixup_dep)) - $(if $(and $(3), $(POSTBUILDS)), - $(call do_postbuilds) - ) -) -endef - -# Declare the "all" target first so it is the default, -# even though we don't have the deps yet. -.PHONY: all -all: - -# Use FORCE_DO_CMD to force a target to run. Should be coupled with -# do_cmd. -.PHONY: FORCE_DO_CMD -FORCE_DO_CMD: - -TOOLSET := target -# Suffix rules, putting all outputs into $(obj). -$(obj).$(TOOLSET)/%.o: $(srcdir)/%.c FORCE_DO_CMD - @$(call do_cmd,cc,1) -$(obj).$(TOOLSET)/%.o: $(srcdir)/%.cc FORCE_DO_CMD - @$(call do_cmd,cxx,1) -$(obj).$(TOOLSET)/%.o: $(srcdir)/%.cpp FORCE_DO_CMD - @$(call do_cmd,cxx,1) -$(obj).$(TOOLSET)/%.o: $(srcdir)/%.cxx FORCE_DO_CMD - @$(call do_cmd,cxx,1) -$(obj).$(TOOLSET)/%.o: $(srcdir)/%.S FORCE_DO_CMD - @$(call do_cmd,cc,1) -$(obj).$(TOOLSET)/%.o: $(srcdir)/%.s FORCE_DO_CMD - @$(call do_cmd,cc,1) - -# Try building from generated source, too. -$(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.c FORCE_DO_CMD - @$(call do_cmd,cc,1) -$(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.cc FORCE_DO_CMD - @$(call do_cmd,cxx,1) -$(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.cpp FORCE_DO_CMD - @$(call do_cmd,cxx,1) -$(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.cxx FORCE_DO_CMD - @$(call do_cmd,cxx,1) -$(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.S FORCE_DO_CMD - @$(call do_cmd,cc,1) -$(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.s FORCE_DO_CMD - @$(call do_cmd,cc,1) - -$(obj).$(TOOLSET)/%.o: $(obj)/%.c FORCE_DO_CMD - @$(call do_cmd,cc,1) -$(obj).$(TOOLSET)/%.o: $(obj)/%.cc FORCE_DO_CMD - @$(call do_cmd,cxx,1) -$(obj).$(TOOLSET)/%.o: $(obj)/%.cpp FORCE_DO_CMD - @$(call do_cmd,cxx,1) -$(obj).$(TOOLSET)/%.o: $(obj)/%.cxx FORCE_DO_CMD - @$(call do_cmd,cxx,1) -$(obj).$(TOOLSET)/%.o: $(obj)/%.S FORCE_DO_CMD - @$(call do_cmd,cc,1) -$(obj).$(TOOLSET)/%.o: $(obj)/%.s FORCE_DO_CMD - @$(call do_cmd,cc,1) - - -ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ - $(findstring $(join ^,$(prefix)),\ - $(join ^,src/libuv/run-benchmarks.target.mk)))),) - include src/libuv/run-benchmarks.target.mk -endif -ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ - $(findstring $(join ^,$(prefix)),\ - $(join ^,src/libuv/run-tests.target.mk)))),) - include src/libuv/run-tests.target.mk -endif -ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ - $(findstring $(join ^,$(prefix)),\ - $(join ^,src/libuv/uv.target.mk)))),) - include src/libuv/uv.target.mk -endif - -quiet_cmd_regen_makefile = ACTION Regenerating $@ -cmd_regen_makefile = ./src/libuv/build/gyp/gyp -fmake --ignore-environment "--toplevel-dir=." "--depth=." "--generator-output=mk/libuv/x86_64/unix" "-Dlibrary=static_library" "-Dtarget_arch=x86_64" "-DOS=freebsd" src/libuv/uv.gyp -Makefile: $(srcdir)/src/libuv/uv.gyp -# $(call do_cmd,regen_makefile) - -# "all" is a concatenation of the "all" targets from all the included -# sub-makefiles. This is just here to clarify. -all: - -# Add in dependency-tracking rules. $(all_deps) is the list of every single -# target in our tree. Only consider the ones with .d (dependency) info: -d_files := $(wildcard $(foreach f,$(all_deps),$(depsdir)/$(f).d)) -ifneq ($(d_files),) - # Rather than include each individual .d file, concatenate them into a - # single file which make is able to load faster. We split this into - # commands that take 1000 files at a time to avoid overflowing the - # command line. - $(shell cat $(wordlist 1,1000,$(d_files)) > $(depsdir)/all.deps) - - ifneq ($(word 1001,$(d_files)),) - $(error Found unprocessed dependency files (gyp didn't generate enough rules!)) - endif - - # make looks for ways to re-generate included makefiles, but in our case, we - # don't have a direct way. Explicitly telling make that it has nothing to do - # for them makes it go faster. - $(depsdir)/all.deps: ; - - include $(depsdir)/all.deps -endif diff --git a/mk/libuv/x86_64/freebsd/src/libuv/run-benchmarks.target.mk b/mk/libuv/x86_64/freebsd/src/libuv/run-benchmarks.target.mk deleted file mode 100644 index 333d5e04a23..00000000000 --- a/mk/libuv/x86_64/freebsd/src/libuv/run-benchmarks.target.mk +++ /dev/null @@ -1,83 +0,0 @@ -# This file is generated by gyp; do not edit. - -TOOLSET := target -TARGET := run-benchmarks -DEFS_Default := '-D_LARGEFILE_SOURCE' \ - '-D_FILE_OFFSET_BITS=64' \ - '-D_GNU_SOURCE' \ - '-DEIO_STACKSIZE=262144' - -# Flags passed to all source files. -CFLAGS_Default := -pthread - -# Flags passed to only C files. -CFLAGS_C_Default := - -# Flags passed to only C++ files. -CFLAGS_CC_Default := - -INCS_Default := -I$(srcdir)/src/libuv/include - -OBJS := $(obj).target/$(TARGET)/src/libuv/test/benchmark-ares.o \ - $(obj).target/$(TARGET)/src/libuv/test/benchmark-getaddrinfo.o \ - $(obj).target/$(TARGET)/src/libuv/test/benchmark-ping-pongs.o \ - $(obj).target/$(TARGET)/src/libuv/test/benchmark-pound.o \ - $(obj).target/$(TARGET)/src/libuv/test/benchmark-pump.o \ - $(obj).target/$(TARGET)/src/libuv/test/benchmark-sizes.o \ - $(obj).target/$(TARGET)/src/libuv/test/benchmark-spawn.o \ - $(obj).target/$(TARGET)/src/libuv/test/benchmark-tcp-write-batch.o \ - $(obj).target/$(TARGET)/src/libuv/test/benchmark-udp-packet-storm.o \ - $(obj).target/$(TARGET)/src/libuv/test/dns-server.o \ - $(obj).target/$(TARGET)/src/libuv/test/echo-server.o \ - $(obj).target/$(TARGET)/src/libuv/test/blackhole-server.o \ - $(obj).target/$(TARGET)/src/libuv/test/run-benchmarks.o \ - $(obj).target/$(TARGET)/src/libuv/test/runner.o \ - $(obj).target/$(TARGET)/src/libuv/test/runner-unix.o - -# Add to the list of files we specially track dependencies for. -all_deps += $(OBJS) - -# Make sure our dependencies are built before any of us. -$(OBJS): | $(obj).target/src/libuv/libuv.a - -# CFLAGS et al overrides must be target-local. -# See "Target-specific Variable Values" in the GNU Make manual. -$(OBJS): TOOLSET := $(TOOLSET) -$(OBJS): GYP_CFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_C_$(BUILDTYPE)) -$(OBJS): GYP_CXXFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_CC_$(BUILDTYPE)) - -# Suffix rules, putting all outputs into $(obj). - -$(obj).$(TOOLSET)/$(TARGET)/%.o: $(srcdir)/%.c FORCE_DO_CMD - @$(call do_cmd,cc,1) - -# Try building from generated source, too. - -$(obj).$(TOOLSET)/$(TARGET)/%.o: $(obj).$(TOOLSET)/%.c FORCE_DO_CMD - @$(call do_cmd,cc,1) - -$(obj).$(TOOLSET)/$(TARGET)/%.o: $(obj)/%.c FORCE_DO_CMD - @$(call do_cmd,cc,1) - -# End of this set of suffix rules -### Rules for final target. -LDFLAGS_Default := - -LIBS := - -$(builddir)/run-benchmarks: GYP_LDFLAGS := $(LDFLAGS_$(BUILDTYPE)) -$(builddir)/run-benchmarks: LIBS := $(LIBS) -$(builddir)/run-benchmarks: LD_INPUTS := $(OBJS) $(obj).target/src/libuv/libuv.a -$(builddir)/run-benchmarks: TOOLSET := $(TOOLSET) -$(builddir)/run-benchmarks: $(OBJS) $(obj).target/src/libuv/libuv.a FORCE_DO_CMD - $(call do_cmd,link) - -all_deps += $(builddir)/run-benchmarks -# Add target alias -.PHONY: run-benchmarks -run-benchmarks: $(builddir)/run-benchmarks - -# Add executable to "all" target. -.PHONY: all -all: $(builddir)/run-benchmarks - diff --git a/mk/libuv/x86_64/freebsd/src/libuv/run-tests.target.mk b/mk/libuv/x86_64/freebsd/src/libuv/run-tests.target.mk deleted file mode 100644 index 7eb08d192d1..00000000000 --- a/mk/libuv/x86_64/freebsd/src/libuv/run-tests.target.mk +++ /dev/null @@ -1,117 +0,0 @@ -# This file is generated by gyp; do not edit. - -TOOLSET := target -TARGET := run-tests -DEFS_Default := '-D_LARGEFILE_SOURCE' \ - '-D_FILE_OFFSET_BITS=64' \ - '-D_GNU_SOURCE' \ - '-DEIO_STACKSIZE=262144' - -# Flags passed to all source files. -CFLAGS_Default := -pthread - -# Flags passed to only C files. -CFLAGS_C_Default := - -# Flags passed to only C++ files. -CFLAGS_CC_Default := - -INCS_Default := -I$(srcdir)/src/libuv/include - -OBJS := $(obj).target/$(TARGET)/src/libuv/test/blackhole-server.o \ - $(obj).target/$(TARGET)/src/libuv/test/echo-server.o \ - $(obj).target/$(TARGET)/src/libuv/test/run-tests.o \ - $(obj).target/$(TARGET)/src/libuv/test/runner.o \ - $(obj).target/$(TARGET)/src/libuv/test/test-get-loadavg.o \ - $(obj).target/$(TARGET)/src/libuv/test/test-async.o \ - $(obj).target/$(TARGET)/src/libuv/test/test-error.o \ - $(obj).target/$(TARGET)/src/libuv/test/test-callback-stack.o \ - $(obj).target/$(TARGET)/src/libuv/test/test-connection-fail.o \ - $(obj).target/$(TARGET)/src/libuv/test/test-delayed-accept.o \ - $(obj).target/$(TARGET)/src/libuv/test/test-fail-always.o \ - $(obj).target/$(TARGET)/src/libuv/test/test-fs.o \ - $(obj).target/$(TARGET)/src/libuv/test/test-fs-event.o \ - $(obj).target/$(TARGET)/src/libuv/test/test-get-currentexe.o \ - $(obj).target/$(TARGET)/src/libuv/test/test-get-memory.o \ - $(obj).target/$(TARGET)/src/libuv/test/test-getaddrinfo.o \ - $(obj).target/$(TARGET)/src/libuv/test/test-gethostbyname.o \ - $(obj).target/$(TARGET)/src/libuv/test/test-getsockname.o \ - $(obj).target/$(TARGET)/src/libuv/test/test-hrtime.o \ - $(obj).target/$(TARGET)/src/libuv/test/test-idle.o \ - $(obj).target/$(TARGET)/src/libuv/test/test-ipc.o \ - $(obj).target/$(TARGET)/src/libuv/test/test-loop-handles.o \ - $(obj).target/$(TARGET)/src/libuv/test/test-multiple-listen.o \ - $(obj).target/$(TARGET)/src/libuv/test/test-pass-always.o \ - $(obj).target/$(TARGET)/src/libuv/test/test-ping-pong.o \ - $(obj).target/$(TARGET)/src/libuv/test/test-pipe-bind-error.o \ - $(obj).target/$(TARGET)/src/libuv/test/test-pipe-connect-error.o \ - $(obj).target/$(TARGET)/src/libuv/test/test-ref.o \ - $(obj).target/$(TARGET)/src/libuv/test/test-shutdown-eof.o \ - $(obj).target/$(TARGET)/src/libuv/test/test-spawn.o \ - $(obj).target/$(TARGET)/src/libuv/test/test-stdio-over-pipes.o \ - $(obj).target/$(TARGET)/src/libuv/test/test-tcp-bind-error.o \ - $(obj).target/$(TARGET)/src/libuv/test/test-tcp-bind6-error.o \ - $(obj).target/$(TARGET)/src/libuv/test/test-tcp-close.o \ - $(obj).target/$(TARGET)/src/libuv/test/test-tcp-flags.o \ - $(obj).target/$(TARGET)/src/libuv/test/test-tcp-connect-error.o \ - $(obj).target/$(TARGET)/src/libuv/test/test-tcp-connect6-error.o \ - $(obj).target/$(TARGET)/src/libuv/test/test-tcp-write-error.o \ - $(obj).target/$(TARGET)/src/libuv/test/test-tcp-write-to-half-open-connection.o \ - $(obj).target/$(TARGET)/src/libuv/test/test-tcp-writealot.o \ - $(obj).target/$(TARGET)/src/libuv/test/test-threadpool.o \ - $(obj).target/$(TARGET)/src/libuv/test/test-timer-again.o \ - $(obj).target/$(TARGET)/src/libuv/test/test-timer.o \ - $(obj).target/$(TARGET)/src/libuv/test/test-tty.o \ - $(obj).target/$(TARGET)/src/libuv/test/test-udp-dgram-too-big.o \ - $(obj).target/$(TARGET)/src/libuv/test/test-udp-ipv6.o \ - $(obj).target/$(TARGET)/src/libuv/test/test-udp-send-and-recv.o \ - $(obj).target/$(TARGET)/src/libuv/test/test-udp-multicast-join.o \ - $(obj).target/$(TARGET)/src/libuv/test/runner-unix.o - -# Add to the list of files we specially track dependencies for. -all_deps += $(OBJS) - -# Make sure our dependencies are built before any of us. -$(OBJS): | $(obj).target/src/libuv/libuv.a - -# CFLAGS et al overrides must be target-local. -# See "Target-specific Variable Values" in the GNU Make manual. -$(OBJS): TOOLSET := $(TOOLSET) -$(OBJS): GYP_CFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_C_$(BUILDTYPE)) -$(OBJS): GYP_CXXFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_CC_$(BUILDTYPE)) - -# Suffix rules, putting all outputs into $(obj). - -$(obj).$(TOOLSET)/$(TARGET)/%.o: $(srcdir)/%.c FORCE_DO_CMD - @$(call do_cmd,cc,1) - -# Try building from generated source, too. - -$(obj).$(TOOLSET)/$(TARGET)/%.o: $(obj).$(TOOLSET)/%.c FORCE_DO_CMD - @$(call do_cmd,cc,1) - -$(obj).$(TOOLSET)/$(TARGET)/%.o: $(obj)/%.c FORCE_DO_CMD - @$(call do_cmd,cc,1) - -# End of this set of suffix rules -### Rules for final target. -LDFLAGS_Default := - -LIBS := - -$(builddir)/run-tests: GYP_LDFLAGS := $(LDFLAGS_$(BUILDTYPE)) -$(builddir)/run-tests: LIBS := $(LIBS) -$(builddir)/run-tests: LD_INPUTS := $(OBJS) $(obj).target/src/libuv/libuv.a -$(builddir)/run-tests: TOOLSET := $(TOOLSET) -$(builddir)/run-tests: $(OBJS) $(obj).target/src/libuv/libuv.a FORCE_DO_CMD - $(call do_cmd,link) - -all_deps += $(builddir)/run-tests -# Add target alias -.PHONY: run-tests -run-tests: $(builddir)/run-tests - -# Add executable to "all" target. -.PHONY: all -all: $(builddir)/run-tests - diff --git a/mk/libuv/x86_64/freebsd/src/libuv/uv.Makefile b/mk/libuv/x86_64/freebsd/src/libuv/uv.Makefile deleted file mode 100644 index 3842bae54b9..00000000000 --- a/mk/libuv/x86_64/freebsd/src/libuv/uv.Makefile +++ /dev/null @@ -1,6 +0,0 @@ -# This file is generated by gyp; do not edit. - -export builddir_name ?= mk/libuv/x86_64/unix/./src/libuv/out -.PHONY: all -all: - $(MAKE) -C ../.. uv run-benchmarks run-tests diff --git a/mk/libuv/x86_64/freebsd/src/libuv/uv.target.mk b/mk/libuv/x86_64/freebsd/src/libuv/uv.target.mk deleted file mode 100644 index f1b02252a03..00000000000 --- a/mk/libuv/x86_64/freebsd/src/libuv/uv.target.mk +++ /dev/null @@ -1,138 +0,0 @@ -# This file is generated by gyp; do not edit. - -TOOLSET := target -TARGET := uv -DEFS_Default := '-D_LARGEFILE_SOURCE' \ - '-D_FILE_OFFSET_BITS=64' \ - '-D_GNU_SOURCE' \ - '-DEIO_STACKSIZE=262144' \ - '-DHAVE_CONFIG_H' \ - '-DEV_CONFIG_H="config_freebsd.h"' \ - '-DEIO_CONFIG_H="config_freebsd.h"' - -# Flags passed to all source files. -CFLAGS_Default := -pthread \ - -g \ - --std=gnu89 \ - -pedantic \ - -Wall \ - -Wextra \ - -Wno-unused-parameter - -# Flags passed to only C files. -CFLAGS_C_Default := - -# Flags passed to only C++ files. -CFLAGS_CC_Default := - -INCS_Default := -I$(srcdir)/src/libuv/include \ - -I$(srcdir)/src/libuv/include/uv-private \ - -I$(srcdir)/src/libuv/src \ - -I$(srcdir)/src/libuv/src/unix/ev \ - -I$(srcdir)/src/libuv/src/ares/config_freebsd - -OBJS := $(obj).target/$(TARGET)/src/libuv/src/uv-common.o \ - $(obj).target/$(TARGET)/src/libuv/src/ares/ares_cancel.o \ - $(obj).target/$(TARGET)/src/libuv/src/ares/ares__close_sockets.o \ - $(obj).target/$(TARGET)/src/libuv/src/ares/ares_data.o \ - $(obj).target/$(TARGET)/src/libuv/src/ares/ares_destroy.o \ - $(obj).target/$(TARGET)/src/libuv/src/ares/ares_expand_name.o \ - $(obj).target/$(TARGET)/src/libuv/src/ares/ares_expand_string.o \ - $(obj).target/$(TARGET)/src/libuv/src/ares/ares_fds.o \ - $(obj).target/$(TARGET)/src/libuv/src/ares/ares_free_hostent.o \ - $(obj).target/$(TARGET)/src/libuv/src/ares/ares_free_string.o \ - $(obj).target/$(TARGET)/src/libuv/src/ares/ares_gethostbyaddr.o \ - $(obj).target/$(TARGET)/src/libuv/src/ares/ares_gethostbyname.o \ - $(obj).target/$(TARGET)/src/libuv/src/ares/ares__get_hostent.o \ - $(obj).target/$(TARGET)/src/libuv/src/ares/ares_getnameinfo.o \ - $(obj).target/$(TARGET)/src/libuv/src/ares/ares_getopt.o \ - $(obj).target/$(TARGET)/src/libuv/src/ares/ares_getsock.o \ - $(obj).target/$(TARGET)/src/libuv/src/ares/ares_init.o \ - $(obj).target/$(TARGET)/src/libuv/src/ares/ares_library_init.o \ - $(obj).target/$(TARGET)/src/libuv/src/ares/ares_llist.o \ - $(obj).target/$(TARGET)/src/libuv/src/ares/ares_mkquery.o \ - $(obj).target/$(TARGET)/src/libuv/src/ares/ares_nowarn.o \ - $(obj).target/$(TARGET)/src/libuv/src/ares/ares_options.o \ - $(obj).target/$(TARGET)/src/libuv/src/ares/ares_parse_aaaa_reply.o \ - $(obj).target/$(TARGET)/src/libuv/src/ares/ares_parse_a_reply.o \ - $(obj).target/$(TARGET)/src/libuv/src/ares/ares_parse_mx_reply.o \ - $(obj).target/$(TARGET)/src/libuv/src/ares/ares_parse_ns_reply.o \ - $(obj).target/$(TARGET)/src/libuv/src/ares/ares_parse_ptr_reply.o \ - $(obj).target/$(TARGET)/src/libuv/src/ares/ares_parse_srv_reply.o \ - $(obj).target/$(TARGET)/src/libuv/src/ares/ares_parse_txt_reply.o \ - $(obj).target/$(TARGET)/src/libuv/src/ares/ares_process.o \ - $(obj).target/$(TARGET)/src/libuv/src/ares/ares_query.o \ - $(obj).target/$(TARGET)/src/libuv/src/ares/ares__read_line.o \ - $(obj).target/$(TARGET)/src/libuv/src/ares/ares_search.o \ - $(obj).target/$(TARGET)/src/libuv/src/ares/ares_send.o \ - $(obj).target/$(TARGET)/src/libuv/src/ares/ares_strcasecmp.o \ - $(obj).target/$(TARGET)/src/libuv/src/ares/ares_strdup.o \ - $(obj).target/$(TARGET)/src/libuv/src/ares/ares_strerror.o \ - $(obj).target/$(TARGET)/src/libuv/src/ares/ares_timeout.o \ - $(obj).target/$(TARGET)/src/libuv/src/ares/ares__timeval.o \ - $(obj).target/$(TARGET)/src/libuv/src/ares/ares_version.o \ - $(obj).target/$(TARGET)/src/libuv/src/ares/ares_writev.o \ - $(obj).target/$(TARGET)/src/libuv/src/ares/bitncmp.o \ - $(obj).target/$(TARGET)/src/libuv/src/ares/inet_net_pton.o \ - $(obj).target/$(TARGET)/src/libuv/src/ares/inet_ntop.o \ - $(obj).target/$(TARGET)/src/libuv/src/ares/windows_port.o \ - $(obj).target/$(TARGET)/src/libuv/src/unix/core.o \ - $(obj).target/$(TARGET)/src/libuv/src/unix/uv-eio.o \ - $(obj).target/$(TARGET)/src/libuv/src/unix/fs.o \ - $(obj).target/$(TARGET)/src/libuv/src/unix/udp.o \ - $(obj).target/$(TARGET)/src/libuv/src/unix/tcp.o \ - $(obj).target/$(TARGET)/src/libuv/src/unix/pipe.o \ - $(obj).target/$(TARGET)/src/libuv/src/unix/tty.o \ - $(obj).target/$(TARGET)/src/libuv/src/unix/stream.o \ - $(obj).target/$(TARGET)/src/libuv/src/unix/cares.o \ - $(obj).target/$(TARGET)/src/libuv/src/unix/dl.o \ - $(obj).target/$(TARGET)/src/libuv/src/unix/error.o \ - $(obj).target/$(TARGET)/src/libuv/src/unix/process.o \ - $(obj).target/$(TARGET)/src/libuv/src/unix/eio/eio.o \ - $(obj).target/$(TARGET)/src/libuv/src/unix/ev/ev.o \ - $(obj).target/$(TARGET)/src/libuv/src/unix/freebsd.o \ - $(obj).target/$(TARGET)/src/libuv/src/unix/kqueue.o - -# Add to the list of files we specially track dependencies for. -all_deps += $(OBJS) - -# CFLAGS et al overrides must be target-local. -# See "Target-specific Variable Values" in the GNU Make manual. -$(OBJS): TOOLSET := $(TOOLSET) -$(OBJS): GYP_CFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_C_$(BUILDTYPE)) -$(OBJS): GYP_CXXFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_CC_$(BUILDTYPE)) - -# Suffix rules, putting all outputs into $(obj). - -$(obj).$(TOOLSET)/$(TARGET)/%.o: $(srcdir)/%.c FORCE_DO_CMD - @$(call do_cmd,cc,1) - -# Try building from generated source, too. - -$(obj).$(TOOLSET)/$(TARGET)/%.o: $(obj).$(TOOLSET)/%.c FORCE_DO_CMD - @$(call do_cmd,cc,1) - -$(obj).$(TOOLSET)/$(TARGET)/%.o: $(obj)/%.c FORCE_DO_CMD - @$(call do_cmd,cc,1) - -# End of this set of suffix rules -### Rules for final target. -LDFLAGS_Default := - -LIBS := -lm - -$(obj).target/src/libuv/libuv.a: GYP_LDFLAGS := $(LDFLAGS_$(BUILDTYPE)) -$(obj).target/src/libuv/libuv.a: LIBS := $(LIBS) -$(obj).target/src/libuv/libuv.a: TOOLSET := $(TOOLSET) -$(obj).target/src/libuv/libuv.a: $(OBJS) FORCE_DO_CMD - $(call do_cmd,alink) - -all_deps += $(obj).target/src/libuv/libuv.a -# Add target alias -.PHONY: uv -uv: $(obj).target/src/libuv/libuv.a - -# Add target alias to "all" target. -.PHONY: all -all: uv - diff --git a/mk/libuv/x86_64/mac/Makefile b/mk/libuv/x86_64/mac/Makefile index 781fa41bea9..bae2ca0016b 100644 --- a/mk/libuv/x86_64/mac/Makefile +++ b/mk/libuv/x86_64/mac/Makefile @@ -8,6 +8,7 @@ MAKEFLAGS=-r # The source directory tree. srcdir := ../../../.. +abs_srcdir := $(abspath $(srcdir)) # The name of the builddir. builddir_name ?= out @@ -20,7 +21,7 @@ else endif # Specify BUILDTYPE=Release on the command line for a release build. -BUILDTYPE ?= Default +BUILDTYPE ?= Debug # Directory all our build output goes into. # Note that this must be two directories beneath src/ for unit tests to pass, @@ -147,7 +148,7 @@ cmd_objcxx = $(CXX.$(TOOLSET)) $(GYP_OBJCXXFLAGS) $(DEPFLAGS) -c -o $@ $< quiet_cmd_pch_c = CXX($(TOOLSET)) $@ cmd_pch_c = $(CC.$(TOOLSET)) $(GYP_PCH_CFLAGS) $(DEPFLAGS) $(CXXFLAGS.$(TOOLSET)) -c -o $@ $< quiet_cmd_pch_cc = CXX($(TOOLSET)) $@ -cmd_pch_cc = $(CC.$(TOOLSET)) $(GYP_PCH_CCFLAGS) $(DEPFLAGS) $(CXXFLAGS.$(TOOLSET)) -c -o $@ $< +cmd_pch_cc = $(CC.$(TOOLSET)) $(GYP_PCH_CXXFLAGS) $(DEPFLAGS) $(CXXFLAGS.$(TOOLSET)) -c -o $@ $< quiet_cmd_pch_m = CXX($(TOOLSET)) $@ cmd_pch_m = $(CC.$(TOOLSET)) $(GYP_PCH_OBJCFLAGS) $(DEPFLAGS) -c -o $@ $< quiet_cmd_pch_mm = CXX($(TOOLSET)) $@ @@ -162,6 +163,9 @@ cmd_mac_tool = ./gyp-mac-tool $(4) $< "$@" quiet_cmd_mac_package_framework = PACKAGE FRAMEWORK $@ cmd_mac_package_framework = ./gyp-mac-tool package-framework "$@" $(4) +quiet_cmd_infoplist = INFOPLIST $@ +cmd_infoplist = $(CC.$(TOOLSET)) -E -P -Wno-trigraphs -x c $(INFOPLIST_DEFINES) "$<" -o "$@" + quiet_cmd_touch = TOUCH $@ cmd_touch = touch $@ @@ -262,8 +266,8 @@ $(if $(or $(command_changed),$(prereq_changed)), ) endef -# Declare "all" target first so it is the default, even though we don't have the -# deps yet. +# Declare the "all" target first so it is the default, +# even though we don't have the deps yet. .PHONY: all all: @@ -343,9 +347,9 @@ ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ include src/libuv/uv.target.mk endif -quiet_cmd_regen_makefile = ACTION Regenerating $@ -cmd_regen_makefile = ./src/libuv/build/gyp/gyp -fmake --ignore-environment "--toplevel-dir=." "--depth=." "--generator-output=mk/libuv/x86_64/mac" "-Dlibrary=static_library" "-Dtarget_arch=x86_64" "-DOS=mac" src/libuv/uv.gyp -Makefile: $(srcdir)/src/libuv/uv.gyp +#quiet_cmd_regen_makefile = ACTION Regenerating $@ +#cmd_regen_makefile = ./src/libuv/build/gyp/gyp -fmake --ignore-environment "--toplevel-dir=." -Isrc/libuv/common.gypi "--depth=." "--generator-output=mk/libuv/x86_64/mac" "-Ddefault_configuration=Default" "-Dcomponent=static_library" "-Dlibrary=static_library" "-Dtarget_arch=x86_64" "-DOS=mac" src/libuv/uv.gyp +#Makefile: $(srcdir)/src/libuv/uv.gyp $(srcdir)/src/libuv/common.gypi # $(call do_cmd,regen_makefile) # "all" is a concatenation of the "all" targets from all the included diff --git a/mk/libuv/x86_64/mac/Makefile-e b/mk/libuv/x86_64/mac/Makefile-e deleted file mode 100644 index 44d99bab1d0..00000000000 --- a/mk/libuv/x86_64/mac/Makefile-e +++ /dev/null @@ -1,375 +0,0 @@ -# We borrow heavily from the kernel build setup, though we are simpler since -# we don't have Kconfig tweaking settings on us. - -# The implicit make rules have it looking for RCS files, among other things. -# We instead explicitly write all the rules we care about. -# It's even quicker (saves ~200ms) to pass -r on the command line. -MAKEFLAGS=-r - -# The source directory tree. -srcdir := ../../../.. - -# The name of the builddir. -builddir_name ?= out - -# The V=1 flag on command line makes us verbosely print command lines. -ifdef V - quiet= -else - quiet=quiet_ -endif - -# Specify BUILDTYPE=Release on the command line for a release build. -BUILDTYPE ?= Default - -# Directory all our build output goes into. -# Note that this must be two directories beneath src/ for unit tests to pass, -# as they reach into the src/ directory for data with relative paths. -builddir ?= $(builddir_name)/$(BUILDTYPE) -abs_builddir := $(abspath $(builddir)) -depsdir := $(builddir)/.deps - -# Object output directory. -obj := $(builddir)/obj -abs_obj := $(abspath $(obj)) - -# We build up a list of every single one of the targets so we can slurp in the -# generated dependency rule Makefiles in one pass. -all_deps := - - - -# C++ apps need to be linked with g++. -# -# Note: flock is used to seralize linking. Linking is a memory-intensive -# process so running parallel links can often lead to thrashing. To disable -# the serialization, override LINK via an envrionment variable as follows: -# -# export LINK=g++ -# -# This will allow make to invoke N linker processes as specified in -jN. -LINK ?= ./gyp-mac-tool flock $(builddir)/linker.lock $(CXX) - -CC.target ?= $(CC) -CFLAGS.target ?= $(CFLAGS) -CXX.target ?= $(CXX) -CXXFLAGS.target ?= $(CXXFLAGS) -LINK.target ?= $(LINK) -LDFLAGS.target ?= $(LDFLAGS) -AR.target ?= $(AR) -ARFLAGS.target ?= crs - -# N.B.: the logic of which commands to run should match the computation done -# in gyp's make.py where ARFLAGS.host etc. is computed. -# TODO(evan): move all cross-compilation logic to gyp-time so we don't need -# to replicate this environment fallback in make as well. -CC.host ?= gcc -CFLAGS.host ?= -CXX.host ?= g++ -CXXFLAGS.host ?= -LINK.host ?= g++ -LDFLAGS.host ?= -AR.host ?= ar -ARFLAGS.host := crs - -# Define a dir function that can handle spaces. -# http://www.gnu.org/software/make/manual/make.html#Syntax-of-Functions -# "leading spaces cannot appear in the text of the first argument as written. -# These characters can be put into the argument value by variable substitution." -empty := -space := $(empty) $(empty) - -# http://stackoverflow.com/questions/1189781/using-make-dir-or-notdir-on-a-path-with-spaces -replace_spaces = $(subst $(space),?,$1) -unreplace_spaces = $(subst ?,$(space),$1) -dirx = $(call unreplace_spaces,$(dir $(call replace_spaces,$1))) - -# Flags to make gcc output dependency info. Note that you need to be -# careful here to use the flags that ccache and distcc can understand. -# We write to a dep file on the side first and then rename at the end -# so we can't end up with a broken dep file. -depfile = $(depsdir)/$(call replace_spaces,$@).d -DEPFLAGS = -MMD -MF $(depfile).raw - -# We have to fixup the deps output in a few ways. -# (1) the file output should mention the proper .o file. -# ccache or distcc lose the path to the target, so we convert a rule of -# the form: -# foobar.o: DEP1 DEP2 -# into -# path/to/foobar.o: DEP1 DEP2 -# (2) we want missing files not to cause us to fail to build. -# We want to rewrite -# foobar.o: DEP1 DEP2 \ -# DEP3 -# to -# DEP1: -# DEP2: -# DEP3: -# so if the files are missing, they're just considered phony rules. -# We have to do some pretty insane escaping to get those backslashes -# and dollar signs past make, the shell, and sed at the same time. -# Doesn't work with spaces, but that's fine: .d files have spaces in -# their names replaced with other characters. -define fixup_dep -# The depfile may not exist if the input file didn't have any #includes. -touch $(depfile).raw -# Fixup path as in (1). -sed -e "s|^$(notdir $@)|$@|" $(depfile).raw >> $(depfile) -# Add extra rules as in (2). -# We remove slashes and replace spaces with new lines; -# remove blank lines; -# delete the first line and append a colon to the remaining lines. -sed -e 's|\\||' -e 'y| |\n|' $(depfile).raw |\ - grep -v '^$$' |\ - sed -e 1d -e 's|$$|:|' \ - >> $(depfile) -rm $(depfile).raw -endef - -# Command definitions: -# - cmd_foo is the actual command to run; -# - quiet_cmd_foo is the brief-output summary of the command. - -quiet_cmd_cc = CC($(TOOLSET)) $@ -cmd_cc = $(CC.$(TOOLSET)) $(GYP_CFLAGS) $(DEPFLAGS) $(CFLAGS.$(TOOLSET)) -c -o $@ $< - -quiet_cmd_cxx = CXX($(TOOLSET)) $@ -cmd_cxx = $(CXX.$(TOOLSET)) $(GYP_CXXFLAGS) $(DEPFLAGS) $(CXXFLAGS.$(TOOLSET)) -c -o $@ $< - -quiet_cmd_objc = CXX($(TOOLSET)) $@ -cmd_objc = $(CC.$(TOOLSET)) $(GYP_OBJCFLAGS) $(DEPFLAGS) -c -o $@ $< - -quiet_cmd_objcxx = CXX($(TOOLSET)) $@ -cmd_objcxx = $(CXX.$(TOOLSET)) $(GYP_OBJCXXFLAGS) $(DEPFLAGS) -c -o $@ $< - -# Commands for precompiled header files. -quiet_cmd_pch_c = CXX($(TOOLSET)) $@ -cmd_pch_c = $(CC.$(TOOLSET)) $(GYP_PCH_CFLAGS) $(DEPFLAGS) $(CXXFLAGS.$(TOOLSET)) -c -o $@ $< -quiet_cmd_pch_cc = CXX($(TOOLSET)) $@ -cmd_pch_cc = $(CC.$(TOOLSET)) $(GYP_PCH_CCFLAGS) $(DEPFLAGS) $(CXXFLAGS.$(TOOLSET)) -c -o $@ $< -quiet_cmd_pch_m = CXX($(TOOLSET)) $@ -cmd_pch_m = $(CC.$(TOOLSET)) $(GYP_PCH_OBJCFLAGS) $(DEPFLAGS) -c -o $@ $< -quiet_cmd_pch_mm = CXX($(TOOLSET)) $@ -cmd_pch_mm = $(CC.$(TOOLSET)) $(GYP_PCH_OBJCXXFLAGS) $(DEPFLAGS) -c -o $@ $< - -# gyp-mac-tool is written next to the root Makefile by gyp. -# Use $(4) for the command, since $(2) and $(3) are used as flag by do_cmd -# already. -quiet_cmd_mac_tool = MACTOOL $(4) $< -cmd_mac_tool = ./gyp-mac-tool $(4) $< "$@" - -quiet_cmd_mac_package_framework = PACKAGE FRAMEWORK $@ -cmd_mac_package_framework = ./gyp-mac-tool package-framework "$@" $(4) - -quiet_cmd_touch = TOUCH $@ -cmd_touch = touch $@ - -quiet_cmd_copy = COPY $@ -# send stderr to /dev/null to ignore messages when linking directories. -cmd_copy = ln -f "$<" "$@" 2>/dev/null || (rm -rf "$@" && cp -af "$<" "$@") - -quiet_cmd_alink = LIBTOOL-STATIC $@ -cmd_alink = rm -f $@ && libtool -static -o $@ $(filter %.o,$^) - -quiet_cmd_link = LINK($(TOOLSET)) $@ -cmd_link = $(LINK.$(TOOLSET)) $(GYP_LDFLAGS) $(LDFLAGS.$(TOOLSET)) -o "$@" $(LD_INPUTS) $(LIBS) - -# TODO(thakis): Find out and document the difference between shared_library and -# loadable_module on mac. -quiet_cmd_solink = SOLINK($(TOOLSET)) $@ -cmd_solink = $(LINK.$(TOOLSET)) -shared $(GYP_LDFLAGS) $(LDFLAGS.$(TOOLSET)) -o "$@" $(LD_INPUTS) $(LIBS) - -# TODO(thakis): The solink_module rule is likely wrong. Xcode seems to pass -# -bundle -single_module here (for osmesa.so). -quiet_cmd_solink_module = SOLINK_MODULE($(TOOLSET)) $@ -cmd_solink_module = $(LINK.$(TOOLSET)) -shared $(GYP_LDFLAGS) $(LDFLAGS.$(TOOLSET)) -o $@ $(filter-out FORCE_DO_CMD, $^) $(LIBS) - - -# Define an escape_quotes function to escape single quotes. -# This allows us to handle quotes properly as long as we always use -# use single quotes and escape_quotes. -escape_quotes = $(subst ','\'',$(1)) -# This comment is here just to include a ' to unconfuse syntax highlighting. -# Define an escape_vars function to escape '$' variable syntax. -# This allows us to read/write command lines with shell variables (e.g. -# $LD_LIBRARY_PATH), without triggering make substitution. -escape_vars = $(subst $$,$$$$,$(1)) -# Helper that expands to a shell command to echo a string exactly as it is in -# make. This uses printf instead of echo because printf's behaviour with respect -# to escape sequences is more portable than echo's across different shells -# (e.g., dash, bash). -exact_echo = printf '%s\n' '$(call escape_quotes,$(1))' - -# Helper to compare the command we're about to run against the command -# we logged the last time we ran the command. Produces an empty -# string (false) when the commands match. -# Tricky point: Make has no string-equality test function. -# The kernel uses the following, but it seems like it would have false -# positives, where one string reordered its arguments. -# arg_check = $(strip $(filter-out $(cmd_$(1)), $(cmd_$@)) \ -# $(filter-out $(cmd_$@), $(cmd_$(1)))) -# We instead substitute each for the empty string into the other, and -# say they're equal if both substitutions produce the empty string. -# .d files contain ? instead of spaces, take that into account. -command_changed = $(or $(subst $(cmd_$(1)),,$(cmd_$(call replace_spaces,$@))),\ - $(subst $(cmd_$(call replace_spaces,$@)),,$(cmd_$(1)))) - -# Helper that is non-empty when a prerequisite changes. -# Normally make does this implicitly, but we force rules to always run -# so we can check their command lines. -# $? -- new prerequisites -# $| -- order-only dependencies -prereq_changed = $(filter-out FORCE_DO_CMD,$(filter-out $|,$?)) - -# Helper that executes all postbuilds, and deletes the output file when done -# if any of the postbuilds failed. -define do_postbuilds - @E=0;\ - for p in $(POSTBUILDS); do\ - eval $$p;\ - F=$$?;\ - if [ $$F -ne 0 ]; then\ - E=$$F;\ - fi;\ - done;\ - if [ $$E -ne 0 ]; then\ - rm -rf "$@";\ - exit $$E;\ - fi -endef - -# do_cmd: run a command via the above cmd_foo names, if necessary. -# Should always run for a given target to handle command-line changes. -# Second argument, if non-zero, makes it do asm/C/C++ dependency munging. -# Third argument, if non-zero, makes it do POSTBUILDS processing. -# Note: We intentionally do NOT call dirx for depfile, since it contains ? for -# spaces already and dirx strips the ? characters. -define do_cmd -$(if $(or $(command_changed),$(prereq_changed)), - @$(call exact_echo, $($(quiet)cmd_$(1))) - @mkdir -p "$(call dirx,$@)" "$(dir $(depfile))" - $(if $(findstring flock,$(word 2,$(cmd_$1))), - @$(cmd_$(1)) - @echo " $(quiet_cmd_$(1)): Finished", - @$(cmd_$(1)) - ) - @$(call exact_echo,$(call escape_vars,cmd_$(call replace_spaces,$@) := $(cmd_$(1)))) > $(depfile) - @$(if $(2),$(fixup_dep)) - $(if $(and $(3), $(POSTBUILDS)), - $(call do_postbuilds) - ) -) -endef - -# Declare "all" target first so it is the default, even though we don't have the -# deps yet. -.PHONY: all -all: - -# Use FORCE_DO_CMD to force a target to run. Should be coupled with -# do_cmd. -.PHONY: FORCE_DO_CMD -FORCE_DO_CMD: - -TOOLSET := target -# Suffix rules, putting all outputs into $(obj). -$(obj).$(TOOLSET)/%.o: $(srcdir)/%.c FORCE_DO_CMD - @$(call do_cmd,cc,1) -$(obj).$(TOOLSET)/%.o: $(srcdir)/%.cc FORCE_DO_CMD - @$(call do_cmd,cxx,1) -$(obj).$(TOOLSET)/%.o: $(srcdir)/%.cpp FORCE_DO_CMD - @$(call do_cmd,cxx,1) -$(obj).$(TOOLSET)/%.o: $(srcdir)/%.cxx FORCE_DO_CMD - @$(call do_cmd,cxx,1) -$(obj).$(TOOLSET)/%.o: $(srcdir)/%.m FORCE_DO_CMD - @$(call do_cmd,objc,1) -$(obj).$(TOOLSET)/%.o: $(srcdir)/%.mm FORCE_DO_CMD - @$(call do_cmd,objcxx,1) -$(obj).$(TOOLSET)/%.o: $(srcdir)/%.S FORCE_DO_CMD - @$(call do_cmd,cc,1) -$(obj).$(TOOLSET)/%.o: $(srcdir)/%.s FORCE_DO_CMD - @$(call do_cmd,cc,1) - -# Try building from generated source, too. -$(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.c FORCE_DO_CMD - @$(call do_cmd,cc,1) -$(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.cc FORCE_DO_CMD - @$(call do_cmd,cxx,1) -$(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.cpp FORCE_DO_CMD - @$(call do_cmd,cxx,1) -$(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.cxx FORCE_DO_CMD - @$(call do_cmd,cxx,1) -$(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.m FORCE_DO_CMD - @$(call do_cmd,objc,1) -$(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.mm FORCE_DO_CMD - @$(call do_cmd,objcxx,1) -$(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.S FORCE_DO_CMD - @$(call do_cmd,cc,1) -$(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.s FORCE_DO_CMD - @$(call do_cmd,cc,1) - -$(obj).$(TOOLSET)/%.o: $(obj)/%.c FORCE_DO_CMD - @$(call do_cmd,cc,1) -$(obj).$(TOOLSET)/%.o: $(obj)/%.cc FORCE_DO_CMD - @$(call do_cmd,cxx,1) -$(obj).$(TOOLSET)/%.o: $(obj)/%.cpp FORCE_DO_CMD - @$(call do_cmd,cxx,1) -$(obj).$(TOOLSET)/%.o: $(obj)/%.cxx FORCE_DO_CMD - @$(call do_cmd,cxx,1) -$(obj).$(TOOLSET)/%.o: $(obj)/%.m FORCE_DO_CMD - @$(call do_cmd,objc,1) -$(obj).$(TOOLSET)/%.o: $(obj)/%.mm FORCE_DO_CMD - @$(call do_cmd,objcxx,1) -$(obj).$(TOOLSET)/%.o: $(obj)/%.S FORCE_DO_CMD - @$(call do_cmd,cc,1) -$(obj).$(TOOLSET)/%.o: $(obj)/%.s FORCE_DO_CMD - @$(call do_cmd,cc,1) - - -ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ - $(findstring $(join ^,$(prefix)),\ - $(join ^,src/libuv/run-benchmarks.target.mk)))),) - include src/libuv/run-benchmarks.target.mk -endif -ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ - $(findstring $(join ^,$(prefix)),\ - $(join ^,src/libuv/run-tests.target.mk)))),) - include src/libuv/run-tests.target.mk -endif -ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ - $(findstring $(join ^,$(prefix)),\ - $(join ^,src/libuv/uv.target.mk)))),) - include src/libuv/uv.target.mk -endif - -quiet_cmd_regen_makefile = ACTION Regenerating $@ -cmd_regen_makefile = ./src/libuv/build/gyp/gyp -fmake --ignore-environment "--toplevel-dir=." "--depth=." "--generator-output=mk/libuv/x86_64/mac" "-Dlibrary=static_library" "-Dtarget_arch=x86_64" "-DOS=mac" src/libuv/uv.gyp -Makefile: $(srcdir)/src/libuv/uv.gyp - $(call do_cmd,regen_makefile) - -# "all" is a concatenation of the "all" targets from all the included -# sub-makefiles. This is just here to clarify. -all: - -# Add in dependency-tracking rules. $(all_deps) is the list of every single -# target in our tree. Only consider the ones with .d (dependency) info: -d_files := $(wildcard $(foreach f,$(all_deps),$(depsdir)/$(f).d)) -ifneq ($(d_files),) - # Rather than include each individual .d file, concatenate them into a - # single file which make is able to load faster. We split this into - # commands that take 1000 files at a time to avoid overflowing the - # command line. - $(shell cat $(wordlist 1,1000,$(d_files)) > $(depsdir)/all.deps) - - ifneq ($(word 1001,$(d_files)),) - $(error Found unprocessed dependency files (gyp didn't generate enough rules!)) - endif - - # make looks for ways to re-generate included makefiles, but in our case, we - # don't have a direct way. Explicitly telling make that it has nothing to do - # for them makes it go faster. - $(depsdir)/all.deps: ; - - include $(depsdir)/all.deps -endif diff --git a/mk/libuv/x86_64/mac/gyp-mac-tool b/mk/libuv/x86_64/mac/gyp-mac-tool index 7eb894b23ef..bd4059840ea 100755 --- a/mk/libuv/x86_64/mac/gyp-mac-tool +++ b/mk/libuv/x86_64/mac/gyp-mac-tool @@ -1,4 +1,4 @@ -#!/usr/bin/python +#!/usr/bin/env python # Generated by gyp. Do not edit. # Copyright (c) 2011 Google Inc. All rights reserved. # Use of this source code is governed by a BSD-style license that can be @@ -17,10 +17,12 @@ import string import subprocess import sys + def main(args): executor = MacTool() executor.Dispatch(args) + class MacTool(object): """This class performs all the Mac tooling steps. The methods can either be executed directly, or dispatched from an argument list.""" @@ -74,12 +76,14 @@ class MacTool(object): if not plist: return - # The format of PkgInfo is eight characters, representing the bundle type - # and bundle signature, each four characters. If either is missing, four - # '?' characters are used instead. + # Only create PkgInfo for executable types. package_type = plist['CFBundlePackageType'] - if len(package_type) != 4: - package_type = '?' * 4 + if package_type != 'APPL': + return + + # The format of PkgInfo is eight characters, representing the bundle type + # and bundle signature, each four characters. If that is missing, four + # '?' characters are used instead. signature_code = plist['CFBundleSignature'] if len(signature_code) != 4: signature_code = '?' * 4 @@ -184,5 +188,6 @@ class MacTool(object): else: return None + if __name__ == '__main__': sys.exit(main(sys.argv[1:])) diff --git a/mk/libuv/x86_64/mac/src/libuv/run-benchmarks.target.mk b/mk/libuv/x86_64/mac/src/libuv/run-benchmarks.target.mk index 1dfb1515524..f5930c9dc56 100644 --- a/mk/libuv/x86_64/mac/src/libuv/run-benchmarks.target.mk +++ b/mk/libuv/x86_64/mac/src/libuv/run-benchmarks.target.mk @@ -2,31 +2,77 @@ TOOLSET := target TARGET := run-benchmarks -DEFS_Default := '-D_LARGEFILE_SOURCE' \ +DEFS_Debug := '-D_LARGEFILE_SOURCE' \ '-D_FILE_OFFSET_BITS=64' \ '-D_GNU_SOURCE' \ - '-DEIO_STACKSIZE=262144' + '-DEIO_STACKSIZE=262144' \ + '-DDEBUG' \ + '-D_DEBUG' \ + '-DEV_VERIFY=2' # Flags passed to all source files. -CFLAGS_Default := -fasm-blocks \ - -mpascal-strings \ - -Os \ +CFLAGS_Debug := -Os \ -gdwarf-2 \ - -arch x86_64 + -fvisibility=hidden \ + -Wnewline-eof \ + -arch x86_64 \ + -fno-strict-aliasing \ + -Wall \ + -Wendif-labels \ + -W \ + -Wno-unused-parameter # Flags passed to only C files. -CFLAGS_C_Default := +CFLAGS_C_Debug := # Flags passed to only C++ files. -CFLAGS_CC_Default := +CFLAGS_CC_Debug := -fno-rtti \ + -fno-exceptions \ + -fvisibility-inlines-hidden \ + -fno-threadsafe-statics # Flags passed to only ObjC files. -CFLAGS_OBJC_Default := +CFLAGS_OBJC_Debug := # Flags passed to only ObjC++ files. -CFLAGS_OBJCC_Default := +CFLAGS_OBJCC_Debug := -INCS_Default := -I$(srcdir)/src/libuv/include +INCS_Debug := -I$(srcdir)/src/libuv/include + +DEFS_Release := '-D_LARGEFILE_SOURCE' \ + '-D_FILE_OFFSET_BITS=64' \ + '-D_GNU_SOURCE' \ + '-DEIO_STACKSIZE=262144' \ + '-DNDEBUG' + +# Flags passed to all source files. +CFLAGS_Release := -Os \ + -gdwarf-2 \ + -fvisibility=hidden \ + -Wnewline-eof \ + -arch x86_64 \ + -fno-strict-aliasing \ + -Wall \ + -Wendif-labels \ + -W \ + -Wno-unused-parameter + +# Flags passed to only C files. +CFLAGS_C_Release := + +# Flags passed to only C++ files. +CFLAGS_CC_Release := -fno-rtti \ + -fno-exceptions \ + -fvisibility-inlines-hidden \ + -fno-threadsafe-statics + +# Flags passed to only ObjC files. +CFLAGS_OBJC_Release := + +# Flags passed to only ObjC++ files. +CFLAGS_OBJCC_Release := + +INCS_Release := -I$(srcdir)/src/libuv/include OBJS := $(obj).target/$(TARGET)/src/libuv/test/benchmark-ares.o \ $(obj).target/$(TARGET)/src/libuv/test/benchmark-getaddrinfo.o \ @@ -35,6 +81,7 @@ OBJS := $(obj).target/$(TARGET)/src/libuv/test/benchmark-ares.o \ $(obj).target/$(TARGET)/src/libuv/test/benchmark-pump.o \ $(obj).target/$(TARGET)/src/libuv/test/benchmark-sizes.o \ $(obj).target/$(TARGET)/src/libuv/test/benchmark-spawn.o \ + $(obj).target/$(TARGET)/src/libuv/test/benchmark-thread.o \ $(obj).target/$(TARGET)/src/libuv/test/benchmark-tcp-write-batch.o \ $(obj).target/$(TARGET)/src/libuv/test/benchmark-udp-packet-storm.o \ $(obj).target/$(TARGET)/src/libuv/test/dns-server.o \ @@ -53,10 +100,10 @@ $(OBJS): | $(builddir)/libuv.a # CFLAGS et al overrides must be target-local. # See "Target-specific Variable Values" in the GNU Make manual. $(OBJS): TOOLSET := $(TOOLSET) -$(OBJS): GYP_CFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_C_$(BUILDTYPE)) -$(OBJS): GYP_CXXFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_CC_$(BUILDTYPE)) -$(OBJS): GYP_OBJCFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_C_$(BUILDTYPE)) $(CFLAGS_OBJC_$(BUILDTYPE)) -$(OBJS): GYP_OBJCXXFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_CC_$(BUILDTYPE)) $(CFLAGS_OBJCC_$(BUILDTYPE)) +$(OBJS): GYP_CFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_C_$(BUILDTYPE)) +$(OBJS): GYP_CXXFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_CC_$(BUILDTYPE)) +$(OBJS): GYP_OBJCFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_C_$(BUILDTYPE)) $(CFLAGS_OBJC_$(BUILDTYPE)) +$(OBJS): GYP_OBJCXXFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_CC_$(BUILDTYPE)) $(CFLAGS_OBJCC_$(BUILDTYPE)) # Suffix rules, putting all outputs into $(obj). @@ -73,7 +120,12 @@ $(obj).$(TOOLSET)/$(TARGET)/%.o: $(obj)/%.c FORCE_DO_CMD # End of this set of suffix rules ### Rules for final target. -LDFLAGS_Default := -arch x86_64 \ +LDFLAGS_Debug := -Wl,-search_paths_first \ + -arch x86_64 \ + -L$(builddir) + +LDFLAGS_Release := -Wl,-search_paths_first \ + -arch x86_64 \ -L$(builddir) LIBS := -framework Carbon \ diff --git a/mk/libuv/x86_64/mac/src/libuv/run-benchmarks.target.mk-e b/mk/libuv/x86_64/mac/src/libuv/run-benchmarks.target.mk-e deleted file mode 100644 index 64d150f24fc..00000000000 --- a/mk/libuv/x86_64/mac/src/libuv/run-benchmarks.target.mk-e +++ /dev/null @@ -1,97 +0,0 @@ -# This file is generated by gyp; do not edit. - -TOOLSET := target -TARGET := run-benchmarks -DEFS_Default := '-D_LARGEFILE_SOURCE' \ - '-D_FILE_OFFSET_BITS=64' \ - '-D_GNU_SOURCE' \ - '-DEIO_STACKSIZE=262144' - -# Flags passed to all source files. -CFLAGS_Default := -fasm-blocks \ - -mpascal-strings \ - -Os \ - -gdwarf-2 \ - -arch i386 - -# Flags passed to only C files. -CFLAGS_C_Default := - -# Flags passed to only C++ files. -CFLAGS_CC_Default := - -# Flags passed to only ObjC files. -CFLAGS_OBJC_Default := - -# Flags passed to only ObjC++ files. -CFLAGS_OBJCC_Default := - -INCS_Default := -I$(srcdir)/src/libuv/include - -OBJS := $(obj).target/$(TARGET)/src/libuv/test/benchmark-ares.o \ - $(obj).target/$(TARGET)/src/libuv/test/benchmark-getaddrinfo.o \ - $(obj).target/$(TARGET)/src/libuv/test/benchmark-ping-pongs.o \ - $(obj).target/$(TARGET)/src/libuv/test/benchmark-pound.o \ - $(obj).target/$(TARGET)/src/libuv/test/benchmark-pump.o \ - $(obj).target/$(TARGET)/src/libuv/test/benchmark-sizes.o \ - $(obj).target/$(TARGET)/src/libuv/test/benchmark-spawn.o \ - $(obj).target/$(TARGET)/src/libuv/test/benchmark-tcp-write-batch.o \ - $(obj).target/$(TARGET)/src/libuv/test/benchmark-udp-packet-storm.o \ - $(obj).target/$(TARGET)/src/libuv/test/dns-server.o \ - $(obj).target/$(TARGET)/src/libuv/test/echo-server.o \ - $(obj).target/$(TARGET)/src/libuv/test/blackhole-server.o \ - $(obj).target/$(TARGET)/src/libuv/test/run-benchmarks.o \ - $(obj).target/$(TARGET)/src/libuv/test/runner.o \ - $(obj).target/$(TARGET)/src/libuv/test/runner-unix.o - -# Add to the list of files we specially track dependencies for. -all_deps += $(OBJS) - -# Make sure our dependencies are built before any of us. -$(OBJS): | $(builddir)/libuv.a - -# CFLAGS et al overrides must be target-local. -# See "Target-specific Variable Values" in the GNU Make manual. -$(OBJS): TOOLSET := $(TOOLSET) -$(OBJS): GYP_CFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_C_$(BUILDTYPE)) -$(OBJS): GYP_CXXFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_CC_$(BUILDTYPE)) -$(OBJS): GYP_OBJCFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_C_$(BUILDTYPE)) $(CFLAGS_OBJC_$(BUILDTYPE)) -$(OBJS): GYP_OBJCXXFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_CC_$(BUILDTYPE)) $(CFLAGS_OBJCC_$(BUILDTYPE)) - -# Suffix rules, putting all outputs into $(obj). - -$(obj).$(TOOLSET)/$(TARGET)/%.o: $(srcdir)/%.c FORCE_DO_CMD - @$(call do_cmd,cc,1) - -# Try building from generated source, too. - -$(obj).$(TOOLSET)/$(TARGET)/%.o: $(obj).$(TOOLSET)/%.c FORCE_DO_CMD - @$(call do_cmd,cc,1) - -$(obj).$(TOOLSET)/$(TARGET)/%.o: $(obj)/%.c FORCE_DO_CMD - @$(call do_cmd,cc,1) - -# End of this set of suffix rules -### Rules for final target. -LDFLAGS_Default := -arch i386 \ - -L$(builddir) - -LIBS := -framework Carbon \ - -framework CoreServices - -$(builddir)/run-benchmarks: GYP_LDFLAGS := $(LDFLAGS_$(BUILDTYPE)) -$(builddir)/run-benchmarks: LIBS := $(LIBS) -$(builddir)/run-benchmarks: LD_INPUTS := $(OBJS) $(builddir)/libuv.a -$(builddir)/run-benchmarks: TOOLSET := $(TOOLSET) -$(builddir)/run-benchmarks: $(OBJS) $(builddir)/libuv.a FORCE_DO_CMD - $(call do_cmd,link) - -all_deps += $(builddir)/run-benchmarks -# Add target alias -.PHONY: run-benchmarks -run-benchmarks: $(builddir)/run-benchmarks - -# Add executable to "all" target. -.PHONY: all -all: $(builddir)/run-benchmarks - diff --git a/mk/libuv/x86_64/mac/src/libuv/run-tests.target.mk b/mk/libuv/x86_64/mac/src/libuv/run-tests.target.mk index 498e3b562e7..4694c7cfd4d 100644 --- a/mk/libuv/x86_64/mac/src/libuv/run-tests.target.mk +++ b/mk/libuv/x86_64/mac/src/libuv/run-tests.target.mk @@ -2,42 +2,91 @@ TOOLSET := target TARGET := run-tests -DEFS_Default := '-D_LARGEFILE_SOURCE' \ +DEFS_Debug := '-D_LARGEFILE_SOURCE' \ '-D_FILE_OFFSET_BITS=64' \ '-D_GNU_SOURCE' \ - '-DEIO_STACKSIZE=262144' + '-DEIO_STACKSIZE=262144' \ + '-DDEBUG' \ + '-D_DEBUG' \ + '-DEV_VERIFY=2' # Flags passed to all source files. -CFLAGS_Default := -fasm-blocks \ - -mpascal-strings \ - -Os \ +CFLAGS_Debug := -Os \ -gdwarf-2 \ - -arch x86_64 + -fvisibility=hidden \ + -Wnewline-eof \ + -arch x86_64 \ + -fno-strict-aliasing \ + -Wall \ + -Wendif-labels \ + -W \ + -Wno-unused-parameter # Flags passed to only C files. -CFLAGS_C_Default := +CFLAGS_C_Debug := # Flags passed to only C++ files. -CFLAGS_CC_Default := +CFLAGS_CC_Debug := -fno-rtti \ + -fno-exceptions \ + -fvisibility-inlines-hidden \ + -fno-threadsafe-statics # Flags passed to only ObjC files. -CFLAGS_OBJC_Default := +CFLAGS_OBJC_Debug := # Flags passed to only ObjC++ files. -CFLAGS_OBJCC_Default := +CFLAGS_OBJCC_Debug := -INCS_Default := -I$(srcdir)/src/libuv/include +INCS_Debug := -I$(srcdir)/src/libuv/include + +DEFS_Release := '-D_LARGEFILE_SOURCE' \ + '-D_FILE_OFFSET_BITS=64' \ + '-D_GNU_SOURCE' \ + '-DEIO_STACKSIZE=262144' \ + '-DNDEBUG' + +# Flags passed to all source files. +CFLAGS_Release := -Os \ + -gdwarf-2 \ + -fvisibility=hidden \ + -Wnewline-eof \ + -arch x86_64 \ + -fno-strict-aliasing \ + -Wall \ + -Wendif-labels \ + -W \ + -Wno-unused-parameter + +# Flags passed to only C files. +CFLAGS_C_Release := + +# Flags passed to only C++ files. +CFLAGS_CC_Release := -fno-rtti \ + -fno-exceptions \ + -fvisibility-inlines-hidden \ + -fno-threadsafe-statics + +# Flags passed to only ObjC files. +CFLAGS_OBJC_Release := + +# Flags passed to only ObjC++ files. +CFLAGS_OBJCC_Release := + +INCS_Release := -I$(srcdir)/src/libuv/include OBJS := $(obj).target/$(TARGET)/src/libuv/test/blackhole-server.o \ $(obj).target/$(TARGET)/src/libuv/test/echo-server.o \ $(obj).target/$(TARGET)/src/libuv/test/run-tests.o \ $(obj).target/$(TARGET)/src/libuv/test/runner.o \ $(obj).target/$(TARGET)/src/libuv/test/test-get-loadavg.o \ + $(obj).target/$(TARGET)/src/libuv/test/test-util.o \ $(obj).target/$(TARGET)/src/libuv/test/test-async.o \ $(obj).target/$(TARGET)/src/libuv/test/test-error.o \ $(obj).target/$(TARGET)/src/libuv/test/test-callback-stack.o \ $(obj).target/$(TARGET)/src/libuv/test/test-connection-fail.o \ + $(obj).target/$(TARGET)/src/libuv/test/test-cwd-and-chdir.o \ $(obj).target/$(TARGET)/src/libuv/test/test-delayed-accept.o \ + $(obj).target/$(TARGET)/src/libuv/test/test-eio-overflow.o \ $(obj).target/$(TARGET)/src/libuv/test/test-fail-always.o \ $(obj).target/$(TARGET)/src/libuv/test/test-fs.o \ $(obj).target/$(TARGET)/src/libuv/test/test-fs-event.o \ @@ -49,12 +98,15 @@ OBJS := $(obj).target/$(TARGET)/src/libuv/test/blackhole-server.o \ $(obj).target/$(TARGET)/src/libuv/test/test-hrtime.o \ $(obj).target/$(TARGET)/src/libuv/test/test-idle.o \ $(obj).target/$(TARGET)/src/libuv/test/test-ipc.o \ + $(obj).target/$(TARGET)/src/libuv/test/test-ipc-threads.o \ $(obj).target/$(TARGET)/src/libuv/test/test-loop-handles.o \ $(obj).target/$(TARGET)/src/libuv/test/test-multiple-listen.o \ $(obj).target/$(TARGET)/src/libuv/test/test-pass-always.o \ $(obj).target/$(TARGET)/src/libuv/test/test-ping-pong.o \ $(obj).target/$(TARGET)/src/libuv/test/test-pipe-bind-error.o \ $(obj).target/$(TARGET)/src/libuv/test/test-pipe-connect-error.o \ + $(obj).target/$(TARGET)/src/libuv/test/test-platform-output.o \ + $(obj).target/$(TARGET)/src/libuv/test/test-process-title.o \ $(obj).target/$(TARGET)/src/libuv/test/test-ref.o \ $(obj).target/$(TARGET)/src/libuv/test/test-shutdown-eof.o \ $(obj).target/$(TARGET)/src/libuv/test/test-spawn.o \ @@ -69,13 +121,17 @@ OBJS := $(obj).target/$(TARGET)/src/libuv/test/blackhole-server.o \ $(obj).target/$(TARGET)/src/libuv/test/test-tcp-write-to-half-open-connection.o \ $(obj).target/$(TARGET)/src/libuv/test/test-tcp-writealot.o \ $(obj).target/$(TARGET)/src/libuv/test/test-threadpool.o \ + $(obj).target/$(TARGET)/src/libuv/test/test-mutexes.o \ + $(obj).target/$(TARGET)/src/libuv/test/test-thread.o \ $(obj).target/$(TARGET)/src/libuv/test/test-timer-again.o \ $(obj).target/$(TARGET)/src/libuv/test/test-timer.o \ $(obj).target/$(TARGET)/src/libuv/test/test-tty.o \ $(obj).target/$(TARGET)/src/libuv/test/test-udp-dgram-too-big.o \ $(obj).target/$(TARGET)/src/libuv/test/test-udp-ipv6.o \ + $(obj).target/$(TARGET)/src/libuv/test/test-udp-options.o \ $(obj).target/$(TARGET)/src/libuv/test/test-udp-send-and-recv.o \ $(obj).target/$(TARGET)/src/libuv/test/test-udp-multicast-join.o \ + $(obj).target/$(TARGET)/src/libuv/test/test-counters-init.o \ $(obj).target/$(TARGET)/src/libuv/test/runner-unix.o # Add to the list of files we specially track dependencies for. @@ -87,10 +143,10 @@ $(OBJS): | $(builddir)/libuv.a # CFLAGS et al overrides must be target-local. # See "Target-specific Variable Values" in the GNU Make manual. $(OBJS): TOOLSET := $(TOOLSET) -$(OBJS): GYP_CFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_C_$(BUILDTYPE)) -$(OBJS): GYP_CXXFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_CC_$(BUILDTYPE)) -$(OBJS): GYP_OBJCFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_C_$(BUILDTYPE)) $(CFLAGS_OBJC_$(BUILDTYPE)) -$(OBJS): GYP_OBJCXXFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_CC_$(BUILDTYPE)) $(CFLAGS_OBJCC_$(BUILDTYPE)) +$(OBJS): GYP_CFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_C_$(BUILDTYPE)) +$(OBJS): GYP_CXXFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_CC_$(BUILDTYPE)) +$(OBJS): GYP_OBJCFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_C_$(BUILDTYPE)) $(CFLAGS_OBJC_$(BUILDTYPE)) +$(OBJS): GYP_OBJCXXFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_CC_$(BUILDTYPE)) $(CFLAGS_OBJCC_$(BUILDTYPE)) # Suffix rules, putting all outputs into $(obj). @@ -107,7 +163,12 @@ $(obj).$(TOOLSET)/$(TARGET)/%.o: $(obj)/%.c FORCE_DO_CMD # End of this set of suffix rules ### Rules for final target. -LDFLAGS_Default := -arch x86_64 \ +LDFLAGS_Debug := -Wl,-search_paths_first \ + -arch x86_64 \ + -L$(builddir) + +LDFLAGS_Release := -Wl,-search_paths_first \ + -arch x86_64 \ -L$(builddir) LIBS := -framework Carbon \ diff --git a/mk/libuv/x86_64/mac/src/libuv/run-tests.target.mk-e b/mk/libuv/x86_64/mac/src/libuv/run-tests.target.mk-e deleted file mode 100644 index 5a5730b0f65..00000000000 --- a/mk/libuv/x86_64/mac/src/libuv/run-tests.target.mk-e +++ /dev/null @@ -1,131 +0,0 @@ -# This file is generated by gyp; do not edit. - -TOOLSET := target -TARGET := run-tests -DEFS_Default := '-D_LARGEFILE_SOURCE' \ - '-D_FILE_OFFSET_BITS=64' \ - '-D_GNU_SOURCE' \ - '-DEIO_STACKSIZE=262144' - -# Flags passed to all source files. -CFLAGS_Default := -fasm-blocks \ - -mpascal-strings \ - -Os \ - -gdwarf-2 \ - -arch i386 - -# Flags passed to only C files. -CFLAGS_C_Default := - -# Flags passed to only C++ files. -CFLAGS_CC_Default := - -# Flags passed to only ObjC files. -CFLAGS_OBJC_Default := - -# Flags passed to only ObjC++ files. -CFLAGS_OBJCC_Default := - -INCS_Default := -I$(srcdir)/src/libuv/include - -OBJS := $(obj).target/$(TARGET)/src/libuv/test/blackhole-server.o \ - $(obj).target/$(TARGET)/src/libuv/test/echo-server.o \ - $(obj).target/$(TARGET)/src/libuv/test/run-tests.o \ - $(obj).target/$(TARGET)/src/libuv/test/runner.o \ - $(obj).target/$(TARGET)/src/libuv/test/test-get-loadavg.o \ - $(obj).target/$(TARGET)/src/libuv/test/test-async.o \ - $(obj).target/$(TARGET)/src/libuv/test/test-error.o \ - $(obj).target/$(TARGET)/src/libuv/test/test-callback-stack.o \ - $(obj).target/$(TARGET)/src/libuv/test/test-connection-fail.o \ - $(obj).target/$(TARGET)/src/libuv/test/test-delayed-accept.o \ - $(obj).target/$(TARGET)/src/libuv/test/test-fail-always.o \ - $(obj).target/$(TARGET)/src/libuv/test/test-fs.o \ - $(obj).target/$(TARGET)/src/libuv/test/test-fs-event.o \ - $(obj).target/$(TARGET)/src/libuv/test/test-get-currentexe.o \ - $(obj).target/$(TARGET)/src/libuv/test/test-get-memory.o \ - $(obj).target/$(TARGET)/src/libuv/test/test-getaddrinfo.o \ - $(obj).target/$(TARGET)/src/libuv/test/test-gethostbyname.o \ - $(obj).target/$(TARGET)/src/libuv/test/test-getsockname.o \ - $(obj).target/$(TARGET)/src/libuv/test/test-hrtime.o \ - $(obj).target/$(TARGET)/src/libuv/test/test-idle.o \ - $(obj).target/$(TARGET)/src/libuv/test/test-ipc.o \ - $(obj).target/$(TARGET)/src/libuv/test/test-loop-handles.o \ - $(obj).target/$(TARGET)/src/libuv/test/test-multiple-listen.o \ - $(obj).target/$(TARGET)/src/libuv/test/test-pass-always.o \ - $(obj).target/$(TARGET)/src/libuv/test/test-ping-pong.o \ - $(obj).target/$(TARGET)/src/libuv/test/test-pipe-bind-error.o \ - $(obj).target/$(TARGET)/src/libuv/test/test-pipe-connect-error.o \ - $(obj).target/$(TARGET)/src/libuv/test/test-ref.o \ - $(obj).target/$(TARGET)/src/libuv/test/test-shutdown-eof.o \ - $(obj).target/$(TARGET)/src/libuv/test/test-spawn.o \ - $(obj).target/$(TARGET)/src/libuv/test/test-stdio-over-pipes.o \ - $(obj).target/$(TARGET)/src/libuv/test/test-tcp-bind-error.o \ - $(obj).target/$(TARGET)/src/libuv/test/test-tcp-bind6-error.o \ - $(obj).target/$(TARGET)/src/libuv/test/test-tcp-close.o \ - $(obj).target/$(TARGET)/src/libuv/test/test-tcp-flags.o \ - $(obj).target/$(TARGET)/src/libuv/test/test-tcp-connect-error.o \ - $(obj).target/$(TARGET)/src/libuv/test/test-tcp-connect6-error.o \ - $(obj).target/$(TARGET)/src/libuv/test/test-tcp-write-error.o \ - $(obj).target/$(TARGET)/src/libuv/test/test-tcp-write-to-half-open-connection.o \ - $(obj).target/$(TARGET)/src/libuv/test/test-tcp-writealot.o \ - $(obj).target/$(TARGET)/src/libuv/test/test-threadpool.o \ - $(obj).target/$(TARGET)/src/libuv/test/test-timer-again.o \ - $(obj).target/$(TARGET)/src/libuv/test/test-timer.o \ - $(obj).target/$(TARGET)/src/libuv/test/test-tty.o \ - $(obj).target/$(TARGET)/src/libuv/test/test-udp-dgram-too-big.o \ - $(obj).target/$(TARGET)/src/libuv/test/test-udp-ipv6.o \ - $(obj).target/$(TARGET)/src/libuv/test/test-udp-send-and-recv.o \ - $(obj).target/$(TARGET)/src/libuv/test/test-udp-multicast-join.o \ - $(obj).target/$(TARGET)/src/libuv/test/runner-unix.o - -# Add to the list of files we specially track dependencies for. -all_deps += $(OBJS) - -# Make sure our dependencies are built before any of us. -$(OBJS): | $(builddir)/libuv.a - -# CFLAGS et al overrides must be target-local. -# See "Target-specific Variable Values" in the GNU Make manual. -$(OBJS): TOOLSET := $(TOOLSET) -$(OBJS): GYP_CFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_C_$(BUILDTYPE)) -$(OBJS): GYP_CXXFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_CC_$(BUILDTYPE)) -$(OBJS): GYP_OBJCFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_C_$(BUILDTYPE)) $(CFLAGS_OBJC_$(BUILDTYPE)) -$(OBJS): GYP_OBJCXXFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_CC_$(BUILDTYPE)) $(CFLAGS_OBJCC_$(BUILDTYPE)) - -# Suffix rules, putting all outputs into $(obj). - -$(obj).$(TOOLSET)/$(TARGET)/%.o: $(srcdir)/%.c FORCE_DO_CMD - @$(call do_cmd,cc,1) - -# Try building from generated source, too. - -$(obj).$(TOOLSET)/$(TARGET)/%.o: $(obj).$(TOOLSET)/%.c FORCE_DO_CMD - @$(call do_cmd,cc,1) - -$(obj).$(TOOLSET)/$(TARGET)/%.o: $(obj)/%.c FORCE_DO_CMD - @$(call do_cmd,cc,1) - -# End of this set of suffix rules -### Rules for final target. -LDFLAGS_Default := -arch i386 \ - -L$(builddir) - -LIBS := -framework Carbon \ - -framework CoreServices - -$(builddir)/run-tests: GYP_LDFLAGS := $(LDFLAGS_$(BUILDTYPE)) -$(builddir)/run-tests: LIBS := $(LIBS) -$(builddir)/run-tests: LD_INPUTS := $(OBJS) $(builddir)/libuv.a -$(builddir)/run-tests: TOOLSET := $(TOOLSET) -$(builddir)/run-tests: $(OBJS) $(builddir)/libuv.a FORCE_DO_CMD - $(call do_cmd,link) - -all_deps += $(builddir)/run-tests -# Add target alias -.PHONY: run-tests -run-tests: $(builddir)/run-tests - -# Add executable to "all" target. -.PHONY: all -all: $(builddir)/run-tests - diff --git a/mk/libuv/x86_64/mac/src/libuv/uv.target.mk b/mk/libuv/x86_64/mac/src/libuv/uv.target.mk index 8761d16342a..385a64c9f53 100644 --- a/mk/libuv/x86_64/mac/src/libuv/uv.target.mk +++ b/mk/libuv/x86_64/mac/src/libuv/uv.target.mk @@ -2,34 +2,87 @@ TOOLSET := target TARGET := uv -DEFS_Default := '-D_LARGEFILE_SOURCE' \ +DEFS_Debug := '-D_LARGEFILE_SOURCE' \ '-D_FILE_OFFSET_BITS=64' \ '-D_GNU_SOURCE' \ '-DEIO_STACKSIZE=262144' \ '-DHAVE_CONFIG_H' \ '-DEV_CONFIG_H="config_darwin.h"' \ - '-DEIO_CONFIG_H="config_darwin.h"' + '-DEIO_CONFIG_H="config_darwin.h"' \ + '-DDEBUG' \ + '-D_DEBUG' \ + '-DEV_VERIFY=2' # Flags passed to all source files. -CFLAGS_Default := -fasm-blocks \ - -mpascal-strings \ - -Os \ +CFLAGS_Debug := -Os \ -gdwarf-2 \ - -arch x86_64 + -fvisibility=hidden \ + -Wnewline-eof \ + -arch x86_64 \ + -fno-strict-aliasing \ + -Wall \ + -Wendif-labels \ + -W \ + -Wno-unused-parameter # Flags passed to only C files. -CFLAGS_C_Default := +CFLAGS_C_Debug := # Flags passed to only C++ files. -CFLAGS_CC_Default := +CFLAGS_CC_Debug := -fno-rtti \ + -fno-exceptions \ + -fvisibility-inlines-hidden \ + -fno-threadsafe-statics # Flags passed to only ObjC files. -CFLAGS_OBJC_Default := +CFLAGS_OBJC_Debug := # Flags passed to only ObjC++ files. -CFLAGS_OBJCC_Default := +CFLAGS_OBJCC_Debug := -INCS_Default := -I$(srcdir)/src/libuv/include \ +INCS_Debug := -I$(srcdir)/src/libuv/include \ + -I$(srcdir)/src/libuv/include/uv-private \ + -I$(srcdir)/src/libuv/src \ + -I$(srcdir)/src/libuv/src/unix/ev \ + -I$(srcdir)/src/libuv/src/ares/config_darwin + +DEFS_Release := '-D_LARGEFILE_SOURCE' \ + '-D_FILE_OFFSET_BITS=64' \ + '-D_GNU_SOURCE' \ + '-DEIO_STACKSIZE=262144' \ + '-DHAVE_CONFIG_H' \ + '-DEV_CONFIG_H="config_darwin.h"' \ + '-DEIO_CONFIG_H="config_darwin.h"' \ + '-DNDEBUG' + +# Flags passed to all source files. +CFLAGS_Release := -Os \ + -gdwarf-2 \ + -fvisibility=hidden \ + -Wnewline-eof \ + -arch x86_64 \ + -fno-strict-aliasing \ + -Wall \ + -Wendif-labels \ + -W \ + -Wno-unused-parameter + +# Flags passed to only C files. +CFLAGS_C_Release := + +# Flags passed to only C++ files. +CFLAGS_CC_Release := -fno-rtti \ + -fno-exceptions \ + -fvisibility-inlines-hidden \ + -fno-threadsafe-statics + +# Flags passed to only ObjC files. +CFLAGS_OBJC_Release := + +# Flags passed to only ObjC++ files. +CFLAGS_OBJCC_Release := + +INCS_Release := -I$(srcdir)/src/libuv/include \ -I$(srcdir)/src/libuv/include/uv-private \ -I$(srcdir)/src/libuv/src \ -I$(srcdir)/src/libuv/src/unix/ev \ @@ -91,6 +144,7 @@ OBJS := $(obj).target/$(TARGET)/src/libuv/src/uv-common.o \ $(obj).target/$(TARGET)/src/libuv/src/unix/cares.o \ $(obj).target/$(TARGET)/src/libuv/src/unix/dl.o \ $(obj).target/$(TARGET)/src/libuv/src/unix/error.o \ + $(obj).target/$(TARGET)/src/libuv/src/unix/thread.o \ $(obj).target/$(TARGET)/src/libuv/src/unix/process.o \ $(obj).target/$(TARGET)/src/libuv/src/unix/eio/eio.o \ $(obj).target/$(TARGET)/src/libuv/src/unix/ev/ev.o \ @@ -103,10 +157,10 @@ all_deps += $(OBJS) # CFLAGS et al overrides must be target-local. # See "Target-specific Variable Values" in the GNU Make manual. $(OBJS): TOOLSET := $(TOOLSET) -$(OBJS): GYP_CFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_C_$(BUILDTYPE)) -$(OBJS): GYP_CXXFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_CC_$(BUILDTYPE)) -$(OBJS): GYP_OBJCFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_C_$(BUILDTYPE)) $(CFLAGS_OBJC_$(BUILDTYPE)) -$(OBJS): GYP_OBJCXXFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_CC_$(BUILDTYPE)) $(CFLAGS_OBJCC_$(BUILDTYPE)) +$(OBJS): GYP_CFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_C_$(BUILDTYPE)) +$(OBJS): GYP_CXXFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_CC_$(BUILDTYPE)) +$(OBJS): GYP_OBJCFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_C_$(BUILDTYPE)) $(CFLAGS_OBJC_$(BUILDTYPE)) +$(OBJS): GYP_OBJCXXFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_CC_$(BUILDTYPE)) $(CFLAGS_OBJCC_$(BUILDTYPE)) # Suffix rules, putting all outputs into $(obj). @@ -123,7 +177,10 @@ $(obj).$(TOOLSET)/$(TARGET)/%.o: $(obj)/%.c FORCE_DO_CMD # End of this set of suffix rules ### Rules for final target. -LDFLAGS_Default := -arch x86_64 \ +LDFLAGS_Debug := -arch x86_64 \ + -L$(builddir) + +LDFLAGS_Release := -arch x86_64 \ -L$(builddir) LIBS := -lm diff --git a/mk/libuv/x86_64/mac/src/libuv/uv.target.mk-e b/mk/libuv/x86_64/mac/src/libuv/uv.target.mk-e deleted file mode 100644 index 28f911f4dc7..00000000000 --- a/mk/libuv/x86_64/mac/src/libuv/uv.target.mk-e +++ /dev/null @@ -1,145 +0,0 @@ -# This file is generated by gyp; do not edit. - -TOOLSET := target -TARGET := uv -DEFS_Default := '-D_LARGEFILE_SOURCE' \ - '-D_FILE_OFFSET_BITS=64' \ - '-D_GNU_SOURCE' \ - '-DEIO_STACKSIZE=262144' \ - '-DHAVE_CONFIG_H' \ - '-DEV_CONFIG_H="config_darwin.h"' \ - '-DEIO_CONFIG_H="config_darwin.h"' - -# Flags passed to all source files. -CFLAGS_Default := -fasm-blocks \ - -mpascal-strings \ - -Os \ - -gdwarf-2 \ - -arch i386 - -# Flags passed to only C files. -CFLAGS_C_Default := - -# Flags passed to only C++ files. -CFLAGS_CC_Default := - -# Flags passed to only ObjC files. -CFLAGS_OBJC_Default := - -# Flags passed to only ObjC++ files. -CFLAGS_OBJCC_Default := - -INCS_Default := -I$(srcdir)/src/libuv/include \ - -I$(srcdir)/src/libuv/include/uv-private \ - -I$(srcdir)/src/libuv/src \ - -I$(srcdir)/src/libuv/src/unix/ev \ - -I$(srcdir)/src/libuv/src/ares/config_darwin - -OBJS := $(obj).target/$(TARGET)/src/libuv/src/uv-common.o \ - $(obj).target/$(TARGET)/src/libuv/src/ares/ares_cancel.o \ - $(obj).target/$(TARGET)/src/libuv/src/ares/ares__close_sockets.o \ - $(obj).target/$(TARGET)/src/libuv/src/ares/ares_data.o \ - $(obj).target/$(TARGET)/src/libuv/src/ares/ares_destroy.o \ - $(obj).target/$(TARGET)/src/libuv/src/ares/ares_expand_name.o \ - $(obj).target/$(TARGET)/src/libuv/src/ares/ares_expand_string.o \ - $(obj).target/$(TARGET)/src/libuv/src/ares/ares_fds.o \ - $(obj).target/$(TARGET)/src/libuv/src/ares/ares_free_hostent.o \ - $(obj).target/$(TARGET)/src/libuv/src/ares/ares_free_string.o \ - $(obj).target/$(TARGET)/src/libuv/src/ares/ares_gethostbyaddr.o \ - $(obj).target/$(TARGET)/src/libuv/src/ares/ares_gethostbyname.o \ - $(obj).target/$(TARGET)/src/libuv/src/ares/ares__get_hostent.o \ - $(obj).target/$(TARGET)/src/libuv/src/ares/ares_getnameinfo.o \ - $(obj).target/$(TARGET)/src/libuv/src/ares/ares_getopt.o \ - $(obj).target/$(TARGET)/src/libuv/src/ares/ares_getsock.o \ - $(obj).target/$(TARGET)/src/libuv/src/ares/ares_init.o \ - $(obj).target/$(TARGET)/src/libuv/src/ares/ares_library_init.o \ - $(obj).target/$(TARGET)/src/libuv/src/ares/ares_llist.o \ - $(obj).target/$(TARGET)/src/libuv/src/ares/ares_mkquery.o \ - $(obj).target/$(TARGET)/src/libuv/src/ares/ares_nowarn.o \ - $(obj).target/$(TARGET)/src/libuv/src/ares/ares_options.o \ - $(obj).target/$(TARGET)/src/libuv/src/ares/ares_parse_aaaa_reply.o \ - $(obj).target/$(TARGET)/src/libuv/src/ares/ares_parse_a_reply.o \ - $(obj).target/$(TARGET)/src/libuv/src/ares/ares_parse_mx_reply.o \ - $(obj).target/$(TARGET)/src/libuv/src/ares/ares_parse_ns_reply.o \ - $(obj).target/$(TARGET)/src/libuv/src/ares/ares_parse_ptr_reply.o \ - $(obj).target/$(TARGET)/src/libuv/src/ares/ares_parse_srv_reply.o \ - $(obj).target/$(TARGET)/src/libuv/src/ares/ares_parse_txt_reply.o \ - $(obj).target/$(TARGET)/src/libuv/src/ares/ares_process.o \ - $(obj).target/$(TARGET)/src/libuv/src/ares/ares_query.o \ - $(obj).target/$(TARGET)/src/libuv/src/ares/ares__read_line.o \ - $(obj).target/$(TARGET)/src/libuv/src/ares/ares_search.o \ - $(obj).target/$(TARGET)/src/libuv/src/ares/ares_send.o \ - $(obj).target/$(TARGET)/src/libuv/src/ares/ares_strcasecmp.o \ - $(obj).target/$(TARGET)/src/libuv/src/ares/ares_strdup.o \ - $(obj).target/$(TARGET)/src/libuv/src/ares/ares_strerror.o \ - $(obj).target/$(TARGET)/src/libuv/src/ares/ares_timeout.o \ - $(obj).target/$(TARGET)/src/libuv/src/ares/ares__timeval.o \ - $(obj).target/$(TARGET)/src/libuv/src/ares/ares_version.o \ - $(obj).target/$(TARGET)/src/libuv/src/ares/ares_writev.o \ - $(obj).target/$(TARGET)/src/libuv/src/ares/bitncmp.o \ - $(obj).target/$(TARGET)/src/libuv/src/ares/inet_net_pton.o \ - $(obj).target/$(TARGET)/src/libuv/src/ares/inet_ntop.o \ - $(obj).target/$(TARGET)/src/libuv/src/ares/windows_port.o \ - $(obj).target/$(TARGET)/src/libuv/src/unix/core.o \ - $(obj).target/$(TARGET)/src/libuv/src/unix/uv-eio.o \ - $(obj).target/$(TARGET)/src/libuv/src/unix/fs.o \ - $(obj).target/$(TARGET)/src/libuv/src/unix/udp.o \ - $(obj).target/$(TARGET)/src/libuv/src/unix/tcp.o \ - $(obj).target/$(TARGET)/src/libuv/src/unix/pipe.o \ - $(obj).target/$(TARGET)/src/libuv/src/unix/tty.o \ - $(obj).target/$(TARGET)/src/libuv/src/unix/stream.o \ - $(obj).target/$(TARGET)/src/libuv/src/unix/cares.o \ - $(obj).target/$(TARGET)/src/libuv/src/unix/dl.o \ - $(obj).target/$(TARGET)/src/libuv/src/unix/error.o \ - $(obj).target/$(TARGET)/src/libuv/src/unix/process.o \ - $(obj).target/$(TARGET)/src/libuv/src/unix/eio/eio.o \ - $(obj).target/$(TARGET)/src/libuv/src/unix/ev/ev.o \ - $(obj).target/$(TARGET)/src/libuv/src/unix/darwin.o \ - $(obj).target/$(TARGET)/src/libuv/src/unix/kqueue.o - -# Add to the list of files we specially track dependencies for. -all_deps += $(OBJS) - -# CFLAGS et al overrides must be target-local. -# See "Target-specific Variable Values" in the GNU Make manual. -$(OBJS): TOOLSET := $(TOOLSET) -$(OBJS): GYP_CFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_C_$(BUILDTYPE)) -$(OBJS): GYP_CXXFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_CC_$(BUILDTYPE)) -$(OBJS): GYP_OBJCFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_C_$(BUILDTYPE)) $(CFLAGS_OBJC_$(BUILDTYPE)) -$(OBJS): GYP_OBJCXXFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_CC_$(BUILDTYPE)) $(CFLAGS_OBJCC_$(BUILDTYPE)) - -# Suffix rules, putting all outputs into $(obj). - -$(obj).$(TOOLSET)/$(TARGET)/%.o: $(srcdir)/%.c FORCE_DO_CMD - @$(call do_cmd,cc,1) - -# Try building from generated source, too. - -$(obj).$(TOOLSET)/$(TARGET)/%.o: $(obj).$(TOOLSET)/%.c FORCE_DO_CMD - @$(call do_cmd,cc,1) - -$(obj).$(TOOLSET)/$(TARGET)/%.o: $(obj)/%.c FORCE_DO_CMD - @$(call do_cmd,cc,1) - -# End of this set of suffix rules -### Rules for final target. -LDFLAGS_Default := -arch i386 \ - -L$(builddir) - -LIBS := -lm - -$(builddir)/libuv.a: GYP_LDFLAGS := $(LDFLAGS_$(BUILDTYPE)) -$(builddir)/libuv.a: LIBS := $(LIBS) -$(builddir)/libuv.a: TOOLSET := $(TOOLSET) -$(builddir)/libuv.a: $(OBJS) FORCE_DO_CMD - $(call do_cmd,alink) - -all_deps += $(builddir)/libuv.a -# Add target alias -.PHONY: uv -uv: $(builddir)/libuv.a - -# Add target alias to "all" target. -.PHONY: all -all: uv - diff --git a/mk/libuv/x86_64/unix/Makefile b/mk/libuv/x86_64/unix/Makefile index e7b86e6cfc6..d71b06661c8 100644 --- a/mk/libuv/x86_64/unix/Makefile +++ b/mk/libuv/x86_64/unix/Makefile @@ -8,6 +8,7 @@ MAKEFLAGS=-r # The source directory tree. srcdir := ../../../.. +abs_srcdir := $(abspath $(srcdir)) # The name of the builddir. builddir_name ?= out @@ -20,7 +21,7 @@ else endif # Specify BUILDTYPE=Release on the command line for a release build. -BUILDTYPE ?= Default +BUILDTYPE ?= Debug # Directory all our build output goes into. # Note that this must be two directories beneath src/ for unit tests to pass, @@ -252,8 +253,8 @@ $(if $(or $(command_changed),$(prereq_changed)), ) endef -# Declare "all" target first so it is the default, even though we don't have the -# deps yet. +# Declare the "all" target first so it is the default, +# even though we don't have the deps yet. .PHONY: all all: @@ -321,9 +322,9 @@ ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ include src/libuv/uv.target.mk endif -quiet_cmd_regen_makefile = ACTION Regenerating $@ -cmd_regen_makefile = ./src/libuv/build/gyp/gyp -fmake --ignore-environment "--toplevel-dir=." "--depth=." "--generator-output=mk/libuv/x86_64/unix" "-Dlibrary=static_library" "-Dtarget_arch=x86_64" "-DOS=linux" src/libuv/uv.gyp -Makefile: $(srcdir)/src/libuv/uv.gyp +#quiet_cmd_regen_makefile = ACTION Regenerating $@ +#cmd_regen_makefile = ./src/libuv/build/gyp/gyp -fmake --ignore-environment "--toplevel-dir=." -Isrc/libuv/common.gypi "--depth=." "--generator-output=mk/libuv/x86_64/unix" "-Ddefault_configuration=Default" "-Dcomponent=static_library" "-Dlibrary=static_library" "-Dtarget_arch=x86_64" "-DOS=linux" src/libuv/uv.gyp +#Makefile: $(srcdir)/src/libuv/uv.gyp $(srcdir)/src/libuv/common.gypi # $(call do_cmd,regen_makefile) # "all" is a concatenation of the "all" targets from all the included diff --git a/mk/libuv/x86_64/unix/Makefile-e b/mk/libuv/x86_64/unix/Makefile-e deleted file mode 100644 index 8197dff7575..00000000000 --- a/mk/libuv/x86_64/unix/Makefile-e +++ /dev/null @@ -1,353 +0,0 @@ -# We borrow heavily from the kernel build setup, though we are simpler since -# we don't have Kconfig tweaking settings on us. - -# The implicit make rules have it looking for RCS files, among other things. -# We instead explicitly write all the rules we care about. -# It's even quicker (saves ~200ms) to pass -r on the command line. -MAKEFLAGS=-r - -# The source directory tree. -srcdir := ../../../.. - -# The name of the builddir. -builddir_name ?= out - -# The V=1 flag on command line makes us verbosely print command lines. -ifdef V - quiet= -else - quiet=quiet_ -endif - -# Specify BUILDTYPE=Release on the command line for a release build. -BUILDTYPE ?= Default - -# Directory all our build output goes into. -# Note that this must be two directories beneath src/ for unit tests to pass, -# as they reach into the src/ directory for data with relative paths. -builddir ?= $(builddir_name)/$(BUILDTYPE) -abs_builddir := $(abspath $(builddir)) -depsdir := $(builddir)/.deps - -# Object output directory. -obj := $(builddir)/obj -abs_obj := $(abspath $(obj)) - -# We build up a list of every single one of the targets so we can slurp in the -# generated dependency rule Makefiles in one pass. -all_deps := - - - -# C++ apps need to be linked with g++. -# -# Note: flock is used to seralize linking. Linking is a memory-intensive -# process so running parallel links can often lead to thrashing. To disable -# the serialization, override LINK via an envrionment variable as follows: -# -# export LINK=g++ -# -# This will allow make to invoke N linker processes as specified in -jN. -LINK ?= flock $(builddir)/linker.lock $(CXX) - -CC.target ?= $(CC) -CFLAGS.target ?= $(CFLAGS) -CXX.target ?= $(CXX) -CXXFLAGS.target ?= $(CXXFLAGS) -LINK.target ?= $(LINK) -LDFLAGS.target ?= $(LDFLAGS) -AR.target ?= $(AR) -ARFLAGS.target ?= crsT - -# N.B.: the logic of which commands to run should match the computation done -# in gyp's make.py where ARFLAGS.host etc. is computed. -# TODO(evan): move all cross-compilation logic to gyp-time so we don't need -# to replicate this environment fallback in make as well. -CC.host ?= gcc -CFLAGS.host ?= -CXX.host ?= g++ -CXXFLAGS.host ?= -LINK.host ?= g++ -LDFLAGS.host ?= -AR.host ?= ar -ARFLAGS.host := crsT - -# Define a dir function that can handle spaces. -# http://www.gnu.org/software/make/manual/make.html#Syntax-of-Functions -# "leading spaces cannot appear in the text of the first argument as written. -# These characters can be put into the argument value by variable substitution." -empty := -space := $(empty) $(empty) - -# http://stackoverflow.com/questions/1189781/using-make-dir-or-notdir-on-a-path-with-spaces -replace_spaces = $(subst $(space),?,$1) -unreplace_spaces = $(subst ?,$(space),$1) -dirx = $(call unreplace_spaces,$(dir $(call replace_spaces,$1))) - -# Flags to make gcc output dependency info. Note that you need to be -# careful here to use the flags that ccache and distcc can understand. -# We write to a dep file on the side first and then rename at the end -# so we can't end up with a broken dep file. -depfile = $(depsdir)/$(call replace_spaces,$@).d -DEPFLAGS = -MMD -MF $(depfile).raw - -# We have to fixup the deps output in a few ways. -# (1) the file output should mention the proper .o file. -# ccache or distcc lose the path to the target, so we convert a rule of -# the form: -# foobar.o: DEP1 DEP2 -# into -# path/to/foobar.o: DEP1 DEP2 -# (2) we want missing files not to cause us to fail to build. -# We want to rewrite -# foobar.o: DEP1 DEP2 \ -# DEP3 -# to -# DEP1: -# DEP2: -# DEP3: -# so if the files are missing, they're just considered phony rules. -# We have to do some pretty insane escaping to get those backslashes -# and dollar signs past make, the shell, and sed at the same time. -# Doesn't work with spaces, but that's fine: .d files have spaces in -# their names replaced with other characters. -define fixup_dep -# The depfile may not exist if the input file didn't have any #includes. -touch $(depfile).raw -# Fixup path as in (1). -sed -e "s|^$(notdir $@)|$@|" $(depfile).raw >> $(depfile) -# Add extra rules as in (2). -# We remove slashes and replace spaces with new lines; -# remove blank lines; -# delete the first line and append a colon to the remaining lines. -sed -e 's|\\||' -e 'y| |\n|' $(depfile).raw |\ - grep -v '^$$' |\ - sed -e 1d -e 's|$$|:|' \ - >> $(depfile) -rm $(depfile).raw -endef - -# Command definitions: -# - cmd_foo is the actual command to run; -# - quiet_cmd_foo is the brief-output summary of the command. - -quiet_cmd_cc = CC($(TOOLSET)) $@ -cmd_cc = $(CC.$(TOOLSET)) $(GYP_CFLAGS) $(DEPFLAGS) $(CFLAGS.$(TOOLSET)) -c -o $@ $< - -quiet_cmd_cxx = CXX($(TOOLSET)) $@ -cmd_cxx = $(CXX.$(TOOLSET)) $(GYP_CXXFLAGS) $(DEPFLAGS) $(CXXFLAGS.$(TOOLSET)) -c -o $@ $< - -quiet_cmd_touch = TOUCH $@ -cmd_touch = touch $@ - -quiet_cmd_copy = COPY $@ -# send stderr to /dev/null to ignore messages when linking directories. -cmd_copy = ln -f "$<" "$@" 2>/dev/null || (rm -rf "$@" && cp -af "$<" "$@") - -quiet_cmd_alink = AR($(TOOLSET)) $@ -cmd_alink = rm -f $@ && $(AR.$(TOOLSET)) $(ARFLAGS.$(TOOLSET)) $@ $(filter %.o,$^) - -# Due to circular dependencies between libraries :(, we wrap the -# special "figure out circular dependencies" flags around the entire -# input list during linking. -quiet_cmd_link = LINK($(TOOLSET)) $@ -cmd_link = $(LINK.$(TOOLSET)) $(GYP_LDFLAGS) $(LDFLAGS.$(TOOLSET)) -o $@ -Wl,--start-group $(LD_INPUTS) -Wl,--end-group $(LIBS) - -# We support two kinds of shared objects (.so): -# 1) shared_library, which is just bundling together many dependent libraries -# into a link line. -# 2) loadable_module, which is generating a module intended for dlopen(). -# -# They differ only slightly: -# In the former case, we want to package all dependent code into the .so. -# In the latter case, we want to package just the API exposed by the -# outermost module. -# This means shared_library uses --whole-archive, while loadable_module doesn't. -# (Note that --whole-archive is incompatible with the --start-group used in -# normal linking.) - -# Other shared-object link notes: -# - Set SONAME to the library filename so our binaries don't reference -# the local, absolute paths used on the link command-line. -quiet_cmd_solink = SOLINK($(TOOLSET)) $@ -cmd_solink = $(LINK.$(TOOLSET)) -shared $(GYP_LDFLAGS) $(LDFLAGS.$(TOOLSET)) -Wl,-soname=$(@F) -o $@ -Wl,--whole-archive $(LD_INPUTS) -Wl,--no-whole-archive $(LIBS) - -quiet_cmd_solink_module = SOLINK_MODULE($(TOOLSET)) $@ -cmd_solink_module = $(LINK.$(TOOLSET)) -shared $(GYP_LDFLAGS) $(LDFLAGS.$(TOOLSET)) -Wl,-soname=$(@F) -o $@ -Wl,--start-group $(filter-out FORCE_DO_CMD, $^) -Wl,--end-group $(LIBS) - - -# Define an escape_quotes function to escape single quotes. -# This allows us to handle quotes properly as long as we always use -# use single quotes and escape_quotes. -escape_quotes = $(subst ','\'',$(1)) -# This comment is here just to include a ' to unconfuse syntax highlighting. -# Define an escape_vars function to escape '$' variable syntax. -# This allows us to read/write command lines with shell variables (e.g. -# $LD_LIBRARY_PATH), without triggering make substitution. -escape_vars = $(subst $$,$$$$,$(1)) -# Helper that expands to a shell command to echo a string exactly as it is in -# make. This uses printf instead of echo because printf's behaviour with respect -# to escape sequences is more portable than echo's across different shells -# (e.g., dash, bash). -exact_echo = printf '%s\n' '$(call escape_quotes,$(1))' - -# Helper to compare the command we're about to run against the command -# we logged the last time we ran the command. Produces an empty -# string (false) when the commands match. -# Tricky point: Make has no string-equality test function. -# The kernel uses the following, but it seems like it would have false -# positives, where one string reordered its arguments. -# arg_check = $(strip $(filter-out $(cmd_$(1)), $(cmd_$@)) \ -# $(filter-out $(cmd_$@), $(cmd_$(1)))) -# We instead substitute each for the empty string into the other, and -# say they're equal if both substitutions produce the empty string. -# .d files contain ? instead of spaces, take that into account. -command_changed = $(or $(subst $(cmd_$(1)),,$(cmd_$(call replace_spaces,$@))),\ - $(subst $(cmd_$(call replace_spaces,$@)),,$(cmd_$(1)))) - -# Helper that is non-empty when a prerequisite changes. -# Normally make does this implicitly, but we force rules to always run -# so we can check their command lines. -# $? -- new prerequisites -# $| -- order-only dependencies -prereq_changed = $(filter-out FORCE_DO_CMD,$(filter-out $|,$?)) - -# Helper that executes all postbuilds, and deletes the output file when done -# if any of the postbuilds failed. -define do_postbuilds - @E=0;\ - for p in $(POSTBUILDS); do\ - eval $$p;\ - F=$$?;\ - if [ $$F -ne 0 ]; then\ - E=$$F;\ - fi;\ - done;\ - if [ $$E -ne 0 ]; then\ - rm -rf "$@";\ - exit $$E;\ - fi -endef - -# do_cmd: run a command via the above cmd_foo names, if necessary. -# Should always run for a given target to handle command-line changes. -# Second argument, if non-zero, makes it do asm/C/C++ dependency munging. -# Third argument, if non-zero, makes it do POSTBUILDS processing. -# Note: We intentionally do NOT call dirx for depfile, since it contains ? for -# spaces already and dirx strips the ? characters. -define do_cmd -$(if $(or $(command_changed),$(prereq_changed)), - @$(call exact_echo, $($(quiet)cmd_$(1))) - @mkdir -p "$(call dirx,$@)" "$(dir $(depfile))" - $(if $(findstring flock,$(word 1,$(cmd_$1))), - @$(cmd_$(1)) - @echo " $(quiet_cmd_$(1)): Finished", - @$(cmd_$(1)) - ) - @$(call exact_echo,$(call escape_vars,cmd_$(call replace_spaces,$@) := $(cmd_$(1)))) > $(depfile) - @$(if $(2),$(fixup_dep)) - $(if $(and $(3), $(POSTBUILDS)), - $(call do_postbuilds) - ) -) -endef - -# Declare "all" target first so it is the default, even though we don't have the -# deps yet. -.PHONY: all -all: - -# Use FORCE_DO_CMD to force a target to run. Should be coupled with -# do_cmd. -.PHONY: FORCE_DO_CMD -FORCE_DO_CMD: - -TOOLSET := target -# Suffix rules, putting all outputs into $(obj). -$(obj).$(TOOLSET)/%.o: $(srcdir)/%.c FORCE_DO_CMD - @$(call do_cmd,cc,1) -$(obj).$(TOOLSET)/%.o: $(srcdir)/%.cc FORCE_DO_CMD - @$(call do_cmd,cxx,1) -$(obj).$(TOOLSET)/%.o: $(srcdir)/%.cpp FORCE_DO_CMD - @$(call do_cmd,cxx,1) -$(obj).$(TOOLSET)/%.o: $(srcdir)/%.cxx FORCE_DO_CMD - @$(call do_cmd,cxx,1) -$(obj).$(TOOLSET)/%.o: $(srcdir)/%.S FORCE_DO_CMD - @$(call do_cmd,cc,1) -$(obj).$(TOOLSET)/%.o: $(srcdir)/%.s FORCE_DO_CMD - @$(call do_cmd,cc,1) - -# Try building from generated source, too. -$(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.c FORCE_DO_CMD - @$(call do_cmd,cc,1) -$(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.cc FORCE_DO_CMD - @$(call do_cmd,cxx,1) -$(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.cpp FORCE_DO_CMD - @$(call do_cmd,cxx,1) -$(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.cxx FORCE_DO_CMD - @$(call do_cmd,cxx,1) -$(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.S FORCE_DO_CMD - @$(call do_cmd,cc,1) -$(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.s FORCE_DO_CMD - @$(call do_cmd,cc,1) - -$(obj).$(TOOLSET)/%.o: $(obj)/%.c FORCE_DO_CMD - @$(call do_cmd,cc,1) -$(obj).$(TOOLSET)/%.o: $(obj)/%.cc FORCE_DO_CMD - @$(call do_cmd,cxx,1) -$(obj).$(TOOLSET)/%.o: $(obj)/%.cpp FORCE_DO_CMD - @$(call do_cmd,cxx,1) -$(obj).$(TOOLSET)/%.o: $(obj)/%.cxx FORCE_DO_CMD - @$(call do_cmd,cxx,1) -$(obj).$(TOOLSET)/%.o: $(obj)/%.S FORCE_DO_CMD - @$(call do_cmd,cc,1) -$(obj).$(TOOLSET)/%.o: $(obj)/%.s FORCE_DO_CMD - @$(call do_cmd,cc,1) - - -ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ - $(findstring $(join ^,$(prefix)),\ - $(join ^,src/libuv/run-benchmarks.target.mk)))),) - include src/libuv/run-benchmarks.target.mk -endif -ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ - $(findstring $(join ^,$(prefix)),\ - $(join ^,src/libuv/run-tests.target.mk)))),) - include src/libuv/run-tests.target.mk -endif -ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ - $(findstring $(join ^,$(prefix)),\ - $(join ^,src/libuv/uv.target.mk)))),) - include src/libuv/uv.target.mk -endif - -quiet_cmd_regen_makefile = ACTION Regenerating $@ -cmd_regen_makefile = ./src/libuv/build/gyp/gyp -fmake --ignore-environment "--toplevel-dir=." "--depth=." "--generator-output=mk/libuv/x86_64/unix" "-Dlibrary=static_library" "-Dtarget_arch=x86_64" "-DOS=linux" src/libuv/uv.gyp -Makefile: $(srcdir)/src/libuv/uv.gyp - $(call do_cmd,regen_makefile) - -# "all" is a concatenation of the "all" targets from all the included -# sub-makefiles. This is just here to clarify. -all: - -# Add in dependency-tracking rules. $(all_deps) is the list of every single -# target in our tree. Only consider the ones with .d (dependency) info: -d_files := $(wildcard $(foreach f,$(all_deps),$(depsdir)/$(f).d)) -ifneq ($(d_files),) - # Rather than include each individual .d file, concatenate them into a - # single file which make is able to load faster. We split this into - # commands that take 1000 files at a time to avoid overflowing the - # command line. - $(shell cat $(wordlist 1,1000,$(d_files)) > $(depsdir)/all.deps) - - ifneq ($(word 1001,$(d_files)),) - $(error Found unprocessed dependency files (gyp didn't generate enough rules!)) - endif - - # make looks for ways to re-generate included makefiles, but in our case, we - # don't have a direct way. Explicitly telling make that it has nothing to do - # for them makes it go faster. - $(depsdir)/all.deps: ; - - include $(depsdir)/all.deps -endif diff --git a/mk/libuv/x86_64/unix/src/libuv/run-benchmarks.target.mk b/mk/libuv/x86_64/unix/src/libuv/run-benchmarks.target.mk index b5680d2c557..25b01014e79 100644 --- a/mk/libuv/x86_64/unix/src/libuv/run-benchmarks.target.mk +++ b/mk/libuv/x86_64/unix/src/libuv/run-benchmarks.target.mk @@ -2,21 +2,57 @@ TOOLSET := target TARGET := run-benchmarks -DEFS_Default := '-D_LARGEFILE_SOURCE' \ +DEFS_Debug := '-D_LARGEFILE_SOURCE' \ '-D_FILE_OFFSET_BITS=64' \ '-D_GNU_SOURCE' \ - '-DEIO_STACKSIZE=262144' + '-DEIO_STACKSIZE=262144' \ + '-DDEBUG' \ + '-D_DEBUG' \ + '-DEV_VERIFY=2' # Flags passed to all source files. -CFLAGS_Default := -pthread +CFLAGS_Debug := -pthread \ + -Wall \ + -ansi \ + -pthread \ + -fvisibility=hidden \ + -g \ + -O0 # Flags passed to only C files. -CFLAGS_C_Default := +CFLAGS_C_Debug := # Flags passed to only C++ files. -CFLAGS_CC_Default := +CFLAGS_CC_Debug := -fno-rtti \ + -fno-exceptions -INCS_Default := -I$(srcdir)/src/libuv/include +INCS_Debug := -I$(srcdir)/src/libuv/include + +DEFS_Release := '-D_LARGEFILE_SOURCE' \ + '-D_FILE_OFFSET_BITS=64' \ + '-D_GNU_SOURCE' \ + '-DEIO_STACKSIZE=262144' \ + '-DNDEBUG' + +# Flags passed to all source files. +CFLAGS_Release := -pthread \ + -Wall \ + -ansi \ + -pthread \ + -fvisibility=hidden \ + -O3 \ + -fomit-frame-pointer \ + -fdata-sections \ + -ffunction-sections + +# Flags passed to only C files. +CFLAGS_C_Release := + +# Flags passed to only C++ files. +CFLAGS_CC_Release := -fno-rtti \ + -fno-exceptions + +INCS_Release := -I$(srcdir)/src/libuv/include OBJS := $(obj).target/$(TARGET)/src/libuv/test/benchmark-ares.o \ $(obj).target/$(TARGET)/src/libuv/test/benchmark-getaddrinfo.o \ @@ -25,6 +61,7 @@ OBJS := $(obj).target/$(TARGET)/src/libuv/test/benchmark-ares.o \ $(obj).target/$(TARGET)/src/libuv/test/benchmark-pump.o \ $(obj).target/$(TARGET)/src/libuv/test/benchmark-sizes.o \ $(obj).target/$(TARGET)/src/libuv/test/benchmark-spawn.o \ + $(obj).target/$(TARGET)/src/libuv/test/benchmark-thread.o \ $(obj).target/$(TARGET)/src/libuv/test/benchmark-tcp-write-batch.o \ $(obj).target/$(TARGET)/src/libuv/test/benchmark-udp-packet-storm.o \ $(obj).target/$(TARGET)/src/libuv/test/dns-server.o \ @@ -43,8 +80,8 @@ $(OBJS): | $(obj).target/src/libuv/libuv.a # CFLAGS et al overrides must be target-local. # See "Target-specific Variable Values" in the GNU Make manual. $(OBJS): TOOLSET := $(TOOLSET) -$(OBJS): GYP_CFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_C_$(BUILDTYPE)) -$(OBJS): GYP_CXXFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_CC_$(BUILDTYPE)) +$(OBJS): GYP_CFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_C_$(BUILDTYPE)) +$(OBJS): GYP_CXXFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_CC_$(BUILDTYPE)) # Suffix rules, putting all outputs into $(obj). @@ -61,7 +98,9 @@ $(obj).$(TOOLSET)/$(TARGET)/%.o: $(obj)/%.c FORCE_DO_CMD # End of this set of suffix rules ### Rules for final target. -LDFLAGS_Default := +LDFLAGS_Debug := -pthread + +LDFLAGS_Release := -pthread LIBS := -lrt diff --git a/mk/libuv/x86_64/unix/src/libuv/run-tests.target.mk b/mk/libuv/x86_64/unix/src/libuv/run-tests.target.mk index 34bc8551b44..a2fe0d2065e 100644 --- a/mk/libuv/x86_64/unix/src/libuv/run-tests.target.mk +++ b/mk/libuv/x86_64/unix/src/libuv/run-tests.target.mk @@ -2,32 +2,71 @@ TOOLSET := target TARGET := run-tests -DEFS_Default := '-D_LARGEFILE_SOURCE' \ +DEFS_Debug := '-D_LARGEFILE_SOURCE' \ '-D_FILE_OFFSET_BITS=64' \ '-D_GNU_SOURCE' \ - '-DEIO_STACKSIZE=262144' + '-DEIO_STACKSIZE=262144' \ + '-DDEBUG' \ + '-D_DEBUG' \ + '-DEV_VERIFY=2' # Flags passed to all source files. -CFLAGS_Default := -pthread +CFLAGS_Debug := -pthread \ + -Wall \ + -ansi \ + -pthread \ + -fvisibility=hidden \ + -g \ + -O0 # Flags passed to only C files. -CFLAGS_C_Default := +CFLAGS_C_Debug := # Flags passed to only C++ files. -CFLAGS_CC_Default := +CFLAGS_CC_Debug := -fno-rtti \ + -fno-exceptions -INCS_Default := -I$(srcdir)/src/libuv/include +INCS_Debug := -I$(srcdir)/src/libuv/include + +DEFS_Release := '-D_LARGEFILE_SOURCE' \ + '-D_FILE_OFFSET_BITS=64' \ + '-D_GNU_SOURCE' \ + '-DEIO_STACKSIZE=262144' \ + '-DNDEBUG' + +# Flags passed to all source files. +CFLAGS_Release := -pthread \ + -Wall \ + -ansi \ + -pthread \ + -fvisibility=hidden \ + -O3 \ + -fomit-frame-pointer \ + -fdata-sections \ + -ffunction-sections + +# Flags passed to only C files. +CFLAGS_C_Release := + +# Flags passed to only C++ files. +CFLAGS_CC_Release := -fno-rtti \ + -fno-exceptions + +INCS_Release := -I$(srcdir)/src/libuv/include OBJS := $(obj).target/$(TARGET)/src/libuv/test/blackhole-server.o \ $(obj).target/$(TARGET)/src/libuv/test/echo-server.o \ $(obj).target/$(TARGET)/src/libuv/test/run-tests.o \ $(obj).target/$(TARGET)/src/libuv/test/runner.o \ $(obj).target/$(TARGET)/src/libuv/test/test-get-loadavg.o \ + $(obj).target/$(TARGET)/src/libuv/test/test-util.o \ $(obj).target/$(TARGET)/src/libuv/test/test-async.o \ $(obj).target/$(TARGET)/src/libuv/test/test-error.o \ $(obj).target/$(TARGET)/src/libuv/test/test-callback-stack.o \ $(obj).target/$(TARGET)/src/libuv/test/test-connection-fail.o \ + $(obj).target/$(TARGET)/src/libuv/test/test-cwd-and-chdir.o \ $(obj).target/$(TARGET)/src/libuv/test/test-delayed-accept.o \ + $(obj).target/$(TARGET)/src/libuv/test/test-eio-overflow.o \ $(obj).target/$(TARGET)/src/libuv/test/test-fail-always.o \ $(obj).target/$(TARGET)/src/libuv/test/test-fs.o \ $(obj).target/$(TARGET)/src/libuv/test/test-fs-event.o \ @@ -39,12 +78,15 @@ OBJS := $(obj).target/$(TARGET)/src/libuv/test/blackhole-server.o \ $(obj).target/$(TARGET)/src/libuv/test/test-hrtime.o \ $(obj).target/$(TARGET)/src/libuv/test/test-idle.o \ $(obj).target/$(TARGET)/src/libuv/test/test-ipc.o \ + $(obj).target/$(TARGET)/src/libuv/test/test-ipc-threads.o \ $(obj).target/$(TARGET)/src/libuv/test/test-loop-handles.o \ $(obj).target/$(TARGET)/src/libuv/test/test-multiple-listen.o \ $(obj).target/$(TARGET)/src/libuv/test/test-pass-always.o \ $(obj).target/$(TARGET)/src/libuv/test/test-ping-pong.o \ $(obj).target/$(TARGET)/src/libuv/test/test-pipe-bind-error.o \ $(obj).target/$(TARGET)/src/libuv/test/test-pipe-connect-error.o \ + $(obj).target/$(TARGET)/src/libuv/test/test-platform-output.o \ + $(obj).target/$(TARGET)/src/libuv/test/test-process-title.o \ $(obj).target/$(TARGET)/src/libuv/test/test-ref.o \ $(obj).target/$(TARGET)/src/libuv/test/test-shutdown-eof.o \ $(obj).target/$(TARGET)/src/libuv/test/test-spawn.o \ @@ -59,13 +101,17 @@ OBJS := $(obj).target/$(TARGET)/src/libuv/test/blackhole-server.o \ $(obj).target/$(TARGET)/src/libuv/test/test-tcp-write-to-half-open-connection.o \ $(obj).target/$(TARGET)/src/libuv/test/test-tcp-writealot.o \ $(obj).target/$(TARGET)/src/libuv/test/test-threadpool.o \ + $(obj).target/$(TARGET)/src/libuv/test/test-mutexes.o \ + $(obj).target/$(TARGET)/src/libuv/test/test-thread.o \ $(obj).target/$(TARGET)/src/libuv/test/test-timer-again.o \ $(obj).target/$(TARGET)/src/libuv/test/test-timer.o \ $(obj).target/$(TARGET)/src/libuv/test/test-tty.o \ $(obj).target/$(TARGET)/src/libuv/test/test-udp-dgram-too-big.o \ $(obj).target/$(TARGET)/src/libuv/test/test-udp-ipv6.o \ + $(obj).target/$(TARGET)/src/libuv/test/test-udp-options.o \ $(obj).target/$(TARGET)/src/libuv/test/test-udp-send-and-recv.o \ $(obj).target/$(TARGET)/src/libuv/test/test-udp-multicast-join.o \ + $(obj).target/$(TARGET)/src/libuv/test/test-counters-init.o \ $(obj).target/$(TARGET)/src/libuv/test/runner-unix.o # Add to the list of files we specially track dependencies for. @@ -77,8 +123,8 @@ $(OBJS): | $(obj).target/src/libuv/libuv.a # CFLAGS et al overrides must be target-local. # See "Target-specific Variable Values" in the GNU Make manual. $(OBJS): TOOLSET := $(TOOLSET) -$(OBJS): GYP_CFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_C_$(BUILDTYPE)) -$(OBJS): GYP_CXXFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_CC_$(BUILDTYPE)) +$(OBJS): GYP_CFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_C_$(BUILDTYPE)) +$(OBJS): GYP_CXXFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_CC_$(BUILDTYPE)) # Suffix rules, putting all outputs into $(obj). @@ -95,7 +141,9 @@ $(obj).$(TOOLSET)/$(TARGET)/%.o: $(obj)/%.c FORCE_DO_CMD # End of this set of suffix rules ### Rules for final target. -LDFLAGS_Default := +LDFLAGS_Debug := -pthread + +LDFLAGS_Release := -pthread LIBS := -lrt diff --git a/mk/libuv/x86_64/unix/src/libuv/uv.target.mk b/mk/libuv/x86_64/unix/src/libuv/uv.target.mk index 65c2cf17b83..60e0e8fd2de 100644 --- a/mk/libuv/x86_64/unix/src/libuv/uv.target.mk +++ b/mk/libuv/x86_64/unix/src/libuv/uv.target.mk @@ -2,30 +2,79 @@ TOOLSET := target TARGET := uv -DEFS_Default := '-D_LARGEFILE_SOURCE' \ +DEFS_Debug := '-D_LARGEFILE_SOURCE' \ '-D_FILE_OFFSET_BITS=64' \ '-D_GNU_SOURCE' \ '-DEIO_STACKSIZE=262144' \ '-DHAVE_CONFIG_H' \ '-DEV_CONFIG_H="config_linux.h"' \ - '-DEIO_CONFIG_H="config_linux.h"' + '-DEIO_CONFIG_H="config_linux.h"' \ + '-DDEBUG' \ + '-D_DEBUG' \ + '-DEV_VERIFY=2' # Flags passed to all source files. -CFLAGS_Default := -pthread \ +CFLAGS_Debug := -pthread \ + -Wall \ + -ansi \ + -pthread \ + -fvisibility=hidden \ -g \ --std=gnu89 \ -pedantic \ -Wall \ -Wextra \ - -Wno-unused-parameter + -Wno-unused-parameter \ + -g \ + -O0 # Flags passed to only C files. -CFLAGS_C_Default := +CFLAGS_C_Debug := # Flags passed to only C++ files. -CFLAGS_CC_Default := +CFLAGS_CC_Debug := -fno-rtti \ + -fno-exceptions -INCS_Default := -I$(srcdir)/src/libuv/include \ +INCS_Debug := -I$(srcdir)/src/libuv/include \ + -I$(srcdir)/src/libuv/include/uv-private \ + -I$(srcdir)/src/libuv/src \ + -I$(srcdir)/src/libuv/src/unix/ev \ + -I$(srcdir)/src/libuv/src/ares/config_linux + +DEFS_Release := '-D_LARGEFILE_SOURCE' \ + '-D_FILE_OFFSET_BITS=64' \ + '-D_GNU_SOURCE' \ + '-DEIO_STACKSIZE=262144' \ + '-DHAVE_CONFIG_H' \ + '-DEV_CONFIG_H="config_linux.h"' \ + '-DEIO_CONFIG_H="config_linux.h"' \ + '-DNDEBUG' + +# Flags passed to all source files. +CFLAGS_Release := -pthread \ + -Wall \ + -ansi \ + -pthread \ + -fvisibility=hidden \ + -g \ + --std=gnu89 \ + -pedantic \ + -Wall \ + -Wextra \ + -Wno-unused-parameter \ + -O3 \ + -fomit-frame-pointer \ + -fdata-sections \ + -ffunction-sections + +# Flags passed to only C files. +CFLAGS_C_Release := + +# Flags passed to only C++ files. +CFLAGS_CC_Release := -fno-rtti \ + -fno-exceptions + +INCS_Release := -I$(srcdir)/src/libuv/include \ -I$(srcdir)/src/libuv/include/uv-private \ -I$(srcdir)/src/libuv/src \ -I$(srcdir)/src/libuv/src/unix/ev \ @@ -87,6 +136,7 @@ OBJS := $(obj).target/$(TARGET)/src/libuv/src/uv-common.o \ $(obj).target/$(TARGET)/src/libuv/src/unix/cares.o \ $(obj).target/$(TARGET)/src/libuv/src/unix/dl.o \ $(obj).target/$(TARGET)/src/libuv/src/unix/error.o \ + $(obj).target/$(TARGET)/src/libuv/src/unix/thread.o \ $(obj).target/$(TARGET)/src/libuv/src/unix/process.o \ $(obj).target/$(TARGET)/src/libuv/src/unix/eio/eio.o \ $(obj).target/$(TARGET)/src/libuv/src/unix/ev/ev.o \ @@ -98,8 +148,8 @@ all_deps += $(OBJS) # CFLAGS et al overrides must be target-local. # See "Target-specific Variable Values" in the GNU Make manual. $(OBJS): TOOLSET := $(TOOLSET) -$(OBJS): GYP_CFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_C_$(BUILDTYPE)) -$(OBJS): GYP_CXXFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_CC_$(BUILDTYPE)) +$(OBJS): GYP_CFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_C_$(BUILDTYPE)) +$(OBJS): GYP_CXXFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_CC_$(BUILDTYPE)) # Suffix rules, putting all outputs into $(obj). @@ -116,7 +166,9 @@ $(obj).$(TOOLSET)/$(TARGET)/%.o: $(obj)/%.c FORCE_DO_CMD # End of this set of suffix rules ### Rules for final target. -LDFLAGS_Default := +LDFLAGS_Debug := -pthread + +LDFLAGS_Release := -pthread LIBS := -lm diff --git a/mk/libuv/x86_64/win/Makefile b/mk/libuv/x86_64/win/Makefile index 9597ce768ca..d40391e0f89 100644 --- a/mk/libuv/x86_64/win/Makefile +++ b/mk/libuv/x86_64/win/Makefile @@ -8,6 +8,7 @@ MAKEFLAGS=-r # The source directory tree. srcdir := ../../../.. +abs_srcdir := $(abspath $(srcdir)) # The name of the builddir. builddir_name ?= out @@ -20,7 +21,7 @@ else endif # Specify BUILDTYPE=Release on the command line for a release build. -BUILDTYPE ?= Default +BUILDTYPE ?= Debug # Directory all our build output goes into. # Note that this must be two directories beneath src/ for unit tests to pass, @@ -252,8 +253,8 @@ $(if $(or $(command_changed),$(prereq_changed)), ) endef -# Declare "all" target first so it is the default, even though we don't have the -# deps yet. +# Declare the "all" target first so it is the default, +# even though we don't have the deps yet. .PHONY: all all: @@ -321,9 +322,9 @@ ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ include src/libuv/uv.target.mk endif -quiet_cmd_regen_makefile = ACTION Regenerating $@ -cmd_regen_makefile = ./src/libuv/build/gyp/gyp -fmake --ignore-environment "--toplevel-dir=." "--depth=." "--generator-output=mk/libuv/x86_64/win" "-Dlibrary=static_library" "-Dtarget_arch=x86_64" "-DOS=win" src/libuv/uv.gyp -Makefile: $(srcdir)/src/libuv/uv.gyp +#quiet_cmd_regen_makefile = ACTION Regenerating $@ +#cmd_regen_makefile = ./src/libuv/build/gyp/gyp -fmake --ignore-environment "--toplevel-dir=." -Isrc/libuv/common.gypi "--depth=." "--generator-output=mk/libuv/x86_64/win" "-Ddefault_configuration=Default" "-Dcomponent=static_library" "-Dlibrary=static_library" "-Dtarget_arch=x86_64" "-DOS=win" src/libuv/uv.gyp +#Makefile: $(srcdir)/src/libuv/uv.gyp $(srcdir)/src/libuv/common.gypi # $(call do_cmd,regen_makefile) # "all" is a concatenation of the "all" targets from all the included diff --git a/mk/libuv/x86_64/win/Makefile-e b/mk/libuv/x86_64/win/Makefile-e deleted file mode 100644 index d7c20772b7a..00000000000 --- a/mk/libuv/x86_64/win/Makefile-e +++ /dev/null @@ -1,353 +0,0 @@ -# We borrow heavily from the kernel build setup, though we are simpler since -# we don't have Kconfig tweaking settings on us. - -# The implicit make rules have it looking for RCS files, among other things. -# We instead explicitly write all the rules we care about. -# It's even quicker (saves ~200ms) to pass -r on the command line. -MAKEFLAGS=-r - -# The source directory tree. -srcdir := ../../../.. - -# The name of the builddir. -builddir_name ?= out - -# The V=1 flag on command line makes us verbosely print command lines. -ifdef V - quiet= -else - quiet=quiet_ -endif - -# Specify BUILDTYPE=Release on the command line for a release build. -BUILDTYPE ?= Default - -# Directory all our build output goes into. -# Note that this must be two directories beneath src/ for unit tests to pass, -# as they reach into the src/ directory for data with relative paths. -builddir ?= $(builddir_name)/$(BUILDTYPE) -abs_builddir := $(abspath $(builddir)) -depsdir := $(builddir)/.deps - -# Object output directory. -obj := $(builddir)/obj -abs_obj := $(abspath $(obj)) - -# We build up a list of every single one of the targets so we can slurp in the -# generated dependency rule Makefiles in one pass. -all_deps := - - - -# C++ apps need to be linked with g++. -# -# Note: flock is used to seralize linking. Linking is a memory-intensive -# process so running parallel links can often lead to thrashing. To disable -# the serialization, override LINK via an envrionment variable as follows: -# -# export LINK=g++ -# -# This will allow make to invoke N linker processes as specified in -jN. -LINK ?= flock $(builddir)/linker.lock $(CXX) - -CC.target ?= $(CC) -CFLAGS.target ?= $(CFLAGS) -CXX.target ?= $(CXX) -CXXFLAGS.target ?= $(CXXFLAGS) -LINK.target ?= $(LINK) -LDFLAGS.target ?= $(LDFLAGS) -AR.target ?= $(AR) -ARFLAGS.target ?= crsT - -# N.B.: the logic of which commands to run should match the computation done -# in gyp's make.py where ARFLAGS.host etc. is computed. -# TODO(evan): move all cross-compilation logic to gyp-time so we don't need -# to replicate this environment fallback in make as well. -CC.host ?= gcc -CFLAGS.host ?= -CXX.host ?= g++ -CXXFLAGS.host ?= -LINK.host ?= g++ -LDFLAGS.host ?= -AR.host ?= ar -ARFLAGS.host := crsT - -# Define a dir function that can handle spaces. -# http://www.gnu.org/software/make/manual/make.html#Syntax-of-Functions -# "leading spaces cannot appear in the text of the first argument as written. -# These characters can be put into the argument value by variable substitution." -empty := -space := $(empty) $(empty) - -# http://stackoverflow.com/questions/1189781/using-make-dir-or-notdir-on-a-path-with-spaces -replace_spaces = $(subst $(space),?,$1) -unreplace_spaces = $(subst ?,$(space),$1) -dirx = $(call unreplace_spaces,$(dir $(call replace_spaces,$1))) - -# Flags to make gcc output dependency info. Note that you need to be -# careful here to use the flags that ccache and distcc can understand. -# We write to a dep file on the side first and then rename at the end -# so we can't end up with a broken dep file. -depfile = $(depsdir)/$(call replace_spaces,$@).d -DEPFLAGS = -MMD -MF $(depfile).raw - -# We have to fixup the deps output in a few ways. -# (1) the file output should mention the proper .o file. -# ccache or distcc lose the path to the target, so we convert a rule of -# the form: -# foobar.o: DEP1 DEP2 -# into -# path/to/foobar.o: DEP1 DEP2 -# (2) we want missing files not to cause us to fail to build. -# We want to rewrite -# foobar.o: DEP1 DEP2 \ -# DEP3 -# to -# DEP1: -# DEP2: -# DEP3: -# so if the files are missing, they're just considered phony rules. -# We have to do some pretty insane escaping to get those backslashes -# and dollar signs past make, the shell, and sed at the same time. -# Doesn't work with spaces, but that's fine: .d files have spaces in -# their names replaced with other characters. -define fixup_dep -# The depfile may not exist if the input file didn't have any #includes. -touch $(depfile).raw -# Fixup path as in (1). -sed -e "s|^$(notdir $@)|$@|" $(depfile).raw >> $(depfile) -# Add extra rules as in (2). -# We remove slashes and replace spaces with new lines; -# remove blank lines; -# delete the first line and append a colon to the remaining lines. -sed -e 's|\\||' -e 'y| |\n|' $(depfile).raw |\ - grep -v '^$$' |\ - sed -e 1d -e 's|$$|:|' \ - >> $(depfile) -rm $(depfile).raw -endef - -# Command definitions: -# - cmd_foo is the actual command to run; -# - quiet_cmd_foo is the brief-output summary of the command. - -quiet_cmd_cc = CC($(TOOLSET)) $@ -cmd_cc = $(CC.$(TOOLSET)) $(GYP_CFLAGS) $(DEPFLAGS) $(CFLAGS.$(TOOLSET)) -c -o $@ $< - -quiet_cmd_cxx = CXX($(TOOLSET)) $@ -cmd_cxx = $(CXX.$(TOOLSET)) $(GYP_CXXFLAGS) $(DEPFLAGS) $(CXXFLAGS.$(TOOLSET)) -c -o $@ $< - -quiet_cmd_touch = TOUCH $@ -cmd_touch = touch $@ - -quiet_cmd_copy = COPY $@ -# send stderr to /dev/null to ignore messages when linking directories. -cmd_copy = ln -f "$<" "$@" 2>/dev/null || (rm -rf "$@" && cp -af "$<" "$@") - -quiet_cmd_alink = AR($(TOOLSET)) $@ -cmd_alink = rm -f $@ && $(AR.$(TOOLSET)) $(ARFLAGS.$(TOOLSET)) $@ $(filter %.o,$^) - -# Due to circular dependencies between libraries :(, we wrap the -# special "figure out circular dependencies" flags around the entire -# input list during linking. -quiet_cmd_link = LINK($(TOOLSET)) $@ -cmd_link = $(LINK.$(TOOLSET)) $(GYP_LDFLAGS) $(LDFLAGS.$(TOOLSET)) -o $@ -Wl,--start-group $(LD_INPUTS) -Wl,--end-group $(LIBS) - -# We support two kinds of shared objects (.so): -# 1) shared_library, which is just bundling together many dependent libraries -# into a link line. -# 2) loadable_module, which is generating a module intended for dlopen(). -# -# They differ only slightly: -# In the former case, we want to package all dependent code into the .so. -# In the latter case, we want to package just the API exposed by the -# outermost module. -# This means shared_library uses --whole-archive, while loadable_module doesn't. -# (Note that --whole-archive is incompatible with the --start-group used in -# normal linking.) - -# Other shared-object link notes: -# - Set SONAME to the library filename so our binaries don't reference -# the local, absolute paths used on the link command-line. -quiet_cmd_solink = SOLINK($(TOOLSET)) $@ -cmd_solink = $(LINK.$(TOOLSET)) -shared $(GYP_LDFLAGS) $(LDFLAGS.$(TOOLSET)) -Wl,-soname=$(@F) -o $@ -Wl,--whole-archive $(LD_INPUTS) -Wl,--no-whole-archive $(LIBS) - -quiet_cmd_solink_module = SOLINK_MODULE($(TOOLSET)) $@ -cmd_solink_module = $(LINK.$(TOOLSET)) -shared $(GYP_LDFLAGS) $(LDFLAGS.$(TOOLSET)) -Wl,-soname=$(@F) -o $@ -Wl,--start-group $(filter-out FORCE_DO_CMD, $^) -Wl,--end-group $(LIBS) - - -# Define an escape_quotes function to escape single quotes. -# This allows us to handle quotes properly as long as we always use -# use single quotes and escape_quotes. -escape_quotes = $(subst ','\'',$(1)) -# This comment is here just to include a ' to unconfuse syntax highlighting. -# Define an escape_vars function to escape '$' variable syntax. -# This allows us to read/write command lines with shell variables (e.g. -# $LD_LIBRARY_PATH), without triggering make substitution. -escape_vars = $(subst $$,$$$$,$(1)) -# Helper that expands to a shell command to echo a string exactly as it is in -# make. This uses printf instead of echo because printf's behaviour with respect -# to escape sequences is more portable than echo's across different shells -# (e.g., dash, bash). -exact_echo = printf '%s\n' '$(call escape_quotes,$(1))' - -# Helper to compare the command we're about to run against the command -# we logged the last time we ran the command. Produces an empty -# string (false) when the commands match. -# Tricky point: Make has no string-equality test function. -# The kernel uses the following, but it seems like it would have false -# positives, where one string reordered its arguments. -# arg_check = $(strip $(filter-out $(cmd_$(1)), $(cmd_$@)) \ -# $(filter-out $(cmd_$@), $(cmd_$(1)))) -# We instead substitute each for the empty string into the other, and -# say they're equal if both substitutions produce the empty string. -# .d files contain ? instead of spaces, take that into account. -command_changed = $(or $(subst $(cmd_$(1)),,$(cmd_$(call replace_spaces,$@))),\ - $(subst $(cmd_$(call replace_spaces,$@)),,$(cmd_$(1)))) - -# Helper that is non-empty when a prerequisite changes. -# Normally make does this implicitly, but we force rules to always run -# so we can check their command lines. -# $? -- new prerequisites -# $| -- order-only dependencies -prereq_changed = $(filter-out FORCE_DO_CMD,$(filter-out $|,$?)) - -# Helper that executes all postbuilds, and deletes the output file when done -# if any of the postbuilds failed. -define do_postbuilds - @E=0;\ - for p in $(POSTBUILDS); do\ - eval $$p;\ - F=$$?;\ - if [ $$F -ne 0 ]; then\ - E=$$F;\ - fi;\ - done;\ - if [ $$E -ne 0 ]; then\ - rm -rf "$@";\ - exit $$E;\ - fi -endef - -# do_cmd: run a command via the above cmd_foo names, if necessary. -# Should always run for a given target to handle command-line changes. -# Second argument, if non-zero, makes it do asm/C/C++ dependency munging. -# Third argument, if non-zero, makes it do POSTBUILDS processing. -# Note: We intentionally do NOT call dirx for depfile, since it contains ? for -# spaces already and dirx strips the ? characters. -define do_cmd -$(if $(or $(command_changed),$(prereq_changed)), - @$(call exact_echo, $($(quiet)cmd_$(1))) - @mkdir -p "$(call dirx,$@)" "$(dir $(depfile))" - $(if $(findstring flock,$(word 1,$(cmd_$1))), - @$(cmd_$(1)) - @echo " $(quiet_cmd_$(1)): Finished", - @$(cmd_$(1)) - ) - @$(call exact_echo,$(call escape_vars,cmd_$(call replace_spaces,$@) := $(cmd_$(1)))) > $(depfile) - @$(if $(2),$(fixup_dep)) - $(if $(and $(3), $(POSTBUILDS)), - $(call do_postbuilds) - ) -) -endef - -# Declare "all" target first so it is the default, even though we don't have the -# deps yet. -.PHONY: all -all: - -# Use FORCE_DO_CMD to force a target to run. Should be coupled with -# do_cmd. -.PHONY: FORCE_DO_CMD -FORCE_DO_CMD: - -TOOLSET := target -# Suffix rules, putting all outputs into $(obj). -$(obj).$(TOOLSET)/%.o: $(srcdir)/%.c FORCE_DO_CMD - @$(call do_cmd,cc,1) -$(obj).$(TOOLSET)/%.o: $(srcdir)/%.cc FORCE_DO_CMD - @$(call do_cmd,cxx,1) -$(obj).$(TOOLSET)/%.o: $(srcdir)/%.cpp FORCE_DO_CMD - @$(call do_cmd,cxx,1) -$(obj).$(TOOLSET)/%.o: $(srcdir)/%.cxx FORCE_DO_CMD - @$(call do_cmd,cxx,1) -$(obj).$(TOOLSET)/%.o: $(srcdir)/%.S FORCE_DO_CMD - @$(call do_cmd,cc,1) -$(obj).$(TOOLSET)/%.o: $(srcdir)/%.s FORCE_DO_CMD - @$(call do_cmd,cc,1) - -# Try building from generated source, too. -$(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.c FORCE_DO_CMD - @$(call do_cmd,cc,1) -$(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.cc FORCE_DO_CMD - @$(call do_cmd,cxx,1) -$(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.cpp FORCE_DO_CMD - @$(call do_cmd,cxx,1) -$(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.cxx FORCE_DO_CMD - @$(call do_cmd,cxx,1) -$(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.S FORCE_DO_CMD - @$(call do_cmd,cc,1) -$(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.s FORCE_DO_CMD - @$(call do_cmd,cc,1) - -$(obj).$(TOOLSET)/%.o: $(obj)/%.c FORCE_DO_CMD - @$(call do_cmd,cc,1) -$(obj).$(TOOLSET)/%.o: $(obj)/%.cc FORCE_DO_CMD - @$(call do_cmd,cxx,1) -$(obj).$(TOOLSET)/%.o: $(obj)/%.cpp FORCE_DO_CMD - @$(call do_cmd,cxx,1) -$(obj).$(TOOLSET)/%.o: $(obj)/%.cxx FORCE_DO_CMD - @$(call do_cmd,cxx,1) -$(obj).$(TOOLSET)/%.o: $(obj)/%.S FORCE_DO_CMD - @$(call do_cmd,cc,1) -$(obj).$(TOOLSET)/%.o: $(obj)/%.s FORCE_DO_CMD - @$(call do_cmd,cc,1) - - -ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ - $(findstring $(join ^,$(prefix)),\ - $(join ^,src/libuv/run-benchmarks.target.mk)))),) - include src/libuv/run-benchmarks.target.mk -endif -ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ - $(findstring $(join ^,$(prefix)),\ - $(join ^,src/libuv/run-tests.target.mk)))),) - include src/libuv/run-tests.target.mk -endif -ifeq ($(strip $(foreach prefix,$(NO_LOAD),\ - $(findstring $(join ^,$(prefix)),\ - $(join ^,src/libuv/uv.target.mk)))),) - include src/libuv/uv.target.mk -endif - -quiet_cmd_regen_makefile = ACTION Regenerating $@ -cmd_regen_makefile = ./src/libuv/build/gyp/gyp -fmake --ignore-environment "--toplevel-dir=." "--depth=." "--generator-output=mk/libuv/x86_64/win" "-Dlibrary=static_library" "-Dtarget_arch=x86_64" "-DOS=win" src/libuv/uv.gyp -Makefile: $(srcdir)/src/libuv/uv.gyp - $(call do_cmd,regen_makefile) - -# "all" is a concatenation of the "all" targets from all the included -# sub-makefiles. This is just here to clarify. -all: - -# Add in dependency-tracking rules. $(all_deps) is the list of every single -# target in our tree. Only consider the ones with .d (dependency) info: -d_files := $(wildcard $(foreach f,$(all_deps),$(depsdir)/$(f).d)) -ifneq ($(d_files),) - # Rather than include each individual .d file, concatenate them into a - # single file which make is able to load faster. We split this into - # commands that take 1000 files at a time to avoid overflowing the - # command line. - $(shell cat $(wordlist 1,1000,$(d_files)) > $(depsdir)/all.deps) - - ifneq ($(word 1001,$(d_files)),) - $(error Found unprocessed dependency files (gyp didn't generate enough rules!)) - endif - - # make looks for ways to re-generate included makefiles, but in our case, we - # don't have a direct way. Explicitly telling make that it has nothing to do - # for them makes it go faster. - $(depsdir)/all.deps: ; - - include $(depsdir)/all.deps -endif diff --git a/mk/libuv/x86_64/win/src/libuv/run-benchmarks.target.mk b/mk/libuv/x86_64/win/src/libuv/run-benchmarks.target.mk index 68dc04f2105..25bf58f8548 100644 --- a/mk/libuv/x86_64/win/src/libuv/run-benchmarks.target.mk +++ b/mk/libuv/x86_64/win/src/libuv/run-benchmarks.target.mk @@ -2,18 +2,42 @@ TOOLSET := target TARGET := run-benchmarks -DEFS_Default := +DEFS_Debug := '-DWIN32' \ + '-D_CRT_SECURE_NO_DEPRECATE' \ + '-D_CRT_NONSTDC_NO_DEPRECATE' \ + '-DDEBUG' \ + '-D_DEBUG' # Flags passed to all source files. -CFLAGS_Default := +CFLAGS_Debug := -g \ + -O0 # Flags passed to only C files. -CFLAGS_C_Default := +CFLAGS_C_Debug := # Flags passed to only C++ files. -CFLAGS_CC_Default := +CFLAGS_CC_Debug := -INCS_Default := -I$(srcdir)/src/libuv/include +INCS_Debug := -I$(srcdir)/src/libuv/include + +DEFS_Release := '-DWIN32' \ + '-D_CRT_SECURE_NO_DEPRECATE' \ + '-D_CRT_NONSTDC_NO_DEPRECATE' \ + '-DNDEBUG' + +# Flags passed to all source files. +CFLAGS_Release := -O3 \ + -fomit-frame-pointer \ + -fdata-sections \ + -ffunction-sections + +# Flags passed to only C files. +CFLAGS_C_Release := + +# Flags passed to only C++ files. +CFLAGS_CC_Release := + +INCS_Release := -I$(srcdir)/src/libuv/include OBJS := $(obj).target/$(TARGET)/src/libuv/test/benchmark-ares.o \ $(obj).target/$(TARGET)/src/libuv/test/benchmark-getaddrinfo.o \ @@ -22,6 +46,7 @@ OBJS := $(obj).target/$(TARGET)/src/libuv/test/benchmark-ares.o \ $(obj).target/$(TARGET)/src/libuv/test/benchmark-pump.o \ $(obj).target/$(TARGET)/src/libuv/test/benchmark-sizes.o \ $(obj).target/$(TARGET)/src/libuv/test/benchmark-spawn.o \ + $(obj).target/$(TARGET)/src/libuv/test/benchmark-thread.o \ $(obj).target/$(TARGET)/src/libuv/test/benchmark-tcp-write-batch.o \ $(obj).target/$(TARGET)/src/libuv/test/benchmark-udp-packet-storm.o \ $(obj).target/$(TARGET)/src/libuv/test/dns-server.o \ @@ -40,8 +65,8 @@ $(OBJS): | $(obj).target/src/libuv/libuv.a # CFLAGS et al overrides must be target-local. # See "Target-specific Variable Values" in the GNU Make manual. $(OBJS): TOOLSET := $(TOOLSET) -$(OBJS): GYP_CFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_C_$(BUILDTYPE)) -$(OBJS): GYP_CXXFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_CC_$(BUILDTYPE)) +$(OBJS): GYP_CFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_C_$(BUILDTYPE)) +$(OBJS): GYP_CXXFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_CC_$(BUILDTYPE)) # Suffix rules, putting all outputs into $(obj). @@ -58,10 +83,14 @@ $(obj).$(TOOLSET)/$(TARGET)/%.o: $(obj)/%.c FORCE_DO_CMD # End of this set of suffix rules ### Rules for final target. -LDFLAGS_Default := +LDFLAGS_Debug := + +LDFLAGS_Release := LIBS := ws2_32.lib \ - -lws2_32.lib + -lws2_32.lib \ + -lpsapi.lib \ + -liphlpapi.lib $(builddir)/run-benchmarks: GYP_LDFLAGS := $(LDFLAGS_$(BUILDTYPE)) $(builddir)/run-benchmarks: LIBS := $(LIBS) diff --git a/mk/libuv/x86_64/win/src/libuv/run-tests.target.mk b/mk/libuv/x86_64/win/src/libuv/run-tests.target.mk index 9b09db73373..51b62f7a3e2 100644 --- a/mk/libuv/x86_64/win/src/libuv/run-tests.target.mk +++ b/mk/libuv/x86_64/win/src/libuv/run-tests.target.mk @@ -2,29 +2,56 @@ TOOLSET := target TARGET := run-tests -DEFS_Default := +DEFS_Debug := '-DWIN32' \ + '-D_CRT_SECURE_NO_DEPRECATE' \ + '-D_CRT_NONSTDC_NO_DEPRECATE' \ + '-DDEBUG' \ + '-D_DEBUG' # Flags passed to all source files. -CFLAGS_Default := +CFLAGS_Debug := -g \ + -O0 # Flags passed to only C files. -CFLAGS_C_Default := +CFLAGS_C_Debug := # Flags passed to only C++ files. -CFLAGS_CC_Default := +CFLAGS_CC_Debug := -INCS_Default := -I$(srcdir)/src/libuv/include +INCS_Debug := -I$(srcdir)/src/libuv/include + +DEFS_Release := '-DWIN32' \ + '-D_CRT_SECURE_NO_DEPRECATE' \ + '-D_CRT_NONSTDC_NO_DEPRECATE' \ + '-DNDEBUG' + +# Flags passed to all source files. +CFLAGS_Release := -O3 \ + -fomit-frame-pointer \ + -fdata-sections \ + -ffunction-sections + +# Flags passed to only C files. +CFLAGS_C_Release := + +# Flags passed to only C++ files. +CFLAGS_CC_Release := + +INCS_Release := -I$(srcdir)/src/libuv/include OBJS := $(obj).target/$(TARGET)/src/libuv/test/blackhole-server.o \ $(obj).target/$(TARGET)/src/libuv/test/echo-server.o \ $(obj).target/$(TARGET)/src/libuv/test/run-tests.o \ $(obj).target/$(TARGET)/src/libuv/test/runner.o \ $(obj).target/$(TARGET)/src/libuv/test/test-get-loadavg.o \ + $(obj).target/$(TARGET)/src/libuv/test/test-util.o \ $(obj).target/$(TARGET)/src/libuv/test/test-async.o \ $(obj).target/$(TARGET)/src/libuv/test/test-error.o \ $(obj).target/$(TARGET)/src/libuv/test/test-callback-stack.o \ $(obj).target/$(TARGET)/src/libuv/test/test-connection-fail.o \ + $(obj).target/$(TARGET)/src/libuv/test/test-cwd-and-chdir.o \ $(obj).target/$(TARGET)/src/libuv/test/test-delayed-accept.o \ + $(obj).target/$(TARGET)/src/libuv/test/test-eio-overflow.o \ $(obj).target/$(TARGET)/src/libuv/test/test-fail-always.o \ $(obj).target/$(TARGET)/src/libuv/test/test-fs.o \ $(obj).target/$(TARGET)/src/libuv/test/test-fs-event.o \ @@ -36,12 +63,15 @@ OBJS := $(obj).target/$(TARGET)/src/libuv/test/blackhole-server.o \ $(obj).target/$(TARGET)/src/libuv/test/test-hrtime.o \ $(obj).target/$(TARGET)/src/libuv/test/test-idle.o \ $(obj).target/$(TARGET)/src/libuv/test/test-ipc.o \ + $(obj).target/$(TARGET)/src/libuv/test/test-ipc-threads.o \ $(obj).target/$(TARGET)/src/libuv/test/test-loop-handles.o \ $(obj).target/$(TARGET)/src/libuv/test/test-multiple-listen.o \ $(obj).target/$(TARGET)/src/libuv/test/test-pass-always.o \ $(obj).target/$(TARGET)/src/libuv/test/test-ping-pong.o \ $(obj).target/$(TARGET)/src/libuv/test/test-pipe-bind-error.o \ $(obj).target/$(TARGET)/src/libuv/test/test-pipe-connect-error.o \ + $(obj).target/$(TARGET)/src/libuv/test/test-platform-output.o \ + $(obj).target/$(TARGET)/src/libuv/test/test-process-title.o \ $(obj).target/$(TARGET)/src/libuv/test/test-ref.o \ $(obj).target/$(TARGET)/src/libuv/test/test-shutdown-eof.o \ $(obj).target/$(TARGET)/src/libuv/test/test-spawn.o \ @@ -56,13 +86,17 @@ OBJS := $(obj).target/$(TARGET)/src/libuv/test/blackhole-server.o \ $(obj).target/$(TARGET)/src/libuv/test/test-tcp-write-to-half-open-connection.o \ $(obj).target/$(TARGET)/src/libuv/test/test-tcp-writealot.o \ $(obj).target/$(TARGET)/src/libuv/test/test-threadpool.o \ + $(obj).target/$(TARGET)/src/libuv/test/test-mutexes.o \ + $(obj).target/$(TARGET)/src/libuv/test/test-thread.o \ $(obj).target/$(TARGET)/src/libuv/test/test-timer-again.o \ $(obj).target/$(TARGET)/src/libuv/test/test-timer.o \ $(obj).target/$(TARGET)/src/libuv/test/test-tty.o \ $(obj).target/$(TARGET)/src/libuv/test/test-udp-dgram-too-big.o \ $(obj).target/$(TARGET)/src/libuv/test/test-udp-ipv6.o \ + $(obj).target/$(TARGET)/src/libuv/test/test-udp-options.o \ $(obj).target/$(TARGET)/src/libuv/test/test-udp-send-and-recv.o \ $(obj).target/$(TARGET)/src/libuv/test/test-udp-multicast-join.o \ + $(obj).target/$(TARGET)/src/libuv/test/test-counters-init.o \ $(obj).target/$(TARGET)/src/libuv/test/runner-win.o # Add to the list of files we specially track dependencies for. @@ -74,8 +108,8 @@ $(OBJS): | $(obj).target/src/libuv/libuv.a # CFLAGS et al overrides must be target-local. # See "Target-specific Variable Values" in the GNU Make manual. $(OBJS): TOOLSET := $(TOOLSET) -$(OBJS): GYP_CFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_C_$(BUILDTYPE)) -$(OBJS): GYP_CXXFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_CC_$(BUILDTYPE)) +$(OBJS): GYP_CFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_C_$(BUILDTYPE)) +$(OBJS): GYP_CXXFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_CC_$(BUILDTYPE)) # Suffix rules, putting all outputs into $(obj). @@ -92,10 +126,14 @@ $(obj).$(TOOLSET)/$(TARGET)/%.o: $(obj)/%.c FORCE_DO_CMD # End of this set of suffix rules ### Rules for final target. -LDFLAGS_Default := +LDFLAGS_Debug := + +LDFLAGS_Release := LIBS := ws2_32.lib \ - -lws2_32.lib + -lws2_32.lib \ + -lpsapi.lib \ + -liphlpapi.lib $(builddir)/run-tests: GYP_LDFLAGS := $(LDFLAGS_$(BUILDTYPE)) $(builddir)/run-tests: LIBS := $(LIBS) diff --git a/mk/libuv/x86_64/win/src/libuv/uv.target.mk b/mk/libuv/x86_64/win/src/libuv/uv.target.mk index 86ed7071555..53576a0f935 100644 --- a/mk/libuv/x86_64/win/src/libuv/uv.target.mk +++ b/mk/libuv/x86_64/win/src/libuv/uv.target.mk @@ -2,21 +2,53 @@ TOOLSET := target TARGET := uv -DEFS_Default := '-DHAVE_CONFIG_H' \ - '-D_WIN32_WINNT=0x0502' \ +DEFS_Debug := '-DWIN32' \ + '-D_CRT_SECURE_NO_DEPRECATE' \ + '-D_CRT_NONSTDC_NO_DEPRECATE' \ + '-DHAVE_CONFIG_H' \ + '-D_WIN32_WINNT=0x0600' \ '-DEIO_STACKSIZE=262144' \ - '-D_GNU_SOURCE' + '-D_GNU_SOURCE' \ + '-DDEBUG' \ + '-D_DEBUG' # Flags passed to all source files. -CFLAGS_Default := +CFLAGS_Debug := -g \ + -O0 # Flags passed to only C files. -CFLAGS_C_Default := +CFLAGS_C_Debug := # Flags passed to only C++ files. -CFLAGS_CC_Default := +CFLAGS_CC_Debug := -INCS_Default := -I$(srcdir)/src/libuv/include \ +INCS_Debug := -I$(srcdir)/src/libuv/include \ + -I$(srcdir)/src/libuv/include/uv-private \ + -I$(srcdir)/src/libuv/src \ + -I$(srcdir)/src/libuv/src/ares/config_win32 + +DEFS_Release := '-DWIN32' \ + '-D_CRT_SECURE_NO_DEPRECATE' \ + '-D_CRT_NONSTDC_NO_DEPRECATE' \ + '-DHAVE_CONFIG_H' \ + '-D_WIN32_WINNT=0x0600' \ + '-DEIO_STACKSIZE=262144' \ + '-D_GNU_SOURCE' \ + '-DNDEBUG' + +# Flags passed to all source files. +CFLAGS_Release := -O3 \ + -fomit-frame-pointer \ + -fdata-sections \ + -ffunction-sections + +# Flags passed to only C files. +CFLAGS_C_Release := + +# Flags passed to only C++ files. +CFLAGS_CC_Release := + +INCS_Release := -I$(srcdir)/src/libuv/include \ -I$(srcdir)/src/libuv/include/uv-private \ -I$(srcdir)/src/libuv/src \ -I$(srcdir)/src/libuv/src/ares/config_win32 @@ -79,13 +111,13 @@ OBJS := $(obj).target/$(TARGET)/src/libuv/src/uv-common.o \ $(obj).target/$(TARGET)/src/libuv/src/win/handle.o \ $(obj).target/$(TARGET)/src/libuv/src/win/loop-watcher.o \ $(obj).target/$(TARGET)/src/libuv/src/win/pipe.o \ + $(obj).target/$(TARGET)/src/libuv/src/win/thread.o \ $(obj).target/$(TARGET)/src/libuv/src/win/process.o \ $(obj).target/$(TARGET)/src/libuv/src/win/req.o \ $(obj).target/$(TARGET)/src/libuv/src/win/stream.o \ $(obj).target/$(TARGET)/src/libuv/src/win/tcp.o \ $(obj).target/$(TARGET)/src/libuv/src/win/tty.o \ $(obj).target/$(TARGET)/src/libuv/src/win/threadpool.o \ - $(obj).target/$(TARGET)/src/libuv/src/win/threads.o \ $(obj).target/$(TARGET)/src/libuv/src/win/timer.o \ $(obj).target/$(TARGET)/src/libuv/src/win/udp.o \ $(obj).target/$(TARGET)/src/libuv/src/win/util.o \ @@ -98,8 +130,8 @@ all_deps += $(OBJS) # CFLAGS et al overrides must be target-local. # See "Target-specific Variable Values" in the GNU Make manual. $(OBJS): TOOLSET := $(TOOLSET) -$(OBJS): GYP_CFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_C_$(BUILDTYPE)) -$(OBJS): GYP_CXXFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_CC_$(BUILDTYPE)) +$(OBJS): GYP_CFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_C_$(BUILDTYPE)) +$(OBJS): GYP_CXXFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_CC_$(BUILDTYPE)) # Suffix rules, putting all outputs into $(obj). @@ -116,7 +148,9 @@ $(obj).$(TOOLSET)/$(TARGET)/%.o: $(obj)/%.c FORCE_DO_CMD # End of this set of suffix rules ### Rules for final target. -LDFLAGS_Default := +LDFLAGS_Debug := + +LDFLAGS_Release := LIBS := diff --git a/mk/rt.mk b/mk/rt.mk index a1cd23f1d24..504377d5dfc 100644 --- a/mk/rt.mk +++ b/mk/rt.mk @@ -116,16 +116,16 @@ endif ifeq ($$(CFG_WINDOWSY), 1) LIBUV_OSTYPE_$(1) := win - LIBUV_LIB_$(1) := rt/$(1)/libuv/Default/obj.target/src/libuv/libuv.a + LIBUV_LIB_$(1) := rt/$(1)/libuv/Release/obj.target/src/libuv/libuv.a else ifeq ($(CFG_OSTYPE), apple-darwin) LIBUV_OSTYPE_$(1) := mac - LIBUV_LIB_$(1) := rt/$(1)/libuv/Default/libuv.a + LIBUV_LIB_$(1) := rt/$(1)/libuv/Release/libuv.a else ifeq ($(CFG_OSTYPE), unknown-freebsd) LIBUV_OSTYPE_$(1) := freebsd - LIBUV_LIB_$(1) := rt/$(1)/libuv/Default/obj.target/src/libuv/libuv.a + LIBUV_LIB_$(1) := rt/$(1)/libuv/Release/obj.target/src/libuv/libuv.a else LIBUV_OSTYPE_$(1) := unix - LIBUV_LIB_$(1) := rt/$(1)/libuv/Default/obj.target/src/libuv/libuv.a + LIBUV_LIB_$(1) := rt/$(1)/libuv/Release/obj.target/src/libuv/libuv.a endif RUNTIME_DEF_$(1) := rt/rustrt$$(CFG_DEF_SUFFIX) @@ -172,6 +172,7 @@ $$(LIBUV_LIB_$(1)): $$(wildcard \ CC="$$(CFG_GCCISH_CROSS)$$(CC)" \ CXX="$$(CFG_GCCISH_CROSS)$$(CXX)" \ AR="$$(CFG_GCCISH_CROSS)$$(AR)" \ + BUILDTYPE=Release \ builddir_name="$$(CFG_BUILD_DIR)/rt/$(1)/libuv" \ V=$$(VERBOSE) FLOCK= uv diff --git a/src/etc/gyp-uv b/src/etc/gyp-uv index 3e91401d189..e64ed4f3059 100755 --- a/src/etc/gyp-uv +++ b/src/etc/gyp-uv @@ -2,55 +2,61 @@ # This script generates rust compatible makefiles from libuv. When upgrading # libuv, do: +# # cd $RUST_DIR -# rm -r mk/libuv -# cd $LIBUV_DIR -# git archive --prefix libuv/ $REVISION > libuv.tar.gz -# cd $RUST_DIR/src/rt -# rm -r libuv -# tar -xvf $LIBUV_DIR/libuv.tar.gz -# mkdir -p libuv/build -# svn co http://gyp.googlecode.com/svn/trunk libuv/build/gyp +# cd src/libuv +# git checkout master +# git pull +# svn co http://gyp.googlecode.com/svn/trunk build/gyp # cd ../.. -# ./src/etc/gyp_uv +# rm -r mk/libuv +# ./src/etc/gyp-uv +# +# Note: you must not run gyp on windows. It will get the backslashes +# incorrect in its rules, and not work. set -e cd `dirname $0` cd ../.. +GYPFILE=src/libuv/uv.gyp +INCLUDES="-I src/libuv/common.gypi" + for ARCH in ia32 x86_64 do - args="--depth . -Dlibrary=static_library -Dtarget_arch=$ARCH" + ARGS="$GYPFILE \ + $INCLUDES \ + --depth . \ + -Dcomponent=static_library \ + -Dlibrary=static_library \ + -Dtarget_arch=$ARCH" - ./src/libuv/build/gyp/gyp src/libuv/uv.gyp $args \ + ./src/libuv/build/gyp/gyp $ARGS \ -f make-mac \ --generator-output mk/libuv/$ARCH/mac \ -DOS=mac - ./src/libuv/build/gyp/gyp src/libuv/uv.gyp $args \ + ./src/libuv/build/gyp/gyp $ARGS \ -f make-linux \ --generator-output mk/libuv/$ARCH/unix \ -DOS=linux - ./src/libuv/build/gyp/gyp src/libuv/uv.gyp $args \ + ./src/libuv/build/gyp/gyp $ARGS \ -f make-linux \ --generator-output mk/libuv/$ARCH/win \ -DOS=win - # Comment out the gyp auto regeneration - for os in mac unix win; do - sed -i \ - -e 's/^\(Makefile: $(srcdir)\/src\/rt\/libuv\/uv\.gyp\)/#\1/' \ - mk/libuv/$ARCH/$os/Makefile - - sed -i \ - -e 's/^\( $(call do_cmd,regen_makefile)\)/#\1/' \ - mk/libuv/$ARCH/$os/Makefile - done done # On Mac, GYP hardcodes a -arch i386 into the output. Fix that. sed -i \ -e 's/-arch i386/-arch x86_64/' \ mk/libuv/x86_64/mac/src/libuv/*.mk + +MKFILES=$(find mk/libuv -name \*.mk -o -name Makefile) + +# Comment out the gyp auto regeneration +perl -i -p -e 's@^(Makefile:.*)@#\1@go' $MKFILES +perl -i -p -e 's@^(Makefile:.*)@#\1@go' $MKFILES +perl -i -p -e 's@(.*regen_makefile.*)@#\1@go' $MKFILES diff --git a/src/etc/x86.supp b/src/etc/x86.supp index 7c9e611c9c1..7748f8f3261 100644 --- a/src/etc/x86.supp +++ b/src/etc/x86.supp @@ -369,11 +369,7 @@ libuv-0-byte-realloc1 Memcheck:Leak fun:malloc - fun:realloc - fun:ev_realloc_emul - fun:ev_realloc - fun:epoll_destroy - fun:ev_loop_destroy + ... fun:uv_loop_delete } @@ -381,9 +377,6 @@ libuv-0-byte-realloc2 Memcheck:Leak fun:malloc - fun:realloc - fun:ev_realloc_emul - fun:ev_realloc - fun:ev_loop_destroy + ... fun:uv_loop_delete } diff --git a/src/libstd/uv.rs b/src/libstd/uv.rs index d04331e00b3..27f2a3c54a8 100644 --- a/src/libstd/uv.rs +++ b/src/libstd/uv.rs @@ -107,7 +107,7 @@ fn unref(loop: *loop_t) { fn sanity_check() { fn check_size(t: str, uv: ctypes::size_t, rust: ctypes::size_t) { #debug("size of %s: uv: %u, rust: %u", t, uv, rust); - assert uv == rust; + assert uv <= rust; } check_size("idle_t", helpers::rust_uv_size_of_idle_t(), @@ -144,53 +144,45 @@ fn idle_new() -> idle_t { } } -#[cfg(target_os = "linux")] -#[cfg(target_os = "macos")] -#[cfg(target_os = "freebsd")] -// FIXME: We're out of date on libuv and not testing -// it on windows presently. This needs to change. -mod os { +#[cfg(test)] +mod tests { - #[cfg(test)] - mod tests { + #[test] + fn test_sanity_check() { + sanity_check(); + } + + // From test-ref.c + mod test_ref { #[test] - fn test_sanity_check() { - sanity_check(); + fn ref() { + let loop = loop_new(); + run(loop); + loop_delete(loop); } - // From test-ref.c - mod test_ref { + #[test] + fn idle_ref() { + let loop = loop_new(); + let h = idle_new(); + idle_init(loop, ptr::addr_of(h)); + idle_start(ptr::addr_of(h), ptr::null()); + unref(loop); + run(loop); + loop_delete(loop); + } - #[test] - fn ref() { - let loop = loop_new(); - run(loop); - loop_delete(loop); - } - - #[test] - fn idle_ref() { - let loop = loop_new(); - let h = idle_new(); - idle_init(loop, ptr::addr_of(h)); - idle_start(ptr::addr_of(h), ptr::null()); - unref(loop); - run(loop); - loop_delete(loop); - } - - #[test] - fn async_ref() { - /* - let loop = loop_new(); - let h = async_new(); - async_init(loop, ptr::addr_of(h), ptr::null()); - unref(loop); - run(loop); - loop_delete(loop); - */ - } + #[test] + fn async_ref() { + /* + let loop = loop_new(); + let h = async_new(); + async_init(loop, ptr::addr_of(h), ptr::null()); + unref(loop); + run(loop); + loop_delete(loop); + */ } } } diff --git a/src/libstd/uvtmp.rs b/src/libstd/uvtmp.rs index e7de8ec1dc8..d18a59031ea 100644 --- a/src/libstd/uvtmp.rs +++ b/src/libstd/uvtmp.rs @@ -95,82 +95,74 @@ fn get_req_id(cd: connect_data) -> u32 { ret rustrt::rust_uvtmp_get_req_id(cd); } -#[cfg(target_os = "linux")] -#[cfg(target_os = "macos")] -#[cfg(target_os = "freebsd")] -// FIXME: We're out of date on libuv and not testing -// it on windows presently. This needs to change. -mod os { +#[test] +fn test_start_stop() { + let thread = create_thread(); + start_thread(thread); + join_thread(thread); + delete_thread(thread); +} - #[test] - fn test_start_stop() { - let thread = create_thread(); - start_thread(thread); - join_thread(thread); - delete_thread(thread); +#[test] +#[ignore] +fn test_connect() { + let thread = create_thread(); + start_thread(thread); + let port = comm::port(); + let chan = comm::chan(port); + connect(thread, 0u32, "74.125.224.146", chan); + alt comm::recv(port) { + connected(cd) { + close_connection(thread, 0u32); + } + _ { fail "test_connect: port isn't connected"; } } + join_thread(thread); + delete_thread(thread); +} - #[test] - #[ignore] - fn test_connect() { - let thread = create_thread(); - start_thread(thread); - let port = comm::port(); - let chan = comm::chan(port); - connect(thread, 0u32, "74.125.224.146", chan); +#[test] +#[ignore] +fn test_http() { + let thread = create_thread(); + start_thread(thread); + let port = comm::port(); + let chan = comm::chan(port); + connect(thread, 0u32, "74.125.224.146", chan); + alt comm::recv(port) { + connected(cd) { + write(thread, 0u32, str::bytes("GET / HTTP/1.0\n\n"), chan); alt comm::recv(port) { - connected(cd) { + wrote(cd) { + read_start(thread, 0u32, chan); + let keep_going = true; + while keep_going { + alt comm::recv(port) { + read(_, buf, -1) { + keep_going = false; + delete_buf(buf); + } + read(_, buf, len) { + unsafe { + log(error, len); + let buf = vec::unsafe::from_buf(buf, + len as uint); + let str = str::from_bytes(buf); + #error("read something"); + io::println(str); + } + delete_buf(buf); + } + _ { fail "test_http: protocol error"; } + } + } close_connection(thread, 0u32); } - _ { fail "test_connect: port isn't connected"; } + _ { fail "test_http: expected `wrote`"; } } - join_thread(thread); - delete_thread(thread); + } + _ { fail "test_http: port not connected"; } } - - #[test] - #[ignore] - fn test_http() { - let thread = create_thread(); - start_thread(thread); - let port = comm::port(); - let chan = comm::chan(port); - connect(thread, 0u32, "74.125.224.146", chan); - alt comm::recv(port) { - connected(cd) { - write(thread, 0u32, str::bytes("GET / HTTP/1.0\n\n"), chan); - alt comm::recv(port) { - wrote(cd) { - read_start(thread, 0u32, chan); - let keep_going = true; - while keep_going { - alt comm::recv(port) { - read(_, buf, -1) { - keep_going = false; - delete_buf(buf); - } - read(_, buf, len) { - unsafe { - log(error, len); - let buf = vec::unsafe::from_buf(buf, - len as uint); - let str = str::from_bytes(buf); - #error("read something"); - io::println(str); - } - delete_buf(buf); - } - _ { fail "test_http: protocol error"; } - } - } - close_connection(thread, 0u32); - } - _ { fail "test_http: expected `wrote`"; } - } - } - _ { fail "test_http: port not connected"; } - } - join_thread(thread); - delete_thread(thread); - } -} \ No newline at end of file + join_thread(thread); + delete_thread(thread); +} diff --git a/src/libuv b/src/libuv index f1859eb841b..1170ffba3ac 160000 --- a/src/libuv +++ b/src/libuv @@ -1 +1 @@ -Subproject commit f1859eb841be2fe48512bc10e64556383f408b01 +Subproject commit 1170ffba3ac5191930b40c897d4569a9d8a296a3