1 export TOPDIR ?= $(CURDIR)/..
2 include $(TOPDIR)/global_config
5 $(OBJDIR)/aattachmentpoint.o \
6 $(OBJDIR)/aautomation.o \
7 $(OBJDIR)/aboutprefs.o \
8 $(OBJDIR)/adeviceprefs.o \
13 $(OBJDIR)/androidcontrol.o \
14 $(OBJDIR)/apatchgui.o \
15 $(OBJDIR)/apluginarray.o \
17 $(OBJDIR)/apluginset.o \
19 $(OBJDIR)/assetedit.o \
21 $(OBJDIR)/assetpopup.o \
22 $(OBJDIR)/assetremove.o \
25 $(OBJDIR)/attachmentpoint.o \
26 $(OBJDIR)/audio1394.o \
27 $(OBJDIR)/audioalsa.o \
28 $(OBJDIR)/audiodevice.o \
29 $(OBJDIR)/audiodvb.o \
30 $(OBJDIR)/audioesound.o \
31 $(OBJDIR)/audioidevice.o \
32 $(OBJDIR)/audiompeg.o \
33 $(OBJDIR)/audioodevice.o \
34 $(OBJDIR)/audiooss.o \
35 $(OBJDIR)/audiov4l2mpeg.o \
36 $(OBJDIR)/autoconf.o \
37 $(OBJDIR)/automation.o \
40 $(OBJDIR)/avc1394control.o \
41 $(OBJDIR)/avc1394transport.o \
42 $(OBJDIR)/awindowgui.o \
43 $(OBJDIR)/awindowmenu.o \
46 $(OBJDIR)/batchrender.o \
47 $(OBJDIR)/bdcreate.o \
48 $(OBJDIR)/bitspopup.o \
50 $(OBJDIR)/browsebutton.o \
51 $(OBJDIR)/byteorderpopup.o \
52 $(OBJDIR)/cachebase.o \
55 $(OBJDIR)/canvastools.o \
56 $(OBJDIR)/channeldb.o \
57 $(OBJDIR)/channeledit.o \
58 $(OBJDIR)/channelinfo.o \
60 $(OBJDIR)/channelpicker.o \
61 $(OBJDIR)/chantables.o \
62 $(OBJDIR)/cicolors.o \
63 $(OBJDIR)/clipedit.o \
64 $(OBJDIR)/colorpicker.o \
65 $(OBJDIR)/commercials.o \
66 $(OBJDIR)/commonrender.o \
67 $(OBJDIR)/confirmquit.o \
68 $(OBJDIR)/confirmsave.o \
70 $(OBJDIR)/cplayback.o \
71 $(OBJDIR)/ctimebar.o \
72 $(OBJDIR)/ctracking.o \
74 $(OBJDIR)/cwindowgui.o \
76 $(OBJDIR)/cwindowtool.o \
77 $(OBJDIR)/dbwindow.o \
78 $(OBJDIR)/dcoffset.o \
79 $(OBJDIR)/deleteallindexes.o \
80 $(OBJDIR)/device1394input.o \
81 $(OBJDIR)/device1394output.o \
82 $(OBJDIR)/devicedvbinput.o \
83 $(OBJDIR)/devicempeginput.o \
84 $(OBJDIR)/devicev4l2base.o \
85 $(OBJDIR)/devicev4l2input.o \
86 $(OBJDIR)/drivesync.o \
88 $(OBJDIR)/dvdcreate.o \
89 $(OBJDIR)/edithandles.o \
90 $(OBJDIR)/editlength.o \
92 $(OBJDIR)/editpanel.o \
93 $(OBJDIR)/editpopup.o \
96 $(OBJDIR)/edlsession.o \
97 $(OBJDIR)/exportedl.o \
98 $(OBJDIR)/fadeengine.o \
100 $(OBJDIR)/fileac3.o \
101 $(OBJDIR)/filebaseaudio.o \
102 $(OBJDIR)/filebase.o \
103 $(OBJDIR)/filebaseulaw.o \
104 $(OBJDIR)/filecr2.o \
107 $(OBJDIR)/fileexr.o \
108 $(OBJDIR)/fileffmpeg.o \
109 $(OBJDIR)/fileflac.o \
110 $(OBJDIR)/fileformat.o \
111 $(OBJDIR)/filegif.o \
112 $(OBJDIR)/filejpeg.o \
113 $(OBJDIR)/filelist.o \
114 $(OBJDIR)/filempeg.o \
116 $(OBJDIR)/fileogg.o \
117 $(OBJDIR)/filepng.o \
118 $(OBJDIR)/filescene.o \
119 $(OBJDIR)/filesndfile.o \
120 $(OBJDIR)/filetga.o \
121 $(OBJDIR)/filethread.o \
122 $(OBJDIR)/filetiff.o \
123 $(OBJDIR)/filevorbis.o \
124 $(OBJDIR)/filexml.o \
125 $(OBJDIR)/floatauto.o \
126 $(OBJDIR)/floatautos.o \
127 $(OBJDIR)/formatcheck.o \
128 $(OBJDIR)/formatpopup.o \
129 $(OBJDIR)/formatpresets.o \
130 $(OBJDIR)/formattools.o \
131 $(OBJDIR)/fourier.o \
132 $(OBJDIR)/framecache.o \
133 $(OBJDIR)/garbage.o \
134 $(OBJDIR)/gwindowgui.o \
135 $(OBJDIR)/gwindow.o \
136 $(OBJDIR)/iec61883input.o \
137 $(OBJDIR)/iec61883output.o \
138 $(OBJDIR)/indexable.o \
139 $(OBJDIR)/indexfile.o \
140 $(OBJDIR)/indexstate.o \
141 $(OBJDIR)/indexthread.o \
142 $(OBJDIR)/intauto.o \
143 $(OBJDIR)/intautos.o \
144 $(OBJDIR)/interfaceprefs.o \
145 $(OBJDIR)/interlacemodes.o \
146 $(OBJDIR)/keyframegui.o \
147 $(OBJDIR)/keyframehandles.o \
148 $(OBJDIR)/keyframe.o \
149 $(OBJDIR)/keyframepopup.o \
150 $(OBJDIR)/keyframes.o \
151 $(OBJDIR)/labeledit.o \
152 $(OBJDIR)/labelnavigate.o \
154 $(OBJDIR)/levelwindowgui.o \
155 $(OBJDIR)/levelwindow.o \
157 $(OBJDIR)/libmjpeg.o \
158 $(OBJDIR)/loadbalance.o \
159 $(OBJDIR)/loadfile.o \
160 $(OBJDIR)/loadmode.o \
161 $(OBJDIR)/localsession.o \
162 $(OBJDIR)/mainclock.o \
163 $(OBJDIR)/maincursor.o \
164 $(OBJDIR)/mainerror.o \
165 $(OBJDIR)/mainindexes.o \
166 $(OBJDIR)/mainmenu.o \
168 $(OBJDIR)/mainprogress.o \
169 $(OBJDIR)/mainsession.o \
170 $(OBJDIR)/mainundo.o \
171 $(OBJDIR)/manualgoto.o \
172 $(OBJDIR)/maskauto.o \
173 $(OBJDIR)/maskautos.o \
174 $(OBJDIR)/maskengine.o \
175 $(OBJDIR)/mbuttons.o \
176 $(OBJDIR)/mediadb.o \
177 $(OBJDIR)/menuaeffects.o \
178 $(OBJDIR)/menuattacheffect.o \
179 $(OBJDIR)/menuattachtransition.o \
180 $(OBJDIR)/menueditlength.o \
181 $(OBJDIR)/menueffects.o \
182 $(OBJDIR)/menutransitionlength.o \
183 $(OBJDIR)/menuveffects.o \
184 $(OBJDIR)/meterpanel.o \
186 $(OBJDIR)/mtimebar.o \
187 $(OBJDIR)/mwindowedit.o \
188 $(OBJDIR)/mwindowgui.o \
189 $(OBJDIR)/mwindowmove.o \
190 $(OBJDIR)/mwindow.o \
191 $(OBJDIR)/nestededls.o \
192 $(OBJDIR)/newfolder.o \
194 $(OBJDIR)/overlaydirect.o \
195 $(OBJDIR)/overlayframe.o \
196 $(OBJDIR)/overlaynearest.o \
197 $(OBJDIR)/overlaysample.o \
198 $(OBJDIR)/packagedispatcher.o \
199 $(OBJDIR)/packagerenderer.o \
200 $(OBJDIR)/packagingengine.o \
201 $(OBJDIR)/panauto.o \
202 $(OBJDIR)/panautos.o \
203 $(OBJDIR)/panedividers.o \
204 $(OBJDIR)/patchbay.o \
205 $(OBJDIR)/patchgui.o \
206 $(OBJDIR)/performanceprefs.o \
207 $(OBJDIR)/picture.o \
208 $(OBJDIR)/playabletracks.o \
209 $(OBJDIR)/playback3d.o \
210 $(OBJDIR)/playbackconfig.o \
211 $(OBJDIR)/playbackengine.o \
212 $(OBJDIR)/playbackprefs.o \
213 $(OBJDIR)/playtransport.o \
214 $(OBJDIR)/pluginaclientlad.o \
215 $(OBJDIR)/pluginaclient.o \
216 $(OBJDIR)/pluginarray.o \
217 $(OBJDIR)/pluginclient.o \
218 $(OBJDIR)/plugindialog.o \
219 $(OBJDIR)/pluginfclient.o \
221 $(OBJDIR)/pluginpopup.o \
222 $(OBJDIR)/pluginserver.o \
223 $(OBJDIR)/pluginset.o \
224 $(OBJDIR)/plugintclient.o \
225 $(OBJDIR)/plugintoggles.o \
226 $(OBJDIR)/pluginvclient.o \
227 $(OBJDIR)/preferences.o \
228 $(OBJDIR)/preferencesthread.o \
229 $(OBJDIR)/question.o \
231 $(OBJDIR)/recconfirmdelete.o \
232 $(OBJDIR)/recordableatracks.o \
233 $(OBJDIR)/recordablevtracks.o \
234 $(OBJDIR)/recordaudio.o \
235 $(OBJDIR)/recordbatches.o \
236 $(OBJDIR)/recordconfig.o \
237 $(OBJDIR)/recordgui.o \
238 $(OBJDIR)/recordlabel.o \
239 $(OBJDIR)/recordmonitor.o \
241 $(OBJDIR)/recordprefs.o \
242 $(OBJDIR)/recordscopes.o \
243 $(OBJDIR)/recordthread.o \
244 $(OBJDIR)/recordtransport.o \
245 $(OBJDIR)/recordvideo.o \
246 $(OBJDIR)/remotecontrol.o \
247 $(OBJDIR)/removefile.o \
248 $(OBJDIR)/renderengine.o \
249 $(OBJDIR)/renderfarmclient.o \
250 $(OBJDIR)/renderfarm.o \
252 $(OBJDIR)/renderprofiles.o \
253 $(OBJDIR)/resample.o \
254 $(OBJDIR)/rescale.o \
255 $(OBJDIR)/resizetrackthread.o \
256 $(OBJDIR)/resourcepixmap.o \
257 $(OBJDIR)/resourcethread.o \
258 $(OBJDIR)/samplescroll.o \
259 $(OBJDIR)/samples.o \
260 $(OBJDIR)/savefile.o \
261 $(OBJDIR)/scenegraph.o \
262 $(OBJDIR)/scopewindow.o \
263 $(OBJDIR)/setformat.o \
265 $(OBJDIR)/sharedlocation.o \
266 $(OBJDIR)/shbtnprefs.o \
267 $(OBJDIR)/shmemory.o \
268 $(OBJDIR)/sighandler.o \
269 $(OBJDIR)/signalstatus.o \
270 $(OBJDIR)/splashgui.o \
271 $(OBJDIR)/statusbar.o \
273 $(OBJDIR)/swindow.o \
275 $(OBJDIR)/threadexec.o \
276 $(OBJDIR)/threadloader.o \
277 $(OBJDIR)/timebar.o \
278 $(OBJDIR)/timeentry.o \
279 $(OBJDIR)/timelinepane.o \
280 $(OBJDIR)/tipwindow.o \
281 $(OBJDIR)/trackcanvas.o \
282 $(OBJDIR)/tracking.o \
284 $(OBJDIR)/trackscroll.o \
285 $(OBJDIR)/tracksedit.o \
287 $(OBJDIR)/transitionhandles.o \
288 $(OBJDIR)/transition.o \
289 $(OBJDIR)/transitionpopup.o \
290 $(OBJDIR)/transportque.o \
291 $(OBJDIR)/tunerserver.o \
292 $(OBJDIR)/undostack.o \
293 $(OBJDIR)/vattachmentpoint.o \
294 $(OBJDIR)/vautomation.o \
295 $(OBJDIR)/vdevice1394.o \
296 $(OBJDIR)/vdevicebase.o \
297 $(OBJDIR)/vdevicedvb.o \
298 $(OBJDIR)/vdevicempeg.o \
299 $(OBJDIR)/vdeviceprefs.o \
300 $(OBJDIR)/vdevicev4l2jpeg.o \
301 $(OBJDIR)/vdevicev4l2mpeg.o \
302 $(OBJDIR)/vdevicev4l2.o \
303 $(OBJDIR)/vdevicex11.o \
306 $(OBJDIR)/videodevice.o \
307 $(OBJDIR)/viewmenu.o \
308 $(OBJDIR)/virtualaconsole.o \
309 $(OBJDIR)/virtualanode.o \
310 $(OBJDIR)/virtualconsole.o \
311 $(OBJDIR)/virtualnode.o \
312 $(OBJDIR)/virtualvconsole.o \
313 $(OBJDIR)/virtualvnode.o \
314 $(OBJDIR)/vmodule.o \
315 $(OBJDIR)/vpatchgui.o \
316 $(OBJDIR)/vplayback.o \
317 $(OBJDIR)/vpluginarray.o \
318 $(OBJDIR)/vplugin.o \
319 $(OBJDIR)/vpluginset.o \
320 $(OBJDIR)/vrender.o \
321 $(OBJDIR)/vtimebar.o \
322 $(OBJDIR)/vtracking.o \
324 $(OBJDIR)/vwindowgui.o \
325 $(OBJDIR)/vwindow.o \
326 $(OBJDIR)/wavecache.o \
327 $(OBJDIR)/wwindow.o \
328 $(OBJDIR)/zoombar.o \
329 $(OBJDIR)/zoompanel.o \
331 # $(OBJDIR)/renderfarmfsclient.o \
332 # $(OBJDIR)/renderfarmfsserver.o \
335 DCRAW := $(OBJDIR)/dcraw.o
336 THEME_DATA := $(OBJDIR)/theme_data.o
338 OUTPUT = $(BINDIR)/$(WANT_CIN)
339 OUTPUT_G = $(OBJDIR)/$(WANT_CIN).debuginfo
342 $(GUICAST)/$(OBJDIR)/libguicast.a \
343 $(LIBZMPEG3)/$(OBJDIR)/libzmpeg3.a \
344 $(MPEG2ENC)/$(OBJDIR)/hveg2enc.a \
345 $(TDB)/$(OBJDIR)/db.a \
351 CUTADS = $(OBJDIR)/cutads
352 CUTOBJ = $(OBJDIR)/cutads.o
353 CUTOBJS = $(CUTOBJ) \
354 $(OBJDIR)/mediadb.o \
357 $(LIBZMPEG3)/$(OBJDIR)/libzmpeg3.a -lX11 \
358 $(TDB)/$(OBJDIR)/db.a
360 BDWRITE = $(OBJDIR)/bdwrite
361 BDWOBJS = $(OBJDIR)/bdwrite.o
369 # Speed up linking with this linking sequence
370 ifeq ($(OBJDIR), alpha)
373 --demangle=compaq -export-dynamic -L./ \
374 -L$(GUICAST) -L/usr/X11R6/lib \
375 -L`expr /usr/lib/compaq/cxx-*/alpha-linux/`lib -L/usr/local/lib \
376 -L`expr /usr/lib/gcc-lib/alpha-redhat-linux/*` \
377 -rpath `expr /usr/lib/compaq/cxx-*/alpha-linux/`bin/ -m elf64alpha \
378 -L`expr /usr/lib/compaq/cxx-*/alpha-linux/`bin/ -dynamic-linker \
379 /lib/ld-linux.so.2 `expr /usr/lib/compaq/cxx-*/alpha-linux/`bin/crt1.o \
380 `expr /usr/lib/compaq/cxx-*/alpha-linux/`bin/crti.o \
381 `expr /usr/lib/compaq/cxx-*/alpha-linux/`bin/crtbegin.o \
382 `expr /usr/lib/compaq/cxx-*/alpha-linux/`bin/_main.o
384 LDFLAGS2 = -lcpml -lcxxstdma_rh60 -lcxxma_rh60 -lc -lots \
385 `expr /usr/lib/compaq/cxx-*/alpha-linux/`bin/crtend.o \
386 `expr /usr/lib/compaq/cxx-*/alpha-linux/`bin/crtn.o --no-demangle \
388 LINKER = ld -o $(OUTPUT)
389 CFLAGS += -DUSE_ALPHA
393 LDFLAGS1 = -export-dynamic
395 LINKER = g++ -o $(OUTPUT)
399 $(shell mkdir -p $(OBJDIR))
400 $(shell echo $(CFLAGS) > $(OBJDIR)/c_flags)
401 $(shell echo $(LDFLAGS1) $(OBJS) $(DCRAW) $(LIBS) $(LDFLAGS2) > $(OBJDIR)/objs)
403 all: $(OUTPUT) $(CUTADS) $(BDWRITE)
405 # Static linking is not possible because the plugins depend on symbols
406 # in the main executable.
407 # Also VFS only overrides the C library when dynamic linking is used.
408 $(OUTPUT): $(OBJS) $(DCRAW) $(FILEEXR) $(FILEFLAC) $(LIBRARIES)
409 $(LINKER) `cat $(OBJDIR)/objs`
410 $(if $(findstring -g,$(CFLAGS)),objcopy --only-keep-debug $(OUTPUT) $(OUTPUT_G))
411 $(if $(findstring -ggdb,$(CFLAGS)),,strip $(OUTPUT))
412 ln -f -s ../bin/$(WANT_CIN) ci
414 $(CUTADS): $(CUTOBJS) $(CUTLIBS) $(LIBRARIES)
415 @echo g++ -o $@ $(CUTOBJS)
416 @g++ $(CFLAGS) -pthread -o $@ $(CUTOBJS) $(CUTLIBS) $(LIBS)
417 $(if $(findstring -g,$(CFLAGS)),objcopy --only-keep-debug $(CUTADS) $(CUTADS).debuginfo)
418 $(if $(findstring -ggdb,$(CFLAGS)),,strip $(CUTADS))
420 $(BDWRITE): $(BDWOBJS) $(LIBRARIES)
421 @echo g++ -o $@ $(BDWOBJS)
422 @g++ $(CFLAGS) -pthread -o $@ $(BDWOBJS) $(LIBS)
423 $(if $(findstring -g,$(CFLAGS)),objcopy --only-keep-debug $(BDWRITE) $(BDWRITE).debuginfo)
424 $(if $(findstring -ggdb,$(CFLAGS)),,strip $(BDWRITE))
426 ydiff: ydiff.C $(LIBRARIES)
427 @echo g++ -o $@ ydiff.C
428 @g++ `pkg-config --cflags --libs gtk+-2.0` $(CFLAGS) ydiff.C -o $@ $(LIBS)
434 cp -a $(OBJDIR)/cutads $(BINDIR)/.
435 cp -a $(OBJDIR)/bdwrite $(BINDIR)/.
438 ctags -R -h default --langmap=c:+.inc . ../guicast/ ../libzmpeg3 ../plugins ../thirdparty/ffmpeg-*
442 $(CXX) `cat $(OBJDIR)/c_flags` -c $< -o $@
444 $(OBJDIR)/sha1.o: sha1.C sha1.h
445 $(CXX) `cat $(OBJDIR)/c_flags` -O3 -c $< -o $@
448 $(GCC) `cat $(OBJDIR)/c_flags` -Wno-misleading-indentation dcraw.c -c -o $*.o
452 $(GUICAST)/$(OBJDIR)/bootstrap theme_data.o $(CINELERRA)/data/mode_*.png
455 @echo $($(subst val-,,$@))