| # Copyright (c) 2010 The Chromium OS Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| CXX ?= g++ |
| |
| LDFLAGS = -lpthread -lm -lasound -lpico -lresample -lchromeos -lrt -lbase |
| |
| CCFLAGS = $(CFLAGS) \ |
| -Wall -Werror \ |
| -I. \ |
| -I/build/x86_generic/usr/include \ |
| -L/build/x86_generic/usr/lib |
| |
| INCLUDE_DIRS=-I -I.. $(shell pkg-config --cflags gobject-2.0 dbus-1 dbus-glib-1) |
| LIB_DIRS=-L $(shell pkg-config --libs gobject-2.0 dbus-1 dbus-glib-1) |
| |
| DBUS_SOURCE=speech_synthesizer.xml |
| DBUS_SERVER=bindings/server.h |
| DBUS_CLIENT=bindings/client.h |
| BINDINGS_DIR=bindings |
| |
| CC_SRCS = linux/audio_output_alsa.cc linux/threading.cc \ |
| pico/pico_tts_engine.cc pico/load_pico_voices_static.cc resampler.cc \ |
| tts_engine.cc earcon_manager.cc tts_service.cc speech_synthesizer_main.cc \ |
| speech_synthesizer_service.cc interface.cc |
| HEADERS = audio_output.h pico/pico_tts_engine.h resampler.h ringbuffer.h \ |
| threading.h tts_engine.h tts_receiver.h earcon_manager.h tts_service.h log.h \ |
| speech_synthesizer_service.h interface.h |
| |
| all: dirs speech_synthesizer speech_synthesizer_client libtts.so |
| @echo "Done building." |
| |
| clean: |
| rm -rf libttspico.so tts_chromeos tts_chromeos.o tts_loader.o objs/ |
| |
| dirs: |
| test -d objs/pico || mkdir -p objs/pico |
| test -d objs/linux || mkdir -p objs/linux |
| |
| CC_OBJS = $(CC_SRCS:%.cc=objs/%.o) |
| OBJS = $(CC_OBJS) |
| |
| $(CC_OBJS): objs/%.o: %.cc $(HEADERS) $(DBUS_SERVER) |
| $(CXX) -c $(CCFLAGS) $(INCLUDE_DIRS) $(LIB_DIRS) -fPIC -Iobjs/ $< -o $@ |
| |
| speech_synthesizer: $(OBJS) |
| $(CXX) \ |
| $(CCFLAGS) $(INCLUDE_DIRS) $(LIB_DIRS) \ |
| -o $@ $^ \ |
| $(LDFLAGS) |
| |
| $(BINDINGS_DIR): |
| mkdir -p $(BINDINGS_DIR) |
| |
| $(DBUS_SERVER): $(DBUS_SOURCE) $(BINDINGS_DIR) |
| dbus-binding-tool --mode=glib-server \ |
| --prefix=`basename $(DBUS_SOURCE) .xml` $(DBUS_SOURCE) > $(DBUS_SERVER) |
| |
| $(DBUS_CLIENT): $(DBUS_SOURCE) $(BINDINGS_DIR) |
| dbus-binding-tool --mode=glib-client \ |
| --prefix=`basename $(DBUS_SOURCE) .xml` $(DBUS_SOURCE) > $(DBUS_CLIENT) |
| |
| # ============================================================================= |
| # Build rules for the DBUS client shared library |
| # ============================================================================= |
| |
| CLIENT_SRCS = tts_extern.cc marshal.cc |
| CLIENT_HEADERS = tts_extern.h marshal.h |
| CLIENT_OBJS = $(CLIENT_SRCS:%.cc=%.o) |
| |
| $(CLIENT_OBJS): %.o: %.cc $(CLIENT_HEADERS) |
| $(CXX) $(CCFLAGS) -fPIC $(INCLUDE_DIRS) $(LIB_DIRS) \ |
| -c $< -o $@ |
| |
| libtts.so: $(CLIENT_OBJS) |
| $(CXX) \ |
| $(CCFLAGS) -shared -fPIC \ |
| -o $@ $^ \ |
| $(LDFLAGS) |
| |
| # ============================================================================= |
| # Remove the following build rules before checking in to the Chromium OS repo |
| # ============================================================================= |
| |
| speech_synthesizer_client.o: $(DBUS_CLIENT) |
| $(CXX) $(CCFLAGS) $(INCLUDE_DIRS) $(LIB_DIRS) \ |
| -c speech_synthesizer_client.cc |
| |
| speech_synthesizer_client: speech_synthesizer_client.o marshal.o |
| $(CXX) \ |
| $(CCFLAGS) $(INCLUDE_DIRS) $(LIB_DIRS) \ |
| -o speech_synthesizer_client \ |
| speech_synthesizer_client.o marshal.o \ |
| $(LDFLAGS) |
| |
| tts_loader.o: |
| $(CXX) $(CCFLAGS) -c tts_loader.cc |
| |
| tts_chromeos.o: |
| $(CXX) $(CCFLAGS) -c tts_chromeos.cc |
| |
| tts_chromeos: tts_loader.o tts_chromeos.o |
| $(CXX) \ |
| $(CCFLAGS) $(INCLUDE_DIRS) $(LIB_DIRS) \ |
| -o tts_chromeos \ |
| tts_loader.o tts_chromeos.o \ |
| $(LDFLAGS) -ldl |
| |
| |