diff options
Diffstat (limited to '3rdparty/genie/src/actions/make/make_cpp.lua')
-rw-r--r-- | 3rdparty/genie/src/actions/make/make_cpp.lua | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/3rdparty/genie/src/actions/make/make_cpp.lua b/3rdparty/genie/src/actions/make/make_cpp.lua index 4492ac2bbd2..869727c236d 100644 --- a/3rdparty/genie/src/actions/make/make_cpp.lua +++ b/3rdparty/genie/src/actions/make/make_cpp.lua @@ -90,7 +90,8 @@ _p('\t$(SILENT) $(LINKCMD) $(OBJECTS)') else _p('\t@$(call max_args,$(LINKCMD),'.. prj.archivesplit_size ..',$(OBJECTS))') - end + _p('\t$(SILENT) $(LINKCMD_NDX)') + end else if prj.msglinking then _p('\t@echo ' .. prj.msglinking) @@ -238,7 +239,7 @@ cpp.flags(cfg, cc) -- write out libraries, linker flags, and the link command - cpp.linker(cfg, cc) + cpp.linker(prj, cfg, cc) -- add objects for compilation, and remove any that are excluded per config. _p(' OBJECTS := \\') @@ -340,7 +341,7 @@ -- and the linker command. -- - function cpp.linker(cfg, cc) + function cpp.linker(prj, cfg, cc) -- Patch #3401184 changed the order _p(' ALL_LDFLAGS += $(LDFLAGS)%s', make.list(table.join(cc.getlibdirflags(cfg), cc.getldflags(cfg), cfg.linkoptions))) @@ -351,10 +352,20 @@ if cfg.platform:startswith("Universal") then _p(' LINKCMD = libtool -o $(TARGET)') else - if cc.llvm then - _p(' LINKCMD = $(AR) rcs $(TARGET)') + if (not prj.options.ArchiveSplit) then + if cc.llvm then + _p(' LINKCMD = $(AR) rcs $(TARGET)') + else + _p(' LINKCMD = $(AR) -rcs $(TARGET)') + end else - _p(' LINKCMD = $(AR) -rcs $(TARGET)') + if cc.llvm then + _p(' LINKCMD = $(AR) qc $(TARGET)') + _p(' LINKCMD_NDX= $(AR) cs $(TARGET)') + else + _p(' LINKCMD = $(AR) -qc $(TARGET)') + _p(' LINKCMD_NDX= $(AR) -cs $(TARGET)') + end end end else |