Statistics
| Branch: | Revision:

ffmpeg / common.mak @ 1db54e20

History | View | Annotate | Download (2.33 KB)

1
#
2
# common bits used by all libraries
3
#
4

    
5
SRC_DIR = $(SRC_PATH)/lib$(NAME)
6
VPATH = $(SRC_DIR)
7

    
8
SRCS := $(OBJS:.o=.c) $(ASM_OBJS:.o=.S) $(CPPOBJS:.o=.cpp)
9
OBJS := $(OBJS) $(ASM_OBJS) $(CPPOBJS)
10
STATIC_OBJS := $(OBJS) $(STATIC_OBJS)
11
SHARED_OBJS := $(OBJS) $(SHARED_OBJS)
12

    
13
all: $(EXTRADEPS) $(LIB) $(SLIBNAME)
14

    
15
$(LIB): $(STATIC_OBJS)
16
	rm -f $@
17
	$(AR) rc $@ $^ $(EXTRAOBJS)
18
	$(RANLIB) $@
19

    
20
$(SLIBNAME): $(SLIBNAME_WITH_MAJOR)
21
	ln -sf $^ $@
22

    
23
$(SLIBNAME_WITH_MAJOR): $(SHARED_OBJS)
24
	$(CC) $(SHFLAGS) $(LDFLAGS) -o $@ $^ $(EXTRALIBS) $(EXTRAOBJS)
25
ifeq ($(CONFIG_WIN32),yes)
26
	-lib /machine:i386 /def:$(@:.dll=.def)
27
endif
28

    
29
%.o: %.c
30
	$(CC) $(CFLAGS) $(LIBOBJFLAGS) -c -o $@ $<
31

    
32
%.o: %.S
33
	$(CC) $(CFLAGS) $(LIBOBJFLAGS) -c -o $@ $<
34

    
35
# BeOS: remove -Wall to get rid of all the "multibyte constant" warnings
36
%.o: %.cpp
37
	g++ $(subst -Wall,,$(CFLAGS)) -c -o $@ $<
38

    
39
depend: $(SRCS)
40
	$(CC) -MM $(CFLAGS) $^ 1>.depend
41

    
42
dep:	depend
43

    
44
clean::
45
	rm -f *.o *.d *~ *.a *.lib *.so *.dylib *.dll \
46
	      *.lib *.def *.dll.a *.exp
47

    
48
distclean: clean
49
	rm -f .depend
50

    
51
ifeq ($(BUILD_SHARED),yes)
52
INSTLIBTARGETS += install-lib-shared
53
endif
54
ifeq ($(BUILD_STATIC),yes)
55
INSTLIBTARGETS += install-lib-static
56
endif
57

    
58
install: install-libs install-headers
59

    
60
install-libs: $(INSTLIBTARGETS)
61

    
62
install-lib-shared: $(SLIBNAME)
63
	install -d "$(libdir)"
64
ifeq ($(CONFIG_WIN32),yes)
65
	install $(INSTALLSTRIP) -m 755 $(SLIBNAME) "$(prefix)"
66
else
67
	install $(INSTALLSTRIP) -m 755 $(SLIBNAME) \
68
		$(libdir)/$(SLIBNAME_WITH_VERSION)
69
	ln -sf $(SLIBNAME_WITH_VERSION) \
70
		$(libdir)/$(SLIBNAME_WITH_MAJOR)
71
	ln -sf $(SLIBNAME_WITH_VERSION) \
72
		$(libdir)/$(SLIBNAME)
73
endif
74

    
75
install-lib-static: $(LIB)
76
	install -d "$(libdir)"
77
	install -m 644 $(LIB) "$(libdir)"
78

    
79
install-headers:
80
	install -d "$(incdir)"
81
	install -d "$(libdir)/pkgconfig"
82
	install -m 644 $(addprefix "$(SRC_DIR)"/,$(HEADERS)) "$(incdir)"
83
	install -m 644 $(BUILD_ROOT)/lib$(NAME).pc "$(libdir)/pkgconfig"
84

    
85
uninstall: uninstall-libs uninstall-headers
86

    
87
uninstall-libs:
88
ifeq ($(CONFIG_WIN32),yes)
89
	-rm -f $(prefix)/$(SLIBNAME)
90
else
91
	-rm -f $(libdir)/$(SLIBNAME_WITH_MAJOR) \
92
	      $(libdir)/$(SLIBNAME)            \
93
	      $(libdir)/$(SLIBNAME_WITH_VERSION)
94
endif
95
	-rm -f $(libdir)/$(LIB)
96

    
97
uninstall-headers:
98
	rm -f $(addprefix $(incdir)/,$(HEADERS))
99
	rm -f $(libdir)/pkgconfig/lib$(NAME).pc
100

    
101
#
102
# include dependency files if they exist
103
#
104
ifneq ($(wildcard .depend),)
105
include .depend
106
endif