1#This makefile is for generating debug standalone executables 2 3VERSION = "3.0" 4OBJS = array.o pcm.o pcmconv.o bitstream.a 5FLAGS = -Wall -g 6BINARIES = alacdec \ 7flacdec \ 8oggflacdec \ 9shndec \ 10wvdec \ 11alacenc \ 12flacenc \ 13shnenc \ 14wvenc \ 15huffman \ 16bitstream \ 17bitstream-table \ 18ttaenc \ 19ttadec \ 20opusenc 21 22all: $(BINARIES) 23 24clean: 25 rm -f $(BINARIES) $(OBJS) 26 27flacdec: $(OBJS) decoders/flac.c decoders/flac.h flac_crc.o buffer.o md5.o 28 $(CC) $(FLAGS) -o flacdec decoders/flac.c $(OBJS) flac_crc.o buffer.o md5.o -DSTANDALONE -DEXECUTABLE 29 30oggflacdec: $(OBJS) decoders/oggflac.c decoders/oggflac.h flac.o flac_crc.o md5.o ogg.o ogg_crc.o buffer.o 31 $(CC) $(FLAGS) -o oggflacdec decoders/oggflac.c $(OBJS) flac.o flac_crc.o md5.o ogg.o ogg_crc.o buffer.o -DSTANDALONE 32 33wvdec: $(OBJS) decoders/wavpack.c decoders/wavpack.h md5.o 34 $(CC) $(FLAGS) -o wvdec decoders/wavpack.c $(OBJS) md5.o -DSTANDALONE 35 36alacdec: $(OBJS) decoders/alac.c decoders/alac.h 37 $(CC) $(FLAGS) -o alacdec decoders/alac.c $(OBJS) -DSTANDALONE 38 39shndec: $(OBJS) decoders/shn.c decoders/shn.h buffer.o 40 $(CC) $(FLAGS) -o shndec decoders/shn.c $(OBJS) buffer.o -DSTANDALONE -lm 41 42ttadec: $(OBJS) decoders/tta.c decoders/tta.h 43 $(CC) $(FLAGS) -o ttadec decoders/tta.c $(OBJS) -DSTANDALONE 44 45flacenc: $(OBJS) encoders/flac.c encoders/flac.h flac_crc.o md5.o 46 $(CC) $(FLAGS) -DVERSION=$(VERSION) -o flacenc encoders/flac.c $(OBJS) md5.o flac_crc.o -DSTANDALONE -lm 47 48alacenc: $(OBJS) encoders/alac.c encoders/alac.h 49 $(CC) $(FLAGS) -DVERSION=$(VERSION) -o alacenc encoders/alac.c $(OBJS) -DSTANDALONE -lm 50 51shnenc: $(OBJS) encoders/shn.c encoders/shn.h buffer.o 52 $(CC) $(FLAGS) -DVERSION=$(VERSION) -o shnenc encoders/shn.c $(OBJS) buffer.o -DSTANDALONE -lm 53 54wvenc: $(OBJS) encoders/wavpack.c encoders/wavpack.h md5.o 55 $(CC) $(FLAGS) -o wvenc encoders/wavpack.c md5.o $(OBJS) -DSTANDALONE 56 57ttaenc: $(OBJS) encoders/tta.c encoders/tta.h 58 $(CC) $(FLAGS) -o ttaenc encoders/tta.c $(OBJS) -DSTANDALONE 59 60vorbisenc: $(OBJS) encoders/vorbis.c 61 $(CC) $(FLAGS) -o vorbisenc encoders/vorbis.c $(OBJS) -DSTANDALONE -lvorbis -logg -lvorbisenc 62 63opusenc: $(OBJS) encoders/opus.c 64 $(CC) $(FLAGS) -o opusenc encoders/opus.c $(OBJS) -DSTANDALONE `pkg-config --cflags --libs opus ogg` 65 66huffman: huffman.c huffman.h parson.o 67 $(CC) $(FLAGS) -o huffman huffman.c parson.o -DEXECUTABLE 68 69pcm.o: pcm.c pcm.h 70 $(CC) $(FLAGS) -c pcm.c -DSTANDALONE 71 72pcmconv.o: pcmconv.c pcmconv.h 73 $(CC) $(FLAGS) -c pcmconv.c -DSTANDALONE 74 75bitstream.o: bitstream.c bitstream.h 76 $(CC) $(FLAGS) -c bitstream.c 77 78md5.o: common/md5.c common/md5.h 79 $(CC) $(FLAGS) -c common/md5.c -DSTANDALONE 80 81flac.o: decoders/flac.c decoders/flac.h 82 $(CC) $(FLAGS) -c decoders/flac.c -DSTANDALONE 83 84ogg.o: ogg.c ogg.h 85 $(CC) $(FLAGS) -c ogg.c -DSTANDALONE 86 87ogg_crc.o: ogg_crc.c ogg_crc.h 88 $(CC) $(FLAGS) -c ogg_crc.c -DSTANDALONE 89 90flac_crc.o: common/flac_crc.c common/flac_crc.h 91 $(CC) $(FLAGS) -c common/flac_crc.c -DSTANDALONE 92 93huffman.o: huffman.c huffman.h 94 $(CC) $(FLAGS) -c huffman.c -DSTANDALONE 95 96buffer.o: buffer.c buffer.h 97 $(CC) $(FLAGS) -c buffer.c 98 99func_io.o: func_io.c func_io.h 100 $(CC) $(FLAGS) -c func_io.c 101 102mini-gmp.o: mini-gmp.c mini-gmp.h 103 $(CC) $(FLAGS) -c mini-gmp.c 104 105bitstream.a: bitstream.o huffman.o func_io.o mini-gmp.o 106 $(AR) -r $@ bitstream.o huffman.o func_io.o mini-gmp.o 107 108bitstream: bitstream.c bitstream.h huffman.o func_io.o mini-gmp.o 109 $(CC) $(FLAGS) bitstream.c huffman.o func_io.o mini-gmp.o -DEXECUTABLE -DDEBUG -o $@ 110 111array: array.c array.h 112 $(CC) $(FLAGS) array.c -DEXECUTABLE -o $@ 113 114parson.o: parson.c parson.h 115 $(CC) $(FLAGS) -c parson.c 116 117bitstream-table: bitstream-table.c array.o 118 $(CC) $(FLAGS) -o $@ bitstream-table.c array.o 119