1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126
|
########################################################-*-mode:Makefile-*-
## ##
## Language Technologies Institute ##
## Carnegie Mellon University ##
## Copyright (c) 2000-2015 ##
## All Rights Reserved. ##
## ##
## Permission is hereby granted, free of charge, to use and distribute ##
## this software and its documentation without restriction, including ##
## without limitation the rights to use, copy, modify, merge, publish, ##
## distribute, sublicense, and/or sell copies of this work, and to ##
## permit persons to whom this work is furnished to do so, subject to ##
## the following conditions: ##
## 1. The code must retain the above copyright notice, this list of ##
## conditions and the following disclaimer. ##
## 2. Any modifications must be clearly marked as such. ##
## 3. Original authors' names are not deleted. ##
## 4. The authors' names are not used to endorse or promote products ##
## derived from this software without specific prior written ##
## permission. ##
## ##
## CARNEGIE MELLON UNIVERSITY AND THE CONTRIBUTORS TO THIS WORK ##
## DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ##
## ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT ##
## SHALL CARNEGIE MELLON UNIVERSITY NOR THE CONTRIBUTORS BE LIABLE ##
## FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ##
## WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN ##
## AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ##
## ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF ##
## THIS SOFTWARE. ##
## ##
###########################################################################
FLITEDIR=__FLITEDIR__
TOP=$(FLITEDIR)
DIRNAME=flite
VOICENAME=__VOICENAME__
VOICETYPE=__VOICETYPE__
FLITE_LANG=__FLITELANG__
FLITE_LEX=__FLITELEX__
LOCAL_INCLUDES = -I$(TOP)/lang/$(FLITE_LANG) -I$(TOP)/lang/$(FLITE_LEX)
LOCAL_LANGLEX_LIBS = -lflite_$(FLITE_LANG) -lflite_$(FLITE_LEX)
LOCAL_LIBS = -L . -l$(VOICENAME)
H =
CSRCS = $(VOICENAME).c
VOICES=$(VOICENAME)
ifeq ($(VOICETYPE),diphone)
## Diphone
CSRCS +=$(VOICENAME)_$(VOICETYPE).c
CSRCS +=$(VOICENAME)_lpc.c
CSRCS +=$(VOICENAME)_res.c
CSRCS +=$(VOICENAME)_residx.c
else
ifeq ($(VOICETYPE),cg)
## Clustergen
CSRCS += $(VOICENAME)_cg.c
CSRCS += $(VOICENAME)_cg_phonestate.c
# Identify which .c param files are used single or multi-rfs
include paramfiles.mak
CSRCS += $(shell ls $(VOICENAME)_cg_*_f0_trees.c)
CSRCS += $(shell ls $(VOICENAME)_cg_*_mcep_trees.c)
CSRCS += $(shell ls $(VOICENAME)_cg_*_params.c)
CSRCS += $(shell ls $(VOICENAME)_cg_*_durmodel.c)
ifeq ($(SPAMF0),true)
CSRCS += $(VOICENAME)_spamf0_phrase.c $(VOICENAME)_spamf0_accent.c $(VOICENAME)_spamf0_accent_params.c
endif
MCEPOBJS =
LPCOBJS =
else
## Clunits/ldom
CSRCS += $(VOICENAME)_clunits.c
CSRCS += $(VOICENAME)_cltrees.c $(VOICENAME)_lpc.c $(VOICENAME)_mcep.c
CSRCS += $(VOICENAME)_cl_durmodel.c
MCEPSRCS = $(shell if [ -f $(VOICENAME)_mcep_000.c ]; then ls $(VOICENAME)_mcep_*.c ; fi)
MCEPOBJS = $(MCEPSRCS:.c=.o)
LPCSRCS= $(shell if [ -f $(VOICENAME)_lpc_000.c ] ; then ls $(VOICENAME)_lpc_*.c; fi )
LPCOBJS = $(LPCSRCS:.c=.o)
RESSRCS= $(shell if [ -f $(VOICENAME)_res_000.c ] ; then ls $(VOICENAME)_res_*.c; fi )
RESOBJS = $(RESSRCS:.c=.o)
endif
endif
OBJS = $(CSRCS:.c=.o) $(LPCOBJS) $(MCEPOBJS) $(RESOBJS)
ALL = lib$(VOICENAME).a flite_$(VOICENAME)
include $(FLITEDIR)/config/common_make_rules
LIBDIR=.
ifdef SHFLAGS
ALL += lib$(VOICENAME).so
endif
$(VOICENAME)_lpc.o: $(VOICENAME)_lpc.c
$(CC) $(CFLAGS) -I. -I$(FLITEDIR)/include -c -o $@ $<
$(VOICENAME)_mcep.o: $(VOICENAME)_mcep.c
$(CC) $(CFLAGS) -I. -I$(FLITEDIR)/include -c -o $@ $<
flite_$(VOICENAME): flite_main.o flite_voice_list.o flite_lang_list.o $(FLITELIBS) lib$(VOICENAME).a
$(CC) $(CFLAGS) -o $@ flite_main.o flite_voice_list.o flite_lang_list.o $(LOCAL_LIBS) $(LOCAL_LANGLEX_LIBS) $(FLITELIBFLAGS) $(LDFLAGS)
lib$(VOICENAME).a: $(OBJS)
@ $(AR) cruv lib$(VOICENAME).a $(OBJS)
@ $(RANLIB) lib$(VOICENAME).a
@ touch .build_lib
flite_voice_list.c:
$(TOP)/tools/make_voice_list $(VOICES)
flite_lang_list.c:
$(TOP)/tools/make_lang_list $(FLITE_LANG) $(FLITE_LEX)
# Dump cg voice as single file
voicedump : flite_$(VOICENAME)
./flite_$(VOICENAME) -voicedump $(VOICENAME).flitevox
# Add build date to the flitevox file
$(FLITEDIR)/bin/flitevox_info -set build_date -val "`date`" -voice $(VOICENAME).flitevox
# Run front end tests
flitecheck:
$(FLITEDIR)/bin/run_flitecheck $(VOICENAME).flitevox
|