olaf neophyte and de.po updates, valgrind tweaks, delete green lady, inkscape dpi=96
[goodguy/history.git] / cinelerra-5.1 / cinelerra / Makefile
index 11af09329c0fc2377b4d9047d9b7d1e32afff406..5f7bcbdb2a46af20e765cafb5e37c1a45e961c6b 100644 (file)
@@ -1,7 +1,7 @@
-include ../global_config
-include $(THIRDPARTY)/config.mak
+export TOPDIR ?= $(CURDIR)/..
+include $(TOPDIR)/global_config
 
-OBJS = \
+OBJS := \
        $(OBJDIR)/aattachmentpoint.o \
        $(OBJDIR)/aautomation.o \
        $(OBJDIR)/aboutprefs.o \
@@ -12,15 +12,16 @@ OBJS = \
        $(OBJDIR)/amodule.o \
        $(OBJDIR)/androidcontrol.o \
        $(OBJDIR)/apatchgui.o \
-       $(OBJDIR)/aplugin.o \
        $(OBJDIR)/apluginarray.o \
+       $(OBJDIR)/aplugin.o \
        $(OBJDIR)/apluginset.o \
+       $(OBJDIR)/appearanceprefs.o \
        $(OBJDIR)/arender.o \
        $(OBJDIR)/assetedit.o \
+       $(OBJDIR)/asset.o \
        $(OBJDIR)/assetpopup.o \
        $(OBJDIR)/assetremove.o \
        $(OBJDIR)/assets.o \
-       $(OBJDIR)/asset.o \
        $(OBJDIR)/atrack.o \
        $(OBJDIR)/attachmentpoint.o \
        $(OBJDIR)/audio1394.o \
@@ -31,79 +32,86 @@ OBJS = \
        $(OBJDIR)/audioidevice.o \
        $(OBJDIR)/audioodevice.o \
        $(OBJDIR)/audiooss.o \
-       $(OBJDIR)/auto.o \
-       $(OBJDIR)/autos.o \
+       $(OBJDIR)/audiov4l2mpeg.o \
        $(OBJDIR)/autoconf.o \
        $(OBJDIR)/automation.o \
+       $(OBJDIR)/auto.o \
+       $(OBJDIR)/autos.o \
        $(OBJDIR)/avc1394control.o \
        $(OBJDIR)/avc1394transport.o \
-       $(OBJDIR)/awindow.o \
        $(OBJDIR)/awindowgui.o \
-       $(OBJDIR)/awindowmenu.o \
+       $(OBJDIR)/awindow.o \
        $(OBJDIR)/batch.o \
        $(OBJDIR)/batchrender.o \
+       $(OBJDIR)/bdcreate.o \
+       $(OBJDIR)/binfolder.o \
        $(OBJDIR)/bitspopup.o \
        $(OBJDIR)/brender.o \
        $(OBJDIR)/browsebutton.o \
        $(OBJDIR)/byteorderpopup.o \
-       $(OBJDIR)/cache.o \
        $(OBJDIR)/cachebase.o \
+       $(OBJDIR)/cache.o \
        $(OBJDIR)/canvas.o \
        $(OBJDIR)/canvastools.o \
-       $(OBJDIR)/channel.o \
        $(OBJDIR)/channeldb.o \
        $(OBJDIR)/channeledit.o \
+       $(OBJDIR)/channelinfo.o \
+       $(OBJDIR)/channel.o \
        $(OBJDIR)/channelpicker.o \
        $(OBJDIR)/chantables.o \
        $(OBJDIR)/clipedit.o \
-       $(OBJDIR)/cicolors.o \
+       $(OBJDIR)/clipedls.o \
+       $(OBJDIR)/clippopup.o \
        $(OBJDIR)/colorpicker.o \
        $(OBJDIR)/commonrender.o \
-       $(OBJDIR)/confirmsave.o \
        $(OBJDIR)/confirmquit.o \
+       $(OBJDIR)/confirmsave.o \
        $(OBJDIR)/cpanel.o \
        $(OBJDIR)/cplayback.o \
        $(OBJDIR)/ctimebar.o \
        $(OBJDIR)/ctracking.o \
        $(OBJDIR)/cursor.o \
