Credit Rob / Credit Andrew - new render format / bsd need
[goodguy/cinelerra.git] / cinelerra-5.1 / mpeg2enc / Makefile
1 export TOPDIR ?= $(CURDIR)/..
2 include $(TOPDIR)/global_config
3
4 ifneq ($(WANT_LIBZMPEG),no)
5
6 CC = gcc
7 CFLAGS += -I$(TOPDIR)/libzmpeg3
8
9 ifeq ($(OBJDIR), i686)
10 CFLAGS += -DX86_CPU -march=i686 -mcpu=i686 -fomit-frame-pointer
11 NASMOBJ = \
12         $(OBJDIR)/bdist1_mmx.o \
13         $(OBJDIR)/bdist2_mmx.o \
14         $(OBJDIR)/dist2_mmx.o \
15         $(OBJDIR)/fdct_mmx.o \
16         $(OBJDIR)/idct_mmx.o \
17         $(OBJDIR)/mblock_sad_mmx.o \
18         $(OBJDIR)/mblock_sad_mmxe.o \
19         $(OBJDIR)/mblockq_sad_mmxe.o \
20         $(OBJDIR)/predcomp_mmx.o \
21         $(OBJDIR)/predcomp_mmxe.o \
22         $(OBJDIR)/predict_mmx.o \
23         $(OBJDIR)/quant_mmx.o \
24
25 ASMOBJ = \
26         $(OBJDIR)/mblock_sub44_sads.o \
27         $(OBJDIR)/quantize_x86.o
28
29 #       $(OBJDIR)/mblock_sub44_sads.o \
30
31 endif
32
33 OBJ = \
34         $(OBJDIR)/mpeg2enc.o \
35         $(OBJDIR)/conform.o \
36         $(OBJDIR)/cpu_accel.o \
37         $(OBJDIR)/putseq.o \
38         $(OBJDIR)/putpic.o \
39         $(OBJDIR)/puthdr.o \
40         $(OBJDIR)/putmpg.o \
41         $(OBJDIR)/putvlc.o \
42         $(OBJDIR)/putbits.o \
43         $(OBJDIR)/motion.o \
44         $(OBJDIR)/predict.o \
45         $(OBJDIR)/readpic.o \
46         $(OBJDIR)/transfrm.o \
47         $(OBJDIR)/fdctdata.o \
48         $(OBJDIR)/fdctref.o \
49         $(OBJDIR)/idct.o \
50         $(OBJDIR)/idctdata.o \
51         $(OBJDIR)/quantize.o \
52         $(OBJDIR)/ratectl.o \
53         $(OBJDIR)/stats.o \
54         $(OBJDIR)/writepic.o
55
56 LIBS := $(LIBZMPEG3)/$(OBJDIR)/libzmpeg3.a
57 LIBS += $(libraries)
58
59 ifeq ($(WANT_CIN_3RDPARTY),no)
60 LIBS += -la52
61 endif
62 ifeq ($(shell uname -o), Android)
63 LIBS += ../libbthread-master/jpt.a
64 endif
65
66 HVEG2LIB = $(OBJDIR)/hveg2enc.a
67 HVEG2ENC = $(OBJDIR)/hveg2enc
68 HVEG2ENC_G = $(OBJDIR)/hveg2enc_g
69
70 $(shell mkdir -p $(OBJDIR))
71 $(shell echo $(CFLAGS) > $(OBJDIR)/c_flags)
72 $(shell echo $(HVEG2LIB)  $(OBJ) $(NASMOBJ) $(ASMOBJ) > $(OBJDIR)/objs)
73
74 $(HVEG2ENC):    $(OBJDIR)/hveg2enc.o $(HVEG2LIB)
75         $(CXX) `cat $(OBJDIR)/c_flags` -o $@ $^ $(LIBS)
76         $(if $(findstring -g,$(CFLAGS)),objcopy --only-keep-debug $(HVEG2ENC) $(HVEG2ENC_G))
77         strip $(HVEG2ENC)
78
79 $(OBJDIR)/hveg2enc.o:   mpeg2enc.c
80         $(CC) -c `cat $(OBJDIR)/c_flags` -Dmpeg2enc=main -o $@ $^
81
82 OUTPUT = $(HVEG2LIB) $(HVEG2ENC)
83
84 all: $(OUTPUT)
85
86 clean:
87         rm -rf $(OBJDIR)
88
89 install:        $(OUTPUT)
90         cp -a $(HVEG2ENC) $(BINDIR)/.
91
92 $(HVEG2LIB): $(OBJ) $(NASMOBJ) $(ASMOBJ)
93         ar rcs `cat $(OBJDIR)/objs`
94
95 $(NASMOBJ):
96         nasm -f elf $(subst $(OBJDIR)/,, $*.s) -o $*.o
97
98 $(OBJ) $(ASMOBJ):
99         $(CC) -c `cat $(OBJDIR)/c_flags` $(subst $(OBJDIR)/,, $*.c) -o $*.o
100
101 $(OBJDIR)/mpeg2enc.o:                       mpeg2enc.c
102 $(OBJDIR)/conform.o:                        conform.c
103 $(OBJDIR)/cpu_accel.o:                      cpu_accel.c
104 $(OBJDIR)/putseq.o:                         putseq.c
105 $(OBJDIR)/putpic.o:                         putpic.c
106 $(OBJDIR)/puthdr.o:                         puthdr.c
107 $(OBJDIR)/putmpg.o:                         putmpg.c
108 $(OBJDIR)/putvlc.o:                         putvlc.c
109 $(OBJDIR)/putbits.o:                        putbits.c
110 $(OBJDIR)/motion.o:                         motion.c
111 $(OBJDIR)/predict.o:                        predict.c
112 $(OBJDIR)/readpic.o:                        readpic.c
113 $(OBJDIR)/transfrm.o:                       transfrm.c
114 $(OBJDIR)/fdctdata.o:                       fdctdata.c
115 $(OBJDIR)/fdctref.o:                        fdctref.c
116 $(OBJDIR)/idct.o:                           idct.c
117 $(OBJDIR)/idctdata.o:                       idctdata.c
118 $(OBJDIR)/quantize.o:                       quantize.c
119 $(OBJDIR)/ratectl.o:                        ratectl.c
120 $(OBJDIR)/stats.o:                          stats.c
121 $(OBJDIR)/writepic.o:                       writepic.c
122
123
124 $(OBJDIR)/bdist1_mmx.o:                     bdist1_mmx.s
125 $(OBJDIR)/idct_mmx.o:                       idct_mmx.s
126 $(OBJDIR)/mblockq_sad_mmxe.o:               mblockq_sad_mmxe.s
127 $(OBJDIR)/predcomp_mmxe.o:                  predcomp_mmxe.s
128 $(OBJDIR)/bdist2_mmx.o:                     bdist2_mmx.s
129 $(OBJDIR)/mblock_sad_mmx.o:                 mblock_sad_mmx.s
130 $(OBJDIR)/predict_mmx.o:                    predict_mmx.s
131 $(OBJDIR)/dist2_mmx.o:                      dist2_mmx.s
132 $(OBJDIR)/mblock_sad_mmxe.o:                mblock_sad_mmxe.s
133 $(OBJDIR)/predcomp_mmx.o:                   predcomp_mmx.s
134 $(OBJDIR)/quant_mmx.o:                      quant_mmx.s
135 $(OBJDIR)/fdct_mmx.o:                       fdct_mmx.s
136
137 #$(OBJDIR)/mblock_sub44_sads.o:                     mblock_sub44_sads.c
138 $(OBJDIR)/quantize_x86.o:                   quantize_x86.c
139
140 val-%:
141         @echo $($(subst val-,,$@))
142
143 else
144 #not WANT_LIBZMPEG
145 all:
146 rebuild:
147 utils:
148 clean:
149 install:
150 endif