fixes and changes to Makefile for more generality
[goodguy/cinelerra.git] / cinelerra-5.1 / libzmpeg3 / Makefile
1 export TOPDIR ?= $(CURDIR)/..
2 include $(TOPDIR)/global_config
3
4 ifneq ($(WANT_LIBZMPEG),no)
5
6 # for mmx inlines
7 #CC = gcc
8 NASM = nasm
9 USE_MMX ?= 0
10 DYNAMIC_FONTS ?= 1
11
12 ifeq ($(OBJDIR), alpha)
13   ifneq ($(origin CFLAGS), environment)
14     CFLAGS := -O4 -arch ev67 -ieee -accept c99_keywords -gcc_messages
15   endif
16 endif
17
18 ifeq ($(USE_MMX), 1)
19   CFLAGS += -DHAVE_MMX
20   ASMOBJS = $(OBJDIR)/video/mmxidct.o
21   NASMOBJS = $(OBJDIR)/video/reconmmx.o
22 endif
23
24 CFLAGS += -I.  $(inc_a52dec)
25
26 OBJS = \
27         $(OBJDIR)/audio/ac3.o \
28         $(OBJDIR)/audio/dct.o \
29         $(OBJDIR)/audio/huffman.o \
30         $(OBJDIR)/audio/layer2.o \
31         $(OBJDIR)/audio/layer3.o \
32         $(OBJDIR)/audio/audio.o \
33         $(OBJDIR)/audio/pcm.o \
34         $(OBJDIR)/audio/synthesizers.o \
35         $(OBJDIR)/audio/tables.o \
36         $(OBJDIR)/libzmpeg3.o \
37         $(OBJDIR)/atrack.o \
38         $(OBJDIR)/bits.o \
39         $(OBJDIR)/css.o \
40         $(OBJDIR)/demux.o \
41         $(OBJDIR)/strack.o \
42         $(OBJDIR)/title.o \
43         $(OBJDIR)/vtrack.o \
44         $(OBJDIR)/zio.o \
45         $(OBJDIR)/dvb.o \
46         $(OBJDIR)/huf.o \
47         $(OBJDIR)/xfont.o \
48         $(OBJDIR)/video/getpicture.o \
49         $(OBJDIR)/video/headers.o \
50         $(OBJDIR)/video/idct.o \
51         $(OBJDIR)/video/macroblocks.o \
52         $(OBJDIR)/video/mmxtest.o \
53         $(OBJDIR)/video/motion.o \
54         $(OBJDIR)/video/cache.o \
55         $(OBJDIR)/video/video.o \
56         $(OBJDIR)/video/output.o \
57         $(OBJDIR)/video/reconstruct.o \
58         $(OBJDIR)/video/seek.o \
59         $(OBJDIR)/video/slice.o \
60         $(OBJDIR)/video/subtitle.o \
61         $(OBJDIR)/video/cc.o \
62         $(OBJDIR)/video/vlc.o \
63         $(OBJDIR)/ifo.o \
64         $(OBJDIR)/toc.o \
65         $(OBJDIR)/mpeg3.o \
66
67 $(shell mkdir -p $(OBJDIR) )
68
69 DIRS := \
70         $(OBJDIR)/audio \
71         $(OBJDIR)/video
72 $(shell mkdir -p $(DIRS) )
73
74 OUTPUT = $(OBJDIR)/libzmpeg3.a
75 UTILS += $(OBJDIR)/zmpeg3toc
76 UTILS += $(OBJDIR)/zmpeg3show
77 UTILS += $(OBJDIR)/zmpeg3cat
78 UTILS += $(OBJDIR)/zmpeg3ifochk
79 UTILS += $(OBJDIR)/zmpeg3cc2txt
80
81 LIBS = -lm -lpthread
82 ifeq ($(WANT_CIN_3RDPARTY),no)
83 LIBS += -la52
84 endif
85 ifeq ($(shell uname -o), Android)
86 LIBS += jpt.a
87 endif
88
89 LIBS += $(lib_a52dec) $(lib_djbfft) $(lib_libbthread)
90
91 ifeq ($(DYNAMIC_FONTS), 1)
92 LIBS += -lX11
93 else
94 CFLAGS += -DBUILTIN_FONT_DATA 
95 OBJS += $(OBJDIR)/xfont1.o
96 endif
97
98 $(shell echo $(CFLAGS) > $(OBJDIR)/c_flags)
99 $(shell echo $(OBJS) $(ASMOBJS) $(NASMOBJS) > $(OBJDIR)/objs)
100
101 all: $(OUTPUT) $(UTILS)
102
103 xfont1.C:       xfont.C
104         $(CXX) `cat $(OBJDIR)/c_flags` -DWRITE_FONT_DATA -o $(OBJDIR)/xfont xfont.C \
105                  $(LIBS) -lX11
106         $(OBJDIR)/xfont > xfont1.C
107
108 b.out:  y.C $(OUTPUT)
109         $(CXX) `pkg-config --cflags --libs gtk+-2.0` y.C ./$(OBJDIR)/libzmpeg3.a \
110                 $(CFLAGS) -O0 -g -o b.out -lasound $(LIBS)
111
112 $(OUTPUT): $(OBJS) $(ASMOBJS) $(NASMOBJS)
113         ar rcs $(OUTPUT) `cat $(OBJDIR)/objs`
114
115
116 zmpeg3% $(OBJDIR)/zmpeg3%: $(OUTPUT) mpeg3%.C
117         $(CXX) `cat $(OBJDIR)/c_flags` -o $(OBJDIR)/$(notdir $@) mpeg3$*.C $(OUTPUT) $(LIBS)
118
119 tags:
120         ctags -R .
121
122 install: 
123         cp $(UTILS) $(BINDIR)/.
124
125 clean:
126         rm -rf $(OBJDIR) tags
127
128 $(OBJS): 
129         $(CC) -c `cat $(OBJDIR)/c_flags` $(subst $(OBJDIR)/,, $*.C) -o $*.o
130 $(ASMOBJS): 
131         $(CC) -c `cat $(OBJDIR)/c_flags` $(subst $(OBJDIR)/,, $*.S) -o $*.o
132 $(NASMOBJS): 
133         $(NASM) -f elf $(subst $(OBJDIR)/,, $*.s) -o $*.o
134
135 $(OBJDIR)/%.o:          %.C
136 $(OBJDIR)/audio/%.o:    audio/%.C
137 $(OBJDIR)/video/%.o:    video/%.C
138
139 else
140 #not WANT_LIBZMPEG
141 all:
142 rebuild:
143 utils:
144 clean:
145 install:
146 endif