VERSION := @PACKAGE_VERSION@
CODENAME := @CODENAME@
PREFIX := @prefix@
CXX := @CXX@
LD := @CXX@
INSTALL := @INSTALL@
MKDIR_P := @MKDIR_P@
PERL := @PERL@
XARGS := @XARGS@
MAKEDEPEND := @MAKEDEPEND@
SHA1SUM := @SHA1SUM@
CUT := @CUT@
MOC := @MOC@
UIC := @UIC@
RCC := @RCC@
LUPDATE := @LUPDATE@
LRELEASE := @LRELEASE@
CXXFLAGS := @CXXFLAGS@ \
@HAVES@ \
@QT_CXXFLAGS@ \
@JACK_CFLAGS@ \
@ALSA_CFLAGS@ \
@liblo_CFLAGS@ \
@lrdf_CFLAGS@ \
@fftw3f_CFLAGS@ \
@samplerate_CFLAGS@ \
@sndfile_CFLAGS@ \
@DSSI_LOCALFLAGS@ \
@ENDIANNESS@ \
-D'VERSION="$(VERSION)"' \
-D'CODENAME="$(CODENAME)"' \
-DUNSTABLE=1 \
-Isrc
RCC_CXXFLAGS := @QT_CXXFLAGS@ \
@ENDIANNESS@ \
@CXXFLAGS_MINIMAL@
RCCFLAGS := -threshold 0 -compress 9
MOCFLAGS := @HAVES@ @ENDIANNESS@
LIBS := @QT_LIBS@ \
@JACK_LIBS@ \
@ALSA_LIBS@ \
@liblo_LIBS@ \
@lrdf_LIBS@ \
@fftw3f_LIBS@ \
@samplerate_LIBS@ \
@sndfile_LIBS@ \
@LIBS@
INSTBINDIR := $(DESTDIR)$(PREFIX)/bin
INSTMIME16DIR := $(DESTDIR)$(PREFIX)/share/icons/hicolor/16x16/mimetypes
INSTMIME32DIR := $(DESTDIR)$(PREFIX)/share/icons/hicolor/32x32/mimetypes
INSTMIME64DIR := $(DESTDIR)$(PREFIX)/share/icons/hicolor/64x64/mimetypes
INSTMIMEDIR := $(DESTDIR)$(PREFIX)/share/mime
INSTMIMEXMLDIR := $(INSTMIMEDIR)/packages
INSTDESKTOPDIR := $(DESTDIR)$(PREFIX)/share/applications
INSTICONDIR := $(DESTDIR)$(PREFIX)/share/icons/hicolor/32x32/apps
INSTICONDIR64 := $(DESTDIR)$(PREFIX)/share/icons/hicolor/64x64/apps
INSTICONDIR128 := $(DESTDIR)$(PREFIX)/share/icons/hicolor/128x128/apps
RESOURCES := $(wildcard data/*.qrc data/*/*.qrc src/*.qrc src/*/*.qrc src/*/*/*.qrc src/*/*/*/*.qrc)
QRCSOURCES := $(patsubst %.qrc,%.cpp,$(RESOURCES))
HEADERS := $(filter-out templates/template.h, $(wildcard src/*.h src/*/*.h src/*/*/*.h src/*/*/*/*.h src/*/*/*/*/*.h))
SOURCES := $(QRCSOURCES) $(filter-out templates/template.cpp, $(wildcard src/*.cpp src/*/*.cpp src/*/*/*.cpp src/*/*/*/*.cpp src/*/*/*/*/*.cpp))
KEYSOURCES := $(filter-out data/data.cpp, $(SOURCES))
QHEADERS := $(shell fgrep -l Q_OBJECT $(HEADERS))
OBJECTS := $(patsubst %.cpp,%.o,$(SOURCES))
QSOURCES := $(patsubst %.h,%.moc,$(QHEADERS))
UI := $(wildcard src/*/*/*.ui)
UIHEADERS := $(patsubst %.ui,%.h,$(UI))
RCS := $(wildcard data/rc/*.rc)
TRANSLATIONS := $(filter-out data/locale/rosegarden.ts, $(wildcard data/locale/*.ts))
TRANSLATIONSQM := $(filter-out data/locale/rosegarden.qm, $(shell echo $(TRANSLATIONS) | sed "s/ts/qm/g"))
BUILDKEY := $(shell cat $(KEYSOURCES) | $(SHA1SUM) | $(CUT) -c1-10)
CXXFLAGS := $(CXXFLAGS) -D'BUILDKEY="$(BUILDKEY)"'
DATA_FILES := $(shell scripts/extract-data-files)
all: $(QSOURCES) $(UIHEADERS) $(UISOURCES) $(UIMOC) $(OBJECTS) $(LIBRARIES) $(EXECUTABLES) rosegarden
rosegarden: $(OBJECTS)
$(CXX) $(LDFLAGS) -o $@ $^ $(LIBS)
%.h: %.ui
$(UIC) $< > $@
%.cpp: %.ui %.h
$(UIC) -pch $(patsubst %.cpp,%.moc,$@) -impl $(patsubst %.cpp,%.h,$@) $(patsubst %.cpp,%.ui,$@) > $@
%.moc: %.h
$(MOC) $(MOCFLAGS) $< -o $@
%.cpp: %.qrc
$(RCC) $(RCCFLAGS) $< -o $@
data/data.o: data/data.cpp
$(CXX) -c $(RCC_CXXFLAGS) $< -o $@
data/data.cpp: $(DATA_FILES)
%.o: %.cpp
$(CXX) -c $(CXXFLAGS) $< -o $@
%.qm: %.ts
$(LRELEASE) $(@:.qm=.ts)
instrument-ts:
$(PERL) scripts/extract_instrument_tr_strings.pl data/presets/presets.xml > data/InstrumentStrings.cpp
menu-ts:
$(PERL) scripts/extract_menu_tr_strings.pl $(RCS) > data/QMenuStrings.cpp
autoload-ts:
gunzip -c data/autoload/autoload.rg > data/autoload/autoload.xml # (couldn't make macro $(GUNZIP_C) work)
$(PERL) scripts/extract_autoload_tr_strings.pl data/autoload/autoload.xml > data/AutoloadStrings.cpp
rm -f data/autoload/autoload.xml
ts: menu-ts instrument-ts autoload-ts
$(MKDIR_P) data/locale
$(LUPDATE) $(UI) $(HEADERS) $(SOURCES) data/QMenuStrings.cpp data/InstrumentStrings.cpp data/AutoloadStrings.cpp -ts data/locale/rosegarden.ts $(TRANSLATIONS)
@scripts/ts-stats
ts-noobsolete: menu-ts instrument-ts
$(MKDIR_P) data/locale
$(LUPDATE) -noobsolete $(HEADERS) $(SOURCES) data/QMenuStrings.cpp data/InstrumentStrings.cpp data/AutoloadStrings.cpp -ts data/locale/rosegarden.ts $(TRANSLATIONS)
@scripts/ts-stats
locale: $(TRANSLATIONSQM)
clean:
rm -f $(QSOURCES) $(UIHEADERS) $(UISOURCES) $(UIMOC) $(OBJECTS) $(LIBRARIES) $(EXECUTABLES) data/data.o data/data.cpp
distclean: clean
rm -rf autom4te.cache/
rm -f aclocal.m4
rm -f config.log config.status configure
rm -f dependencies dependencies.bak
rm -f data/InstrumentStrings.cpp data/AutoloadStrings.cpp data/QMenuStrings.cpp data/data.cpp
rm -f src/gui/dialogs/RosegardenTransportUi.h
rm -f src/gui/studio/DeviceManagerDialogUi.h
rm -f Makefile
showfiles:
echo $(QSOURCES) $(DATA_FILES)
dependencies: $(KEYSOURCES) $(HEADERS) Makefile
@echo Rebuilding dependencies file...
@rm -f $@
@touch $@
@echo $(KEYSOURCES) | $(XARGS) -n 100 $(MAKEDEPEND) -f$@ -a -Y -Isrc >/dev/null 2>&1
qrc: locale
@bash ./scripts/rebuild-qrc
install:
$(MKDIR_P) -m 755 $(INSTBINDIR)
$(INSTALL) -m 755 rosegarden $(INSTBINDIR)/rosegarden
$(MKDIR_P) -m 755 $(INSTMIME16DIR)
$(MKDIR_P) -m 755 $(INSTMIME32DIR)
$(MKDIR_P) -m 755 $(INSTMIME64DIR)
$(INSTALL) -m 644 data/pixmaps/icons/mm-mime-hi16-rosegarden.png $(INSTMIME16DIR)/audio-x-rosegarden-composition.png
$(INSTALL) -m 644 data/pixmaps/icons/mm-mime-hi32-rosegarden.png $(INSTMIME32DIR)/audio-x-rosegarden-composition.png
$(INSTALL) -m 644 data/pixmaps/icons/mm-mime-hi64-rosegarden.png $(INSTMIME64DIR)/audio-x-rosegarden-composition.png
$(INSTALL) -m 644 data/pixmaps/icons/mm-mime-hi16-rosegarden-rgd.png $(INSTMIME16DIR)/audio-x-rosegarden-device.png
$(INSTALL) -m 644 data/pixmaps/icons/mm-mime-hi32-rosegarden-rgd.png $(INSTMIME32DIR)/audio-x-rosegarden-device.png
$(INSTALL) -m 644 data/pixmaps/icons/mm-mime-hi64-rosegarden-rgd.png $(INSTMIME64DIR)/audio-x-rosegarden-device.png
$(INSTALL) -m 644 data/pixmaps/icons/mm-mime-hi16-rosegarden-rgp.png $(INSTMIME16DIR)/audio-x-rosegarden-project.png
$(INSTALL) -m 644 data/pixmaps/icons/mm-mime-hi32-rosegarden-rgp.png $(INSTMIME32DIR)/audio-x-rosegarden-project.png
$(INSTALL) -m 644 data/pixmaps/icons/mm-mime-hi64-rosegarden-rgp.png $(INSTMIME64DIR)/audio-x-rosegarden-project.png
$(INSTALL) -m 644 data/pixmaps/icons/mm-mime-hi16-rosegarden-rgt.png $(INSTMIME16DIR)/audio-x-rosegarden-template.png
$(INSTALL) -m 644 data/pixmaps/icons/mm-mime-hi32-rosegarden-rgt.png $(INSTMIME32DIR)/audio-x-rosegarden-template.png
$(INSTALL) -m 644 data/pixmaps/icons/mm-mime-hi64-rosegarden-rgt.png $(INSTMIME64DIR)/audio-x-rosegarden-template.png
$(MKDIR_P) -m 755 $(INSTMIMEXMLDIR)
$(INSTALL) -m 644 data/mime/rosegarden.xml $(INSTMIMEXMLDIR)
$(MKDIR_P) -m 755 $(INSTDESKTOPDIR)
$(INSTALL) -m 644 data/desktop/rosegarden.desktop $(INSTDESKTOPDIR)
$(MKDIR_P) -m 755 $(INSTICONDIR)
$(MKDIR_P) -m 755 $(INSTICONDIR64)
$(MKDIR_P) -m 755 $(INSTICONDIR128)
$(INSTALL) -m 644 data/pixmaps/icons/rg-rwb-rose3-32x32.png $(INSTICONDIR)/rosegarden.png
$(INSTALL) -m 644 data/pixmaps/icons/rg-rwb-rose3-64x64.png $(INSTICONDIR64)/rosegarden.png
$(INSTALL) -m 644 data/pixmaps/icons/rg-rwb-rose3-128x128.png $(INSTICONDIR128)/rosegarden.png
uninstall:
rm -f $(INSTBINDIR)/rosegarden
rm -f $(INSTMIME16DIR)/audio-x-rosegarden*
rm -f $(INSTMIME32DIR)/audio-x-rosegarden*
rm -f $(INSTMIME64DIR)/audio-x-rosegarden*
rm -f $(INSTMIMEXMLDIR)/rosegarden.xml
rm -f $(INSTDESKTOPDIR)/rosegarden.desktop
rm -f $(INSTICONDIR)/rosegarden.png
rmdir -p --ignore-fail-on-non-empty $(INSTMIME16DIR)
rmdir -p --ignore-fail-on-non-empty $(INSTMIME32DIR)
rmdir -p --ignore-fail-on-non-empty $(INSTMIME64DIR)
rmdir -p --ignore-fail-on-non-empty $(INSTMIMEXMLDIR)
rmdir -p --ignore-fail-on-non-empty $(INSTICONDIR)
Makefile: Makefile.in configure configure.ac acinclude.m4
@echo "*** WARNING: One or more of Makefile.in, configure, configure.ac and/or"
@echo " acinclude.m4 has been modified since the Makefile was generated;"
@echo " consider running ./configure again"
configure: configure.ac acinclude.m4
sh ./bootstrap.sh
.PHONY: autoload-ts instrument-ts menu-ts ts ts-noobsolete locale
include dependencies