X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=common.mak;h=23907af9f26b60b3360a2ea64400354c067e0b25;hb=4d24c24fcb37fbc51501224526d4282951e93842;hp=d87de3e1f705b56d5d1d57472bc832a093729a8c;hpb=76ca42a8a010acf7939f5635282279c90a313d78;p=ffmpeg diff --git a/common.mak b/common.mak index d87de3e1f70..23907af9f26 100644 --- a/common.mak +++ b/common.mak @@ -5,21 +5,26 @@ all: # make "all" default target ifndef SUBDIR -vpath %.c $(SRC_DIR) -vpath %.h $(SRC_DIR) -vpath %.S $(SRC_DIR) +vpath %.c $(SRC_DIR) +vpath %.h $(SRC_DIR) +vpath %.S $(SRC_DIR) +vpath %.asm $(SRC_DIR) + +ifeq ($(SRC_DIR),$(SRC_PATH_BARE)) +BUILD_ROOT_REL = . +else +BUILD_ROOT_REL = .. +endif ALLFFLIBS = avcodec avdevice avfilter avformat avutil postproc swscale -CFLAGS = -DHAVE_AV_CONFIG_H -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE \ - -D_ISOC9X_SOURCE -I$(BUILD_ROOT) -I$(SRC_PATH) \ - $(addprefix -I$(SRC_PATH)/lib,$(ALLFFLIBS)) $(OPTFLAGS) +CFLAGS := -DHAVE_AV_CONFIG_H -I$(BUILD_ROOT_REL) -I$(SRC_PATH) $(OPTFLAGS) %.o: %.c $(CC) $(CFLAGS) $(LIBOBJFLAGS) -c -o $@ $< %.o: %.S - $(CC) $(CFLAGS) $(LIBOBJFLAGS) -c -o $@ $< + $(AS) $(CFLAGS) $(LIBOBJFLAGS) -c -o $@ $< %.ho: %.h $(CC) $(CFLAGS) $(LIBOBJFLAGS) -Wno-unused -c -o $@ -x c $< @@ -33,57 +38,49 @@ CFLAGS = -DHAVE_AV_CONFIG_H -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE \ %.d: %.cpp $(DEPEND_CMD) > $@ +%.o: %.d + +%$(EXESUF): %.c + +SVN_ENTRIES = $(SRC_PATH_BARE)/.svn/entries +ifeq ($(wildcard $(SVN_ENTRIES)),$(SVN_ENTRIES)) +$(BUILD_ROOT_REL)/version.h: $(SVN_ENTRIES) +endif + +$(BUILD_ROOT_REL)/version.h: $(SRC_PATH_BARE)/version.sh config.mak + $< $(SRC_PATH) $@ $(EXTRA_VERSION) + install: install-libs install-headers uninstall: uninstall-libs uninstall-headers -.PHONY: all depend dep clean distclean install* uninstall* tests +.PHONY: all depend dep *clean install* uninstall* examples testprogs endif -CFLAGS += $(CFLAGS-yes) -OBJS += $(OBJS-yes) -ASM_OBJS += $(ASM_OBJS-yes) -CPP_OBJS += $(CPP_OBJS-yes) -FFLIBS := $(FFLIBS-yes) $(FFLIBS) -TESTS += $(TESTS-yes) +OBJS-$(HAVE_MMX) += $(MMX-OBJS-yes) -FFEXTRALIBS := $(addprefix -l,$(addsuffix $(BUILDSUF),$(FFLIBS))) $(EXTRALIBS) -FFLDFLAGS := $(addprefix -L$(BUILD_ROOT)/lib,$(FFLIBS)) $(LDFLAGS) +CFLAGS += $(CFLAGS-yes) +OBJS += $(OBJS-yes) +FFLIBS := $(FFLIBS-yes) $(FFLIBS) +TESTPROGS += $(TESTPROGS-yes) -SRCS := $(OBJS:.o=.c) $(ASM_OBJS:.o=.S) $(CPP_OBJS:.o=.cpp) -OBJS := $(OBJS) $(ASM_OBJS) $(CPP_OBJS) +FFEXTRALIBS := $(addprefix -l,$(addsuffix $(BUILDSUF),$(FFLIBS))) $(EXTRALIBS) +FFLDFLAGS := $(addprefix -L$(BUILD_ROOT)/lib,$(ALLFFLIBS)) $(LDFLAGS) -SRCS := $(addprefix $(SUBDIR),$(SRCS)) -OBJS := $(addprefix $(SUBDIR),$(OBJS)) -TESTS := $(addprefix $(SUBDIR),$(TESTS)) +EXAMPLES := $(addprefix $(SUBDIR),$(addsuffix -example$(EXESUF),$(EXAMPLES))) +OBJS := $(addprefix $(SUBDIR),$(OBJS)) +TESTPROGS := $(addprefix $(SUBDIR),$(addsuffix -test$(EXESUF),$(TESTPROGS))) -DEP_LIBS:=$(foreach NAME,$(FFLIBS),lib$(NAME)/$($(BUILD_SHARED:yes=S)LIBNAME)) +DEP_LIBS := $(foreach NAME,$(FFLIBS),lib$(NAME)/$($(BUILD_SHARED:yes=S)LIBNAME)) -ALLHEADERS := $(subst $(SRC_DIR)/,$(SUBDIR),$(wildcard $(SRC_DIR)/*.h)) +ALLHEADERS := $(subst $(SRC_DIR)/,$(SUBDIR),$(wildcard $(SRC_DIR)/*.h $(SRC_DIR)/$(ARCH)/*.h)) checkheaders: $(filter-out %_template.ho,$(ALLHEADERS:.h=.ho)) DEPS := $(OBJS:.o=.d) depend dep: $(DEPS) -CLEANFILES += *.o *~ *.a *.lib *.so *.so.* *.dylib *.dll \ - *.def *.dll.a *.exp *.ho *.map - -define RULES -$(SUBDIR)%: $(SUBDIR)%.o $(LIBNAME) - $(CC) $(FFLDFLAGS) -o $$@ $$^ $(FFEXTRALIBS) - -$(SUBDIR)%-test$(EXESUF): $(SUBDIR)%.c $(LIBNAME) - $(CC) $(CFLAGS) $(FFLDFLAGS) -DTEST -o $$@ $$^ $(FFEXTRALIBS) - -clean:: - rm -f $(TESTS) $(addprefix $(SUBDIR),$(CLEANFILES)) - -distclean:: clean - rm -f $(DEPS) -endef - -$(eval $(RULES)) - -tests: $(TESTS) +CLEANSUFFIXES = *.o *~ *.ho +DISTCLEANSUFFIXES = *.d *.pc +LIBSUFFIXES = *.a *.lib *.so *.so.* *.dylib *.dll *.def *.dll.a *.exp *.map -include $(DEPS)