* commit 'bb0babd7054bed7edfd9f4d6b20cdba864de1830': build: Support executable only ldflags Conflicts: Makefile Merged-by: Michael Niedermayer <michaelni@gmx.at>tags/n2.4
@@ -63,7 +63,7 @@ FF_DEP_LIBS := $(DEP_LIBS) | |||||
all: $(AVPROGS) | all: $(AVPROGS) | ||||
$(TOOLS): %$(EXESUF): %.o $(EXEOBJS) | $(TOOLS): %$(EXESUF): %.o $(EXEOBJS) | ||||
$(LD) $(LDFLAGS) $(LD_O) $^ $(ELIBS) | |||||
$(LD) $(LDFLAGS) $(LDEXEFLAGS) $(LD_O) $^ $(ELIBS) | |||||
tools/cws2fws$(EXESUF): ELIBS = $(ZLIB) | tools/cws2fws$(EXESUF): ELIBS = $(ZLIB) | ||||
tools/uncoded_frame$(EXESUF): $(FF_DEP_LIBS) | tools/uncoded_frame$(EXESUF): $(FF_DEP_LIBS) | ||||
@@ -117,7 +117,7 @@ $(PROGS): %$(PROGSSUF)$(EXESUF): %$(PROGSSUF)_g$(EXESUF) | |||||
$(STRIP) $@ | $(STRIP) $@ | ||||
%$(PROGSSUF)_g$(EXESUF): %.o $(FF_DEP_LIBS) | %$(PROGSSUF)_g$(EXESUF): %.o $(FF_DEP_LIBS) | ||||
$(LD) $(LDFLAGS) $(LD_O) $(OBJS-$*) $(FF_EXTRALIBS) | |||||
$(LD) $(LDFLAGS) $(LDEXEFLAGS) $(LD_O) $(OBJS-$*) $(FF_EXTRALIBS) | |||||
OBJDIRS += tools | OBJDIRS += tools | ||||
@@ -299,6 +299,7 @@ Toolchain options: | |||||
--extra-cflags=ECFLAGS add ECFLAGS to CFLAGS [$CFLAGS] | --extra-cflags=ECFLAGS add ECFLAGS to CFLAGS [$CFLAGS] | ||||
--extra-cxxflags=ECFLAGS add ECFLAGS to CXXFLAGS [$CXXFLAGS] | --extra-cxxflags=ECFLAGS add ECFLAGS to CXXFLAGS [$CXXFLAGS] | ||||
--extra-ldflags=ELDFLAGS add ELDFLAGS to LDFLAGS [$LDFLAGS] | --extra-ldflags=ELDFLAGS add ELDFLAGS to LDFLAGS [$LDFLAGS] | ||||
--extra-ldexeflags=ELDFLAGS add ELDFLAGS to LDEXEFLAGS [$LDEXEFLAGS] | |||||
--extra-libs=ELIBS add ELIBS [$ELIBS] | --extra-libs=ELIBS add ELIBS [$ELIBS] | ||||
--extra-version=STRING version string suffix [] | --extra-version=STRING version string suffix [] | ||||
--optflags=OPTFLAGS override optimization-related compiler flags | --optflags=OPTFLAGS override optimization-related compiler flags | ||||
@@ -758,6 +759,10 @@ add_ldflags(){ | |||||
append LDFLAGS $($ldflags_filter "$@") | append LDFLAGS $($ldflags_filter "$@") | ||||
} | } | ||||
add_ldexeflags(){ | |||||
append LDEXEFLAGS $($ldflags_filter "$@") | |||||
} | |||||
add_stripflags(){ | add_stripflags(){ | ||||
append ASMSTRIPFLAGS "$@" | append ASMSTRIPFLAGS "$@" | ||||
} | } | ||||
@@ -2829,6 +2834,9 @@ for opt do | |||||
--extra-ldflags=*) | --extra-ldflags=*) | ||||
add_ldflags $optval | add_ldflags $optval | ||||
;; | ;; | ||||
--extra-ldexeflags=*) | |||||
add_ldexeflags $optval | |||||
;; | |||||
--extra-libs=*) | --extra-libs=*) | ||||
add_extralibs $optval | add_extralibs $optval | ||||
;; | ;; | ||||
@@ -5419,6 +5427,7 @@ WINDRES=$windres | |||||
DEPWINDRES=$dep_cc | DEPWINDRES=$dep_cc | ||||
DOXYGEN=$doxygen | DOXYGEN=$doxygen | ||||
LDFLAGS=$LDFLAGS | LDFLAGS=$LDFLAGS | ||||
LDEXEFLAGS=$LDEXEFLAGS | |||||
SHFLAGS=$(echo $($ldflags_filter $SHFLAGS)) | SHFLAGS=$(echo $($ldflags_filter $SHFLAGS)) | ||||
ASMSTRIPFLAGS=$ASMSTRIPFLAGS | ASMSTRIPFLAGS=$ASMSTRIPFLAGS | ||||
YASMFLAGS=$YASMFLAGS | YASMFLAGS=$YASMFLAGS | ||||
@@ -35,6 +35,9 @@ to your project LDFLAGS: | |||||
-Wl,-Bsymbolic | -Wl,-Bsymbolic | ||||
@end example | @end example | ||||
If your target platform requires position independent binaries, you should | |||||
pass the correct linking flag (e.g. @code{-pie}) to @code{--extra-ldexeflags}. | |||||
@section BSD | @section BSD | ||||
BSD make will not build FFmpeg, you need to install and use GNU Make | BSD make will not build FFmpeg, you need to install and use GNU Make | ||||
@@ -46,7 +46,7 @@ $(TOOLS): THISLIB = $(FULLNAME:%=$(LD_LIB)) | |||||
$(TESTPROGS): THISLIB = $(SUBDIR)$(LIBNAME) | $(TESTPROGS): THISLIB = $(SUBDIR)$(LIBNAME) | ||||
$(TESTPROGS) $(TOOLS): %$(EXESUF): %.o $(EXEOBJS) | $(TESTPROGS) $(TOOLS): %$(EXESUF): %.o $(EXEOBJS) | ||||
$$(LD) $(LDFLAGS) $$(LD_O) $$(filter %.o,$$^) $$(THISLIB) $(FFEXTRALIBS) $$(ELIBS) | |||||
$$(LD) $(LDFLAGS) $(LDEXEFLAGS) $$(LD_O) $$(filter %.o,$$^) $$(THISLIB) $(FFEXTRALIBS) $$(ELIBS) | |||||
$(SUBDIR)$(SLIBNAME): $(SUBDIR)$(SLIBNAME_WITH_MAJOR) | $(SUBDIR)$(SLIBNAME): $(SUBDIR)$(SLIBNAME_WITH_MAJOR) | ||||
$(Q)cd ./$(SUBDIR) && $(LN_S) $(SLIBNAME_WITH_MAJOR) $(SLIBNAME) | $(Q)cd ./$(SUBDIR) && $(LN_S) $(SLIBNAME_WITH_MAJOR) $(SLIBNAME) | ||||