Merge CV, ver=5.1; ops/methods from HV, and interface from CV where possible
[goodguy/history.git] / cinelerra-5.1 / libzmpeg3 / Makefile
1 CC = gcc
2 NASM = nasm
3 USE_MMX = 0
4 USE_CSS = 1
5 A52DIR := $(shell expr a52dec* )
6 DYNAMIC_FONTS = 1
7
8
9 ifeq ("$(DST)", "")
10 DST=/usr/bin
11 endif
12
13 ifeq ($(origin CFLAGS), environment)
14 HAVE_CFLAGS := y
15 else
16 HAVE_CFLAGS := n
17 endif
18
19 OBJDIR := $(shell uname --machine)
20 USE_MMX = 0
21
22 ifeq ($(OBJDIR), alpha)
23   ifneq ($(HAVE_CFLAGS), y)
24     CFLAGS := -O4 -arch ev67 -ieee -accept c99_keywords -gcc_messages
25   endif
26 endif
27
28 ifneq ($(HAVE_CFLAGS), y)
29   #CFLAGS := -O2 -fomit-frame-pointer -I/usr/local/include
30   CFLAGS := -O3 -ggdb -fno-omit-frame-pointer -I/usr/local/include \
31         -falign-loops=2 -falign-jumps=2 -falign-functions=2
32 endif
33
34 ifeq ($(OBJDIR), i686)
35   #USE_MMX = 1
36   CFLAGS += -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE
37 endif
38
39 ifeq ($(OBJDIR), x86_64)
40   CFLAGS += -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE
41 endif
42
43 ifeq ($(USE_CSS), 1)
44   CFLAGS += -DHAVE_CSS
45 endif
46
47 ifeq ($(USE_MMX), 1)
48   CFLAGS += -DHAVE_MMX
49   ASMOBJS = $(OBJDIR)/video/mmxidct.o
50   NASMOBJS = $(OBJDIR)/video/reconmmx.o
51 endif
52
53 CFLAGS += -I.  -I$(A52DIR)/include -I$(A52DIR)/liba52
54 CFLAGS += -Wall
55
56 OBJS = \
57         $(OBJDIR)/audio/ac3.o \
58         $(OBJDIR)/audio/dct.o \
59         $(OBJDIR)/audio/huffman.o \
60         $(OBJDIR)/audio/layer2.o \
61         $(OBJDIR)/audio/layer3.o \
62         $(OBJDIR)/audio/audio.o \
63         $(OBJDIR)/audio/pcm.o \
64         $(OBJDIR)/audio/synthesizers.o \
65         $(OBJDIR)/audio/tables.o \
66         $(OBJDIR)/libzmpeg3.o \
67         $(OBJDIR)/atrack.o \
68         $(OBJDIR)/bits.o \
69         $(OBJDIR)/css.o \
70         $(OBJDIR)/demux.o \
71         $(OBJDIR)/strack.o \
72         $(OBJDIR)/title.o \
73         $(OBJDIR)/vtrack.o \
74         $(OBJDIR)/zio.o \
75         $(OBJDIR)/dvb.o \
76         $(OBJDIR)/huf.o \
77         $(OBJDIR)/xfont.o \
78         $(OBJDIR)/video/getpicture.o \
79         $(OBJDIR)/video/headers.o \
80         $(OBJDIR)/video/idct.o \
81         $(OBJDIR)/video/macroblocks.o \
82         $(OBJDIR)/video/mmxtest.o \
83         $(OBJDIR)/video/motion.o \
84         $(OBJDIR)/video/cache.o \
85         $(OBJDIR)/video/video.o \
86         $(OBJDIR)/video/output.o \
87         $(OBJDIR)/video/reconstruct.o \
88         $(OBJDIR)/video/seek.o \
89         $(OBJDIR)/video/slice.o \
90         $(OBJDIR)/video/subtitle.o \
91         $(OBJDIR)/video/cc.o \
92         $(OBJDIR)/video/vlc.o \
93         $(OBJDIR)/ifo.o \
94         $(OBJDIR)/toc.o \
95         $(OBJDIR)/mpeg3.o \
96
97 #OBJS = \
98 #       $(OBJDIR)/audio/ac3.o \
99 #       $(OBJDIR)/audio/bit_allocation.o \
100 #       $(OBJDIR)/audio/exponents.o \
101 #       $(OBJDIR)/audio/header.o \
102 #       $(OBJDIR)/audio/huffman.o \
103 #       $(OBJDIR)/audio/layer2.o \
104 #       $(OBJDIR)/audio/layer3.o \
105 #       $(OBJDIR)/audio/mantissa.o \
106 #       $(OBJDIR)/audio/pcm.o \
107 #       $(OBJDIR)/audio/tables.o \
108
109 DIRS := \
110         $(OBJDIR)/audio \
111         $(OBJDIR)/video
112
113 include Makefile.a52
114
115 DIRS += $(A52DIRS)
116
117
118 OUTPUT = $(OBJDIR)/libzmpeg3.a
119 UTILS := $(OBJDIR)/mpeg3dump
120 UTILS += $(OBJDIR)/mpeg3peek
121 UTILS += $(OBJDIR)/mpeg3toc
122 UTILS += $(OBJDIR)/mpeg3show
123 UTILS += $(OBJDIR)/mpeg3cat
124 UTILS += $(OBJDIR)/mpeg31trkpony
125 UTILS += $(OBJDIR)/mpeg3ifochk
126 UTILS += $(OBJDIR)/mpeg3cc2txt
127
128 #$(OBJDIR)/mpeg3split
129
130 LIBS = -lm -lpthread
131
132 ifeq ($(DYNAMIC_FONTS), 1)
133 LIBS += -lX11
134 else
135 CFLAGS += -DBUILTIN_FONT_DATA 
136 OBJS += $(OBJDIR)/xfont1.o
137 endif
138
139 $(shell mkdir -p $(OBJDIR) )
140
141 $(shell echo $(CFLAGS) > $(OBJDIR)/c_flags)
142 $(shell echo $(A52CFLAGS) > $(OBJDIR)/a52_flags)
143 $(shell echo $(OBJS) $(ASMOBJS) $(A52OBJS) $(NASMOBJS) > $(OBJDIR)/objs)
144 $(shell mkdir -p $(DIRS) )
145
146 TAGS = tags
147 all: $(OUTPUT) $(UTILS) $(TAGS)
148 #all: $(OUTPUT) $(TAGS) b.out
149
150 xfont1.C:       xfont.C
151         $(CXX) `cat $(OBJDIR)/c_flags` -DWRITE_FONT_DATA -o $(OBJDIR)/xfont xfont.C \
152                  $(LIBS) -lX11
153         $(OBJDIR)/xfont > xfont1.C
154
155 b.out:  y.C $(OUTPUT)
156         $(CXX) `pkg-config --cflags --libs gtk+-2.0` y.C ./$(OBJDIR)/libzmpeg3.a \
157                  -lpthread -lasound -lm -O0 -g -o b.out
158
159 $(OUTPUT): $(OBJS) $(ASMOBJS) $(NASMOBJS) $(A52OBJS)
160         ar rcs $(OUTPUT) `cat $(OBJDIR)/objs`
161
162
163 mpeg3% $(OBJDIR)/mpeg3%: $(OUTPUT) mpeg3%.C
164         $(CXX) `cat $(OBJDIR)/c_flags` -o $(OBJDIR)/$(notdir $@) $(notdir $@).C $(OUTPUT) $(LIBS)
165
166
167 #$(OBJDIR)/mpeg2qt: $(OUTPUT)
168 #       $(CC) `cat $(OBJDIR)/c_flags` -o $(OBJDIR)/mpeg2qt mpeg2qt.c \
169 #               $(OUTPUT) $(LIBS) -I.  -I../quicktime \
170 #               ../quicktime/$(OBJDIR)/libquicktime.a \
171 #               -lpng -lz -ldl
172
173 $(TAGS):
174         ctags -R .
175
176 install: 
177         cp $(UTILS) $(DST)
178
179 clean:
180         rm -rf $(OBJDIR) $(TAGS)
181
182 backup: clean
183         cd .. && \
184         tar -zcf libzmpeg3.tar.gz libmpeg3
185
186 wc:
187         cat *.c *.h audio/*.c audio/*.h video/*.c video/*.h | wc
188
189 $(OBJS): 
190         $(CC) -c `cat $(OBJDIR)/c_flags` $(subst $(OBJDIR)/,, $*.C) -o $*.o
191 $(ASMOBJS): 
192         $(CC) -c `cat $(OBJDIR)/c_flags` $(subst $(OBJDIR)/,, $*.S) -o $*.o
193 $(NASMOBJS): 
194         $(NASM) -f elf $(subst $(OBJDIR)/,, $*.s) -o $*.o
195 $(A52OBJS):
196         $(CC) -c `cat $(OBJDIR)/a52_flags` $(subst $(OBJDIR)/,, $*.c) -o $*.o
197
198 $(OBJDIR)/libzmpeg3.o:                              libzmpeg3.C
199 $(OBJDIR)/atrack.o:                                 atrack.C
200 $(OBJDIR)/bits.o:                                   bits.C
201 $(OBJDIR)/css.o:                                    css.C
202 $(OBJDIR)/demux.o:                                  demux.C
203 $(OBJDIR)/ifo.o:                                    ifo.C
204 $(OBJDIR)/zio.o:                                    zio.C
205 $(OBJDIR)/dvb.o:                                    dvb.C
206 $(OBJDIR)/huf.o:                                    huf.C
207 $(OBJDIR)/xfont.o:                                  xfont.C
208 $(OBJDIR)/xfont1.o:                                 xfont1.C
209 $(OBJDIR)/strack.o:                                 strack.C
210 $(OBJDIR)/title.o:                                  title.C
211 $(OBJDIR)/mpeg3toc.o:                               mpeg3toc.C
212 $(OBJDIR)/mpeg3show.o:                              mpeg3show.C
213 $(OBJDIR)/mpeg3dump.o:                              mpeg3dump.C
214 $(OBJDIR)/mpeg3cat.o:                               mpeg3cat.C
215 $(OBJDIR)/mpeg31trkpony.o:                          mpeg31trkpony.C
216 $(OBJDIR)/mpeg3peek.o:                              mpeg3peek.C
217 $(OBJDIR)/toc.o:                                    toc.C
218 $(OBJDIR)/mpeg3.o:                                  mpeg3.C
219 $(OBJDIR)/vtrack.o:                                 vtrack.C
220 $(OBJDIR)/audio/ac3.o:                              audio/ac3.C
221 $(OBJDIR)/audio/bit_allocation.o:                   audio/bit_allocation.C
222 $(OBJDIR)/audio/dct.o:                              audio/dct.C
223 #$(OBJDIR)/audio/exponents.o:                       audio/exponents.c
224 #$(OBJDIR)/audio/header.o:                          audio/header.c
225 $(OBJDIR)/audio/huffman.o:                          audio/huffman.C
226 $(OBJDIR)/audio/layer2.o:                           audio/layer2.C
227 $(OBJDIR)/audio/layer3.o:                           audio/layer3.C
228 #$(OBJDIR)/audio/mantissa.o:                        audio/mantissa.c
229 $(OBJDIR)/audio/audio.o:                            audio/audio.C
230 $(OBJDIR)/audio/pcm.o:                              audio/pcm.C
231 $(OBJDIR)/audio/synthesizers.o:                     audio/synthesizers.C
232 $(OBJDIR)/audio/tables.o:                           audio/tables.C
233 $(OBJDIR)/video/getpicture.o:                       video/getpicture.C
234 $(OBJDIR)/video/headers.o:                          video/headers.C
235 $(OBJDIR)/video/idct.o:                             video/idct.C
236 $(OBJDIR)/video/macroblocks.o:                      video/macroblocks.C
237 $(OBJDIR)/video/mmxtest.o:                          video/mmxtest.C
238 $(OBJDIR)/video/motion.o:                           video/motion.C
239 $(OBJDIR)/video/cache.o:                            video/cache.C
240 $(OBJDIR)/video/video.o:                            video/video.C
241 $(OBJDIR)/video/output.o:                           video/output.C
242 $(OBJDIR)/video/reconstruct.o:                      video/reconstruct.C
243 $(OBJDIR)/video/seek.o:                             video/seek.C
244 $(OBJDIR)/video/slice.o:                            video/slice.C
245 $(OBJDIR)/video/subtitle.o:                         video/subtitle.C
246 $(OBJDIR)/video/cc.o:                               video/cc.C
247 $(OBJDIR)/video/vlc.o:                              video/vlc.C
248 #$(OBJDIR)/workarounds.o:                           workarounds.c
249
250 include depend.a52
251