-       $(OBJDIR)/cwindow.o \
        $(OBJDIR)/cwindowgui.o \
+       $(OBJDIR)/cwindow.o \
        $(OBJDIR)/cwindowtool.o \
        $(OBJDIR)/dcoffset.o \
+       $(OBJDIR)/deleteallindexes.o \
        $(OBJDIR)/device1394input.o \
-       $(OBJDIR)/devicedvbinput.o \
        $(OBJDIR)/device1394output.o \
-       $(OBJDIR)/deleteallindexes.o \
-       $(OBJDIR)/dvbtune.o \
+       $(OBJDIR)/devicedvbinput.o \
+       $(OBJDIR)/devicev4l2base.o \
+       $(OBJDIR)/devicev4l2input.o \
+       $(OBJDIR)/dragcheckbox.o \
        $(OBJDIR)/drivesync.o \
-       $(OBJDIR)/edit.o \
+       $(OBJDIR)/dvdcreate.o \
        $(OBJDIR)/edithandles.o \
        $(OBJDIR)/editlength.o \
+       $(OBJDIR)/edit.o \
        $(OBJDIR)/editpanel.o \
        $(OBJDIR)/editpopup.o \
        $(OBJDIR)/edits.o \
        $(OBJDIR)/edl.o \
        $(OBJDIR)/edlsession.o \
+       $(OBJDIR)/effectlist.o \
        $(OBJDIR)/exportedl.o \
        $(OBJDIR)/fadeengine.o \
        $(OBJDIR)/ffmpeg.o \
-       $(OBJDIR)/file.o \
-       $(OBJDIR)/fileac3.o \
-       $(OBJDIR)/filebase.o \
        $(OBJDIR)/filebaseaudio.o \
+       $(OBJDIR)/filebase.o \
        $(OBJDIR)/filebaseulaw.o \
        $(OBJDIR)/filecr2.o \
-       $(OBJDIR)/fileffmpeg.o \
        $(OBJDIR)/filedv.o \
        $(OBJDIR)/fileexr.o \
+       $(OBJDIR)/fileffmpeg.o \
        $(OBJDIR)/fileflac.o \
        $(OBJDIR)/fileformat.o \
        $(OBJDIR)/filegif.o \
-       $(OBJDIR)/filelist.o \
        $(OBJDIR)/filejpeg.o \
-       $(OBJDIR)/filempeg.o \
+       $(OBJDIR)/filelist.o \
+       $(OBJDIR)/file.o \
        $(OBJDIR)/fileogg.o \
        $(OBJDIR)/filepng.o \
+       $(OBJDIR)/fileppm.o \
        $(OBJDIR)/filescene.o \
        $(OBJDIR)/filesndfile.o \
        $(OBJDIR)/filetga.o \
@@ -113,15 +121,17 @@ OBJS = \
        $(OBJDIR)/filexml.o \
        $(OBJDIR)/floatauto.o \
        $(OBJDIR)/floatautos.o \
+       $(OBJDIR)/folderlistmenu.o \
+       $(OBJDIR)/forkbase.o \
        $(OBJDIR)/formatcheck.o \
-       $(OBJDIR)/formatpresets.o \
        $(OBJDIR)/formatpopup.o \
+       $(OBJDIR)/formatpresets.o \
        $(OBJDIR)/formattools.o \
        $(OBJDIR)/fourier.o \
        $(OBJDIR)/framecache.o \
        $(OBJDIR)/garbage.o \
-       $(OBJDIR)/gwindow.o \
        $(OBJDIR)/gwindowgui.o \
+       $(OBJDIR)/gwindow.o \
        $(OBJDIR)/iec61883input.o \
        $(OBJDIR)/iec61883output.o \
        $(OBJDIR)/indexable.o \
@@ -132,28 +142,29 @@ OBJS = \
        $(OBJDIR)/intautos.o \
        $(OBJDIR)/interfaceprefs.o \
        $(OBJDIR)/interlacemodes.o \
-       $(OBJDIR)/keyframe.o \
        $(OBJDIR)/keyframegui.o \
+       $(OBJDIR)/keyframehandles.o \
+       $(OBJDIR)/keyframe.o \
        $(OBJDIR)/keyframepopup.o \
        $(OBJDIR)/keyframes.o \
-       $(OBJDIR)/keyframehandles.o \
        $(OBJDIR)/labeledit.o \
+       $(OBJDIR)/labelpopup.o \
        $(OBJDIR)/labelnavigate.o \
        $(OBJDIR)/labels.o \
-       $(OBJDIR)/levelwindow.o \
        $(OBJDIR)/levelwindowgui.o \
+       $(OBJDIR)/levelwindow.o \
        $(OBJDIR)/libdv.o \
        $(OBJDIR)/libmjpeg.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)/main.o \
        $(OBJDIR)/mainprogress.o \
        $(OBJDIR)/mainsession.o \
        $(OBJDIR)/mainundo.o \
@@ -169,17 +180,19 @@ OBJS = \
        $(OBJDIR)/menueffects.o \
        $(OBJDIR)/menutransitionlength.o \
        $(OBJDIR)/menuveffects.o \
+       $(OBJDIR)/meterhistory.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)/mwindow.o \
        $(OBJDIR)/new.o \
-       $(OBJDIR)/newfolder.o \
+       $(OBJDIR)/overlaydirect.o \
        $(OBJDIR)/overlayframe.o \
+       $(OBJDIR)/overlaynearest.o \
+       $(OBJDIR)/overlaysample.o \
        $(OBJDIR)/packagedispatcher.o \
        $(OBJDIR)/packagerenderer.o \
        $(OBJDIR)/packagingengine.o \
@@ -196,75 +209,89 @@ OBJS = \
        $(OBJDIR)/playbackengine.o \
        $(OBJDIR)/playbackprefs.o \
        $(OBJDIR)/playtransport.o \
-       $(OBJDIR)/plugin.o \
-       $(OBJDIR)/pluginaclient.o \
        $(OBJDIR)/pluginaclientlad.o \
+       $(OBJDIR)/pluginaclient.o \
        $(OBJDIR)/pluginarray.o \
        $(OBJDIR)/pluginclient.o \
        $(OBJDIR)/plugindialog.o \
+       $(OBJDIR)/pluginfclient.o \
+       $(OBJDIR)/pluginlv2.o \
+       $(OBJDIR)/pluginlv2config.o \
+       $(OBJDIR)/pluginlv2client.o \
+       $(OBJDIR)/pluginlv2gui.o \
+       $(OBJDIR)/plugin.o \
        $(OBJDIR)/pluginpopup.o \
-       $(OBJDIR)/pluginset.o \
        $(OBJDIR)/pluginserver.o \
+       $(OBJDIR)/pluginset.o \
        $(OBJDIR)/plugintclient.o \
        $(OBJDIR)/plugintoggles.o \
        $(OBJDIR)/pluginvclient.o \
        $(OBJDIR)/preferences.o \
        $(OBJDIR)/preferencesthread.o \
        $(OBJDIR)/presets.o \
-       $(OBJDIR)/presetsgui.o \
+       $(OBJDIR)/probeprefs.o \
+       $(OBJDIR)/proxy.o \
+       $(OBJDIR)/proxypopup.o \
        $(OBJDIR)/question.o \
        $(OBJDIR)/quit.o \
        $(OBJDIR)/recconfirmdelete.o \
-       $(OBJDIR)/record.o \
        $(OBJDIR)/recordableatracks.o \
        $(OBJDIR)/recordablevtracks.o \
        $(OBJDIR)/recordaudio.o \
+       $(OBJDIR)/recordbatches.o \
        $(OBJDIR)/recordconfig.o \
        $(OBJDIR)/recordgui.o \
        $(OBJDIR)/recordlabel.o \
        $(OBJDIR)/recordmonitor.o \
+       $(OBJDIR)/record.o \
        $(OBJDIR)/recordprefs.o \
        $(OBJDIR)/recordscopes.o \
        $(OBJDIR)/recordthread.o \
        $(OBJDIR)/recordtransport.o \
        $(OBJDIR)/recordvideo.o \
+       $(OBJDIR)/remotecontrol.o \
        $(OBJDIR)/removefile.o \
-       $(OBJDIR)/render.o \
-       $(OBJDIR)/renderfarm.o \
-       $(OBJDIR)/renderfarmclient.o \
        $(OBJDIR)/renderengine.o \
+       $(OBJDIR)/renderfarmclient.o \
+       $(OBJDIR)/renderfarm.o \
+       $(OBJDIR)/render.o \
        $(OBJDIR)/renderprofiles.o \
        $(OBJDIR)/resample.o \
+       $(OBJDIR)/rescale.o \
        $(OBJDIR)/resizetrackthread.o \
        $(OBJDIR)/resourcepixmap.o \
        $(OBJDIR)/resourcethread.o \
-       $(OBJDIR)/samples.o \
        $(OBJDIR)/samplescroll.o \
+       $(OBJDIR)/samples.o \
        $(OBJDIR)/savefile.o \
        $(OBJDIR)/scenegraph.o \
        $(OBJDIR)/scopewindow.o \
        $(OBJDIR)/setformat.o \
        $(OBJDIR)/sha1.o \
        $(OBJDIR)/sharedlocation.o \
+       $(OBJDIR)/shbtnprefs.o \
        $(OBJDIR)/shmemory.o \
        $(OBJDIR)/sighandler.o \
+       $(OBJDIR)/signalstatus.o \
        $(OBJDIR)/splashgui.o \
        $(OBJDIR)/statusbar.o \
+       $(OBJDIR)/strack.o \
+       $(OBJDIR)/swindow.o \
        $(OBJDIR)/theme.o \
        $(OBJDIR)/threadexec.o \
        $(OBJDIR)/threadloader.o \
-       $(OBJDIR)/timelinepane.o \
        $(OBJDIR)/timebar.o \
        $(OBJDIR)/timeentry.o \
+       $(OBJDIR)/timelinepane.o \
        $(OBJDIR)/tipwindow.o \
-       $(OBJDIR)/track.o \
        $(OBJDIR)/trackcanvas.o \
        $(OBJDIR)/tracking.o \
-       $(OBJDIR)/tracks.o \
+       $(OBJDIR)/track.o \
        $(OBJDIR)/trackscroll.o \
        $(OBJDIR)/tracksedit.o \
-       $(OBJDIR)/transition.o \
+       $(OBJDIR)/tracks.o \
        $(OBJDIR)/transitionhandles.o \
+       $(OBJDIR)/transition.o \
        $(OBJDIR)/transitionpopup.o \
        $(OBJDIR)/transportque.o \
        $(OBJDIR)/tunerserver.o \
@@ -273,139 +300,193 @@ OBJS = \
        $(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)/vdevicev4l2mpeg.o \
+       $(OBJDIR)/vdevicev4l2.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)/virtualnode.o \
        $(OBJDIR)/virtualvconsole.o \
        $(OBJDIR)/virtualvnode.o \
        $(OBJDIR)/vmodule.o \
        $(OBJDIR)/vpatchgui.o \
        $(OBJDIR)/vplayback.o \
-       $(OBJDIR)/vplugin.o \
        $(OBJDIR)/vpluginarray.o \
+       $(OBJDIR)/vplugin.o \
        $(OBJDIR)/vpluginset.o \
-       $(OBJDIR)/vtimebar.o \
        $(OBJDIR)/vrender.o \
-       $(OBJDIR)/vtrack.o \
+       $(OBJDIR)/vtimebar.o \
        $(OBJDIR)/vtracking.o \
-       $(OBJDIR)/vwindow.o \
+       $(OBJDIR)/vtrack.o \
        $(OBJDIR)/vwindowgui.o \
+       $(OBJDIR)/vwindow.o \
        $(OBJDIR)/wavecache.o \
