nacl_llvm.mk revision 0f1bc08d4cfcc34181b0b5cbf065c40f687bf740
1ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch# Copyright (c) 2012 The Chromium Authors.   All rights reserved.
22a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)# Use of this source code is governed by a BSD-style license that can be
32a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)# found in the LICENSE file.
42a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
52a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#
62a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)# GNU Make based build file.  For details on GNU Make see:
72a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#   http://www.gnu.org/software/make/manual/make.html
82a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#
92a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#
112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)# Paths to Tools
122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#
1358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)PNACL_BIN = $(TC_PATH)/$(OSNAME)_$(TOOLCHAIN)/bin
14eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen MurdochPNACL_CC ?= $(PNACL_BIN)/pnacl-clang -c
15eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen MurdochPNACL_CXX ?= $(PNACL_BIN)/pnacl-clang++ -c
16eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen MurdochPNACL_LINK ?= $(PNACL_BIN)/pnacl-clang++
17eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen MurdochPNACL_LIB ?= $(PNACL_BIN)/pnacl-ar
18eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen MurdochPNACL_STRIP ?= $(PNACL_BIN)/pnacl-strip
19eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen MurdochPNACL_FINALIZE ?= $(PNACL_BIN)/pnacl-finalize
20ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben MurdochPNACL_TRANSLATE ?= $(PNACL_BIN)/pnacl-translate
212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#
232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)# Compile Macro
242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#
252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)# $1 = Source Name
262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)# $2 = Compile Flags
272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)# $3 = Include Directories
282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#
292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)define C_COMPILER_RULE
302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)-include $(call SRC_TO_DEP,$(1),_pnacl)
312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)$(call SRC_TO_OBJ,$(1),_pnacl): $(1) $(TOP_MAKE) | $(dir $(call SRC_TO_OBJ,$(1)))dir.stamp
32a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles)	$(call LOG,CC  ,$$@,$(PNACL_CC) -o $$@ -c $$< $(POSIX_FLAGS) $(2) $(NACL_CFLAGS))
337dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch	@$(FIXDEPS) $(call SRC_TO_DEP_PRE_FIXUP,$(1),_pnacl)
342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)endef
352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)define CXX_COMPILER_RULE
37eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch-include $(call SRC_TO_DEP,$(1),_pnacl)
382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)$(call SRC_TO_OBJ,$(1),_pnacl): $(1) $(TOP_MAKE) | $(dir $(call SRC_TO_OBJ,$(1)))dir.stamp
39a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles)	$(call LOG,CXX ,$$@,$(PNACL_CXX) -o $$@ -c $$< $(POSIX_FLAGS) $(2) $(NACL_CFLAGS))
407dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch	@$(FIXDEPS) $(call SRC_TO_DEP_PRE_FIXUP,$(1),_pnacl)
412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)endef
422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)# $1 = Source Name
452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)# $2 = POSIX Compile Flags
462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)# $3 = Include Directories
472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)# $4 = VC Flags (unused)
482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)define COMPILE_RULE
492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)ifeq ($(suffix $(1)),.c)
502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)$(call C_COMPILER_RULE,$(1),$(2) $(foreach inc,$(INC_PATHS),-I$(inc)) $(3))
512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)else
522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)$(call CXX_COMPILER_RULE,$(1),$(2) $(foreach inc,$(INC_PATHS),-I$(inc)) $(3))
532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)endif
542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)endef
552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#
582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)# SO Macro
592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#
602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)# $1 = Target Name
612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)# $2 = List of Sources
622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#
632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#
642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)define SO_RULE
652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)$(error 'Shared libraries not supported by PNaCl')
662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)endef
672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#
702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)# LIB Macro
712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#
722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)# $1 = Target Name
732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)# $2 = List of Sources
742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)# $3 = POSIX Link Flags
752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)# $4 = VC Link Flags (unused)
762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)define LIB_RULE
77c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)$(STAMPDIR)/$(1).stamp: $(LIBDIR)/$(TOOLCHAIN)/$(CONFIG)/lib$(1).a
782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)	@echo "TOUCHED $$@" > $(STAMPDIR)/$(1).stamp
792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
80c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)all: $(LIBDIR)/$(TOOLCHAIN)/$(CONFIG)/lib$(1).a
81c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)$(LIBDIR)/$(TOOLCHAIN)/$(CONFIG)/lib$(1).a: $(foreach src,$(2),$(call SRC_TO_OBJ,$(src),_pnacl))
822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)	$(MKDIR) -p $$(dir $$@)
830f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)	$(RM) -f $$@
8490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)	$(call LOG,LIB,$$@,$(PNACL_LIB) -cr $$@ $$^ $(3))
852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)endef
862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#
892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)# Specific Link Macro
902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#
912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)# $1 = Target Name
922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)# $2 = List of inputs
932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)# $3 = List of libs
942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)# $4 = List of deps
952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)# $5 = List of lib dirs
962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)# $6 = Other Linker Args
972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#
98ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch# For debugging, we translate the pre-finalized .bc file.
99ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch#
1002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)define LINKER_RULE
101ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdochall: $(1).pexe 
102ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch$(1)_x86_32.nexe : $(1).bc
103ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch	$(call LOG,TRANSLATE,$$@,$(PNACL_TRANSLATE) --allow-llvm-bitcode-input -arch x86-32 $$^ -o $$@)
104ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch
105ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch$(1)_x86_64.nexe : $(1).bc
106ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch	$(call LOG,TRANSLATE,$$@,$(PNACL_TRANSLATE) --allow-llvm-bitcode-input -arch x86-64 $$^ -o $$@)
107ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch
108ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch$(1)_arm.nexe : $(1).bc
109ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch	$(call LOG,TRANSLATE,$$@,$(PNACL_TRANSLATE) --allow-llvm-bitcode-input -arch arm $$^ -o $$@)
110ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch
111ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch$(1).pexe: $(1).bc
112ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch	$(call LOG,FINALIZE,$$@,$(PNACL_FINALIZE) -o $$@ $$^)
113ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch
114ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch$(1).bc: $(2) $(foreach dep,$(4),$(STAMPDIR)/$(dep).stamp)
1154e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)	$(call LOG,LINK,$$@,$(PNACL_LINK) -o $$@ $(2) $(PNACL_LDFLAGS) $(foreach path,$(5),-L$(path)/pnacl/$(CONFIG)) $(foreach lib,$(3),-l$(lib)) $(6))
1162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)endef
1172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
1182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
1192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#
1202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)# Generalized Link Macro
1212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#
1222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)# $1 = Target Name
1232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)# $2 = List of Sources
1242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)# $3 = List of LIBS
1252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)# $4 = List of DEPS
1262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)# $5 = POSIX Linker Switches
1272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)# $6 = VC Linker Switches
1282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#
129ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch# NOTE:  For Debug builds we translate the .bc file to a .nexe instead of
130ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch# using the finalizing to a .pexe.  This enables debugging.
131ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch#
1322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)define LINK_RULE
133eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch$(call LINKER_RULE,$(OUTDIR)/$(1),$(foreach src,$(2),$(call SRC_TO_OBJ,$(src),_pnacl)),$(filter-out pthread,$(3)),$(4),$(LIB_PATHS),$(5))
1342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)endef
1352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
1362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
137c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#
138c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)# Strip Macro
139c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#
140eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch# NOTE: pnacl-strip does not currently support stripping finalized pexes (in a
141eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch# sense, they are already stripped). So we just copy the file instead.
142eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#
143eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch# See https://code.google.com/p/nativeclient/issues/detail?id=3534
144eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#
145c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)# $1 = Target Name
146c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)# $2 = Input Name
147c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#
148c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)define STRIP_RULE
149c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)all: $(OUTDIR)/$(1).pexe
150c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)$(OUTDIR)/$(1).pexe: $(OUTDIR)/$(2).pexe
151eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch	$(CP) $$^ $$@
152c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)endef
153c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
1542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
1552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#
1562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)# NMF Manifiest generation
1572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#
1582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)# Use the python script create_nmf to scan the binaries for dependencies using
1592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)# objdump.  Pass in the (-L) paths to the default library toolchains so that we
1602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)# can find those libraries and have it automatically copy the files (-s) to
1612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)# the target directory for us.
1622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#
1632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)# $1 = Target Name (the basename of the nmf
1642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)# $2 = Additional create_nmf.py arguments
1652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#
1662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)NMF:=python $(NACL_SDK_ROOT)/tools/create_nmf.py
1672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
1681e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)ifeq ($(CONFIG),Debug)
1691e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)EXECUTABLES=$(OUTDIR)/$(1)_x86_32.nexe $(OUTDIR)/$(1)_x86_64.nexe $(OUTDIR)/$(1)_arm.nexe
1701e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)else
1711e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)EXECUTABLES=$(OUTDIR)/$(1).pexe
1721e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)endif
1731e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)
1742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)define NMF_RULE
17590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)all: $(OUTDIR)/$(1).nmf
176ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch$(OUTDIR)/$(1).nmf: $(EXECUTABLES)
1772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)	$(call LOG,CREATE_NMF,$$@,$(NMF) -o $$@ $$^ -s $(OUTDIR) $(2))
1782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)endef
1797d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)
1807d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#
1817d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)# HTML file generation
1827d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#
1837d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)CREATE_HTML := python $(NACL_SDK_ROOT)/tools/create_html.py
1847d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)
1857d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)define HTML_RULE
1867d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)all: $(OUTDIR)/$(1).html
187ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch$(OUTDIR)/$(1).html: $(EXECUTABLES)
1887d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)	$(call LOG,CREATE_HTML,$$@,$(CREATE_HTML) -o $$@ $$^)
1897d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)endef
190ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch
191ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch
192ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch#
193ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch# Determine which executable to pass into the debugger.  For pnacl, this is
194ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch# the .bc -> .nexe translated app.
195ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch#
196ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben MurdochGDB_DEBUG_TARGET = $(abspath $(OUTDIR))/$(TARGET)_$(SYSARCH).nexe
197