# vorbis makefile configured for use with gcc on any platform

# $Id: Makefile.in,v 1.24.2.1.2.2 2000/04/21 16:35:38 xiphmont Exp $

###############################################################################
#                                                                             #
# To build a production vorbis (preferrably using gmake), just type 'make'.   #
# To build with debugging or profiling information, use 'make debug' or       #
# 'make profile' respectively.  'make clean' is a good idea between builds    #
# with different target names, or before a final build.                       #
#                                                                             #
###############################################################################


# DO NOT EDIT BELOW! ##########################################################
# (unless, of course, you know what you are doing :) ##########################

@SET_MAKE@
FLAGS=-I. -I../include @TYPESIZES@ @CFLAGS@ 
OPT=@OPT@ $(FLAGS)
DEBUG=@DEBUG@ $(FLAGS)
PROFILE=@PROFILE@ $(FLAGS)
CC=@CC@
LD=@CC@
LDFLAGS=@LDFLAGS@ $(FLAGS)
AR=@AR@
RANLIB=@RANLIB@
LIBS=@LIBS@ -lm

HFILES =	../include/vorbis/codec.h ../include/vorbis/vorbisfile.h \
		../include/vorbis/internal.h ../include/vorbis/backends.h \
		../include/vorbis/codebook.h \
		bitwise.h envelope.h lpc.h lsp.h bookinternal.h misc.h\
		psy.h smallft.h window.h scales.h os.h mdct.h registry.h\
		masking.h sharedbook.h
LFILES = 	framing.o mdct.o smallft.o block.o envelope.o window.o\
		lsp.o lpc.o analysis.o synthesis.o psy.o info.o bitwise.o\
		time0.o floor0.o res0.o mapping0.o registry.o\
		codebook.o sharedbook.o vorbisfile.o

all:
	$(MAKE) target CFLAGS="$(OPT)"

debug:	
	$(MAKE) target CFLAGS="$(DEBUG)"

analysis:	
	$(MAKE) target CFLAGS="$(DEBUG) -DANALYSIS"

profile: 
	$(MAKE) target CFLAGS="$(PROFILE)"

target:	libvorbis.a vorbisfile.a psytune

selftest:	
	$(MAKE) clean
	$(CC) $(DEBUG) $(LDFLAGS) -D_V_SELFTEST framing.c -o test_framing 
	$(CC) $(DEBUG) $(LDFLAGS) -D_V_SELFTEST bitwise.c\
		-o test_bitwise -lm
	$(CC) $(DEBUG) $(LDFLAGS) -c bitwise.c
	$(CC) $(DEBUG) $(LDFLAGS) -D_V_SELFTEST sharedbook.c\
		-o test_sharedbook -lm
	$(CC) $(DEBUG) $(LDFLAGS) -c sharedbook.c
	$(CC) $(DEBUG) $(LDFLAGS) -D_V_SELFTEST codebook.c \
		sharedbook.o bitwise.o -o test_codebook -lm
	@echo
	@./test_framing
	@./test_bitwise
	@./test_sharedbook
	@./test_codebook

libvorbis.a: 	$(LFILES)	
		$(AR) -r libvorbis.a $^
		$(RANLIB) libvorbis.a

vorbisfile.a:	$(LFILES)
		$(AR) -r vorbisfile.a $^
		$(RANLIB) vorbisfile.a

psytune:	mdct.o psy.o lpc.o smallft.o window.o psytune.o floor0.o \
		bitwise.o lsp.o codebook.o sharedbook.o
	        $(CC) $(CFLAGS) $(LDFLAGS) $^ -o $@ $(LIBS)


$(LFILES): 	$(HFILES)

.c.o:
	$(CC) $(CFLAGS) -c $<

clean:
	-rm -f *.o *.a test* *~ *.out ogg config.* tone 

distclean:	clean
	-rm -f Makefile

