Commit 80521c19 authored by Mans Rullgard's avatar Mans Rullgard

build: allow targets to specify extra objects to link with executables

This allows targets to include special objects when linking
executables without including them in (shared) libraries.
Signed-off-by: 's avatarMans Rullgard <mans@mansr.com>
parent a805cefd
...@@ -59,7 +59,7 @@ PROGS-$(CONFIG_AVPROBE) += avprobe ...@@ -59,7 +59,7 @@ PROGS-$(CONFIG_AVPROBE) += avprobe
PROGS-$(CONFIG_AVSERVER) += avserver PROGS-$(CONFIG_AVSERVER) += avserver
PROGS := $(PROGS-yes:%=%$(EXESUF)) PROGS := $(PROGS-yes:%=%$(EXESUF))
OBJS = cmdutils.o OBJS = cmdutils.o $(EXEOBJS)
OBJS-avconv = avconv_opt.o avconv_filter.o OBJS-avconv = avconv_opt.o avconv_filter.o
TESTTOOLS = audiogen videogen rotozoom tiny_psnr base64 TESTTOOLS = audiogen videogen rotozoom tiny_psnr base64
HOSTPROGS := $(TESTTOOLS:%=tests/%) doc/print_options HOSTPROGS := $(TESTTOOLS:%=tests/%) doc/print_options
...@@ -90,8 +90,8 @@ FF_DEP_LIBS := $(DEP_LIBS) ...@@ -90,8 +90,8 @@ FF_DEP_LIBS := $(DEP_LIBS)
all: $(PROGS) all: $(PROGS)
$(TOOLS): %$(EXESUF): %.o $(TOOLS): %$(EXESUF): %.o $(EXEOBJS)
$(LD) $(LDFLAGS) $(LD_O) $< $(ELIBS) $(LD) $(LDFLAGS) $(LD_O) $^ $(ELIBS)
tools/cws2fws$(EXESUF): ELIBS = $(ZLIB) tools/cws2fws$(EXESUF): ELIBS = $(ZLIB)
...@@ -124,7 +124,7 @@ endef ...@@ -124,7 +124,7 @@ endef
$(foreach D,$(FFLIBS),$(eval $(call DOSUBDIR,lib$(D)))) $(foreach D,$(FFLIBS),$(eval $(call DOSUBDIR,lib$(D))))
define DOPROG define DOPROG
OBJS-$(1) += $(1).o cmdutils.o OBJS-$(1) += $(1).o cmdutils.o $(EXEOBJS)
$(1)$(EXESUF): $$(OBJS-$(1)) $(1)$(EXESUF): $$(OBJS-$(1))
$$(OBJS-$(1)): CFLAGS += $(CFLAGS-$(1)) $$(OBJS-$(1)): CFLAGS += $(CFLAGS-$(1))
$(1)$(EXESUF): LDFLAGS += $(LDFLAGS-$(1)) $(1)$(EXESUF): LDFLAGS += $(LDFLAGS-$(1))
......
...@@ -3737,6 +3737,7 @@ ZLIB=$($ldflags_filter -lz) ...@@ -3737,6 +3737,7 @@ ZLIB=$($ldflags_filter -lz)
LIB_INSTALL_EXTRA_CMD=$LIB_INSTALL_EXTRA_CMD LIB_INSTALL_EXTRA_CMD=$LIB_INSTALL_EXTRA_CMD
EXTRALIBS=$extralibs EXTRALIBS=$extralibs
COMPAT_OBJS=$compat_objs COMPAT_OBJS=$compat_objs
EXEOBJS=$exeobjs
INSTALL=install INSTALL=install
LIBTARGET=${LIBTARGET} LIBTARGET=${LIBTARGET}
SLIBNAME=${SLIBNAME} SLIBNAME=${SLIBNAME}
......
...@@ -36,7 +36,7 @@ define RULES ...@@ -36,7 +36,7 @@ define RULES
$(EXAMPLES) $(TOOLS): THISLIB = $(FULLNAME:%=$(LD_LIB)) $(EXAMPLES) $(TOOLS): THISLIB = $(FULLNAME:%=$(LD_LIB))
$(TESTPROGS): THISLIB = $(SUBDIR)$(LIBNAME) $(TESTPROGS): THISLIB = $(SUBDIR)$(LIBNAME)
$(EXAMPLES) $(TESTPROGS) $(TOOLS): %$(EXESUF): %.o $(EXAMPLES) $(TESTPROGS) $(TOOLS): %$(EXESUF): %.o $(EXEOBJS)
$$(LD) $(LDFLAGS) $$(LD_O) $$(filter %.o,$$^) $$(THISLIB) $(FFEXTRALIBS) $$(ELIBS) $$(LD) $(LDFLAGS) $$(LD_O) $$(filter %.o,$$^) $$(THISLIB) $(FFEXTRALIBS) $$(ELIBS)
$(SUBDIR)$(SLIBNAME): $(SUBDIR)$(SLIBNAME_WITH_MAJOR) $(SUBDIR)$(SLIBNAME): $(SUBDIR)$(SLIBNAME_WITH_MAJOR)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment