######################################## # # Audacity Makefile # # Dominic Mazzoni # # Run configure to generate Makefile # from Makefile.in # CC = gcc CCC = g++ # Files that must exist in order to compile a C/C++ files CDEPEND = # For precompiled header support PRECOMP_CFLAGS = LOCAL_LIBS = libresample.a libSoundTouch.a libnyquist.a libvamp-hostsdk.a libtwolame.a allegro.a FileDialog.a EXTRAOBJS = ../lib-src/portaudio-v19/lib/libportaudio.a ../lib-src/portmixer/libportmixer.a EXTRATARGETS = LIBS = -lvorbisenc -lvorbisfile -lvorbis -logg -lmad -lsndfile -lFLAC++ -lFLAC -lid3tag -lexpat -pthread -lwx_gtk2u_richtext-2.8 -lwx_gtk2u_aui-2.8 -lwx_gtk2u_xrc-2.8 -lwx_gtk2u_qa-2.8 -lwx_gtk2u_html-2.8 -lwx_gtk2u_adv-2.8 -lwx_gtk2u_core-2.8 -lwx_baseu_xml-2.8 -lwx_baseu_net-2.8 -lwx_baseu-2.8 -lasound -ljack -lpthread -lrt -lrt -lasound -lm -lpthread DIRS=blockfile commands effects effects/ladspa effects/nyquist effects/vamp export import prefs toolbars widgets xml srcdir=. top_srcdir=.. top_builddir=.. prefix=/usr exec_prefix=${prefix} libdir=${exec_prefix}/lib # used for the MP3 exporter to help find libmp3lame.so.0 # CFLAGS are specific to C. override CFLAGS += -Wstrict-prototypes -Wall # CXXFLAGS are specific to C++. override CXXFLAGS += -I$(top_srcdir)/lib-src/portmixer/include -I$(top_srcdir)/lib-src/portaudio-v19/include -Wall -I$(top_srcdir)/lib-src/libresample/include -I$(top_srcdir)/lib-src/soundtouch/include -I$(top_srcdir)/lib-src/libnyquist/nyx -I$(top_srcdir)/lib-src/libvamp -I$(top_srcdir)/lib-src/twolame/libtwolame -I$(top_srcdir)/lib-src/allegro -I$(top_srcdir)/lib-src/FileDialog # CPPFLAGS are for both C and C++. override CPPFLAGS += -fno-strict-aliasing -I$(srcdir)/include -I. -DLIBDIR=\"$(libdir)\" -Wall -I/usr/lib/wx/include/gtk2-unicode-release-2.8 -I/usr/include/wx-2.8 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -D__WXGTK__ -pthread -DAUDACITY_DLL_API='' # LDFLAGS are for linking override LDFLAGS += ######################################## # ALL OBJECT FILES OBJS = \ AColor.o \ AboutDialog.o \ AudacityApp.o \ AudioIO.o \ AutoRecovery.o \ BatchCommandDialog.o \ BatchCommands.o \ BatchProcessDialog.o \ Benchmark.o \ Dependencies.o \ Envelope.o \ FFT.o \ FileIO.o \ FileNames.o \ FreqWindow.o \ HelpText.o \ HistoryWindow.o \ ImageManipulation.o \ InterpolateAudio.o \ LabelDialog.o \ LabelTrack.o \ Languages.o \ LangChoice.o \ Legacy.o \ Matrix.o \ Menus.o \ MFCC.o \ Mix.o \ NoteTrack.o \ PitchName.o \ PlatformCompatibility.o \ Printing.o \ Project.o \ Resample.o \ RingBuffer.o \ Screenshot.o \ Shuttle.o \ ShuttleGui.o \ ShuttlePrefs.o \ SmartRecordDialog.o \ Snap.o \ Spectrum.o \ SplashDialog.o \ Tags.o \ Theme.o \ TimeDialog.o \ TimeTrack.o \ Track.o \ TrackArtist.o \ TrackPanel.o \ TrackPanelAx.o \ UndoManager.o \ UploadDialog.o \ VoiceKey.o \ WaveClip.o \ WaveTrack.o \ WrappedType.o \ commands/CommandManager.o \ commands/Keyboard.o \ effects/Effect.o \ effects/SimpleMono.o \ effects/SimplePairedTwoTrack.o \ effects/SoundTouchEffect.o \ effects/LoadEffects.o \ effects/Amplify.o \ effects/AutoDuck.o \ effects/BassBoost.o \ effects/ChangePitch.o \ effects/ChangeSpeed.o \ effects/ChangeTempo.o \ effects/ClickRemoval.o \ effects/Compressor.o \ effects/DtmfGen.o \ effects/Echo.o \ effects/Equalization.o \ effects/Fade.o \ effects/FindClipping.o \ effects/Invert.o \ effects/Leveller.o \ effects/Noise.o \ effects/NoiseRemoval.o \ effects/Normalize.o \ effects/Phaser.o \ effects/Repair.o \ effects/Repeat.o \ effects/Reverse.o \ effects/Silence.o \ effects/SpikeCleaner.o \ effects/StereoToMono.o \ effects/ToneGen.o \ effects/TruncSilence.o \ effects/TwoPassSimpleMono.o \ effects/Wahwah.o \ export/Export.o \ export/ExportMultiple.o \ export/ExportMP2.o \ export/ExportMP3.o \ export/ExportOGG.o \ export/ExportFLAC.o \ export/ExportPCM.o \ export/ExportCL.o \ import/Import.o \ import/ImportFLAC.o \ import/ImportLOF.o \ import/ImportMIDI.o \ import/ImportMP3.o \ import/ImportOGG.o \ import/ImportPCM.o \ import/ImportRaw.o \ import/RawAudioGuess.o \ prefs/AudioIOPrefs.o \ prefs/BatchPrefs.o \ prefs/DirectoriesPrefs.o \ prefs/FileFormatPrefs.o \ prefs/GUIPrefs.o \ prefs/KeyConfigPrefs.o \ prefs/MousePrefs.o \ prefs/PrefsDialog.o \ prefs/QualityPrefs.o \ prefs/SmartRecordPrefs.o \ prefs/SpectrumPrefs.o \ prefs/ThemePrefs.o \ toolbars/ControlToolBar.o \ toolbars/DeviceToolBar.o \ toolbars/EditToolBar.o \ toolbars/MeterToolBar.o \ toolbars/MixerToolBar.o \ toolbars/SelectionBar.o \ toolbars/ToolBar.o \ toolbars/ToolDock.o \ toolbars/ToolManager.o \ toolbars/ToolsToolBar.o \ toolbars/TranscriptionToolBar.o \ widgets/treebook.o \ widgets/AButton.o \ widgets/ASlider.o \ widgets/AttachableScrollBar.o \ widgets/ErrorDialog.o \ widgets/ExpandingToolBar.o \ widgets/Grabber.o \ widgets/Grid.o \ widgets/ImageRoll.o \ widgets/LinkingHtmlWindow.o \ widgets/Meter.o \ widgets/MultiDialog.o \ widgets/Ruler.o \ widgets/TimeTextCtrl.o \ widgets/Warning.o \ xml/XMLFileReader.o \ xml/XMLWriter.o \ effects/nyquist/Nyquist.o effects/nyquist/LoadNyquist.o effects/vamp/VampEffect.o effects/vamp/LoadVamp.o effects/ladspa/LoadLadspa.o effects/ladspa/LadspaEffect.o TEMPORARILY_DISABLED_IMPORTER_OBJS = \ import/ImportMIDI.o \ import/ImportPCM.o \ import/ImportRaw.o \ LIBAUDACITY_OBJS = \ BlockFile.o \ Dither.o \ DirManager.o \ FileFormats.o \ Prefs.o \ SampleFormat.o \ Sequence.o \ Internat.o \ blockfile/LegacyBlockFile.o \ blockfile/LegacyAliasBlockFile.o \ blockfile/SilentBlockFile.o \ blockfile/SimpleBlockFile.o \ blockfile/PCMAliasBlockFile.o \ xml/XMLTagHandler.o \ ######################################## # DEPENDENCIES SOURCES = $(OBJS:%.o=%.cpp) LIBAUDACITY_SOURCES = $(LIBAUDACITY_OBJS:%.o=%.cpp) ######################################## all: $(DIRS) libaudacity.a ../audacity $(EXTRATARGETS) libaudacity.a: $(LIBAUDACITY_OBJS) ar rcs libaudacity.a $(LIBAUDACITY_OBJS) ../audacity: $(OBJS) $(LOCAL_LIBS:%=$(top_builddir)/lib-src/%) $(EXTRAOBJS) libaudacity.a Makefile $(CCC) -o ../audacity $(OBJS) $(LDFLAGS) $(LOCAL_LIBS:%=$(top_builddir)/lib-src/%) $(EXTRAOBJS) libaudacity.a $(LIBS) $(DIRS): mkdir -p $(DIRS) # # Mac OS X application # ../Audacity.app: ../audacity mkdir -p ../Audacity.app/Contents/MacOS mkdir -p ../Audacity.app/Contents/Resources cp -f ../audacity ../Audacity.app/Contents/MacOS/Audacity cp -f ../mac/Info.plist ../Audacity.app/Contents test -f "../Audacity.app/Contents/PkgInfo" || \ echo "APPLauDy" > ../Audacity.app/Contents/PkgInfo cp -f ../mac/Resources/*.icns ../Audacity.app/Contents/Resources cp -f ../mac/Resources2/Audacity.rsrc \ ../Audacity.app/Contents/Resources/Audacity.rsrc # # You can optionally "make dep" to make dependencies. # The sed script turns "Foo.o: bar/Foo.cpp" into "bar/Foo.o: bar/Foo.cpp". # dep: $(CCC) -MM $(CXXFLAGS) $(CPPFLAGS) $(SOURCES) $(LIBAUDACITY_SOURCES) | \ sed -e 's/^.*\.o: \([^ ]*\)\.cpp/\1.o: \1.cpp/' \ > .depend $(CCC) -MM $(CXXFLAGS) $(CPPFLAGS) AudacityHeaders.h | \ sed -e 's/^.*: \([^ ]*\)\.cpp/$(OBJDIR)\/\1.o: /' | \ sed 's/AudacityHeaders.o/AudacityHeaders.h.gch/' \ > .gchdepend clean: rm -rf $(OBJS) $(LIBAUDACITY_OBJS) rm -f libaudacity.a AudacityHeaders.h.gch # # Rule for compiling C++ files # $(OBJS) $(LIBAUDACITY_OBJS): %.o: $(srcdir)/%.cpp configunix.h $(CDEPEND) $(CCC) -c $(CXXFLAGS) $(CPPFLAGS) $(PRECOMP_CFLAGS) $< -o $@ # # Special case: files that need to be compiled without precompiled headers. # import/ImportQTWrapper.o: import/ImportQTWrapper.cpp $(CONFIGHEADER) $(CDEPEND) $(CCC) -c $(CXXFLAGS) $(CPPFLAGS) $< -o $@ # # Precompiled headers: # AudacityHeaders.h.gch: echo "Rebuilding Precompiled Headers" $(CCC) -c $(CXXFLAGS) $(CPPFLAGS) AudacityHeaders.h -o AudacityHeaders.h.gch # # Include ".depend" if it exists (run "make dep" to generate it) # ifeq (.depend,$(wildcard .depend)) include .depend endif