+       $(OBJDIR)/wwindow.o \
        $(OBJDIR)/zoombar.o \
        $(OBJDIR)/zoompanel.o \
-\
+       $(OBJDIR)/zwindow.o \
+       $(OBJDIR)/zwindowgui.o \
+
+ifneq ($(WANT_LIBZMPEG),no)
+OBJS += \
        $(OBJDIR)/audiompeg.o \
-       $(OBJDIR)/audiov4l2mpeg.o \
-       $(OBJDIR)/bdcreate.o \
-       $(OBJDIR)/channelinfo.o \
+       $(OBJDIR)/devicempeginput.o \
+       $(OBJDIR)/filempeg.o \
+       $(OBJDIR)/vdevicempeg.o \
+
+endif
+ifneq ($(WANT_COMMERCIAL),no)
+OBJS += \
        $(OBJDIR)/commercials.o \
        $(OBJDIR)/dbwindow.o \
-       $(OBJDIR)/devicempeginput.o \
-       $(OBJDIR)/devicev4l2base.o \
-       $(OBJDIR)/devicev4l2input.o \
-       $(OBJDIR)/dvdcreate.o \
        $(OBJDIR)/filedb.o \
        $(OBJDIR)/mediadb.o \
-       $(OBJDIR)/recordbatches.o \
-       $(OBJDIR)/remotecontrol.o \
-       $(OBJDIR)/shbtnprefs.o \
-       $(OBJDIR)/signalstatus.o \
-       $(OBJDIR)/strack.o \
-       $(OBJDIR)/swindow.o \
-       $(OBJDIR)/vdevicempeg.o \
-       $(OBJDIR)/vdevicev4l2mpeg.o \
-       $(OBJDIR)/wwindow.o \
-       $(OBJDIR)/pluginfclient.o \
 
+endif
+ifneq ($(WANT_CIN_3RDPARTY),no)
+OBJS += \
+       $(OBJDIR)/fileac3.o \
+
+endif
+
+#      $(OBJDIR)/dvbtune.o \
 #      $(OBJDIR)/renderfarmfsclient.o \
 #      $(OBJDIR)/renderfarmfsserver.o \
 
+GCC ?= gcc
 DCRAW := $(OBJDIR)/dcraw.o
 THEME_DATA := $(OBJDIR)/theme_data.o
 
-OUTPUT_G = $(OBJDIR)/cinelerra.debuginfo
-OUTPUT = ../bin/cinelerra
+OUTPUT = $(BINDIR)/$(WANT_CIN)
+OUTPUT_G = $(OBJDIR)/$(WANT_CIN).debuginfo
 
 LIBRARIES := \
-       ../guicast/$(OBJDIR)/libguicast.a \
-       ../libzmpeg3/$(OBJDIR)/libzmpeg3.a \
-       ../mpeg2enc/$(OBJDIR)/hveg2enc.a \
-       ../db/$(OBJDIR)/db.a \
-       $(THEME_DATA) \
-
-LIBS = $(LIBRARIES)
-LIBS += $(thirdparty_libraries) $(static_libraries)
-LIBS += \
-       -lX11 \
-       -lXext \
-       -lXinerama \
-       -lXv \
-       -lpthread \
-       -lm \
-       -lpng \
-       -lz \
-       -lbz2 \
-       -llzma \
-       -lfontconfig \
-       -lfreetype \
-
-LIBS += -Wl,--start-group $(thirdparty_libraries) -Wl,--end-group 
-LIBS += $(EXTRA_LIBS)
+       $(GUICAST)/$(OBJDIR)/libguicast.a \
+
+ifneq ($(WANT_LIBZMPEG),no)
+LIBRARIES += \
+       $(MPEG2ENC)/$(OBJDIR)/hveg2enc.a \
+       $(LIBZMPEG3)/$(OBJDIR)/libzmpeg3.a \
+
+endif
+ifneq ($(WANT_COMMERCIAL),no)
+LIBRARIES += \
+       $(TDB)/$(OBJDIR)/db.a \
+
+endif
+
+LIBS := $(LIBRARIES)
+
+ifneq ($(WANT_CIN_3RDPARTY),no)
+LIBS += $(libraries)
+else
 
