mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-07-02 05:56:46 +08:00
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: Mans Rullgard <mans@mansr.com>
This commit is contained in:
8
Makefile
8
Makefile
@ -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)
|
|||||||
|
|
||||||
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
|
|||||||
$(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))
|
||||||
|
1
configure
vendored
1
configure
vendored
@ -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
|
|||||||
$(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)
|
||||||
|
Reference in New Issue
Block a user