X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=Makefile;h=291197bc2a4859be6637be49ce02e2cb149182ae;hb=54974c62982ae827becdbdb9b620b7ba75d079a0;hp=5a7d5917e2801d592adcde4a0e44d4a6e9e61ece;hpb=42ade117dd8b5ab76d5331bd193fcfefe0b96385;p=ffmpeg diff --git a/Makefile b/Makefile index 5a7d5917e28..291197bc2a4 100644 --- a/Makefile +++ b/Makefile @@ -10,8 +10,8 @@ vpath %.texi $(SRC_PATH) ifndef V Q = @ ECHO = printf "$(1)\t%s\n" $(2) -BRIEF = CC AS YASM AR LD HOSTCC -SILENT = DEPCC DEPAS DEPHOSTCC DEPYASM RM RANLIB +BRIEF = CC HOSTCC HOSTLD AS YASM AR LD +SILENT = DEPCC DEPHOSTCC DEPAS DEPYASM RANLIB RM MSG = $@ M = @$(call ECHO,$(TAG),$@); $(foreach VAR,$(BRIEF), \ @@ -27,13 +27,13 @@ CPPFLAGS := $(IFLAGS) $(CPPFLAGS) CFLAGS += $(ECFLAGS) CCFLAGS = $(CPPFLAGS) $(CFLAGS) ASFLAGS := $(CPPFLAGS) $(ASFLAGS) -YASMFLAGS += $(IFLAGS) -I$(SRC_PATH)/libavutil/x86/ -Pconfig.asm +YASMFLAGS += $(IFLAGS:%=%/) -Pconfig.asm HOSTCCFLAGS = $(IFLAGS) $(HOSTCFLAGS) -LDFLAGS := $(ALLFFLIBS:%=-Llib%) $(LDFLAGS) +LDFLAGS := $(ALLFFLIBS:%=$(LD_PATH)lib%) $(LDFLAGS) define COMPILE $(call $(1)DEP,$(1)) - $($(1)) $($(1)FLAGS) $($(1)_DEPFLAGS) -c $($(1)_O) $< + $($(1)) $($(1)FLAGS) $($(1)_DEPFLAGS) $($(1)_C) $($(1)_O) $< endef COMPILE_C = $(call COMPILE,CC) @@ -45,8 +45,11 @@ COMPILE_S = $(call COMPILE,AS) %.o: %.S $(COMPILE_S) -%.ho: %.h - $(CC) $(CCFLAGS) -c $(CC_O) -x c $< +%.i: %.c + $(CC) $(CCFLAGS) $(CC_E) $< + +%.h.c: + $(Q)echo '#include "$*.h"' >$@ %.ver: %.v $(Q)sed 's/$$MAJOR/$($(basename $(@F))_VERSION_MAJOR)/' $^ > $@ @@ -59,7 +62,8 @@ PROGS-$(CONFIG_AVPROBE) += avprobe PROGS-$(CONFIG_AVSERVER) += avserver PROGS := $(PROGS-yes:%=%$(EXESUF)) -OBJS = $(PROGS-yes:%=%.o) cmdutils.o +OBJS = cmdutils.o $(EXEOBJS) +OBJS-avconv = avconv_opt.o avconv_filter.o TESTTOOLS = audiogen videogen rotozoom tiny_psnr base64 HOSTPROGS := $(TESTTOOLS:%=tests/%) doc/print_options TOOLS = qt-faststart trasher @@ -89,10 +93,10 @@ FF_DEP_LIBS := $(DEP_LIBS) all: $(PROGS) -$(TOOLS): %$(EXESUF): %.o - $(LD) $(LDFLAGS) -o $@ $< $(ELIBS) +$(TOOLS): %$(EXESUF): %.o $(EXEOBJS) + $(LD) $(LDFLAGS) $(LD_O) $^ $(ELIBS) -tools/cws2fws$(EXESUF): ELIBS = -lz +tools/cws2fws$(EXESUF): ELIBS = $(ZLIB) config.h: .config .config: $(wildcard $(FFLIBS:%=$(SRC_PATH)/lib%/all*.c)) @@ -101,10 +105,11 @@ config.h: .config @-tput sgr0 2>/dev/null SUBDIR_VARS := CLEANFILES EXAMPLES FFLIBS HOSTPROGS TESTPROGS TOOLS \ - ARCH_HEADERS BUILT_HEADERS SKIPHEADERS \ - ALTIVEC-OBJS ARMV5TE-OBJS ARMV6-OBJS ARMVFP-OBJS MMI-OBJS \ - MMX-OBJS NEON-OBJS VIS-OBJS YASM-OBJS \ - OBJS TESTOBJS + HEADERS ARCH_HEADERS BUILT_HEADERS SKIPHEADERS \ + ARMV5TE-OBJS ARMV6-OBJS VFP-OBJS NEON-OBJS \ + ALTIVEC-OBJS VIS-OBJS \ + MMX-OBJS YASM-OBJS \ + OBJS HOSTOBJS TESTOBJS define RESET $(1) := @@ -121,12 +126,19 @@ endef $(foreach D,$(FFLIBS),$(eval $(call DOSUBDIR,lib$(D)))) -avplay.o: CFLAGS += $(SDL_CFLAGS) -avplay$(EXESUF): FF_EXTRALIBS += $(SDL_LIBS) -avserver$(EXESUF): LDFLAGS += $(AVSERVERLDFLAGS) +define DOPROG +OBJS-$(1) += $(1).o cmdutils.o $(EXEOBJS) +$(1)$(EXESUF): $$(OBJS-$(1)) +$$(OBJS-$(1)): CFLAGS += $(CFLAGS-$(1)) +$(1)$(EXESUF): LDFLAGS += $(LDFLAGS-$(1)) +$(1)$(EXESUF): FF_EXTRALIBS += $(LIBS-$(1)) +-include $$(OBJS-$(1):.o=.d) +endef + +$(foreach P,$(PROGS-yes),$(eval $(call DOPROG,$(P)))) -$(PROGS): %$(EXESUF): %.o cmdutils.o $(FF_DEP_LIBS) - $(LD) $(LDFLAGS) -o $@ $< cmdutils.o $(FF_EXTRALIBS) +$(PROGS): %$(EXESUF): %.o $(FF_DEP_LIBS) + $(LD) $(LDFLAGS) $(LD_O) $(OBJS-$*) $(FF_EXTRALIBS) OBJDIRS += tools @@ -175,7 +187,6 @@ uninstall-data: clean:: $(RM) $(ALLPROGS) $(RM) $(CLEANSUFFIXES) - $(RM) $(TOOLS) $(RM) $(CLEANSUFFIXES:%=tools/%) distclean::