+LIBS += -lpthread -lm -lbz2 -llzma -lz -lpng -luuid
+LIBS += -lX11 -lXau -lXdmcp -lXext -lXfixes -lXv -lXinerama
+LIBS += -lfontconfig -lfreetype
+LIBS += -lavcodec -lavdevice -lavfilter -lavformat -lavresample -lavutil
+LIBS += -lswresample -lswscale
+LIBS += -lvpx -lwebp -lwebpmux
+
+LIBS += $(if $(filter fftw,$(static_pkgs)), -lfftw3)
+LIBS += $(if $(filter flac,$(static_pkgs)), -lFLAC)
+LIBS += $(if $(filter giflib,$(static_pkgs)), -lgif)
+LIBS += $(if $(filter lame,$(static_pkgs)), -lmp3lame)
+LIBS += $(if $(filter libjpeg,$(static_pkgs)), -ljpeg)
+LIBS += $(if $(filter openjpeg,$(static_pkgs)), -lopenjp2)
+LIBS += $(if $(filter libogg,$(static_pkgs)), -logg)
+LIBS += $(if $(filter libsndfile,$(static_pkgs)), -lsndfile)
+LIBS += $(if $(filter libtheora,$(static_pkgs)), -ltheoradec -ltheoraenc)
+LIBS += $(if $(filter libuuid,$(static_pkgs)), -luuid)
+LIBS += $(if $(filter libvorbis,$(static_pkgs)), -lvorbis -lvorbisenc -lvorbisfile)
+LIBS += $(if $(filter tiff,$(static_pkgs)), -ltiff)
+LIBS += $(if $(filter twolame,$(static_pkgs)), -ltwolame)
+LIBS += $(if $(filter x264,$(static_pkgs)), -lx264)
+LIBS += $(if $(filter x265,$(static_pkgs)), -lx265)
+LIBS += $(if $(filter libvpx,$(static_pkgs)), -lvpx)
+
+ifneq ($(WANT_GL),no)
+LIBS += -lGL -lGLU -lGLX
+endif
+ifneq ($(WANT_XFT),no)
+LIBS += -lXft
+endif
+ifneq ($(WANT_ALSA),no)
+LIBS += -lasound
+endif
+ifneq ($(WANT_OPENEXR),no)
+LIBS += -lIex -lIexMath -lIlmImf -lIlmImfUtil
+endif
+ifneq ($(WANT_DV),no)
+LIBS += -ldv
+endif
+ifneq ($(WANT_FIREWIRE),no)
+LIBS += -lavc1394 -lraw1394 -liec61883 -lrom1394
+endif
+ifneq ($(WANT_DVB),no)
+LIBS += -ldv
+endif
+ifneq ($(WANT_DL),no)
+LIBS += -ldl
+endif
+ifneq ($(WANT_LIBZMPEG),no)
+LIBS += -lmjpegutils
+endif
+ifneq ($(WANT_OPUS),no)
+LIBS += -lopus
+endif
+ifneq ($(WANT_NUMA),no)
+LIBS += -lnuma
+endif
+ifneq ($(WANT_LV2),no)
+LIBS += -llilv-0 -lsratom-0 -lserd-0 -lsord-0 -lsuil-0
+endif
+endif
+
+ifneq ($(WANT_COMMERCIAL),no)
 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
+       $(LIBZMPEG3)/$(OBJDIR)/libzmpeg3.a -lX11 \
+       $(TDB)/$(OBJDIR)/db.a
+endif
 
 BDWRITE = $(OBJDIR)/bdwrite
 BDWOBJS = $(OBJDIR)/bdwrite.o
 
