include ../global_config include $(THIRDPARTY)/config.mak OBJS = \ $(OBJDIR)/aattachmentpoint.o \ $(OBJDIR)/aautomation.o \ $(OBJDIR)/aboutprefs.o \ $(OBJDIR)/adeviceprefs.o \ $(OBJDIR)/aedit.o \ $(OBJDIR)/aedits.o \ $(OBJDIR)/affine.o \ $(OBJDIR)/amodule.o \ $(OBJDIR)/androidcontrol.o \ $(OBJDIR)/apatchgui.o \ $(OBJDIR)/aplugin.o \ $(OBJDIR)/apluginarray.o \ $(OBJDIR)/apluginset.o \ $(OBJDIR)/arender.o \ $(OBJDIR)/assetedit.o \ $(OBJDIR)/assetpopup.o \ $(OBJDIR)/assetremove.o \ $(OBJDIR)/assets.o \ $(OBJDIR)/asset.o \ $(OBJDIR)/atrack.o \ $(OBJDIR)/attachmentpoint.o \ $(OBJDIR)/audio1394.o \ $(OBJDIR)/audioalsa.o \ $(OBJDIR)/audiodevice.o \ $(OBJDIR)/audiodvb.o \ $(OBJDIR)/audioesound.o \ $(OBJDIR)/audioidevice.o \ $(OBJDIR)/audioodevice.o \ $(OBJDIR)/audiooss.o \ $(OBJDIR)/auto.o \ $(OBJDIR)/autos.o \ $(OBJDIR)/autoconf.o \ $(OBJDIR)/automation.o \ $(OBJDIR)/avc1394control.o \ $(OBJDIR)/avc1394transport.o \ $(OBJDIR)/awindow.o \ $(OBJDIR)/awindowgui.o \ $(OBJDIR)/awindowmenu.o \ $(OBJDIR)/batch.o \ $(OBJDIR)/batchrender.o \ $(OBJDIR)/bitspopup.o \ $(OBJDIR)/brender.o \ $(OBJDIR)/browsebutton.o \ $(OBJDIR)/byteorderpopup.o \ $(OBJDIR)/cache.o \ $(OBJDIR)/cachebase.o \ $(OBJDIR)/canvas.o \ $(OBJDIR)/canvastools.o \ $(OBJDIR)/channel.o \ $(OBJDIR)/channeldb.o \ $(OBJDIR)/channeledit.o \ $(OBJDIR)/channelpicker.o \ $(OBJDIR)/chantables.o \ $(OBJDIR)/clipedit.o \ $(OBJDIR)/cicolors.o \ $(OBJDIR)/colorpicker.o \ $(OBJDIR)/commonrender.o \ $(OBJDIR)/confirmsave.o \ $(OBJDIR)/confirmquit.o \ $(OBJDIR)/cpanel.o \ $(OBJDIR)/cplayback.o \ $(OBJDIR)/ctimebar.o \ $(OBJDIR)/ctracking.o \ $(OBJDIR)/cursor.o \ $(OBJDIR)/cwindow.o \ $(OBJDIR)/cwindowgui.o \ $(OBJDIR)/cwindowtool.o \ $(OBJDIR)/dcoffset.o \ $(OBJDIR)/device1394input.o \ $(OBJDIR)/devicedvbinput.o \ $(OBJDIR)/device1394output.o \ $(OBJDIR)/deleteallindexes.o \ $(OBJDIR)/dvbtune.o \ $(OBJDIR)/drivesync.o \ $(OBJDIR)/edit.o \ $(OBJDIR)/edithandles.o \ $(OBJDIR)/editlength.o \ $(OBJDIR)/editpanel.o \ $(OBJDIR)/editpopup.o \ $(OBJDIR)/edits.o \ $(OBJDIR)/edl.o \ $(OBJDIR)/edlsession.o \ $(OBJDIR)/fadeengine.o \ $(OBJDIR)/ffmpeg.o \ $(OBJDIR)/file.o \ $(OBJDIR)/fileac3.o \ $(OBJDIR)/fileavi.o \ $(OBJDIR)/filebase.o \ $(OBJDIR)/filebaseaudio.o \ $(OBJDIR)/filebaseima4.o \ $(OBJDIR)/filebaseulaw.o \ $(OBJDIR)/filecr2.o \ $(OBJDIR)/fileffmpeg.o \ $(OBJDIR)/filedv.o \ $(OBJDIR)/fileexr.o \ $(OBJDIR)/fileflac.o \ $(OBJDIR)/filefork.o \ $(OBJDIR)/fileformat.o \ $(OBJDIR)/filegif.o \ $(OBJDIR)/filelist.o \ $(OBJDIR)/filejpeg.o \ $(OBJDIR)/filemov.o \ $(OBJDIR)/filempeg.o \ $(OBJDIR)/fileogg.o \ $(OBJDIR)/filepng.o \ $(OBJDIR)/filescene.o \ $(OBJDIR)/fileserver.o \ $(OBJDIR)/filesndfile.o \ $(OBJDIR)/filetga.o \ $(OBJDIR)/filethread.o \ $(OBJDIR)/filetiff.o \ $(OBJDIR)/filevorbis.o \ $(OBJDIR)/filexml.o \ $(OBJDIR)/floatauto.o \ $(OBJDIR)/floatautos.o \ $(OBJDIR)/forkwrapper.o \ $(OBJDIR)/formatcheck.o \ $(OBJDIR)/formatpresets.o \ $(OBJDIR)/formatpopup.o \ $(OBJDIR)/formattools.o \ $(OBJDIR)/fourier.o \ $(OBJDIR)/framecache.o \ $(OBJDIR)/garbage.o \ $(OBJDIR)/gwindow.o \ $(OBJDIR)/gwindowgui.o \ $(OBJDIR)/iec61883input.o \ $(OBJDIR)/iec61883output.o \ $(OBJDIR)/indexable.o \ $(OBJDIR)/indexfile.o \ $(OBJDIR)/indexstate.o \ $(OBJDIR)/indexthread.o \ $(OBJDIR)/intauto.o \ $(OBJDIR)/intautos.o \ $(OBJDIR)/interfaceprefs.o \ $(OBJDIR)/keyframe.o \ $(OBJDIR)/keyframegui.o \ $(OBJDIR)/keyframepopup.o \ $(OBJDIR)/keyframes.o \ $(OBJDIR)/keyframehandles.o \ $(OBJDIR)/labelnavigate.o \ $(OBJDIR)/labels.o \ $(OBJDIR)/levelwindow.o \ $(OBJDIR)/levelwindowgui.o \ $(OBJDIR)/loadbalance.o \ $(OBJDIR)/loadfile.o \ $(OBJDIR)/loadmode.o \ $(OBJDIR)/localsession.o \ $(OBJDIR)/main.o \ $(OBJDIR)/mainclock.o \ $(OBJDIR)/maincursor.o \ $(OBJDIR)/mainerror.o \ $(OBJDIR)/mainindexes.o \ $(OBJDIR)/mainmenu.o \ $(OBJDIR)/mainprogress.o \ $(OBJDIR)/mainsession.o \ $(OBJDIR)/mainundo.o \ $(OBJDIR)/maskauto.o \ $(OBJDIR)/maskautos.o \ $(OBJDIR)/maskengine.o \ $(OBJDIR)/mbuttons.o \ $(OBJDIR)/menuaeffects.o \ $(OBJDIR)/menuattacheffect.o \ $(OBJDIR)/menuattachtransition.o \ $(OBJDIR)/menueditlength.o \ $(OBJDIR)/menueffects.o \ $(OBJDIR)/menutransitionlength.o \ $(OBJDIR)/menuveffects.o \ $(OBJDIR)/meterpanel.o \ $(OBJDIR)/module.o \ $(OBJDIR)/mtimebar.o \ $(OBJDIR)/mwindow.o \ $(OBJDIR)/mwindowedit.o \ $(OBJDIR)/mwindowgui.o \ $(OBJDIR)/mwindowmove.o \ $(OBJDIR)/nestededls.o \ $(OBJDIR)/new.o \ $(OBJDIR)/newfolder.o \ $(OBJDIR)/overlayframe.o \ $(OBJDIR)/packagedispatcher.o \ $(OBJDIR)/packagerenderer.o \ $(OBJDIR)/packagingengine.o \ $(OBJDIR)/panauto.o \ $(OBJDIR)/panautos.o \ $(OBJDIR)/panedividers.o \ $(OBJDIR)/patchbay.o \ $(OBJDIR)/patchgui.o \ $(OBJDIR)/performanceprefs.o \ $(OBJDIR)/picture.o \ $(OBJDIR)/playabletracks.o \ $(OBJDIR)/playback3d.o \ $(OBJDIR)/playbackconfig.o \ $(OBJDIR)/playbackengine.o \ $(OBJDIR)/playbackprefs.o \ $(OBJDIR)/playtransport.o \ $(OBJDIR)/plugin.o \ $(OBJDIR)/pluginaclient.o \ $(OBJDIR)/pluginaclientlad.o \ $(OBJDIR)/pluginarray.o \ $(OBJDIR)/pluginclient.o \ $(OBJDIR)/plugindialog.o \ $(OBJDIR)/pluginpopup.o \ $(OBJDIR)/pluginset.o \ $(OBJDIR)/pluginserver.o \ $(OBJDIR)/plugintclient.o \ $(OBJDIR)/plugintoggles.o \ $(OBJDIR)/pluginvclient.o \ $(OBJDIR)/preferences.o \ $(OBJDIR)/preferencesthread.o \ $(OBJDIR)/presets.o \ $(OBJDIR)/presetsgui.o \ $(OBJDIR)/question.o \ $(OBJDIR)/quit.o \ $(OBJDIR)/recconfirmdelete.o \ $(OBJDIR)/record.o \ $(OBJDIR)/recordableatracks.o \ $(OBJDIR)/recordablevtracks.o \ $(OBJDIR)/recordaudio.o \ $(OBJDIR)/recordconfig.o \ $(OBJDIR)/recordgui.o \ $(OBJDIR)/recordlabel.o \ $(OBJDIR)/recordmonitor.o \ $(OBJDIR)/recordprefs.o \ $(OBJDIR)/recordscopes.o \ $(OBJDIR)/recordthread.o \ $(OBJDIR)/recordtransport.o \ $(OBJDIR)/recordvideo.o \ $(OBJDIR)/removefile.o \ $(OBJDIR)/render.o \ $(OBJDIR)/renderfarm.o \ $(OBJDIR)/renderfarmclient.o \ $(OBJDIR)/renderengine.o \ $(OBJDIR)/resample.o \ $(OBJDIR)/resizetrackthread.o \ $(OBJDIR)/resourcepixmap.o \ $(OBJDIR)/resourcethread.o \ $(OBJDIR)/samples.o \ $(OBJDIR)/samplescroll.o \ $(OBJDIR)/savefile.o \ $(OBJDIR)/scenegraph.o \ $(OBJDIR)/scopewindow.o \ $(OBJDIR)/setformat.o \ $(OBJDIR)/sha1.o \ $(OBJDIR)/sharedlocation.o \ $(OBJDIR)/shmemory.o \ $(OBJDIR)/sighandler.o \ $(OBJDIR)/splashgui.o \ $(OBJDIR)/statusbar.o \ $(OBJDIR)/theme.o \ $(OBJDIR)/threadexec.o \ $(OBJDIR)/threadloader.o \ $(OBJDIR)/threadfork.o \ $(OBJDIR)/timelinepane.o \ $(OBJDIR)/timebar.o \ $(OBJDIR)/timeentry.o \ $(OBJDIR)/tipwindow.o \ $(OBJDIR)/track.o \ $(OBJDIR)/trackcanvas.o \ $(OBJDIR)/tracking.o \ $(OBJDIR)/tracks.o \ $(OBJDIR)/trackscroll.o \ $(OBJDIR)/tracksedit.o \ $(OBJDIR)/transition.o \ $(OBJDIR)/transitionhandles.o \ $(OBJDIR)/transitionpopup.o \ $(OBJDIR)/transportque.o \ $(OBJDIR)/tunerserver.o \ $(OBJDIR)/undostack.o \ $(OBJDIR)/vattachmentpoint.o \ $(OBJDIR)/vautomation.o \ $(OBJDIR)/vdevice1394.o \ $(OBJDIR)/vdevicebase.o \ $(OBJDIR)/vdevicebuz.o \ $(OBJDIR)/vdevicedvb.o \ $(OBJDIR)/vdeviceprefs.o \ $(OBJDIR)/vdevicev4l.o \ $(OBJDIR)/vdevicev4l2.o \ $(OBJDIR)/vdevicev4l2jpeg.o \ $(OBJDIR)/vdevicex11.o \ $(OBJDIR)/vedit.o \ $(OBJDIR)/vedits.o \ $(OBJDIR)/videodevice.o \ $(OBJDIR)/viewmenu.o \ $(OBJDIR)/virtualnode.o \ $(OBJDIR)/virtualaconsole.o \ $(OBJDIR)/virtualanode.o \ $(OBJDIR)/virtualconsole.o \ $(OBJDIR)/virtualvconsole.o \ $(OBJDIR)/virtualvnode.o \ $(OBJDIR)/vmodule.o \ $(OBJDIR)/vpatchgui.o \ $(OBJDIR)/vplayback.o \ $(OBJDIR)/vplugin.o \ $(OBJDIR)/vpluginarray.o \ $(OBJDIR)/vpluginset.o \ $(OBJDIR)/vtimebar.o \ $(OBJDIR)/vrender.o \ $(OBJDIR)/vtrack.o \ $(OBJDIR)/vtracking.o \ $(OBJDIR)/vwindow.o \ $(OBJDIR)/vwindowgui.o \ $(OBJDIR)/wavecache.o \ $(OBJDIR)/zoombar.o \ $(OBJDIR)/zoompanel.o \ \ $(OBJDIR)/devicempeginput.o \ $(OBJDIR)/devicev4l2base.o \ $(OBJDIR)/devicev4l2input.o \ $(OBJDIR)/audiov4l2mpeg.o \ $(OBJDIR)/vdevicev4l2mpeg.o \ $(OBJDIR)/vdevicempeg.o \ $(OBJDIR)/audiompeg.o \ $(OBJDIR)/channelinfo.o \ $(OBJDIR)/recordbatches.o \ $(OBJDIR)/remotecontrol.o \ $(OBJDIR)/mediadb.o \ $(OBJDIR)/commercials.o \ $(OBJDIR)/dbwindow.o \ $(OBJDIR)/filedb.o \ $(OBJDIR)/signalstatus.o \ $(OBJDIR)/strack.o \ $(OBJDIR)/swindow.o \ $(OBJDIR)/wwindow.o \ # $(OBJDIR)/renderfarmfsclient.o \ # $(OBJDIR)/renderfarmfsserver.o \ DCRAW := $(OBJDIR)/dcraw.o THEME_DATA := $(OBJDIR)/theme_data.o OUTPUT_G = $(OBJDIR)/cinelerra.debuginfo OUTPUT = ../bin/cinelerra CUTADS = $(OBJDIR)/cutads CUTOBJ = $(OBJDIR)/cutads.o CUTOBJS = $(CUTOBJ) \ $(OBJDIR)/mediadb.o \ $(OBJDIR)/filexml.o CUTLIBS = \ ../libzmpeg3/$(OBJDIR)/libzmpeg3.a -lX11 \ ../db/$(OBJDIR)/db.a ifeq ($(HAVE_AVIFILE), y) AVIFILE_DIR := $(shell cd ../avifile* ; pwd) endif LIBRARIES := \ ../quicktime/$(OBJDIR)/libquicktime.a \ ../guicast/$(OBJDIR)/libguicast.a \ ../libzmpeg3/$(OBJDIR)/libzmpeg3.a \ ../mpeg2enc/$(OBJDIR)/hveg2enc.a \ ../db/$(OBJDIR)/db.a \ $(THEME_DATA) \ LIBS := $(LIBRARIES) LIBS += \ -lX11 \ -lXext \ -lXinerama \ -lXv \ -lpthread \ -lm \ -lpng \ -ldl \ -lz \ -lbz2 \ -llzma \ -lfontconfig \ -lfreetype \ $(EXTRA_LIBS) ifeq ($(HAVE_GL), y) LIBS += -lGL -lGLU endif ifeq ($(HAVE_ALSA), y) CFLAGS += -DHAVE_ALSA LIBS += -lasound endif ifeq ($(HAVE_XFT), y) LIBS += -lXft endif CFLAGS += \ -c \ -I../guicast \ -I../quicktime \ -I../libzmpeg3 \ $(static_includes) \ ifeq ($(call lib_typ,$(ilmbase)),shared) CFLAGS += \ -I/usr/include/OpenEXR endif # Speed up linking with this linking sequence ifeq ($(OBJDIR), alpha) LDFLAGS1 = \ --demangle=compaq -export-dynamic -L./ \ -L../guicast -L/usr/X11R6/lib \ -L`expr /usr/lib/compaq/cxx-*/alpha-linux/`lib -L/usr/local/lib \ -L`expr /usr/lib/gcc-lib/alpha-redhat-linux/*` \ -rpath `expr /usr/lib/compaq/cxx-*/alpha-linux/`bin/ -m elf64alpha \ -L`expr /usr/lib/compaq/cxx-*/alpha-linux/`bin/ -dynamic-linker \ /lib/ld-linux.so.2 `expr /usr/lib/compaq/cxx-*/alpha-linux/`bin/crt1.o \ `expr /usr/lib/compaq/cxx-*/alpha-linux/`bin/crti.o \ `expr /usr/lib/compaq/cxx-*/alpha-linux/`bin/crtbegin.o \ `expr /usr/lib/compaq/cxx-*/alpha-linux/`bin/_main.o LDFLAGS2 = -lcpml -lcxxstdma_rh60 -lcxxma_rh60 -lc -lots \ `expr /usr/lib/compaq/cxx-*/alpha-linux/`bin/crtend.o \ `expr /usr/lib/compaq/cxx-*/alpha-linux/`bin/crtn.o --no-demangle \ --warn-once LINKER = ld -o $(OUTPUT) CFLAGS += -DUSE_ALPHA else LDFLAGS1 = -export-dynamic LDFLAGS2 = LINKER = g++ -o $(OUTPUT) endif # Enable AVIFile support ifeq ($(HAVE_AVIFILE), y) CFLAGS += -DUSE_AVIFILE -I$(AVIFILE_DIR)/include LIBS += \ $(AVIFILE_DIR)/libmmxnow/src/.libs/libmmxnow.a \ $(AVIFILE_DIR)/lib/.libs/libaviplay.a endif FFMPEG_CFLAGS := \ -include /usr/include/time.h \ $(shell echo $(CFLAGS) > $(OBJDIR)/c_flags) $(shell echo $(CFLAGS) $(FFMPEG_CFLAGS) > $(OBJDIR)/ffmpeg_cflags) $(shell echo $(LDFLAGS1) $(OBJS) $(DCRAW) $(FILEEXR) $(FILEFLAC) $(FFMPEG_OBJS) $(AVIOBJS) \ $(thirdparty_libraries) $(thirdparty_libraries) $(LIBS) $(LDFLAGS2) > $(OBJDIR)/objs) all: $(OUTPUT) $(CUTADS) # Static linking is not possible because the plugins depend on symbols # in the main executable. # Also VFS only overrides the C library when dynamic linking is used. $(OUTPUT): $(OBJS) $(DCRAW) $(FILEEXR) $(FFMPEG_OBJS) $(FILEFLAC) $(LIBRARIES) $(LINKER) `cat $(OBJDIR)/objs` $(if $(findstring -g,$(CFLAGS)),objcopy --only-keep-debug $(OUTPUT) $(OUTPUT_G)) $(if $(findstring -ggdb,$(CFLAGS)),,strip $(OUTPUT)) $(CUTADS): $(CUTOBJS) $(CUTLIBS) g++ -pthread -o $(OBJDIR)/cutads $(CUTOBJS) $(CUTLIBS) $(OBJDIR)/test: $(CC) -shared -o $(OBJDIR)/test.so \ $(OBJDIR)/threadfork.o \ ../guicast/$(OBJDIR)/thread.o \ ../guicast/$(OBJDIR)/mutex.o $(CC) -o $(OBJDIR)/test test.C \ `cat $(OBJDIR)/c_flags` \ $(OBJDIR)/test.so \ $(LIBS) clean: rm -rf $(OBJDIR) find \( -name core \ -o -name '*.o' -o -name '*.a' \ -o -name '*.so' \) -exec rm -f {} \; -prune tags: ctags -R -h default --langmap=c:+.inc . ../guicast/ ../libzmpeg3 ../quicktime ../plugins $(OBJDIR)/%.o: %.C $(CXX) `cat $(OBJDIR)/c_flags` -c $< -o $@ $(DCRAW): dcraw.c $(GCC) `cat $(OBJDIR)/c_flags` dcraw.c -o $*.o $(THEME_DATA): cd $(OBJDIR) && \ ../../guicast/$(OBJDIR)/bootstrap theme_data.o ../data/mode_*.png val-%: @echo $($(subst val-,,$@))