89 TARGET_DIR:=$(EPOCROOT)/epoc32/release/tools2$(TOOLPLATFORMDIR)/$(CFG_PATH)/ |
89 TARGET_DIR:=$(EPOCROOT)/epoc32/release/tools2$(TOOLPLATFORMDIR)/$(CFG_PATH)/ |
90 OUTPUTPATH:=$(EPOCROOT)/epoc32/build/x86tools/$(CFG_PATH)/$(TARGET_NAME)/ |
90 OUTPUTPATH:=$(EPOCROOT)/epoc32/build/x86tools/$(CFG_PATH)/$(TARGET_NAME)/ |
91 |
91 |
92 # Target names differ depending on what we're building |
92 # Target names differ depending on what we're building |
93 ifeq ($(TARGET_TYPE),lib) |
93 ifeq ($(TARGET_TYPE),lib) |
94 TARGET_FULLNAME:=$(TARGET_DIR)lib$(TARGET_NAME)$(if $(findstring .,$(TARGET_NAME)),,.a) |
94 TARGET_FULLNAME:=$(TARGET_DIR)$(TARGET_NAME)$(if $(findstring .,$(TARGET_NAME)),,.a) |
95 endif |
95 endif |
96 ifeq ($(TARGET_TYPE),exe) |
96 ifeq ($(TARGET_TYPE),exe) |
97 TARGET_FULLNAME:=$(TARGET_DIR)$(TARGET_NAME)$(if $(findstring .,$(TARGET_NAME)),,$(DOTEXE)) |
97 TARGET_FULLNAME:=$(TARGET_DIR)$(TARGET_NAME)$(if $(findstring .,$(TARGET_NAME)),,$(DOTEXE)) |
98 endif |
98 endif |
99 ifeq ($(TARGET_TYPE),dll) |
99 ifeq ($(TARGET_TYPE),dll) |
100 TARGET_FULLNAME:=$(TARGET_DIR)lib$(TARGET_NAME)$(if $(findstring .,$(TARGET_NAME)),,$(DOTDLL)) |
100 TARGET_FULLNAME:=$(TARGET_DIR)$(TARGET_NAME)$(if $(findstring .,$(TARGET_NAME)),,$(DOTDLL)) |
101 endif |
101 endif |
102 |
102 |
103 # Object files are the same name as the source files with a .o extension |
103 # Object files are the same name as the source files with a .o extension |
104 OBJECTFILES:=$(foreach src,$(SOURCE_FILES),$(OUTPUTPATH)$(subst $(EPOCROOT),,$(src)).o) |
104 OBJECTFILES:=$(foreach src,$(SOURCE_FILES),$(OUTPUTPATH)$(subst $(EPOCROOT),,$(src)).o) |
105 |
105 |
121 $(call startrule,compile) \ |
121 $(call startrule,compile) \ |
122 $(CXX) $(CXXDEFS) $(CXXINC) -I$(EPOCROOT)$$(subst $(OUTPUTPATH),,$$(dir $$@)) $(CXXOPT) $$(if $$(findstring .cia,$$@),$(ASMOPT),$(if $(CODE_COVERAGE),-fprofile-arcs -ftest-coverage)) $(COMPILE_OPTIONS) -o$$@ $(EPOCROOT)$$(subst $(OUTPUTPATH),,$$(basename $$@)) \ |
122 $(CXX) $(CXXDEFS) $(CXXINC) -I$(EPOCROOT)$$(subst $(OUTPUTPATH),,$$(dir $$@)) $(CXXOPT) $$(if $$(findstring .cia,$$@),$(ASMOPT),$(if $(CODE_COVERAGE),-fprofile-arcs -ftest-coverage)) $(COMPILE_OPTIONS) -o$$@ $(EPOCROOT)$$(subst $(OUTPUTPATH),,$$(basename $$@)) \ |
123 $(call endrule,compile) |
123 $(call endrule,compile) |
124 |
124 |
125 # Link |
125 # Link |
126 $(TARGET_FULLNAME) : $(OBJECTFILES) $(foreach lib,$(LIBS),$(TARGET_DIR)lib$(lib).a) $(foreach lib,$(SHARED_LIBS),$(TARGET_DIR)lib$(lib)$(DOTDLL)) |
126 $(TARGET_FULLNAME) : $(OBJECTFILES) $(foreach lib,$(LIBS),$(TARGET_DIR)$(lib).a) $(foreach lib,$(SHARED_LIBS),$(TARGET_DIR)$(lib)$(DOTDLL)) |
127 ifeq ($(TARGET_TYPE),lib) |
127 ifeq ($(TARGET_TYPE),lib) |
128 $(call startrule,linklib) \ |
128 $(call startrule,linklib) \ |
129 $(AR) -r $$@ $(OBJECTFILES) \ |
129 $(AR) -r $$@ $(OBJECTFILES) \ |
130 $(call endrule,linklib) |
130 $(call endrule,linklib) |
131 endif |
131 endif |
132 ifeq ($(TARGET_TYPE),exe) |
132 ifeq ($(TARGET_TYPE),exe) |
133 $(call startrule,linkexe) \ |
133 $(call startrule,linkexe) \ |
134 $(CXX) -L$(TARGET_DIR) $(if $(GCOVDIR),-L$(GCOVDIR)) -o$$@ $(OBJECTFILES) $(foreach lib,$(LIBS) $(SHARED_LIBS),-l$(lib)) $(if $(CODE_COVERAGE),-lgcov) $(if $(WIN32),-Wl$(CHAR_COMMA)--enable-auto-import,-ldl) \ |
134 $(CXX) -L$(TARGET_DIR) $(if $(GCOVDIR),-L$(GCOVDIR)) -o$$@ $(OBJECTFILES) $(foreach lib,$(LIBS),$(TARGET_DIR)$(lib).a) $(foreach slib,$(SHARED_LIBS),$(TARGET_DIR)$(slib)$(DOTDLL)) $(if $(CODE_COVERAGE),-lgcov) $(if $(WIN32),-Wl$(CHAR_COMMA)--enable-auto-import,-ldl) \ |
135 $(call endrule,linkexe) |
135 $(call endrule,linkexe) |
136 endif |
136 endif |
137 ifeq ($(TARGET_TYPE),dll) |
137 ifeq ($(TARGET_TYPE),dll) |
138 $(call startrule,linkdll) \ |
138 $(call startrule,linkdll) \ |
139 $(CXX) -L$(TARGET_DIR) $(if $(GCOVDIR),-L$(GCOVDIR)) -shared -o$$@ $(OBJECTFILES) $(foreach lib,$(LIBS) $(SHARED_LIBS), -l$(lib)) $(if $(WIN32),$(DLL_WIN_LINKER_OPTS),$(DLL_LIN_LINKER_OPTS)) \ |
139 $(CXX) -L$(TARGET_DIR) $(if $(GCOVDIR),-L$(GCOVDIR)) -shared -o$$@ $(OBJECTFILES) $(foreach lib,$(LIBS),$(TARGET_DIR)$(lib).a) $(foreach slib,$(SHARED_LIBS),$(TARGET_DIR)$(slib)$(DOTDLL)) $(if $(WIN32),$(DLL_WIN_LINKER_OPTS),$(DLL_LIN_LINKER_OPTS)) \ |
140 $(call endrule,linkdll) |
140 $(call endrule,linkdll) |
141 endif |
141 endif |
142 endef |
142 endef |
143 |
143 |
144 # Generate the rules |
144 # Generate the rules |