#
# Makefile for file format modules
#
-# Copyright (C) 1999, Mark Spencer
+# Copyright (C) 1999-2006, Digium, Inc.
#
-# Mark Spencer <markster@linux-support.net>
+# Mark Spencer <markster@digium.com>
#
# This program is free software, distributed under the terms of
# the GNU General Public License
#
-FORMAT_LIBS=format_g723.so format_wav.so format_mp3.so format_wav_gsm.so \
- format_gsm.so format_vox.so format_pcm.so format_g729.so format_pcm_alaw.so
-FORMAT_LIBS+=format_jpeg.so
+MODS:=$(patsubst %.c,%.so,$(wildcard format_*.c))
+
+MODS:=$(filter-out format_pcm_alaw.so,$(MODS))
+MODS:=$(filter-out format_au.so,$(MODS))
+
+# merged. format_pcm_alaw.so
+# merged. format_au.so
+#
+# OGG/Vorbis format
+# (on FreeBSD is in /usr/local/include/...
+
+ifeq ($(wildcard $(CROSS_COMPILE_TARGET)/usr/include/vorbis/codec.h),)
+ifeq ($(wildcard $(CROSS_COMPILE_TARGET)/usr/local/include/vorbis/codec.h),)
+ MODS:=$(filter-out format_ogg_vorbis.so,$(MODS))
+endif
+endif
GSMLIB=../codecs/gsm/lib/libgsm.a
-CFLAGS+=
+ifeq (${OSARCH},CYGWIN)
+ CYGSOLINK=-Wl,--out-implib=lib$@.a -Wl,--export-all-symbols
+ CYGSOLIB=-L.. -L. -lasterisk.dll
+else
+ CFLAGS+=-fPIC
+endif
+
+all: depend $(MODS)
-all: $(FORMAT_LIBS)
+clean-depend:
+ rm -f .depend
-clean:
+clean: clean-depend
rm -f *.so *.o
%.so : %.o
- $(CC) -shared -Xlinker -x -o $@ $<
+ $(CC) $(SOLINK) -o $@ ${CYGSOLINK} $< ${CYGSOLIB}
+
+ifneq ($(wildcard .depend),)
+ include .depend
+endif
format_mp3.so : format_mp3.o
- $(CC) -shared -Xlinker -x -o $@ $< -lm
+ $(CC) $(SOLINK) -o $@ ${CYGSOLINK} $< ${CYGSOLIB} -lm
+
+format_ogg_vorbis.so : format_ogg_vorbis.o
+ $(CC) $(SOLINK) -o $@ ${CYGSOLINK} $< ${CYGSOLIB} -logg -lvorbis -lvorbisenc -lm
install: all
- for x in $(FORMAT_LIBS); do $(INSTALL) -m 755 $$x $(MODULES_DIR) ; done
+ for x in $(MODS); do $(INSTALL) -m 755 $$x $(DESTDIR)$(MODULES_DIR) ; done
+
+uninstall:
+
+depend: .depend
+
+.depend:
+ ../build_tools/mkdep $(CFLAGS) `ls *.c`