Merge commit '7ebe7e8e7a76c0ce302f4f583ef0d14220031214'
authorJames Almer <jamrial@gmail.com>
Sun, 12 Nov 2017 03:59:58 +0000 (00:59 -0300)
committerJames Almer <jamrial@gmail.com>
Sun, 12 Nov 2017 03:59:58 +0000 (00:59 -0300)
* commit '7ebe7e8e7a76c0ce302f4f583ef0d14220031214':
  build: Remove pkg-config files on clean instead of on distclean

Merged-by: James Almer <jamrial@gmail.com>
1  2 
Makefile
ffbuild/common.mak
ffbuild/library.mak

diff --cc Makefile
+++ b/Makefile
@@@ -135,25 -169,18 +135,24 @@@ uninstall-data
  clean::
        $(RM) $(CLEANSUFFIXES)
        $(RM) $(addprefix compat/,$(CLEANSUFFIXES)) $(addprefix compat/*/,$(CLEANSUFFIXES))
 -      $(RM) -rf coverage.info lcov
 +      $(RM) -r coverage-html
 +      $(RM) -rf coverage.info coverage.info.in lcov
  
  distclean::
-       $(RM) $(DISTCLEANSUFFIXES)
 -      $(RM) .version avversion.h config.asm config.h mapfile \
 -            avbuild/.config avbuild/config.* libavutil/avconfig.h \
 -            libavcodec/bsf_list.c libavformat/protocol_list.c
 +      $(RM) .version avversion.h config.asm config.h mapfile  \
 +              ffbuild/.config ffbuild/config.* libavutil/avconfig.h \
 +              version.h libavutil/ffversion.h libavcodec/codec_names.h \
 +              libavcodec/bsf_list.c libavformat/protocol_list.c
 +ifeq ($(SRC_LINK),src)
 +      $(RM) src
 +endif
 +      $(RM) -rf doc/examples/pc-uninstalled
  
  config:
 -      $(SRC_PATH)/configure $(value LIBAV_CONFIGURATION)
 +      $(SRC_PATH)/configure $(value FFMPEG_CONFIGURATION)
  
 -build: all alltools checkheaders examples testprogs
 -check: all alltools checkheaders examples testprogs fate
 +build: all alltools examples testprogs
 +check: all alltools examples testprogs fate
  
  include $(SRC_PATH)/tests/Makefile
  
index 63a3c2f,0000000..eb41b05
mode 100644,000000..100644
--- /dev/null
@@@ -1,177 -1,0 +1,176 @@@
- CLEANSUFFIXES     = *.d *.o *~ *.h.c *.gcda *.gcno *.map *.ver *.version *.ho *$(DEFAULT_X86ASMD).asm *.ptx *.ptx.c
- DISTCLEANSUFFIXES = *.pc
 +#
 +# common bits used by all libraries
 +#
 +
 +DEFAULT_X86ASMD=.dbg
 +
 +ifeq ($(DBG),1)
 +X86ASMD=$(DEFAULT_X86ASMD)
 +else
 +X86ASMD=
 +endif
 +
 +ifndef SUBDIR
 +
 +ifndef V
 +Q      = @
 +ECHO   = printf "$(1)\t%s\n" $(2)
 +BRIEF  = CC CXX OBJCC HOSTCC HOSTLD AS X86ASM AR LD STRIP CP WINDRES NVCC
 +SILENT = DEPCC DEPHOSTCC DEPAS DEPX86ASM RANLIB RM
 +
 +MSG    = $@
 +M      = @$(call ECHO,$(TAG),$@);
 +$(foreach VAR,$(BRIEF), \
 +    $(eval override $(VAR) = @$$(call ECHO,$(VAR),$$(MSG)); $($(VAR))))
 +$(foreach VAR,$(SILENT),$(eval override $(VAR) = @$($(VAR))))
 +$(eval INSTALL = @$(call ECHO,INSTALL,$$(^:$(SRC_DIR)/%=%)); $(INSTALL))
 +endif
 +
 +ALLFFLIBS = avcodec avdevice avfilter avformat avresample avutil postproc swscale swresample
 +
 +# NASM requires -I path terminated with /
 +IFLAGS     := -I. -I$(SRC_LINK)/
 +CPPFLAGS   := $(IFLAGS) $(CPPFLAGS)
 +CFLAGS     += $(ECFLAGS)
 +CCFLAGS     = $(CPPFLAGS) $(CFLAGS)
 +OBJCFLAGS  += $(EOBJCFLAGS)
 +OBJCCFLAGS  = $(CPPFLAGS) $(CFLAGS) $(OBJCFLAGS)
 +ASFLAGS    := $(CPPFLAGS) $(ASFLAGS)
 +CXXFLAGS   := $(CPPFLAGS) $(CFLAGS) $(CXXFLAGS)
 +X86ASMFLAGS += $(IFLAGS:%=%/) -I$(<D)/ -Pconfig.asm
 +NVCCFLAGS  += -ptx
 +
 +HOSTCCFLAGS = $(IFLAGS) $(HOSTCPPFLAGS) $(HOSTCFLAGS)
 +LDFLAGS    := $(ALLFFLIBS:%=$(LD_PATH)lib%) $(LDFLAGS)
 +
 +define COMPILE
 +       $(call $(1)DEP,$(1))
 +       $($(1)) $($(1)FLAGS) $($(1)_DEPFLAGS) $($(1)_C) $($(1)_O) $(patsubst $(SRC_PATH)/%,$(SRC_LINK)/%,$<)
 +endef
 +
 +COMPILE_C = $(call COMPILE,CC)
 +COMPILE_CXX = $(call COMPILE,CXX)
 +COMPILE_S = $(call COMPILE,AS)
 +COMPILE_M = $(call COMPILE,OBJCC)
 +COMPILE_X86ASM = $(call COMPILE,X86ASM)
 +COMPILE_HOSTC = $(call COMPILE,HOSTCC)
 +COMPILE_NVCC = $(call COMPILE,NVCC)
 +
 +%.o: %.c
 +      $(COMPILE_C)
 +
 +%.o: %.cpp
 +      $(COMPILE_CXX)
 +
 +%.o: %.m
 +      $(COMPILE_M)
 +
 +%.s: %.c
 +      $(CC) $(CCFLAGS) -S -o $@ $<
 +
 +%.o: %.S
 +      $(COMPILE_S)
 +
 +%_host.o: %.c
 +      $(COMPILE_HOSTC)
 +
 +%$(DEFAULT_X86ASMD).asm: %.asm
 +      $(DEPX86ASM) $(X86ASMFLAGS) -M -o $@ $< > $(@:.asm=.d)
 +      $(X86ASM) $(X86ASMFLAGS) -e $< | sed '/^%/d;/^$$/d;' > $@
 +
 +%.o: %.asm
 +      $(COMPILE_X86ASM)
 +      -$(if $(ASMSTRIPFLAGS), $(STRIP) $(ASMSTRIPFLAGS) $@)
 +
 +%.o: %.rc
 +      $(WINDRES) $(IFLAGS) --preprocessor "$(DEPWINDRES) -E -xc-header -DRC_INVOKED $(CC_DEPFLAGS)" -o $@ $<
 +
 +%.i: %.c
 +      $(CC) $(CCFLAGS) $(CC_E) $<
 +
 +%.h.c:
 +      $(Q)echo '#include "$*.h"' >$@
 +
 +%.ptx: %.cu
 +      $(COMPILE_NVCC)
 +
 +%.ptx.c: %.ptx
 +      $(Q)sh $(SRC_PATH)/compat/cuda/ptx2c.sh $@ $(patsubst $(SRC_PATH)/%,$(SRC_LINK)/%,$<)
 +
 +%.c %.h %.pc %.ver %.version: TAG = GEN
 +
 +# Dummy rule to stop make trying to rebuild removed or renamed headers
 +%.h:
 +      @:
 +
 +# Disable suffix rules.  Most of the builtin rules are suffix rules,
 +# so this saves some time on slow systems.
 +.SUFFIXES:
 +
 +# Do not delete intermediate files from chains of implicit rules
 +$(OBJS):
 +endif
 +
 +include $(SRC_PATH)/ffbuild/arch.mak
 +
 +OBJS      += $(OBJS-yes)
 +SLIBOBJS  += $(SLIBOBJS-yes)
 +FFLIBS    := $($(NAME)_FFLIBS) $(FFLIBS-yes) $(FFLIBS)
 +TESTPROGS += $(TESTPROGS-yes)
 +
 +LDLIBS       = $(FFLIBS:%=%$(BUILDSUF))
 +FFEXTRALIBS := $(LDLIBS:%=$(LD_LIB)) $(foreach lib,EXTRALIBS-$(NAME) $(FFLIBS:%=EXTRALIBS-%),$($(lib))) $(EXTRALIBS)
 +
 +OBJS      := $(sort $(OBJS:%=$(SUBDIR)%))
 +SLIBOBJS  := $(sort $(SLIBOBJS:%=$(SUBDIR)%))
 +TESTOBJS  := $(TESTOBJS:%=$(SUBDIR)tests/%) $(TESTPROGS:%=$(SUBDIR)tests/%.o)
 +TESTPROGS := $(TESTPROGS:%=$(SUBDIR)tests/%$(EXESUF))
 +HOSTOBJS  := $(HOSTPROGS:%=$(SUBDIR)%.o)
 +HOSTPROGS := $(HOSTPROGS:%=$(SUBDIR)%$(HOSTEXESUF))
 +TOOLS     += $(TOOLS-yes)
 +TOOLOBJS  := $(TOOLS:%=tools/%.o)
 +TOOLS     := $(TOOLS:%=tools/%$(EXESUF))
 +HEADERS   += $(HEADERS-yes)
 +
 +PATH_LIBNAME = $(foreach NAME,$(1),lib$(NAME)/$($(2)LIBNAME))
 +DEP_LIBS := $(foreach lib,$(FFLIBS),$(call PATH_LIBNAME,$(lib),$(CONFIG_SHARED:yes=S)))
 +STATIC_DEP_LIBS := $(foreach lib,$(FFLIBS),$(call PATH_LIBNAME,$(lib)))
 +
 +SRC_DIR    := $(SRC_PATH)/lib$(NAME)
 +ALLHEADERS := $(subst $(SRC_DIR)/,$(SUBDIR),$(wildcard $(SRC_DIR)/*.h $(SRC_DIR)/$(ARCH)/*.h))
 +SKIPHEADERS += $(ARCH_HEADERS:%=$(ARCH)/%) $(SKIPHEADERS-)
 +SKIPHEADERS := $(SKIPHEADERS:%=$(SUBDIR)%)
 +HOBJS        = $(filter-out $(SKIPHEADERS:.h=.h.o),$(ALLHEADERS:.h=.h.o))
 +PTXOBJS      = $(filter %.ptx.o,$(OBJS))
 +$(HOBJS):     CCFLAGS += $(CFLAGS_HEADERS)
 +checkheaders: $(HOBJS)
 +.SECONDARY:   $(HOBJS:.o=.c) $(PTXOBJS:.o=.c) $(PTXOBJS:.o=)
 +
 +alltools: $(TOOLS)
 +
 +$(HOSTOBJS): %.o: %.c
 +      $(COMPILE_HOSTC)
 +
 +$(HOSTPROGS): %$(HOSTEXESUF): %.o
 +      $(HOSTLD) $(HOSTLDFLAGS) $(HOSTLD_O) $^ $(HOSTEXTRALIBS)
 +
 +$(OBJS):     | $(sort $(dir $(OBJS)))
 +$(HOBJS):    | $(sort $(dir $(HOBJS)))
 +$(HOSTOBJS): | $(sort $(dir $(HOSTOBJS)))
 +$(SLIBOBJS): | $(sort $(dir $(SLIBOBJS)))
 +$(TESTOBJS): | $(sort $(dir $(TESTOBJS)))
 +$(TOOLOBJS): | tools
 +
 +OBJDIRS := $(OBJDIRS) $(dir $(OBJS) $(HOBJS) $(HOSTOBJS) $(SLIBOBJS) $(TESTOBJS))
 +
++CLEANSUFFIXES     = *.d *.gcda *.gcno *.h.c *.ho *.map *.o *.pc *.ptx *.ptx.c *.ver *.version *$(DEFAULT_X86ASMD).asm *~
 +LIBSUFFIXES       = *.a *.lib *.so *.so.* *.dylib *.dll *.def *.dll.a
 +
 +define RULES
 +clean::
 +      $(RM) $(HOSTPROGS) $(TESTPROGS) $(TOOLS)
 +endef
 +
 +$(eval $(RULES))
 +
 +-include $(wildcard $(OBJS:.o=.d) $(HOSTOBJS:.o=.d) $(TESTOBJS:.o=.d) $(HOBJS:.o=.d) $(SLIBOBJS:.o=.d)) $(OBJS:.o=$(DEFAULT_X86ASMD).d)
index a590a94,0000000..069079f
mode 100644,000000..100644
--- /dev/null
@@@ -1,111 -1,0 +1,107 @@@
- distclean:: clean
-       $(RM) $(DISTCLEANSUFFIXES:%=$(SUBDIR)%) $(DISTCLEANSUFFIXES:%=$(SUBDIR)$(ARCH)/%) \
-             $(DISTCLEANSUFFIXES:%=$(SUBDIR)tests/%)
 +include $(SRC_PATH)/ffbuild/common.mak
 +
 +ifeq (,$(filter %clean config,$(MAKECMDGOALS)))
 +-include $(SUBDIR)lib$(NAME).version
 +endif
 +
 +LIBVERSION := $(lib$(NAME)_VERSION)
 +LIBMAJOR   := $(lib$(NAME)_VERSION_MAJOR)
 +LIBMINOR   := $(lib$(NAME)_VERSION_MINOR)
 +INCINSTDIR := $(INCDIR)/lib$(NAME)
 +
 +INSTHEADERS := $(INSTHEADERS) $(HEADERS:%=$(SUBDIR)%)
 +
 +all-$(CONFIG_STATIC): $(SUBDIR)$(LIBNAME)  $(SUBDIR)lib$(FULLNAME).pc
 +all-$(CONFIG_SHARED): $(SUBDIR)$(SLIBNAME) $(SUBDIR)lib$(FULLNAME).pc
 +
 +LIBOBJS := $(OBJS) $(SUBDIR)%.h.o $(TESTOBJS)
 +$(LIBOBJS) $(LIBOBJS:.o=.s) $(LIBOBJS:.o=.i):   CPPFLAGS += -DHAVE_AV_CONFIG_H
 +
 +$(SUBDIR)$(LIBNAME): $(OBJS)
 +      $(RM) $@
 +      $(AR) $(ARFLAGS) $(AR_O) $^
 +      $(RANLIB) $@
 +
 +install-headers: install-lib$(NAME)-headers install-lib$(NAME)-pkgconfig
 +
 +install-libs-$(CONFIG_STATIC): install-lib$(NAME)-static
 +install-libs-$(CONFIG_SHARED): install-lib$(NAME)-shared
 +
 +define RULES
 +$(TOOLS):     THISLIB = $(FULLNAME:%=$(LD_LIB))
 +$(TESTPROGS): THISLIB = $(SUBDIR)$(LIBNAME)
 +
 +$(LIBOBJS): CPPFLAGS += -DBUILDING_$(NAME)
 +
 +$(TESTPROGS) $(TOOLS): %$(EXESUF): %.o
 +      $$(LD) $(LDFLAGS) $(LDEXEFLAGS) $$(LD_O) $$(filter %.o,$$^) $$(THISLIB) $(FFEXTRALIBS) $$(EXTRALIBS-$$(*F)) $$(ELIBS)
 +
 +$(SUBDIR)lib$(NAME).version: $(SUBDIR)version.h | $(SUBDIR)
 +      $$(M) $$(SRC_PATH)/ffbuild/libversion.sh $(NAME) $$< > $$@
 +
 +$(SUBDIR)lib$(FULLNAME).pc: $(SUBDIR)version.h | $(SUBDIR)
 +      $$(M) $$(SRC_PATH)/ffbuild/pkgconfig_generate.sh $(NAME) "$(DESC)"
 +
 +$(SUBDIR)lib$(NAME).ver: $(SUBDIR)lib$(NAME).v $(OBJS)
 +      $$(M)sed 's/MAJOR/$(lib$(NAME)_VERSION_MAJOR)/' $$< | $(VERSION_SCRIPT_POSTPROCESS_CMD) > $$@
 +
 +$(SUBDIR)$(SLIBNAME): $(SUBDIR)$(SLIBNAME_WITH_MAJOR)
 +      $(Q)cd ./$(SUBDIR) && $(LN_S) $(SLIBNAME_WITH_MAJOR) $(SLIBNAME)
 +
 +$(SUBDIR)$(SLIBNAME_WITH_MAJOR): $(OBJS) $(SLIBOBJS) $(SUBDIR)lib$(NAME).ver
 +      $(SLIB_CREATE_DEF_CMD)
 +      $$(LD) $(SHFLAGS) $(LDFLAGS) $(LDSOFLAGS) $$(LD_O) $$(filter %.o,$$^) $(FFEXTRALIBS)
 +      $(SLIB_EXTRA_CMD)
 +
 +ifdef SUBDIR
 +$(SUBDIR)$(SLIBNAME_WITH_MAJOR): $(DEP_LIBS)
 +endif
 +
 +clean::
 +      $(RM) $(addprefix $(SUBDIR),$(CLEANFILES) $(CLEANSUFFIXES) $(LIBSUFFIXES)) \
 +          $(CLEANSUFFIXES:%=$(SUBDIR)$(ARCH)/%) $(CLEANSUFFIXES:%=$(SUBDIR)tests/%)
 +
 +install-lib$(NAME)-shared: $(SUBDIR)$(SLIBNAME)
 +      $(Q)mkdir -p "$(SHLIBDIR)"
 +      $$(INSTALL) -m 755 $$< "$(SHLIBDIR)/$(SLIB_INSTALL_NAME)"
 +      $$(STRIP) "$(SHLIBDIR)/$(SLIB_INSTALL_NAME)"
 +      $(Q)$(foreach F,$(SLIB_INSTALL_LINKS),(cd "$(SHLIBDIR)" && $(LN_S) $(SLIB_INSTALL_NAME) $(F));)
 +      $(if $(SLIB_INSTALL_EXTRA_SHLIB),$$(INSTALL) -m 644 $(SLIB_INSTALL_EXTRA_SHLIB:%=$(SUBDIR)%) "$(SHLIBDIR)")
 +      $(if $(SLIB_INSTALL_EXTRA_LIB),$(Q)mkdir -p "$(LIBDIR)")
 +      $(if $(SLIB_INSTALL_EXTRA_LIB),$$(INSTALL) -m 644 $(SLIB_INSTALL_EXTRA_LIB:%=$(SUBDIR)%) "$(LIBDIR)")
 +
 +install-lib$(NAME)-static: $(SUBDIR)$(LIBNAME)
 +      $(Q)mkdir -p "$(LIBDIR)"
 +      $$(INSTALL) -m 644 $$< "$(LIBDIR)"
 +      $(LIB_INSTALL_EXTRA_CMD)
 +
 +install-lib$(NAME)-headers: $(addprefix $(SUBDIR),$(HEADERS) $(BUILT_HEADERS))
 +      $(Q)mkdir -p "$(INCINSTDIR)"
 +      $$(INSTALL) -m 644 $$^ "$(INCINSTDIR)"
 +
 +install-lib$(NAME)-pkgconfig: $(SUBDIR)lib$(FULLNAME).pc
 +      $(Q)mkdir -p "$(PKGCONFIGDIR)"
 +      $$(INSTALL) -m 644 $$^ "$(PKGCONFIGDIR)"
 +
 +uninstall-libs::
 +      -$(RM) "$(SHLIBDIR)/$(SLIBNAME_WITH_MAJOR)" \
 +             "$(SHLIBDIR)/$(SLIBNAME)"            \
 +             "$(SHLIBDIR)/$(SLIBNAME_WITH_VERSION)"
 +      -$(RM)  $(SLIB_INSTALL_EXTRA_SHLIB:%="$(SHLIBDIR)/%")
 +      -$(RM)  $(SLIB_INSTALL_EXTRA_LIB:%="$(LIBDIR)/%")
 +      -$(RM) "$(LIBDIR)/$(LIBNAME)"
 +
 +uninstall-headers::
 +      $(RM) $(addprefix "$(INCINSTDIR)/",$(HEADERS) $(BUILT_HEADERS))
 +      -rmdir "$(INCINSTDIR)"
 +
 +uninstall-pkgconfig::
 +      $(RM) "$(PKGCONFIGDIR)/lib$(FULLNAME).pc"
 +endef
 +
 +$(eval $(RULES))
 +
 +$(TOOLS):     $(DEP_LIBS) $(SUBDIR)$($(CONFIG_SHARED:yes=S)LIBNAME)
 +$(TESTPROGS): $(DEP_LIBS) $(SUBDIR)$(LIBNAME)
 +
 +testprogs: $(TESTPROGS)