| Index: Makefile
|
| diff --git a/Makefile b/Makefile
|
| index 9b98edcad351ad76ccee4ceda27d95e9d21e7399..a51d6da14a30535b3ceb38cf851d133cbb8d3209 100644
|
| --- a/Makefile
|
| +++ b/Makefile
|
| @@ -1,5 +1,5 @@
|
| # Makefile that wraps the Gyp and build steps for Unix and Mac (but not Windows)
|
| -# Uses "make" to build on Unix, and "xcodebuild" to build on Mac.
|
| +# Uses "ninja" to build the code.
|
| #
|
| # Some usage examples (tested on both Linux and Mac):
|
| #
|
| @@ -36,6 +36,9 @@ CWD := $(shell pwd)
|
| # But that will be a bit complicated, so let's keep it for a future CL.
|
| # Tracked as https://code.google.com/p/skia/issues/detail?id=947 ('eliminate
|
| # need for VALID_TARGETS in toplevel Makefile')
|
| +#
|
| +# TODO(epoger): I'm not sure if the above comment is still valid in a ninja
|
| +# world.
|
| VALID_TARGETS := \
|
| bench \
|
| debugger \
|
| @@ -59,9 +62,8 @@ default: most
|
|
|
| # As noted in http://code.google.com/p/skia/issues/detail?id=330 , building
|
| # multiple targets in parallel was failing. The special .NOTPARALLEL target
|
| -# tells gnu make not to run targets within _this_ Makefile in parallel, but the
|
| -# recursively invoked Makefile within out/ _is_ allowed to run in parallel
|
| -# (so you can still get some speedup that way).
|
| +# tells gnu make not to run targets within this Makefile in parallel.
|
| +# Targets that ninja builds at this Makefile's behest should not be affected.
|
| .NOTPARALLEL:
|
|
|
| uname := $(shell uname)
|
| @@ -87,44 +89,8 @@ endif
|
| gyp:
|
| $(CWD)/gyp_skia
|
|
|
| -# Run gyp if necessary.
|
| -#
|
| -# On Linux, only run gyp if we haven't already generated the platform-specific
|
| -# Makefiles. If the underlying gyp configuration has changed since these
|
| -# Makefiles were generated, they will rerun gyp on their own.
|
| -#
|
| -# This does not work for Mac, though... so for now, we ALWAYS rerun gyp on Mac.
|
| -# TODO(epoger): Figure out a better solution for Mac... maybe compare the
|
| -# gypfile timestamps to the xcodebuild project timestamps?
|
| -.PHONY: gyp_if_needed
|
| -gyp_if_needed:
|
| -ifneq (,$(findstring Linux, $(uname)))
|
| - $(MAKE) $(SKIA_OUT)/Makefile
|
| -endif
|
| -ifneq (,$(findstring Darwin, $(uname)))
|
| - $(CWD)/gyp_skia
|
| -endif
|
| -
|
| -$(SKIA_OUT)/Makefile:
|
| - $(CWD)/gyp_skia
|
| -
|
| # For all specific targets: run gyp if necessary, and then pass control to
|
| # the gyp-generated buildfiles.
|
| -#
|
| -# For the Mac, we create a convenience symlink to the generated binary.
|
| .PHONY: $(VALID_TARGETS)
|
| -$(VALID_TARGETS):: gyp_if_needed
|
| -ifneq (,$(findstring skia_os=android, $(GYP_DEFINES)))
|
| - $(MAKE) -C $(SKIA_OUT) $@ BUILDTYPE=$(BUILDTYPE)
|
| -else ifneq (,$(findstring Linux, $(uname)))
|
| - $(MAKE) -C $(SKIA_OUT) $@ BUILDTYPE=$(BUILDTYPE)
|
| -else ifneq (,$(findstring make, $(GYP_GENERATORS)))
|
| - $(MAKE) -C $(SKIA_OUT) $@ BUILDTYPE=$(BUILDTYPE)
|
| -else ifneq (,$(findstring Darwin, $(uname)))
|
| - rm -f out/$(BUILDTYPE) || if test -d out/$(BUILDTYPE); then echo "run 'make clean' or otherwise delete out/$(BUILDTYPE)"; exit 1; fi
|
| - xcodebuild -project out/gyp/$@.xcodeproj -configuration $(BUILDTYPE)
|
| - ln -s $(CWD)/xcodebuild/$(BUILDTYPE) out/$(BUILDTYPE)
|
| -else
|
| - echo "unknown platform $(uname)"
|
| - exit 1
|
| -endif
|
| +$(VALID_TARGETS):: gyp
|
| + ninja -C $(SKIA_OUT)/$(BUILDTYPE) $@
|
|
|