| # Copyright (c) 2013 The Chromium Authors. All rights reserved. | |
| # Use of this source code is governed by a BSD-style license that can be | |
| # found in the LICENSE file. | |
| # GNU Makefile based on shared rules provided by the Native Client SDK. | |
| # See README.Makefiles for more details. | |
| VALID_TOOLCHAINS := pnacl | |
| # NACL_SDK_ROOT ?= $(abspath $(CURDIR)/../../..) | |
| include $(NACL_SDK_ROOT)/tools/common.mk | |
| TARGET = sdl_app | |
| DEPS = ppapi_simple nacl_io | |
| # ppapi_simple and SDL2 end up being listed twice due to dependency solving issues -- Gabriel | |
| LIBS = SDL2_test SDL2 ppapi_simple SDL2main SDL2 $(DEPS) ppapi_gles2 ppapi_cpp ppapi pthread | |
| CFLAGS := -Wall | |
| SOURCES ?= testgles2.c | |
| # Build rules generated by macros from common.mk: | |
| # Overriden macro from NACL SDK to be able to customize the library search path -- Gabriel | |
| # Specific Link Macro | |
| # | |
| # $1 = Target Name | |
| # $2 = List of inputs | |
| # $3 = List of libs | |
| # $4 = List of deps | |
| # $5 = List of lib dirs | |
| # $6 = Other Linker Args | |
| # | |
| # For debugging, we translate the pre-finalized .bc file. | |
| # | |
| define LINKER_RULE | |
| all: $(1).pexe | |
| $(1)_x86_32.nexe : $(1).bc | |
| $(call LOG,TRANSLATE,$$@,$(PNACL_TRANSLATE) --allow-llvm-bitcode-input -arch x86-32 $$^ -o $$@) | |
| $(1)_x86_64.nexe : $(1).bc | |
| $(call LOG,TRANSLATE,$$@,$(PNACL_TRANSLATE) --allow-llvm-bitcode-input -arch x86-64 $$^ -o $$@) | |
| $(1)_arm.nexe : $(1).bc | |
| $(call LOG,TRANSLATE,$$@,$(PNACL_TRANSLATE) --allow-llvm-bitcode-input -arch arm $$^ -o $$@) | |
| $(1).pexe: $(1).bc | |
| $(call LOG,FINALIZE,$$@,$(PNACL_FINALIZE) -o $$@ $$^) | |
| $(1).bc: $(2) $(foreach dep,$(4),$(STAMPDIR)/$(dep).stamp) | |
| $(call LOG,LINK,$$@,$(PNACL_LINK) -o $$@ $(2) $(PNACL_LDFLAGS) $(foreach path,$(5),-L$(path)/pnacl/$(CONFIG)) -L./lib $(foreach lib,$(3),-l$(lib)) $(6)) | |
| endef | |
| $(foreach dep,$(DEPS),$(eval $(call DEPEND_RULE,$(dep)))) | |
| $(foreach src,$(SOURCES),$(eval $(call COMPILE_RULE,$(src),$(CFLAGS)))) | |
| ifeq ($(CONFIG),Release) | |
| $(eval $(call LINK_RULE,$(TARGET)_unstripped,$(SOURCES),$(LIBS),$(DEPS))) | |
| $(eval $(call STRIP_RULE,$(TARGET),$(TARGET)_unstripped)) | |
| else | |
| $(eval $(call LINK_RULE,$(TARGET),$(SOURCES),$(LIBS),$(DEPS))) | |
| endif | |
| $(eval $(call NMF_RULE,$(TARGET),)) |