summaryrefslogtreecommitdiff
path: root/common.mak
diff options
context:
space:
mode:
authorMåns Rullgård <mans@mansr.com>2006-02-13 12:53:25 +0000
committerMåns Rullgård <mans@mansr.com>2006-02-13 12:53:25 +0000
commit8b2121e3deeca35121a7c0c4afb5419ca6ce2ccb (patch)
tree0dbac5c10dce56883c71eea5d47c08c0b28fa38c /common.mak
parentf41b1d3541ac8e30a99e6a4bde3fcd84c11ae6f8 (diff)
move common parts of makefiles into common.mak
Originally committed as revision 5015 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'common.mak')
-rw-r--r--common.mak97
1 files changed, 97 insertions, 0 deletions
diff --git a/common.mak b/common.mak
new file mode 100644
index 0000000000..4bc8b118b5
--- /dev/null
+++ b/common.mak
@@ -0,0 +1,97 @@
+#
+# common bits used by all libraries
+#
+
+SRC_DIR = $(SRC_PATH)/$(SUBDIR)
+VPATH = $(SRC_DIR)
+
+#FIXME: This should be in configure/config.mak
+ifeq ($(CONFIG_WIN32),yes)
+LDFLAGS = -Wl,--output-def,$(@:.dll=.def),--out-implib,lib$(SLIBNAME:$(SLIBSUF)=.dll.a)
+endif
+
+ifeq ($(TARGET_GPROF),yes)
+CFLAGS+=-p
+LDFLAGS+=-p
+endif
+
+ifeq ($(TARGET_ARCH_SPARC64),yes)
+CFLAGS+= -mcpu=ultrasparc -mtune=ultrasparc
+endif
+
+SRCS = $(OBJS:.o=.c) $(ASM_OBJS:.o=.S) $(CPPOBJS:.o=.cpp)
+OBJS := $(OBJS) $(ASM_OBJS) $(CPPOBJS)
+STATIC_OBJS := $(OBJS) $(STATIC_OBJS)
+SHARED_OBJS := $(OBJS) $(SHARED_OBJS)
+
+all: $(LIB) $(SLIBNAME)
+
+$(LIB): $(STATIC_OBJS)
+ rm -f $@
+ $(AR) rc $@ $^ $(EXTRAOBJS)
+ $(RANLIB) $@
+
+$(SLIBNAME): $(SHARED_OBJS)
+ $(CC) $(SHFLAGS) $(LDFLAGS) -o $@ $^ $(EXTRALIBS) $(EXTRAOBJS)
+ifeq ($(CONFIG_WIN32),yes)
+ -lib /machine:i386 /def:$(@:.dll=.def)
+endif
+
+%.o: %.c
+ $(CC) $(CFLAGS) $(LIBOBJFLAGS) -c -o $@ $<
+
+%.o: %.S
+ $(CC) $(CFLAGS) $(LIBOBJFLAGS) -c -o $@ $<
+
+# BeOS: remove -Wall to get rid of all the "multibyte constant" warnings
+%.o: %.cpp
+ g++ $(subst -Wall,,$(CFLAGS)) -c -o $@ $<
+
+depend: $(SRCS)
+ $(CC) -MM $(CFLAGS) $^ 1>.depend
+
+dep: depend
+
+clean::
+ rm -f *.o *.d *~ *.a *.lib *.so *.dylib *.dll \
+ *.lib *.def *.dll.a *.exp
+
+distclean: clean
+ rm -f .depend
+
+ifeq ($(BUILD_SHARED),yes)
+INSTLIBTARGETS += install-lib-shared
+endif
+ifeq ($(BUILD_STATIC),yes)
+INSTLIBTARGETS += install-lib-static
+endif
+
+install: install-libs install-headers
+
+install-libs: $(INSTLIBTARGETS)
+
+install-lib-shared: $(SLIBNAME)
+ifeq ($(CONFIG_WIN32),yes)
+ install $(INSTALLSTRIP) -m 755 $(SLIBNAME) "$(prefix)"
+else
+ install $(INSTALLSTRIP) -m 755 $(SLIBNAME) \
+ $(libdir)/$(SLIBNAME_WITH_VERSION)
+ ln -sf $(SLIBNAME_WITH_VERSION) \
+ $(libdir)/$(SLIBNAME_WITH_MAJOR)
+ ln -sf $(SLIBNAME_WITH_VERSION) \
+ $(libdir)/$(SLIBNAME)
+endif
+
+install-lib-static: $(LIB)
+ install -m 644 $(LIB) "$(libdir)"
+
+install-headers:
+ install -m 644 $(addprefix "$(SRC_DIR)"/,$(HEADERS)) "$(incdir)"
+ install -m 644 $(BUILD_ROOT)/lib$(NAME).pc "$(libdir)/pkgconfig"
+
+#
+# include dependency files if they exist
+#
+ifneq ($(wildcard .depend),)
+include .depend
+endif