geary/Makefile

142 lines
4.1 KiB
Makefile

# Only geary is built by default. Use "make all" to build command-line tools.
PROGRAM = geary
BUILD_ROOT = 1
VALAC := valac
VALAFLAGS := -g --enable-checking --fatal-warnings --vapidir=vapi
APPS := geary console watchmbox
ENGINE_SRC := \
src/engine/Engine.vala \
src/engine/api/Account.vala \
src/engine/api/Email.vala \
src/engine/api/Folder.vala \
src/engine/api/Credentials.vala \
src/engine/api/EngineError.vala \
src/engine/sqlite/Database.vala \
src/engine/sqlite/Table.vala \
src/engine/sqlite/Row.vala \
src/engine/sqlite/MailDatabase.vala \
src/engine/sqlite/FolderTable.vala \
src/engine/sqlite/FolderRow.vala \
src/engine/sqlite/api/Account.vala \
src/engine/sqlite/api/Folder.vala \
src/engine/state/Machine.vala \
src/engine/state/MachineDescriptor.vala \
src/engine/state/Mapping.vala \
src/engine/common/MessageData.vala \
src/engine/imap/ClientConnection.vala \
src/engine/imap/ClientSession.vala \
src/engine/imap/ClientSessionManager.vala \
src/engine/imap/DataFormat.vala \
src/engine/imap/Mailbox.vala \
src/engine/imap/Email.vala \
src/engine/imap/Parameter.vala \
src/engine/imap/Tag.vala \
src/engine/imap/Command.vala \
src/engine/imap/Commands.vala \
src/engine/imap/ResponseCode.vala \
src/engine/imap/ResponseCodeType.vala \
src/engine/imap/ServerResponse.vala \
src/engine/imap/StatusResponse.vala \
src/engine/imap/StatusDataType.vala \
src/engine/imap/ServerData.vala \
src/engine/imap/ServerDataType.vala \
src/engine/imap/FetchDataType.vala \
src/engine/imap/Status.vala \
src/engine/imap/CommandResponse.vala \
src/engine/imap/MessageData.vala \
src/engine/imap/MessageSet.vala \
src/engine/imap/Serializable.vala \
src/engine/imap/Serializer.vala \
src/engine/imap/Deserializer.vala \
src/engine/imap/Error.vala \
src/engine/imap/Flag.vala \
src/engine/imap/decoders/CommandResults.vala \
src/engine/imap/decoders/FetchDataDecoder.vala \
src/engine/imap/decoders/FetchResults.vala \
src/engine/imap/decoders/NoopResults.vala \
src/engine/imap/decoders/ListResults.vala \
src/engine/imap/decoders/SelectExamineResults.vala \
src/engine/imap/decoders/StatusResults.vala \
src/engine/imap/api/Account.vala \
src/engine/imap/api/Folder.vala \
src/engine/rfc822/MailboxAddress.vala \
src/engine/rfc822/MessageData.vala \
src/engine/util/Memory.vala \
src/engine/util/ReferenceSemantics.vala \
src/engine/util/Trillian.vala
COMMON_SRC := \
src/common/String.vala \
src/common/Interfaces.vala \
src/common/YorbaApplication.vala \
src/common/Date.vala
CLIENT_SRC := \
src/client/main.vala \
src/client/GearyApplication.vala \
src/client/ui/MainWindow.vala \
src/client/ui/MessageListView.vala \
src/client/ui/MessageListStore.vala \
src/client/ui/FolderListView.vala \
src/client/ui/FolderListStore.vala \
src/client/ui/MessageViewer.vala \
src/client/ui/MessageBuffer.vala \
src/client/util/Intl.vala
CONSOLE_SRC := \
src/console/main.vala
WATCHMBOX_SRC := \
src/tests/watchmbox.vala
ALL_SRC := $(ENGINE_SRC) $(COMMON_SRC) $(CLIENT_SRC) $(CONSOLE_SRC) $(WATCHMBOX_SRC)
EXTERNAL_PKGS := \
gio-2.0 >= 2.28.0 \
gee-1.0 >= 0.6.1 \
gtk+-2.0 >= 2.22.0 \
unique-1.0 >= 1.0.0 \
gmime-2.4 >= 2.4.14 \
sqlheavy-0.1 >= 0.0.1
EXTERNAL_BINDINGS := \
gio-2.0 \
gee-1.0 \
gtk+-2.0 \
unique-1.0 \
posix \
gmime-2.4 \
sqlheavy-0.1
VAPI_FILES := \
vapi/gmime-2.4.vapi
geary: $(ENGINE_SRC) $(COMMON_SRC) $(CLIENT_SRC) Makefile $(VAPI_FILES)
pkg-config --exists --print-errors '$(EXTERNAL_PKGS)'
$(VALAC) $(VALAFLAGS) $(foreach binding,$(EXTERNAL_BINDINGS),--pkg=$(binding)) \
$(ENGINE_SRC) $(COMMON_SRC) $(CLIENT_SRC) \
-o $@
.PHONY: all
all: $(APPS)
.PHONY: clean
clean:
rm -f $(ALL_SRC:.vala=.c)
rm -f $(ALL_SRC:.vala=.vala.c)
rm -f $(APPS)
console: $(ENGINE_SRC) $(COMMON_SRC) $(CONSOLE_SRC) Makefile
$(VALAC) $(VALAFLAGS) $(foreach binding,$(EXTERNAL_BINDINGS),--pkg=$(binding)) \
$(ENGINE_SRC) $(COMMON_SRC) $(CONSOLE_SRC) \
-o $@
watchmbox: $(ENGINE_SRC) $(COMMON_SRC) $(WATCHMBOX_SRC) Makefile
$(VALAC) $(VALAFLAGS) $(foreach binding,$(EXTERNAL_BINDINGS),--pkg=$(binding)) \
$(ENGINE_SRC) $(COMMON_SRC) $(WATCHMBOX_SRC) \
-o $@