-ifeq ($(HAVE_GL), y)
-LIBS += -lGL -lGLU
-endif
-
-ifeq ($(HAVE_ALSA), y)
-CFLAGS += -DHAVE_ALSA
-LIBS += -lasound
-endif
-
-ifeq ($(HAVE_XFT), y)
-LIBS += -lXft
+ifneq ($(WANT_LV2),no)
+LV2UI = $(OBJDIR)/lv2ui
+LV2OBJS = \
+       $(OBJDIR)/lv2ui.o \
+       $(OBJDIR)/pluginlv2.o \
+       $(OBJDIR)/pluginlv2ui.o \
+       $(OBJDIR)/pluginlv2config.o \
+       $(OBJDIR)/forkbase.o
 endif
 
-
-CFLAGS += \
-       -I../guicast \
-       -I../libzmpeg3 \
-       $(static_includes) \
-
-ifeq ($(call lib_typ,$(ilmbase)),shared)
-CFLAGS += \
-       -I/usr/include/OpenEXR
-endif
+CFLAGS := \
+       -I$(GUICAST) \
+       -I$(LIBZMPEG3) \
+       $(static_incs) \
+       $(CFLAGS)
 
 # Speed up linking with this linking sequence
 ifeq ($(OBJDIR), alpha)
 
 LDFLAGS1 = \
        --demangle=compaq -export-dynamic -L./ \
-       -L../guicast -L/usr/X11R6/lib \
+       -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 \
@@ -424,61 +505,108 @@ CFLAGS += -DUSE_ALPHA
 
 else
 
-LDFLAGS1 = -export-dynamic
+LDFLAGS1 = -Wl,-export-dynamic -g
 LDFLAGS2 =
-LINKER = g++ -o $(OUTPUT)
+LINKER = $(CXX) -o $(OUTPUT)
 
 endif
 
+$(shell mkdir -p $(OBJDIR))
+$(shell echo $(CFLAGS) > $(OBJDIR)/c_flags)
+$(shell echo $(LDFLAGS1) $(OBJS) $(THEME_DATA) $(DCRAW) $(LIBS) $(LDFLAGS2) > $(OBJDIR)/objs)
 
-FFMPEG_CFLAGS := \
-       -include /usr/include/time.h \
-
-$(shell echo $(CFLAGS) -c > $(OBJDIR)/c_flags)
-$(shell echo $(CFLAGS) -c $(FFMPEG_CFLAGS) > $(OBJDIR)/ffmpeg_cflags)
-$(shell echo $(LDFLAGS1) $(OBJS) $(DCRAW) $(FILEEXR) $(FILEFLAC) $(AVIOBJS) \
- $(FFMPEG_OBJS) $(LIBS) $(LDFLAGS2) > $(OBJDIR)/objs)
-
-all:   $(OUTPUT) $(CUTADS) $(BDWRITE)
+all:   $(OUTPUT) $(CUTADS) $(BDWRITE) $(LV2UI)
 
 # 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)
+$(OUTPUT): $(OBJS) $(THEME_DATA) $(DCRAW) $(LIBRARIES)
        $(LINKER) `cat $(OBJDIR)/objs`
        $(if $(findstring -g,$(CFLAGS)),objcopy --only-keep-debug $(OUTPUT) $(OUTPUT_G))
        $(if $(findstring -ggdb,$(CFLAGS)),,strip $(OUTPUT))
+       ln -f -s ../bin/$(WANT_CIN) ci
 
-$(CUTADS):     $(CUTOBJS) $(CUTLIBS)
+ifneq ($(WANT_COMMERCIAL),no)
+$(CUTADS):     $(CUTOBJS) $(CUTLIBS) $(LIBRARIES)
        @echo g++ -o $@ $(CUTOBJS)
        @g++ $(CFLAGS) -pthread -o $@ $(CUTOBJS) $(CUTLIBS) $(LIBS)
+       $(if $(findstring -g,$(CFLAGS)),objcopy --only-keep-debug $(CUTADS) $(CUTADS).debuginfo)
+       $(if $(findstring -ggdb,$(CFLAGS)),,strip $(CUTADS))
+
+install-cutads:
+       cp -av $(OBJDIR)/cutads $(BINDIR)/.
+
+install:       install-cutads
+endif
 
 $(BDWRITE):    $(BDWOBJS) $(LIBRARIES)
        @echo g++ -o $@ $(BDWOBJS)
        @g++ $(CFLAGS) -pthread -o $@ $(BDWOBJS) $(LIBS)
