Mercurial > mplayer.hg
changeset 26315:a80f0a7d73f4
Sync with FFmpeg's shiny new non-recursive build system.
author | diego |
---|---|
date | Mon, 07 Apr 2008 22:25:13 +0000 |
parents | 67dbe3155ce5 |
children | 7abf7a9345d9 |
files | common.mak subdir.mak |
diffstat | 2 files changed, 125 insertions(+), 95 deletions(-) [+] |
line wrap: on
line diff
--- a/common.mak Mon Apr 07 21:16:50 2008 +0000 +++ b/common.mak Mon Apr 07 22:25:13 2008 +0000 @@ -2,47 +2,18 @@ # common bits used by all libraries # -SRC_DIR = $(SRC_PATH_BARE)/lib$(NAME) +all: # make "all" default target -LIBVERSION = $(lib$(NAME)_VERSION) -LIBMAJOR = $(lib$(NAME)_VERSION_MAJOR) - +ifeq ($(SUBDIR),) vpath %.c $(SRC_DIR) vpath %.h $(SRC_DIR) vpath %.S $(SRC_DIR) ALLFFLIBS = avcodec avdevice avfilter avformat avutil postproc swscale -CFLAGS += $(CFLAGS-yes) -OBJS += $(OBJS-yes) -ASM_OBJS += $(ASM_OBJS-yes) -CPP_OBJS += $(CPP_OBJS-yes) -FFLIBS += $(FFLIBS-yes) - -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) - -EXTRALIBS := $(addprefix -l,$(addsuffix $(BUILDSUF),$(FFLIBS))) $(EXTRALIBS) -LDFLAGS := $(addprefix -L$(BUILD_ROOT)/lib,$(FFLIBS)) $(LDFLAGS) - -SRCS := $(OBJS:.o=.c) $(ASM_OBJS:.o=.S) $(CPPOBJS:.o=.cpp) -OBJS := $(OBJS) $(ASM_OBJS) $(CPPOBJS) - -all: $(LIBNAME) $(SLIBNAME) - -$(LIBNAME): $(OBJS) - rm -f $@ - $(AR) rc $@ $^ $(EXTRAOBJS) - $(RANLIB) $@ - -$(SLIBNAME): $(SLIBNAME_WITH_MAJOR) - $(LN_S) $^ $@ - -$(SLIBNAME_WITH_MAJOR): $(OBJS) - $(SLIB_CREATE_DEF_CMD) - $(CC) $(SHFLAGS) $(LDFLAGS) -o $@ $^ $(EXTRALIBS) $(EXTRAOBJS) - $(SLIB_EXTRA_CMD) +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) %.o: %.c $(CC) $(CFLAGS) $(LIBOBJFLAGS) -c -o $@ $< @@ -50,75 +21,59 @@ %.o: %.S $(CC) $(CFLAGS) $(LIBOBJFLAGS) -c -o $@ $< -%: %.o $(LIBNAME) - $(CC) $(LDFLAGS) -o $@ $^ $(EXTRALIBS) - %.ho: %.h $(CC) $(CFLAGS) $(LIBOBJFLAGS) -Wno-unused -c -o $@ -x c $< -ALLHEADERS = $(subst $(SRC_DIR)/,,$(wildcard $(SRC_DIR)/*.h)) -checkheaders: $(filter-out %_template.ho,$(ALLHEADERS:.h=.ho)) - -depend dep: .depend - -.depend: $(SRCS) - $(DEPEND_CMD) > .depend - -clean:: - rm -f *.o *~ *.a *.lib *.so *.so.* *.dylib *.dll \ - *.def *.dll.a *.exp *.ho *.map $(TESTS) - -distclean:: clean - rm -f .depend - -INSTALL_TARGETS-$(BUILD_SHARED) += install-lib-shared -INSTALL_TARGETS-$(BUILD_STATIC) += install-lib-static - install: install-libs install-headers -install-libs: $(INSTALL_TARGETS-yes) - -install-lib-shared: $(SLIBNAME) - install -d "$(SHLIBDIR)" - install -m 755 $(SLIBNAME) "$(SHLIBDIR)/$(SLIBNAME_WITH_VERSION)" - $(STRIP) "$(SHLIBDIR)/$(SLIBNAME_WITH_VERSION)" - cd "$(SHLIBDIR)" && \ - $(LN_S) $(SLIBNAME_WITH_VERSION) $(SLIBNAME_WITH_MAJOR) - cd "$(SHLIBDIR)" && \ - $(LN_S) $(SLIBNAME_WITH_VERSION) $(SLIBNAME) - $(SLIB_INSTALL_EXTRA_CMD) - -install-lib-static: $(LIBNAME) - install -d "$(LIBDIR)" - install -m 644 $(LIBNAME) "$(LIBDIR)" - $(LIB_INSTALL_EXTRA_CMD) - -INCINSTDIR = $(INCDIR)/lib$(NAME) - -install-headers:: - install -d "$(INCINSTDIR)" - install -d "$(LIBDIR)/pkgconfig" - install -m 644 $(addprefix "$(SRC_DIR)"/,$(HEADERS)) "$(INCINSTDIR)" - install -m 644 $(BUILD_ROOT)/lib$(NAME).pc "$(LIBDIR)/pkgconfig" - uninstall: uninstall-libs uninstall-headers -uninstall-libs:: - -rm -f "$(SHLIBDIR)/$(SLIBNAME_WITH_MAJOR)" \ - "$(SHLIBDIR)/$(SLIBNAME)" \ - "$(SHLIBDIR)/$(SLIBNAME_WITH_VERSION)" - -$(SLIB_UNINSTALL_EXTRA_CMD) - -rm -f "$(LIBDIR)/$(LIBNAME)" +.PHONY: all depend dep clean distclean install* uninstall* tests +endif + +CFLAGS += $(CFLAGS-yes) +OBJS += $(OBJS-yes) +ASM_OBJS += $(ASM_OBJS-yes) +CPP_OBJS += $(CPP_OBJS-yes) +FFLIBS := $(FFLIBS-yes) $(FFLIBS) + +FFEXTRALIBS := $(addprefix -l,$(addsuffix $(BUILDSUF),$(FFLIBS))) $(EXTRALIBS) +FFLDFLAGS := $(addprefix -L$(BUILD_ROOT)/lib,$(FFLIBS)) $(LDFLAGS) + +SRCS := $(OBJS:.o=.c) $(ASM_OBJS:.o=.S) $(CPP_OBJS:.o=.cpp) +OBJS := $(OBJS) $(ASM_OBJS) $(CPP_OBJS) + +SRCS := $(addprefix $(SUBDIR),$(SRCS)) +OBJS := $(addprefix $(SUBDIR),$(OBJS)) +TESTS := $(addprefix $(SUBDIR),$(TESTS)) + +ALLHEADERS := $(subst $(SRC_DIR)/,$(SUBDIR),$(wildcard $(SRC_DIR)/*.h)) +checkheaders: $(filter-out %_template.ho,$(ALLHEADERS:.h=.ho)) -uninstall-headers:: - rm -f $(addprefix "$(INCINSTDIR)/",$(HEADERS)) - rm -f "$(LIBDIR)/pkgconfig/lib$(NAME).pc" +depend dep: $(SUBDIR).depend + +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) + +$(SUBDIR).depend: $(SRCS) + $(DEPEND_CMD) > $$@ + +clean:: + rm -f $(TESTS) $(addprefix $(SUBDIR),$(CLEANFILES)) + +distclean:: clean + rm -f $(SUBDIR).depend +endef + +$(eval $(RULES)) tests: $(TESTS) -%-test$(EXESUF): %.c $(LIBNAME) - $(CC) $(CFLAGS) $(LDFLAGS) -DTEST -o $@ $^ $(EXTRALIBS) - -.PHONY: all depend dep clean distclean install* uninstall* tests - --include .depend +-include $(SUBDIR).depend
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/subdir.mak Mon Apr 07 22:25:13 2008 +0000 @@ -0,0 +1,75 @@ +SRC_DIR := $(SRC_PATH_BARE)/lib$(NAME) + +include $(SUBDIR)../common.mak + +LIBVERSION := $(lib$(NAME)_VERSION) +LIBMAJOR := $(lib$(NAME)_VERSION_MAJOR) + +ifeq ($(BUILD_STATIC),yes) +all: $(SUBDIR)$(LIBNAME) + +install-libs: install-lib$(NAME)-static + +$(SUBDIR)$(LIBNAME): $(OBJS) + rm -f $@ + $(AR) rc $@ $^ $(EXTRAOBJS) + $(RANLIB) $@ +endif + +INCINSTDIR := $(INCDIR)/lib$(NAME) + +define RULES +ifeq ($(BUILD_SHARED),yes) +all: $(SUBDIR)$(SLIBNAME) + +install-libs: install-lib$(NAME)-shared + +$(SUBDIR)$(SLIBNAME): $(SUBDIR)$(SLIBNAME_WITH_MAJOR) + cd ./$(SUBDIR) && $(LN_S) $(SLIBNAME_WITH_MAJOR) $(SLIBNAME) + +$(SUBDIR)$(SLIBNAME_WITH_MAJOR): $(OBJS) + $(SLIB_CREATE_DEF_CMD) + $(CC) $(SHFLAGS) $(FFLDFLAGS) -o $$@ $$^ $(FFEXTRALIBS) $(EXTRAOBJS) + $(SLIB_EXTRA_CMD) + +ifneq ($(SUBDIR),) +$(SUBDIR)$(SLIBNAME_WITH_MAJOR): \ + $(foreach L,$(FFLIBS),lib$(L)/$(SLIBPREF)$(L)$(SLIBSUF)) +endif +endif + +install-lib$(NAME)-shared: $(SUBDIR)$(SLIBNAME) + install -d "$(SHLIBDIR)" + install -m 755 $(SUBDIR)$(SLIBNAME) "$(SHLIBDIR)/$(SLIBNAME_WITH_VERSION)" + $(STRIP) "$(SHLIBDIR)/$(SLIBNAME_WITH_VERSION)" + cd "$(SHLIBDIR)" && \ + $(LN_S) $(SLIBNAME_WITH_VERSION) $(SLIBNAME_WITH_MAJOR) + cd "$(SHLIBDIR)" && \ + $(LN_S) $(SLIBNAME_WITH_VERSION) $(SLIBNAME) + $(SLIB_INSTALL_EXTRA_CMD) + +install-lib$(NAME)-static: $(SUBDIR)$(LIBNAME) + install -d "$(LIBDIR)" + install -m 644 $(SUBDIR)$(LIBNAME) "$(LIBDIR)" + $(LIB_INSTALL_EXTRA_CMD) + +install-headers:: + install -d "$(INCINSTDIR)" + install -d "$(LIBDIR)/pkgconfig" + install -m 644 $(addprefix "$(SRC_DIR)"/,$(HEADERS)) "$(INCINSTDIR)" + install -m 644 $(BUILD_ROOT)/lib$(NAME).pc "$(LIBDIR)/pkgconfig" + +uninstall-libs:: + -rm -f "$(SHLIBDIR)/$(SLIBNAME_WITH_MAJOR)" \ + "$(SHLIBDIR)/$(SLIBNAME)" \ + "$(SHLIBDIR)/$(SLIBNAME_WITH_VERSION)" + -$(SLIB_UNINSTALL_EXTRA_CMD) + -rm -f "$(LIBDIR)/$(LIBNAME)" + +uninstall-headers:: + rm -f $(addprefix "$(INCINSTDIR)/",$(HEADERS)) + rm -f "$(LIBDIR)/pkgconfig/lib$(NAME).pc" + -rmdir "$(INCDIR)" +endef + +$(eval $(RULES))