Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(256)

Side by Side Diff: native_client_sdk/src/tools/nacl_llvm.mk

Issue 12395032: [NaCl SDK] Handle sources outside root in example build system (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 # 5 #
6 # GNU Make based build file. For details on GNU Make see: 6 # GNU Make based build file. For details on GNU Make see:
7 # http://www.gnu.org/software/make/manual/make.html 7 # http://www.gnu.org/software/make/manual/make.html
8 # 8 #
9 # 9 #
10 10
11 11
12 # 12 #
13 # Paths to Tools 13 # Paths to Tools
14 # 14 #
15 PNACL_CC?=$(TC_PATH)/$(OSNAME)_x86_$(TOOLCHAIN)/newlib/bin/pnacl-clang -c 15 PNACL_CC?=$(TC_PATH)/$(OSNAME)_x86_$(TOOLCHAIN)/newlib/bin/pnacl-clang -c
16 PNACL_CXX?=$(TC_PATH)/$(OSNAME)_x86_$(TOOLCHAIN)/newlib/bin/pnacl-clang++ -c 16 PNACL_CXX?=$(TC_PATH)/$(OSNAME)_x86_$(TOOLCHAIN)/newlib/bin/pnacl-clang++ -c
17 PNACL_LINK?=$(TC_PATH)/$(OSNAME)_x86_$(TOOLCHAIN)/newlib/bin/pnacl-clang++ 17 PNACL_LINK?=$(TC_PATH)/$(OSNAME)_x86_$(TOOLCHAIN)/newlib/bin/pnacl-clang++
18 PNACL_LIB?=$(TC_PATH)/$(OSNAME)_x86_$(TOOLCHAIN)/newlib/bin/pnacl-ar r 18 PNACL_LIB?=$(TC_PATH)/$(OSNAME)_x86_$(TOOLCHAIN)/newlib/bin/pnacl-ar r
19 19
20 20
21 # 21 #
22 # Compile Macro 22 # Compile Macro
23 # 23 #
24 # $1 = Source Name 24 # $1 = Source Name
25 # $2 = Compile Flags 25 # $2 = Compile Flags
26 # $3 = Include Directories 26 # $3 = Include Directories
27 # 27 #
28 define C_COMPILER_RULE 28 define C_COMPILER_RULE
29 -include $(OUTDIR)/$(basename $(1))_pnacl.d 29 -include $(call SRC_TO_DEP,$(1),_pnacl)
30 $(OUTDIR)/$(basename $(1))_pnacl.o : $(1) $(TOP_MAKE) | $(dir $(OUTDIR)/$(basena me $(1)))dir.stamp 30 $(call SRC_TO_OBJ,$(1),_pnacl): $(1) $(TOP_MAKE) | $(dir $(call SRC_TO_OBJ,$(1)) )dir.stamp
31 $(call LOG,CC,$$@,$(PNACL_CC) -o $$@ -c $$< $(POSIX_FLAGS) $(2) $(NACL_C FLAGS)) 31 $(call LOG,CC,$$@,$(PNACL_CC) -o $$@ -c $$< $(POSIX_FLAGS) $(2) $(NACL_C FLAGS))
32 endef 32 endef
33 33
34 define CXX_COMPILER_RULE 34 define CXX_COMPILER_RULE
35 -include $(OUTDIR)/$(basename $(1))_pnacl.d 35 -include $(call SRC_TO_DEP,$(1))
36 $(OUTDIR)/$(basename $(1))_pnacl.o : $(1) $(TOP_MAKE) | $(dir $(OUTDIR)/$(basena me $(1)))dir.stamp 36 $(call SRC_TO_OBJ,$(1),_pnacl): $(1) $(TOP_MAKE) | $(dir $(call SRC_TO_OBJ,$(1)) )dir.stamp
37 $(call LOG,CXX,$$@,$(PNACL_CXX) -o $$@ -c $$< $(POSIX_FLAGS) $(2) $(NACL _CFLAGS)) 37 $(call LOG,CXX,$$@,$(PNACL_CXX) -o $$@ -c $$< $(POSIX_FLAGS) $(2) $(NACL _CFLAGS))
38 endef 38 endef
39 39
40 40
41 # $1 = Source Name 41 # $1 = Source Name
42 # $2 = POSIX Compile Flags 42 # $2 = POSIX Compile Flags
43 # $3 = Include Directories 43 # $3 = Include Directories
44 # $4 = VC Flags (unused) 44 # $4 = VC Flags (unused)
45 define COMPILE_RULE 45 define COMPILE_RULE
46 ifeq ('.c','$(suffix $(1))') 46 ifeq ($(suffix $(1)),.c)
47 $(call C_COMPILER_RULE,$(1),$(2) $(foreach inc,$(INC_PATHS),-I$(inc)) $(3)) 47 $(call C_COMPILER_RULE,$(1),$(2) $(foreach inc,$(INC_PATHS),-I$(inc)) $(3))
48 else 48 else
49 $(call CXX_COMPILER_RULE,$(1),$(2) $(foreach inc,$(INC_PATHS),-I$(inc)) $(3)) 49 $(call CXX_COMPILER_RULE,$(1),$(2) $(foreach inc,$(INC_PATHS),-I$(inc)) $(3))
50 endif 50 endif
51 endef 51 endef
52 52
53 53
54 # 54 #
55 # SO Macro 55 # SO Macro
56 # 56 #
57 # $1 = Target Name 57 # $1 = Target Name
58 # $2 = List of Sources 58 # $2 = List of Sources
59 # 59 #
60 # 60 #
61 define SO_RULE 61 define SO_RULE
62 $(error 'Shared libraries not supported by PNaCl') 62 $(error 'Shared libraries not supported by PNaCl')
63 endef 63 endef
64 64
65 65
66 # 66 #
67 # LIB Macro 67 # LIB Macro
68 # 68 #
69 # $1 = Target Name 69 # $1 = Target Name
70 # $2 = List of Sources 70 # $2 = List of Sources
71 # $3 = POSIX Link Flags 71 # $3 = POSIX Link Flags
72 # $4 = VC Link Flags (unused) 72 # $4 = VC Link Flags (unused)
73 define LIB_RULE 73 define LIB_RULE
74 $(STAMPDIR)/$(1).stamp : $(NACL_SDK_ROOT)/lib/$(TOOLCHAIN)/$(CONFIG)/lib$(1).a 74 $(STAMPDIR)/$(1).stamp: $(NACL_SDK_ROOT)/lib/$(TOOLCHAIN)/$(CONFIG)/lib$(1).a
75 @echo "TOUCHED $$@" > $(STAMPDIR)/$(1).stamp 75 @echo "TOUCHED $$@" > $(STAMPDIR)/$(1).stamp
76 76
77 all: $(NACL_SDK_ROOT)/lib/$(TOOLCHAIN)/$(CONFIG)/lib$(1).a 77 all: $(NACL_SDK_ROOT)/lib/$(TOOLCHAIN)/$(CONFIG)/lib$(1).a
78 $(NACL_SDK_ROOT)/lib/$(TOOLCHAIN)/$(CONFIG)/lib$(1).a : $(foreach src,$(2),$(OUT DIR)/$(basename $(src))_pnacl.o) 78 $(NACL_SDK_ROOT)/lib/$(TOOLCHAIN)/$(CONFIG)/lib$(1).a: $(foreach src,$(2),$(call SRC_TO_OBJ,$(src),_pnacl))
79 $(MKDIR) -p $$(dir $$@) 79 $(MKDIR) -p $$(dir $$@)
80 $(call LOG,LIB,$$@,$(PNACL_LIB) $$@ $$^ $(3)) 80 $(call LOG,LIB,$$@,$(PNACL_LIB) $$@ $$^ $(3))
81 endef 81 endef
82 82
83 83
84 # 84 #
85 # Specific Link Macro 85 # Specific Link Macro
86 # 86 #
87 # $1 = Target Name 87 # $1 = Target Name
88 # $2 = List of inputs 88 # $2 = List of inputs
89 # $3 = List of libs 89 # $3 = List of libs
90 # $4 = List of deps 90 # $4 = List of deps
91 # $5 = List of lib dirs 91 # $5 = List of lib dirs
92 # $6 = Other Linker Args 92 # $6 = Other Linker Args
93 # 93 #
94 define LINKER_RULE 94 define LINKER_RULE
95 all: $(1) 95 all: $(1)
96 $(1) : $(2) $(foreach dep,$(4),$(STAMPDIR)/$(dep).stamp) 96 $(1): $(2) $(foreach dep,$(4),$(STAMPDIR)/$(dep).stamp)
97 $(call LOG,LINK,$$@,$(PNACL_LINK) -o $(1) $(2) $(foreach path,$(5),-L$(p ath)/pnacl/$(CONFIG)) $(foreach lib,$(3),-l$(lib)) $(6)) 97 $(call LOG,LINK,$$@,$(PNACL_LINK) -o $(1) $(2) $(foreach path,$(5),-L$(p ath)/pnacl/$(CONFIG)) $(foreach lib,$(3),-l$(lib)) $(6))
98 endef 98 endef
99 99
100 100
101 # 101 #
102 # Generalized Link Macro 102 # Generalized Link Macro
103 # 103 #
104 # $1 = Target Name 104 # $1 = Target Name
105 # $2 = List of Sources 105 # $2 = List of Sources
106 # $3 = List of LIBS 106 # $3 = List of LIBS
107 # $4 = List of DEPS 107 # $4 = List of DEPS
108 # $5 = POSIX Linker Switches 108 # $5 = POSIX Linker Switches
109 # $6 = VC Linker Switches 109 # $6 = VC Linker Switches
110 # 110 #
111 define LINK_RULE 111 define LINK_RULE
112 $(call LINKER_RULE,$(OUTDIR)/$(1).pexe,$(foreach src,$(2),$(OUTDIR)/$(basename $ (src))_pnacl.o),$(filter-out pthread,$(3)),$(4),$(LIB_PATHS),$(5)) 112 $(call LINKER_RULE,$(OUTDIR)/$(1).pexe,$(foreach src,$(2),$(call SRC_TO_OBJ,$(sr c),_pnacl)),$(filter-out pthread,$(3)),$(4),$(LIB_PATHS),$(5))
113 endef 113 endef
114 114
115 115
116 116
117 # 117 #
118 # NMF Manifiest generation 118 # NMF Manifiest generation
119 # 119 #
120 # Use the python script create_nmf to scan the binaries for dependencies using 120 # Use the python script create_nmf to scan the binaries for dependencies using
121 # objdump. Pass in the (-L) paths to the default library toolchains so that we 121 # objdump. Pass in the (-L) paths to the default library toolchains so that we
122 # can find those libraries and have it automatically copy the files (-s) to 122 # can find those libraries and have it automatically copy the files (-s) to
123 # the target directory for us. 123 # the target directory for us.
124 # 124 #
125 # $1 = Target Name (the basename of the nmf 125 # $1 = Target Name (the basename of the nmf
126 # $2 = Additional create_nmf.py arguments 126 # $2 = Additional create_nmf.py arguments
127 # 127 #
128 NMF:=python $(NACL_SDK_ROOT)/tools/create_nmf.py 128 NMF:=python $(NACL_SDK_ROOT)/tools/create_nmf.py
129 129
130 define NMF_RULE 130 define NMF_RULE
131 all:$(OUTDIR)/$(1).nmf 131 all:$(OUTDIR)/$(1).nmf
132 $(OUTDIR)/$(1).nmf : $(OUTDIR)/$(1).pexe 132 $(OUTDIR)/$(1).nmf : $(OUTDIR)/$(1).pexe
133 $(call LOG,CREATE_NMF,$$@,$(NMF) -o $$@ $$^ -s $(OUTDIR) $(2)) 133 $(call LOG,CREATE_NMF,$$@,$(NMF) -o $$@ $$^ -s $(OUTDIR) $(2))
134 endef 134 endef
135
noelallen1 2013/03/07 20:06:25 blank line.
136
OLDNEW
« native_client_sdk/src/tools/nacl_gcc.mk ('K') | « native_client_sdk/src/tools/nacl_gcc.mk ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698