+       $(if $(findstring -g,$(CFLAGS)),objcopy --only-keep-debug $(BDWRITE) $(BDWRITE).debuginfo)
+       $(if $(findstring -ggdb,$(CFLAGS)),,strip $(BDWRITE))
+
+install-bdwrite:
+       cp -av $(OBJDIR)/bdwrite $(BINDIR)/.
+install:       install-bdwrite
+
+ydiff: ydiff.C $(LIBRARIES)
+       @echo g++ -o $@ ydiff.C
+       @g++ $(CFLAGS) ydiff.C -o $@ $(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 ../plugins
+       ctags -R -h default --langmap=c:+.inc . ../guicast/ ../libzmpeg3 ../plugins ../thirdparty/ffmpeg-*
 
 
 $(OBJDIR)/%.o:         %.C
-       $(CXX) `cat $(OBJDIR)/c_flags` -c $< -o $@
+       $(CXX) `cat $(OBJDIR)/c_flags` -DMSGQUAL=$* -c $< -o $@
+
+
+$(OBJDIR)/fileexr.o:   fileexr.C
+       $(CXX) `cat $(OBJDIR)/c_flags` -Wno-deprecated -DMSGQUAL=$* -c $< -o $@
 
 $(OBJDIR)/sha1.o:      sha1.C sha1.h
        $(CXX) `cat $(OBJDIR)/c_flags` -O3 -c $< -o $@
 
-$(DCRAW): dcraw.c
-       $(GCC) `cat $(OBJDIR)/c_flags` dcraw.c -o $*.o
+#lv2
+ifneq ($(WANT_LV2),no)
+GTK2_INCS := `pkg-config --cflags gtk+-2.0`
+GTK2_LIBS := `pkg-config --libs gtk+-2.0`
+
+$(OBJDIR)/pluginlv2ui.o:       pluginlv2ui.C
+$(OBJDIR)/lv2ui.o:     lv2ui.C
+$(OBJDIR)/pluginlv2ui.o $(OBJDIR)/lv2ui.o:
+       $(CXX) `cat $(OBJDIR)/c_flags` $(GTK2_INCS) -DMSGQUAL=$* -c $< -o $@
+
+$(OBJDIR)/lv2ui: $(LV2OBJS)
+       @echo $(CXX) \`cat $(OBJDIR)/c_flags\` $^ -o $@
+       @$(CXX) `cat $(OBJDIR)/c_flags` $^ -o $@ $(LIBS) $(GTK2_LIBS)
+       $(if $(findstring -g,$(CFLAGS)),objcopy --only-keep-debug $(LV2UI) $(LV2UI).debuginfo)
+       $(if $(findstring -ggdb,$(CFLAGS)),,strip $(LV2UI))
+
+.PHONY:        lv2ui
+lv2ui: $(LV2UI)
+
+install-lv2ui:
+       cp -av $(LV2UI) $(BINDIR)/.
+
+install:       install-lv2ui
+endif
+
+$(OBJDIR)/pluginlv2gui.o:      pluginlv2gui.C
+       $(CXX) `cat $(OBJDIR)/c_flags` $(GTK2_INCS) -DMSGQUAL=$* -c $< -o $@
+
+#dcraw
+$(DCRAW): dcraw.C
+       $(CXX) `cat $(OBJDIR)/c_flags` $(if $(findstring -ggdb,$(CFLAGS)),,-O4) -DNODEPS -DLOCALTIME \
+               -Wno-misleading-indentation -Wno-sign-compare -Wno-narrowing dcraw.C -c -o $*.o
 
 $(THEME_DATA):
        cd $(OBJDIR) && \
-       ../../guicast/$(OBJDIR)/bootstrap theme_data.o ../data/mode_*.png
+       $(GUICAST)/$(OBJDIR)/bootstrap theme_data.o $(TOPDIR)/picon/cinfinity/*.png
 
 val-%:
        @echo $($(subst val-,,$@))