Commit 71c61f62 authored by Måns Rullgård's avatar Måns Rullgård

non-recursive makefiles

Originally committed as revision 12760 to svn://svn.ffmpeg.org/ffmpeg/trunk
parent c09ed33e
......@@ -6,8 +6,6 @@ include config.mak
SRC_DIR = $(SRC_PATH_BARE)
vpath %.c $(SRC_PATH_BARE)
vpath %.h $(SRC_PATH_BARE)
vpath %.texi $(SRC_PATH_BARE)
PROGS-$(CONFIG_FFMPEG) += ffmpeg
......@@ -30,6 +28,14 @@ FFLIBS-$(CONFIG_SWSCALE) += swscale
FFLIBS := avdevice avformat avcodec avutil
include common.mak
FF_LDFLAGS := $(FFLDFLAGS)
FF_EXTRALIBS := $(FFEXTRALIBS)
S := $(BUILD_SHARED:yes=S)
DEP_LIBS := $(foreach L,$(FFLIBS),lib$(L)/$($(S)LIBPREF)$(L)$($(S)LIBSUF))
ALL_TARGETS-$(CONFIG_VHOOK) += videohook
ALL_TARGETS-$(BUILD_DOC) += documentation
......@@ -40,7 +46,7 @@ INSTALL_TARGETS-$(BUILD_DOC) += install-man
endif
INSTALL_PROGS_TARGETS-$(BUILD_SHARED) = install-libs
main: lib $(PROGS) $(ALL_TARGETS-yes)
all: $(DEP_LIBS) $(PROGS) $(ALL_TARGETS-yes)
$(PROGS): %$(EXESUF): %_g$(EXESUF)
cp -p $< $@
......@@ -48,13 +54,20 @@ $(PROGS): %$(EXESUF): %_g$(EXESUF)
.depend: version.h $(PROGS_SRCS)
# bandaid to disable triggering shared library installation routines
DISABLE=yes
SUBDIR_VARS := OBJS ASM_OBJS CPP_OBJS FFLIBS CLEANFILES
include common.mak
define RESET
$(1) :=
$(1)-yes :=
endef
S := $(BUILD_SHARED:yes=S)
DEP_LIBS := $(foreach L,$(FFLIBS),lib$(L)/$($(S)LIBPREF)$(L)$($(S)LIBSUF))
define DOSUBDIR
$(foreach V,$(SUBDIR_VARS),$(eval $(call RESET,$(V))))
SUBDIR := $(1)/
include $(1)/Makefile
endef
$(foreach D,$(FFLIBS),$(eval $(call DOSUBDIR,lib$(D))))
VHOOKCFLAGS += $(filter-out -mdynamic-no-pic,$(CFLAGS))
......@@ -78,23 +91,11 @@ VHOOKCFLAGS += $(VHOOKCFLAGS-yes)
vhook/%.o: CFLAGS:=$(VHOOKCFLAGS)
MAKE-yes = $(MAKE)
MAKE- = : $(MAKE)
lib:
$(MAKE) -C libavutil all
$(MAKE) -C libavcodec all
$(MAKE) -C libavformat all
$(MAKE) -C libavdevice all
$(MAKE-$(CONFIG_POSTPROC)) -C libpostproc all
$(MAKE-$(CONFIG_SWSCALE)) -C libswscale all
$(MAKE-$(CONFIG_AVFILTER)) -C libavfilter all
ffplay_g$(EXESUF): EXTRALIBS += $(SDL_LIBS)
ffserver_g$(EXESUF): LDFLAGS += $(FFSERVERLDFLAGS)
ffplay_g$(EXESUF): FF_EXTRALIBS += $(SDL_LIBS)
ffserver_g$(EXESUF): FF_LDFLAGS += $(FFSERVERLDFLAGS)
%_g$(EXESUF): %.o cmdutils.o .libs
$(CC) $(LDFLAGS) -o $@ $< cmdutils.o $(EXTRALIBS)
%_g$(EXESUF): %.o cmdutils.o $(DEP_LIBS)
$(CC) $(FF_LDFLAGS) -o $@ $< cmdutils.o $(FF_EXTRALIBS)
SVN_ENTRIES = $(SRC_PATH_BARE)/.svn/entries
ifeq ($(wildcard $(SVN_ENTRIES)),$(SVN_ENTRIES))
......@@ -104,18 +105,18 @@ endif
version.h:
$(SRC_PATH)/version.sh $(SRC_PATH)
output_example$(EXESUF): output_example.o .libs
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(EXTRALIBS)
output_example$(EXESUF): output_example.o $(DEP_LIBS)
$(CC) $(CFLAGS) $(FF_LDFLAGS) -o $@ $< $(FF_EXTRALIBS)
tools/%$(EXESUF): tools/%.c
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(EXTRALIBS)
$(CC) $(CFLAGS) $(FF_LDFLAGS) -o $@ $< $(FF_EXTRALIBS)
ffplay.o .depend: CFLAGS += $(SDL_CFLAGS)
ffmpeg.o ffplay.o ffserver.o: version.h
# vhooks compile fine without libav*, but need them nonetheless.
videohook: .libs $(HOOKS)
videohook: $(DEP_LIBS) $(HOOKS)
vhook/%$(SLIBSUF): vhook/%.o
$(CC) $(LDFLAGS) -o $@ $(VHOOKSHFLAGS) $< $(VHOOKLIBS) $(LIBS_$(@F))
......@@ -148,24 +149,6 @@ install-vhook: videohook
install -d "$(SHLIBDIR)/vhook"
install -m 755 $(HOOKS) "$(SHLIBDIR)/vhook"
install-libs:
$(MAKE) -C libavutil install-libs
$(MAKE) -C libavcodec install-libs
$(MAKE) -C libavformat install-libs
$(MAKE) -C libavdevice install-libs
$(MAKE-$(CONFIG_POSTPROC)) -C libpostproc install-libs
$(MAKE-$(CONFIG_SWSCALE)) -C libswscale install-libs
$(MAKE-$(CONFIG_AVFILTER)) -C libavfilter install-libs
install-headers::
$(MAKE) -C libavutil install-headers
$(MAKE) -C libavcodec install-headers
$(MAKE) -C libavformat install-headers
$(MAKE) -C libavdevice install-headers
$(MAKE-$(CONFIG_POSTPROC)) -C libpostproc install-headers
$(MAKE) -C libswscale install-headers
$(MAKE-$(CONFIG_AVFILTER)) -C libavfilter install-headers
uninstall: uninstall-progs uninstall-man uninstall-vhook
uninstall-progs:
......@@ -178,51 +161,13 @@ uninstall-vhook:
rm -f $(addprefix "$(SHLIBDIR)/",$(ALLHOOKS_SRCS:.c=$(SLIBSUF)))
-rmdir "$(SHLIBDIR)/vhook/"
uninstall-libs::
$(MAKE) -C libavutil uninstall-libs
$(MAKE) -C libavcodec uninstall-libs
$(MAKE) -C libavformat uninstall-libs
$(MAKE) -C libavdevice uninstall-libs
$(MAKE) -C libpostproc uninstall-libs
$(MAKE) -C libswscale uninstall-libs
$(MAKE) -C libavfilter uninstall-libs
uninstall-headers::
$(MAKE) -C libavutil uninstall-headers
$(MAKE) -C libavcodec uninstall-headers
$(MAKE) -C libavformat uninstall-headers
$(MAKE) -C libavdevice uninstall-headers
$(MAKE) -C libpostproc uninstall-headers
$(MAKE) -C libswscale uninstall-headers
$(MAKE) -C libavfilter uninstall-headers
-rmdir "$(INCDIR)"
depend dep: .vhookdep
$(MAKE) -C libavutil depend
$(MAKE) -C libavcodec depend
$(MAKE) -C libavformat depend
$(MAKE) -C libavdevice depend
$(MAKE-$(CONFIG_POSTPROC)) -C libpostproc depend
$(MAKE-$(CONFIG_SWSCALE)) -C libswscale depend
$(MAKE-$(CONFIG_AVFILTER)) -C libavfilter depend
.vhookdep: $(ALLHOOKS_SRCS) version.h
$(VHOOK_DEPEND_CMD) > $@
$(DEP_LIBS): lib
.libs: $(DEP_LIBS)
touch $@
clean::
$(MAKE) -C libavutil clean
$(MAKE) -C libavcodec clean
$(MAKE) -C libavformat clean
$(MAKE) -C libavdevice clean
$(MAKE) -C libpostproc clean
$(MAKE) -C libswscale clean
$(MAKE) -C libavfilter clean
rm -f .libs gmon.out TAGS $(ALLPROGS) $(ALLPROGS_G) \
rm -f gmon.out TAGS $(ALLPROGS) $(ALLPROGS_G) \
output_example$(EXESUF)
rm -f doc/*.html doc/*.pod doc/*.1
rm -rf tests/vsynth1 tests/vsynth2 tests/data tests/asynth1.sw tests/*~
......@@ -231,13 +176,6 @@ clean::
rm -f vhook/*.o vhook/*~ vhook/*.so vhook/*.dylib vhook/*.dll
distclean::
$(MAKE) -C libavutil distclean
$(MAKE) -C libavcodec distclean
$(MAKE) -C libavformat distclean
$(MAKE) -C libavdevice distclean
$(MAKE) -C libpostproc distclean
$(MAKE) -C libswscale distclean
$(MAKE) -C libavfilter distclean
rm -f .vhookdep version.h config.* *.pc
# regression tests
......@@ -404,10 +342,10 @@ tests/asynth1.sw: tests/audiogen$(EXESUF)
$(BUILD_ROOT)/$< $@
%$(EXESUF): %.c
$(CC) $(LDFLAGS) $(CFLAGS) -o $@ $<
$(CC) $(FF_LDFLAGS) $(CFLAGS) -o $@ $<
tests/seek_test$(EXESUF): tests/seek_test.c .libs
$(CC) $(LDFLAGS) $(CFLAGS) -o $@ $< $(EXTRALIBS)
tests/seek_test$(EXESUF): tests/seek_test.c $(DEP_LIBS)
$(CC) $(FF_LDFLAGS) $(CFLAGS) -o $@ $< $(FF_EXTRALIBS)
.PHONY: lib videohook documentation TAGS
......
......@@ -2,47 +2,18 @@
# common bits used by all libraries
#
SRC_DIR = $(SRC_PATH_BARE)/lib$(NAME)
LIBVERSION = $(lib$(NAME)_VERSION)
LIBMAJOR = $(lib$(NAME)_VERSION_MAJOR)
all: # make "all" default target
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) $(CPP_OBJS:.o=.cpp)
OBJS := $(OBJS) $(ASM_OBJS) $(CPP_OBJS)
all: $(LIBNAME) $(SLIBNAME)
$(LIBNAME)$(DISABLE): $(OBJS)
rm -f $@
$(AR) rc $@ $^ $(EXTRAOBJS)
$(RANLIB) $@
$(SLIBNAME)$(DISABLE): $(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 @@ $(SLIBNAME_WITH_MAJOR): $(OBJS)
%.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
install: install-libs install-headers
.depend: $(SRCS)
$(DEPEND_CMD) > .depend
uninstall: uninstall-libs uninstall-headers
clean::
rm -f *.o *~ *.a *.lib *.so *.so.* *.dylib *.dll \
*.def *.dll.a *.exp *.ho *.map $(TESTS)
.PHONY: all depend dep clean distclean install* uninstall* tests
endif
distclean:: clean
rm -f .depend
CFLAGS += $(CFLAGS-yes)
OBJS += $(OBJS-yes)
ASM_OBJS += $(ASM_OBJS-yes)
CPP_OBJS += $(CPP_OBJS-yes)
FFLIBS := $(FFLIBS-yes) $(FFLIBS)
INSTALL_LIB_TARGETS-$(BUILD_SHARED) += install-lib-shared
INSTALL_LIB_TARGETS-$(BUILD_STATIC) += install-lib-static
FFEXTRALIBS := $(addprefix -l,$(addsuffix $(BUILDSUF),$(FFLIBS))) $(EXTRALIBS)
FFLDFLAGS := $(addprefix -L$(BUILD_ROOT)/lib,$(FFLIBS)) $(LDFLAGS)
install: install-libs install-headers
SRCS := $(OBJS:.o=.c) $(ASM_OBJS:.o=.S) $(CPP_OBJS:.o=.cpp)
OBJS := $(OBJS) $(ASM_OBJS) $(CPP_OBJS)
install-libs$(DISABLE): $(INSTALL_LIB_TARGETS-yes)
SRCS := $(addprefix $(SUBDIR),$(SRCS))
OBJS := $(addprefix $(SUBDIR),$(OBJS))
TESTS := $(addprefix $(SUBDIR),$(TESTS))
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)
ALLHEADERS := $(subst $(SRC_DIR)/,$(SUBDIR),$(wildcard $(SRC_DIR)/*.h))
checkheaders: $(filter-out %_template.ho,$(ALLHEADERS:.h=.ho))
install-lib-static: $(LIBNAME)
install -d "$(LIBDIR)"
install -m 644 $(LIBNAME) "$(LIBDIR)"
$(LIB_INSTALL_EXTRA_CMD)
depend dep: $(SUBDIR).depend
INCINSTDIR = $(INCDIR)/lib$(NAME)
CLEANFILES += *.o *~ *.a *.lib *.so *.so.* *.dylib *.dll \
*.def *.dll.a *.exp *.ho *.map
install-headers$(DISABLE)::
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"
define RULES
$(SUBDIR)%: $(SUBDIR)%.o $(LIBNAME)
$(CC) $(FFLDFLAGS) -o $$@ $$^ $(FFEXTRALIBS)
uninstall: uninstall-libs uninstall-headers
$(SUBDIR)%-test$(EXESUF): $(SUBDIR)%.c $(LIBNAME)
$(CC) $(CFLAGS) $(FFLDFLAGS) -DTEST -o $$@ $$^ $(FFEXTRALIBS)
uninstall-libs::
-rm -f "$(SHLIBDIR)/$(SLIBNAME_WITH_MAJOR)" \
"$(SHLIBDIR)/$(SLIBNAME)" \
"$(SHLIBDIR)/$(SLIBNAME_WITH_VERSION)"
-$(SLIB_UNINSTALL_EXTRA_CMD)
-rm -f "$(LIBDIR)/$(LIBNAME)"
$(SUBDIR).depend: $(SRCS)
$(DEPEND_CMD) > $$@
uninstall-headers::
rm -f $(addprefix "$(INCINSTDIR)/",$(HEADERS))
rm -f "$(LIBDIR)/pkgconfig/lib$(NAME).pc"
clean::
rm -f $(TESTS) $(addprefix $(SUBDIR),$(CLEANFILES))
tests: $(TESTS)
distclean:: clean
rm -f $(SUBDIR).depend
endef
%-test$(EXESUF): %.c $(LIBNAME)
$(CC) $(CFLAGS) $(LDFLAGS) -DTEST -o $@ $^ $(EXTRALIBS)
$(eval $(RULES))
.PHONY: all depend dep clean distclean install* uninstall* tests
tests: $(TESTS)
-include .depend
-include $(SUBDIR).depend
......@@ -940,7 +940,7 @@ SLIBNAME_WITH_MAJOR='$(SLIBNAME).$(LIBMAJOR)'
LIB_INSTALL_EXTRA_CMD='$(RANLIB) "$(LIBDIR)/$(LIBNAME)"'
# gcc stupidly only outputs the basename of targets with -MM
DEPEND_CMD='$(CC) -MM $(CFLAGS) $(filter-out %.h,$^) | sed "s,[0-9a-z._-]*: \($(SRC_DIR)/\)*\([a-z0-9]*/\)[^/]* ,\\2&,"'
DEPEND_CMD='$(CC) -MM $(CFLAGS) $(filter-out %.h,$$^) | sed "s,[0-9a-z._-]*: \($(SRC_DIR)/\)*\([a-z0-9]*/\)[^/]* ,\\2&,;s,^.*:,\$$$$(SUBDIR)&,"'
VHOOK_DEPEND_CMD='$(CC) -MM $(VHOOKCFLAGS) $(filter-out %.h,$^) | sed "s,^\([a-z]\),vhook/\\1,"'
# find source path
......@@ -1105,7 +1105,7 @@ case $target_os in
darwin)
disable need_memalign
SHFLAGS='-dynamiclib -Wl,-single_module -Wl,-install_name,$(SHLIBDIR)/$(SLIBNAME),-current_version,$(LIBVERSION),-compatibility_version,$(LIBMAJOR) -Wl,-read_only_relocs,suppress'
VHOOKSHFLAGS='-dynamiclib -Wl,-single_module -flat_namespace -undefined suppress -Wl,-install_name,$(SHLIBDIR)/vhook/$@'
VHOOKSHFLAGS='-dynamiclib -Wl,-single_module -flat_namespace -undefined suppress -Wl,-install_name,$(SHLIBDIR)/vhook/$$@'
strip="strip -x"
FFLDFLAGS="-Wl,-dynamic,-search_paths_first"
SLIBSUF=".dylib"
......@@ -1128,10 +1128,10 @@ case $target_os in
EXESUF=".exe"
SLIBNAME_WITH_VERSION='$(SLIBPREF)$(FULLNAME)-$(LIBVERSION)$(SLIBSUF)'
SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)'
SLIB_EXTRA_CMD='-lib /machine:i386 /def:$(@:$(SLIBSUF)=.def)'
SLIB_INSTALL_EXTRA_CMD='-install -m 644 $(SLIBNAME_WITH_MAJOR:$(SLIBSUF)=.lib) "$(SHLIBDIR)/$(SLIBNAME:$(SLIBSUF)=.lib)"'
SLIB_EXTRA_CMD='-lib /machine:i386 /def:$$(@:$(SLIBSUF)=.def)'
SLIB_INSTALL_EXTRA_CMD='-install -m 644 $(SUBDIR)$(SLIBNAME_WITH_MAJOR:$(SLIBSUF)=.lib) "$(SHLIBDIR)/$(SLIBNAME:$(SLIBSUF)=.lib)"'
SLIB_UNINSTALL_EXTRA_CMD='rm -f "$(SHLIBDIR)/$(SLIBNAME:$(SLIBSUF)=.lib)"'
SHFLAGS='-shared -Wl,--output-def,$(@:$(SLIBSUF)=.def) -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-auto-image-base'
SHFLAGS='-shared -Wl,--output-def,$$(@:$(SLIBSUF)=.def) -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-auto-image-base'
;;
cygwin*)
target_os=cygwin
......@@ -1168,22 +1168,22 @@ case $target_os in
ln_s="cp -f"
EXESUF=".exe"
FFLDFLAGS="-Zomf -Zbin-files -Zargs-wild -Zmap"
SHFLAGS='$(NAME).def -Zdll -Zomf'
SHFLAGS='$(SUBDIR)$(NAME).def -Zdll -Zomf'
FFSERVERLDFLAGS=""
LIBSUF="_s.a"
SLIBPREF=""
SLIBSUF=".dll"
SLIBNAME_WITH_VERSION='$(SLIBPREF)$(NAME)-$(LIBVERSION)$(SLIBSUF)'
SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(shell echo $(NAME) | cut -c1-6)$(LIBMAJOR)$(SLIBSUF)'
SLIB_CREATE_DEF_CMD='echo LIBRARY $(SLIBNAME_WITH_MAJOR) INITINSTANCE TERMINSTANCE > $(NAME).def; \
echo PROTMODE >> $(NAME).def; \
echo CODE PRELOAD MOVEABLE DISCARDABLE >> $(NAME).def; \
echo DATA PRELOAD MOVEABLE MULTIPLE NONSHARED >> $(NAME).def; \
echo EXPORTS >> $(NAME).def; \
emxexp -o $(OBJS) >> $(NAME).def'
SLIB_EXTRA_CMD='emximp -o $(LIBPREF)$(NAME)_dll.a $(NAME).def; \
emximp -o $(LIBPREF)$(NAME)_dll.lib $(NAME).def;'
SLIB_INSTALL_EXTRA_CMD='install -m 644 $(LIBPREF)$(NAME)_dll.a $(LIBPREF)$(NAME)_dll.lib "$(LIBDIR)"'
SLIB_CREATE_DEF_CMD='echo LIBRARY $(SLIBNAME_WITH_MAJOR) INITINSTANCE TERMINSTANCE > $(SUBDIR)$(NAME).def; \
echo PROTMODE >> $(SUBDIR)$(NAME).def; \
echo CODE PRELOAD MOVEABLE DISCARDABLE >> $(SUBDIR)$(NAME).def; \
echo DATA PRELOAD MOVEABLE MULTIPLE NONSHARED >> $(SUBDIR)$(NAME).def; \
echo EXPORTS >> $(SUBDIR)$(NAME).def; \
emxexp -o $(OBJS) >> $(SUBDIR)$(NAME).def'
SLIB_EXTRA_CMD='emximp -o $(SUBDIR)$(LIBPREF)$(NAME)_dll.a $(SUBDIR)$(NAME).def; \
emximp -o $(SUBDIR)$(LIBPREF)$(NAME)_dll.lib $(SUBDIR)$(NAME).def;'
SLIB_INSTALL_EXTRA_CMD='install -m 644 $(SUBDIR)$(LIBPREF)$(NAME)_dll.a $(SUBDIR)$(LIBPREF)$(NAME)_dll.lib "$(LIBDIR)"'
SLIB_UNINSTALL_EXTRA_CMD='rm -f "$(LIBDIR)"/$(LIBPREF)$(NAME)_dll.a "$(LIBDIR)"/$(LIBPREF)$(NAME)_dll.lib'
disable vhook
;;
......@@ -2096,6 +2096,7 @@ if enabled source_path_used; then
FILES="\
Makefile \
common.mak \
subdir.mak \
doc/texi2pod.pl \
libavcodec/Makefile \
libavdevice/Makefile \
......
......@@ -2,7 +2,7 @@
# libavcodec Makefile
# (c) 2000-2005 Fabrice Bellard
#
include ../config.mak
include $(SUBDIR)../config.mak
NAME = avcodec
FFLIBS = avutil
......@@ -449,7 +449,7 @@ ALTIVEC-OBJS-$(CONFIG_VC1_DECODER) += ppc/vc1dsp_altivec.o
ALTIVEC-OBJS-$(CONFIG_WMV3_DECODER) += ppc/vc1dsp_altivec.o
# -maltivec is needed in order to build AltiVec code.
$(ALTIVEC-OBJS-yes): CFLAGS += -maltivec -mabi=altivec
$(addprefix $(SUBDIR),$(ALTIVEC-OBJS-yes)): CFLAGS += -maltivec -mabi=altivec
# check_altivec must be built without -maltivec
OBJS-$(HAVE_ALTIVEC) += $(ALTIVEC-OBJS-yes) \
......@@ -469,23 +469,22 @@ ifeq ($(ARCH_X86),yes)
TESTS += cpuid-test$(EXESUF) motion-test$(EXESUF)
endif
include ../common.mak
clean::
rm -f \
alpha/*.o alpha/*~ \
armv4l/*.o armv4l/*~ \
bfin/*.o bfin/*~ \
i386/*.o i386/*~ \
mlib/*.o mlib/*~ \
ppc/*.o ppc/*~ \
ps2/*.o ps2/*~ \
sh4/*.o sh4/*~ \
sparc/*.o sparc/*~ \
apiexample$(EXESUF)
cpuid-test$(EXESUF): i386/cputest.c
apiexample$(EXESUF): apiexample.o $(LIBNAME)
dct-test$(EXESUF): dct-test.o fdctref.o $(LIBNAME)
fft-test$(EXESUF): fft-test.o $(LIBNAME)
motion-test$(EXESUF): motion-test.o $(LIBNAME)
CLEANFILES = \
alpha/*.o alpha/*~ \
armv4l/*.o armv4l/*~ \
bfin/*.o bfin/*~ \
i386/*.o i386/*~ \
mlib/*.o mlib/*~ \
ppc/*.o ppc/*~ \
ps2/*.o ps2/*~ \
sh4/*.o sh4/*~ \
sparc/*.o sparc/*~ \
apiexample$(EXESUF)
include $(SUBDIR)../subdir.mak
$(SUBDIR)cpuid-test$(EXESUF): $(SUBDIR)i386/cputest.c
$(SUBDIR)apiexample$(EXESUF): $(SUBDIR)apiexample.o $(SUBDIR)$(LIBNAME)
$(SUBDIR)dct-test$(EXESUF): $(SUBDIR)dct-test.o fdctref.o $(SUBDIR)$(LIBNAME)
$(SUBDIR)fft-test$(EXESUF): $(SUBDIR)fft-test.o $(SUBDIR)$(LIBNAME)
$(SUBDIR)motion-test$(EXESUF): $(SUBDIR)motion-test.o $(SUBDIR)$(LIBNAME)
include ../config.mak
include $(SUBDIR)../config.mak
NAME = avdevice
FFLIBS = avformat avcodec avutil
......@@ -23,4 +23,4 @@ OBJS-$(CONFIG_LIBDC1394_DEMUXER) += libdc1394.o
CPP_OBJS-$(CONFIG_AUDIO_BEOS_DEMUXER) += beosaudio.o
CPP_OBJS-$(CONFIG_AUDIO_BEOS_MUXER) += beosaudio.o
include ../common.mak
include $(SUBDIR)../subdir.mak
include ../config.mak
include $(SUBDIR)../config.mak
NAME = avfilter
FFLIBS = avcodec avutil
......@@ -14,4 +14,4 @@ OBJS = allfilters.o \
HEADERS = avfilter.h
include ../common.mak
include $(SUBDIR)../subdir.mak
......@@ -2,7 +2,7 @@
# libavformat Makefile
# (c) 2000-2003 Fabrice Bellard
#
include ../config.mak
include $(SUBDIR)../config.mak
NAME = avformat
FFLIBS = avcodec avutil
......@@ -198,4 +198,4 @@ OBJS-$(CONFIG_RTP_PROTOCOL) += rtpproto.o
OBJS-$(CONFIG_TCP_PROTOCOL) += tcp.o
OBJS-$(CONFIG_UDP_PROTOCOL) += udp.o
include ../common.mak
include $(SUBDIR)../subdir.mak
include ../config.mak
include $(SUBDIR)../config.mak
NAME = avutil
......@@ -41,9 +41,8 @@ HEADERS = adler32.h \
TESTS = $(addsuffix -test$(EXESUF), adler32 aes crc des lls md5 sha1 softfloat tree)
include ../common.mak
include $(SUBDIR)../subdir.mak
lzo-test$(EXESUF): EXTRALIBS += -llzo2
$(SUBDIR)lzo-test$(EXESUF): EXTRALIBS += -llzo2
clean::
rm -f lzo-test$(EXESUF)
CLEANFILES = lzo-test$(EXESUF)
include ../config.mak
include $(SUBDIR)../config.mak
NAME = postproc
FFLIBS = avutil
......@@ -7,4 +7,4 @@ HEADERS = postprocess.h
OBJS = postprocess.o
include ../common.mak
include $(SUBDIR)../subdir.mak
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))
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment