5 A52DIR := $(shell expr a52dec* )
12 ifeq ($(origin CFLAGS), environment)
19 OBJDIR := $(shell uname --machine)
24 ifeq ($(OBJDIR), alpha)
26 ifneq ($(HAVE_CFLAGS), y)
27 CFLAGS := -O4 -arch ev67 -ieee -accept c99_keywords -gcc_messages
31 ifeq ($(OBJDIR), i686)
33 ifneq ($(HAVE_CFLAGS), y)
34 CFLAGS := -O2 -fomit-frame-pointer -falign-loops=2 -falign-jumps=2 -falign-functions=2 -I/usr/local/include
36 CFLAGS += -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE
39 ifeq ($(OBJDIR), x86_64)
40 ifneq ($(HAVE_CFLAGS), y)
41 CFLAGS := -O2 -fomit-frame-pointer -I/usr/local/include
43 CFLAGS += -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE
56 ASMOBJS = $(OBJDIR)/video/mmxidct.o
57 NASMOBJS = $(OBJDIR)/video/reconmmx.o
84 $(OBJDIR)/audio/ac3.o \
85 $(OBJDIR)/audio/dct.o \
86 $(OBJDIR)/audio/huffman.o \
87 $(OBJDIR)/audio/layer2.o \
88 $(OBJDIR)/audio/layer3.o \
89 $(OBJDIR)/audio/mpeg3audio.o \
90 $(OBJDIR)/audio/pcm.o \
91 $(OBJDIR)/audio/synthesizers.o \
92 $(OBJDIR)/audio/tables.o \
93 $(OBJDIR)/libmpeg3.o \
94 $(OBJDIR)/mpeg3atrack.o \
95 $(OBJDIR)/mpeg3bits.o \
96 $(OBJDIR)/mpeg3css.o \
97 $(OBJDIR)/mpeg3demux.o \
98 $(OBJDIR)/mpeg3ifo.o \
100 $(OBJDIR)/mpeg3strack.o \
101 $(OBJDIR)/mpeg3title.o \
102 $(OBJDIR)/mpeg3tocutil.o \
103 $(OBJDIR)/mpeg3vtrack.o \
104 $(OBJDIR)/video/getpicture.o \
105 $(OBJDIR)/video/headers.o \
106 $(OBJDIR)/video/idct.o \
107 $(OBJDIR)/video/macroblocks.o \
108 $(OBJDIR)/video/mmxtest.o \
109 $(OBJDIR)/video/motion.o \
110 $(OBJDIR)/video/mpeg3cache.o \
111 $(OBJDIR)/video/mpeg3video.o \
112 $(OBJDIR)/video/output.o \
113 $(OBJDIR)/video/reconstruct.o \
114 $(OBJDIR)/video/seek.o \
115 $(OBJDIR)/video/slice.o \
116 $(OBJDIR)/video/subtitle.o \
117 $(OBJDIR)/video/vlc.o \
118 $(OBJDIR)/workarounds.o
121 # $(OBJDIR)/audio/ac3.o \
122 # $(OBJDIR)/audio/bit_allocation.o \
123 # $(OBJDIR)/audio/exponents.o \
124 # $(OBJDIR)/audio/header.o \
125 # $(OBJDIR)/audio/huffman.o \
126 # $(OBJDIR)/audio/layer2.o \
127 # $(OBJDIR)/audio/layer3.o \
128 # $(OBJDIR)/audio/mantissa.o \
129 # $(OBJDIR)/audio/pcm.o \
130 # $(OBJDIR)/audio/tables.o \
144 OUTPUT = $(OBJDIR)/libmpeg3.a
145 UTILS = $(OBJDIR)/mpeg3dump $(OBJDIR)/mpeg3peek $(OBJDIR)/mpeg3toc $(OBJDIR)/mpeg3cat
147 #$(OBJDIR)/mpeg3split
152 $(shell mkdir -p $(OBJDIR) )
154 $(shell echo $(CFLAGS) > $(OBJDIR)/c_flags)
155 $(shell echo $(A52CFLAGS) > $(OBJDIR)/a52_flags)
156 $(shell echo $(OBJS) $(ASMOBJS) $(A52OBJS) $(NASMOBJS) > $(OBJDIR)/objs)
157 $(shell mkdir -p $(DIRS) )
159 all: $(OUTPUT) $(UTILS)
162 $(OUTPUT): $(OBJS) $(ASMOBJS) $(NASMOBJS) $(A52OBJS)
163 ar rcs $(OUTPUT) `cat $(OBJDIR)/objs`
167 $(OBJDIR)/mpeg3dump: $(OUTPUT) mpeg3dump.c
168 $(CC) `cat $(OBJDIR)/c_flags` -o $(OBJDIR)/mpeg3dump mpeg3dump.c $(OUTPUT) $(LIBS)
170 $(OBJDIR)/mpeg3peek: $(OUTPUT) mpeg3peek.c
171 $(CC) `cat $(OBJDIR)/c_flags` -o $(OBJDIR)/mpeg3peek mpeg3peek.c $(OUTPUT) $(LIBS)
173 $(OBJDIR)/mpeg3toc: $(OUTPUT) mpeg3toc.c
174 $(CC) `cat $(OBJDIR)/c_flags` -o $(OBJDIR)/mpeg3toc mpeg3toc.c $(OUTPUT) $(LIBS)
176 $(OBJDIR)/mpeg3cat: $(OUTPUT) mpeg3cat.c
177 $(CC) `cat $(OBJDIR)/c_flags` -o $(OBJDIR)/mpeg3cat mpeg3cat.c $(OUTPUT) $(LIBS)
179 #$(OBJDIR)/mpeg3split: $(OUTPUT)
180 # $(CC) `cat $(OBJDIR)/c_flags` -o $(OBJDIR)/mpeg3split mpeg3split.c $(OUTPUT) $(LIBS)
182 $(OBJDIR)/mpeg2qt: $(OUTPUT)
183 $(CC) `cat $(OBJDIR)/c_flags` -o $(OBJDIR)/mpeg2qt mpeg2qt.c \
188 ../quicktime/$(OBJDIR)/libquicktime.a \
201 tar zcf libmpeg3.tar.gz libmpeg3
204 cat *.c *.h audio/*.c audio/*.h video/*.c video/*.h | wc
207 $(CC) -c `cat $(OBJDIR)/c_flags` $(subst $(OBJDIR)/,, $*.c) -o $*.o
209 $(CC) -c `cat $(OBJDIR)/c_flags` $(subst $(OBJDIR)/,, $*.S) -o $*.o
211 $(NASM) -f elf $(subst $(OBJDIR)/,, $*.s) -o $*.o
213 $(CC) -c `cat $(OBJDIR)/a52_flags` $(subst $(OBJDIR)/,, $*.c) -o $*.o
215 $(OBJDIR)/libmpeg3.o: libmpeg3.c
216 $(OBJDIR)/mpeg3atrack.o: mpeg3atrack.c
217 $(OBJDIR)/mpeg3bits.o: mpeg3bits.c
218 $(OBJDIR)/mpeg3css.o: mpeg3css.c
219 $(OBJDIR)/mpeg3demux.o: mpeg3demux.c
220 $(OBJDIR)/mpeg3dump.o: mpeg3dump.c
221 $(OBJDIR)/mpeg3ifo.o: mpeg3ifo.c
222 $(OBJDIR)/mpeg3io.o: mpeg3io.c
223 $(OBJDIR)/mpeg3strack.o: mpeg3strack.c
224 $(OBJDIR)/mpeg3title.o: mpeg3title.c
225 $(OBJDIR)/mpeg3toc3.o: mpeg3toc3.c
226 $(OBJDIR)/mpeg3toc.o: mpeg3toc.c
227 $(OBJDIR)/mpeg3tocutil.o: mpeg3tocutil.c
228 $(OBJDIR)/mpeg3vtrack.o: mpeg3vtrack.c
229 $(OBJDIR)/audio/ac3.o: audio/ac3.c
230 $(OBJDIR)/audio/bit_allocation.o: audio/bit_allocation.c
231 $(OBJDIR)/audio/dct.o: audio/dct.c
232 $(OBJDIR)/audio/exponents.o: audio/exponents.c
233 $(OBJDIR)/audio/header.o: audio/header.c
234 $(OBJDIR)/audio/huffman.o: audio/huffman.c
235 $(OBJDIR)/audio/layer2.o: audio/layer2.c
236 $(OBJDIR)/audio/layer3.o: audio/layer3.c
237 $(OBJDIR)/audio/mantissa.o: audio/mantissa.c
238 $(OBJDIR)/audio/mpeg3audio.o: audio/mpeg3audio.c
239 $(OBJDIR)/audio/pcm.o: audio/pcm.c
240 $(OBJDIR)/audio/synthesizers.o: audio/synthesizers.c
241 $(OBJDIR)/audio/tables.o: audio/tables.c
242 $(OBJDIR)/video/getpicture.o: video/getpicture.c
243 $(OBJDIR)/video/headers.o: video/headers.c
244 $(OBJDIR)/video/idct.o: video/idct.c
245 $(OBJDIR)/video/macroblocks.o: video/macroblocks.c
246 $(OBJDIR)/video/mmxtest.o: video/mmxtest.c
247 $(OBJDIR)/video/motion.o: video/motion.c
248 $(OBJDIR)/video/mpeg3cache.o: video/mpeg3cache.c
249 $(OBJDIR)/video/mpeg3video.o: video/mpeg3video.c
250 $(OBJDIR)/video/output.o: video/output.c
251 $(OBJDIR)/video/reconstruct.o: video/reconstruct.c
252 $(OBJDIR)/video/seek.o: video/seek.c
253 $(OBJDIR)/video/slice.o: video/slice.c
254 $(OBJDIR)/video/subtitle.o: video/subtitle.c
255 $(OBJDIR)/video/vlc.o: video/vlc.c
256 $(OBJDIR)/workarounds.o: workarounds.c