8b2121e3 |
#
# common bits used by all libraries
#
|
71c61f62 |
all: # make "all" default target |
0e32c8c6 |
|
8e255b8b |
ifndef SUBDIR |
c415857d |
vpath %.c $(SRC_DIR)
vpath %.h $(SRC_DIR)
vpath %.S $(SRC_DIR) |
304d586d |
vpath %.asm $(SRC_DIR) |
a9785f58 |
vpath %.v $(SRC_DIR) |
8b2121e3 |
|
9e6165b5 |
ifeq ($(SRC_DIR),$(SRC_PATH_BARE))
BUILD_ROOT_REL = .
else
BUILD_ROOT_REL = ..
endif
|
5671fc14 |
ALLFFLIBS = avcodec avdevice avfilter avformat avutil postproc swscale
|
9e6165b5 |
CFLAGS := -DHAVE_AV_CONFIG_H -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE \ |
ad1d8710 |
-I$(BUILD_ROOT_REL) -I$(SRC_PATH) $(OPTFLAGS) |
8b2121e3 |
%.o: %.c
$(CC) $(CFLAGS) $(LIBOBJFLAGS) -c -o $@ $<
%.o: %.S
$(CC) $(CFLAGS) $(LIBOBJFLAGS) -c -o $@ $<
|
e4d86a57 |
%.ho: %.h
$(CC) $(CFLAGS) $(LIBOBJFLAGS) -Wno-unused -c -o $@ -x c $<
|
caec74dd |
%.d: %.c
$(DEPEND_CMD) > $@
%.d: %.S
$(DEPEND_CMD) > $@
%.d: %.cpp
$(DEPEND_CMD) > $@
|
18c64005 |
%.o: %.d
|
bf237413 |
%$(EXESUF): %.c
|
a9785f58 |
%.ver: %.v
sed 's/$$MAJOR/$($(basename $(@F))_VERSION_MAJOR)/' $^ > $@
|
9e6165b5 |
SVN_ENTRIES = $(SRC_PATH_BARE)/.svn/entries
ifeq ($(wildcard $(SVN_ENTRIES)),$(SVN_ENTRIES))
$(BUILD_ROOT_REL)/version.h: $(SVN_ENTRIES)
endif
|
f2f35d33 |
$(BUILD_ROOT_REL)/version.h: $(SRC_PATH_BARE)/version.sh |
1db2c5c9 |
$< $(SRC_PATH) $@ $(EXTRA_VERSION) |
9e6165b5 |
|
71c61f62 |
install: install-libs install-headers |
7716f7ff |
|
71c61f62 |
uninstall: uninstall-libs uninstall-headers |
8b2121e3 |
|
71c61f62 |
.PHONY: all depend dep clean distclean install* uninstall* tests
endif |
8b2121e3 |
|
71c61f62 |
CFLAGS += $(CFLAGS-yes)
OBJS += $(OBJS-yes)
FFLIBS := $(FFLIBS-yes) $(FFLIBS) |
dbe6c6ff |
TESTS += $(TESTS-yes) |
8b2121e3 |
|
71c61f62 |
FFEXTRALIBS := $(addprefix -l,$(addsuffix $(BUILDSUF),$(FFLIBS))) $(EXTRALIBS)
FFLDFLAGS := $(addprefix -L$(BUILD_ROOT)/lib,$(FFLIBS)) $(LDFLAGS) |
8b2121e3 |
|
71c61f62 |
OBJS := $(addprefix $(SUBDIR),$(OBJS))
TESTS := $(addprefix $(SUBDIR),$(TESTS)) |
8b2121e3 |
|
76ca42a8 |
DEP_LIBS:=$(foreach NAME,$(FFLIBS),lib$(NAME)/$($(BUILD_SHARED:yes=S)LIBNAME))
|
7b5e8a27 |
ALLHEADERS := $(subst $(SRC_DIR)/,$(SUBDIR),$(wildcard $(SRC_DIR)/*.h $(SRC_DIR)/$(ARCH)/*.h)) |
71c61f62 |
checkheaders: $(filter-out %_template.ho,$(ALLHEADERS:.h=.ho)) |
8b2121e3 |
|
caec74dd |
DEPS := $(OBJS:.o=.d)
depend dep: $(DEPS) |
8b2121e3 |
|
a9785f58 |
CLEANSUFFIXES = *.o *~ *.ho *.ver |
d4210e2a |
LIBSUFFIXES = *.a *.lib *.so *.so.* *.dylib *.dll *.def *.dll.a *.exp *.map |
25cd5cb3 |
DISTCLEANSUFFIXES = *.d *.pc |
76a448ed |
|
71c61f62 |
define RULES |
b153c68b |
$(SUBDIR)%$(EXESUF): $(SUBDIR)%.o
$(CC) $(FFLDFLAGS) -o $$@ $$^ $(SUBDIR)$(LIBNAME) $(FFEXTRALIBS) |
8b2121e3 |
|
b153c68b |
$(SUBDIR)%-test.o: $(SUBDIR)%.c
$(CC) $(CFLAGS) -DTEST -c -o $$@ $$^
$(SUBDIR)%-test.o: $(SUBDIR)%-test.c
$(CC) $(CFLAGS) -DTEST -c -o $$@ $$^ |
f9edb717 |
|
a6493a8f |
$(SUBDIR)x86/%.o: $(SUBDIR)x86/%.asm |
304d586d |
$(YASM) $(YASMFLAGS) -I $$(<D)/ -o $$@ $$<
|
a6493a8f |
$(SUBDIR)x86/%.d: $(SUBDIR)x86/%.asm |
304d586d |
$(YASM) $(YASMFLAGS) -I $$(<D)/ -M -o $$(@:%.d=%.o) $$< > $$@
|
71c61f62 |
clean:: |
adc39350 |
rm -f $(TESTS) $(addprefix $(SUBDIR),$(CLEANFILES) $(CLEANSUFFIXES) $(LIBSUFFIXES)) \
$(addprefix $(SUBDIR), $(foreach suffix,$(CLEANSUFFIXES),$(addsuffix /$(suffix),$(DIRS)))) |
f9edb717 |
|
71c61f62 |
distclean:: clean |
95d2afec |
rm -f $(addprefix $(SUBDIR),$(DISTCLEANSUFFIXES)) \
$(addprefix $(SUBDIR), $(foreach suffix,$(DISTCLEANSUFFIXES),$(addsuffix /$(suffix),$(DIRS)))) |
71c61f62 |
endef |
bca9e0bc |
|
71c61f62 |
$(eval $(RULES)) |
bca9e0bc |
|
71c61f62 |
tests: $(TESTS) |
3263626f |
|
488b1ca4 |
-include $(DEPS) |