Browse Source

autotools: Rewrite the build targets to use automake and libtool properly.

master
Reece H. Dunn 11 years ago
parent
commit
c69ff7ebd7
4 changed files with 62 additions and 160 deletions
  1. 7
    0
      .gitignore
  2. 54
    32
      Makefile.am
  3. 1
    3
      configure.ac
  4. 0
    125
      src/Makefile.am

+ 7
- 0
.gitignore View File

# intermediate build output: # intermediate build output:


*.o *.o
*.lo


# autotools # autotools


NEWS NEWS
README README


.deps/
.libs/

Makefile Makefile
Makefile.in Makefile.in
aclocal.m4 aclocal.m4
autom4te.cache/ autom4te.cache/
config.* config.*
configure configure
depcomp
install-sh install-sh
libtool libtool
ltmain.sh ltmain.sh
m4/ m4/
missing missing
stamp-h1 stamp-h1
.dirstamp


# libraries # libraries


docs/speak_lib.h docs/speak_lib.h


libespeak.a libespeak.a
libespeak.la
libespeak.so* libespeak.so*


# programs # programs

+ 54
- 32
Makefile.am View File

AUTOMAKE_OPTIONS = subdir-objects

PREFIX=@prefix@ PREFIX=@prefix@
BINDIR=@bindir@ BINDIR=@bindir@
INCDIR=@includedir@/espeak INCDIR=@includedir@/espeak
RELEASE=1.47 RELEASE=1.47
LIB_VERSION=1 LIB_VERSION=1
LIBTAG=$(LIB_VERSION).$(RELEASE) LIBTAG=$(LIB_VERSION).$(RELEASE)
SHARED_VERSION=2:47:1 # = *.so.1.1.47


INSTALL=install INSTALL=install
LN_SF=/bin/ln -sf LN_SF=/bin/ln -sf
MKDIR=mkdir -p MKDIR=mkdir -p


AM_CXXFLAGS = -Wall

EXTRA_DIST= EXTRA_DIST=


bin_PROGRAMS =
lib_LTLIBRARIES =

##### ChangeLog: ##### ChangeLog:


ChangeLog: ChangeLog:
##### standard build actions: ##### standard build actions:


all-local: \ all-local: \
src/speak \
src/libespeak.so \
src/libespeak.a \
src/espeak \
src/espeakedit \
espeak-data/phontab \ espeak-data/phontab \
docs/speak_lib.h \ docs/speak_lib.h \
dictionaries dictionaries
$(MKDIR) $(DESTDIR)$(DATADIR) $(MKDIR) $(DESTDIR)$(DATADIR)
cp -prf espeak-data/* $(DESTDIR)$(DATADIR) cp -prf espeak-data/* $(DESTDIR)$(DATADIR)


install-exec-hook:
$(MKDIR) $(DESTDIR)$(BINDIR)
$(MKDIR) $(DESTDIR)$(LIBDIR)
$(INSTALL) -m 755 src/espeak $(DESTDIR)$(BINDIR)
$(INSTALL) -m 755 src/espeakedit $(DESTDIR)$(BINDIR)
$(INSTALL) -m 755 src/libespeak.so.$(LIBTAG) $(DESTDIR)$(LIBDIR)
$(INSTALL) -m 755 src/libespeak.a $(DESTDIR)$(LIBDIR)
$(LN_SF) libespeak.so.$(LIBTAG) $(DESTDIR)$(LIBDIR)/libespeak.so.$(LIB_VERSION)
$(LN_SF) libespeak.so.$(LIB_VERSION) $(DESTDIR)$(LIBDIR)/libespeak.so

clean-local: clean-local:
cd src && rm -f *.o *~ && cd .. cd src && rm -f *.o *~ && cd ..


distclean-local: distclean-local:
rm -f src/speak
rm -f src/espeak
rm -f src/espeakedit
rm -f src/libespeak.*
rm -rf espeak-data/dictsource espeak-data/phsource espeak-data/phondata-manifest rm -rf espeak-data/dictsource espeak-data/phsource espeak-data/phondata-manifest
rm -f espeak-data/*_dict rm -f espeak-data/*_dict


src/espeak_command.cpp \ src/espeak_command.cpp \
src/event.cpp \ src/event.cpp \
src/fifo.cpp \ src/fifo.cpp \
src/wave.cpp \
src/wave_pulse.cpp \
src/wave_sada.cpp \
src/debug.cpp src/debug.cpp


espeakedit_SOURCE = \ espeakedit_SOURCE = \
src/voicedlg.cpp \ src/voicedlg.cpp \
src/vowelchart.cpp src/vowelchart.cpp


if AUDIO_RUNTIME
wave_SOURCE = src/wave.cpp src/wave_pulse.cpp
wave_LIBS = -lpulse -lpulse-simple -lportaudio
wave_FLAGS = -DUSE_PULSEAUDIO -DUSE_PORTAUDIO
else
if AUDIO_PULSEAUDIO
wave_SOURCE = src/wave_pulse.cpp
wave_LIBS = -lpulse
wave_FLAGS = -DUSE_PULSEAUDIO
else
if AUDIO_PORTAUDIO
wave_SOURCE = src/wave.cpp
wave_LIBS = -lportaudio
wave_FLAGS = -DUSE_PORTAUDIO
else
if AUDIO_SADA
wave_SOURCE = wave_sada.cpp
wave_FLAGS = -DUSE_SADA
else
wave_SOURCE = src/wave.cpp
endif
endif
endif
endif

docs/speak_lib.h: src/speak_lib.h docs/speak_lib.h: src/speak_lib.h
cp $< $@ cp $< $@


src/libespeak.a: $(common_SOURCE) $(libespeak_SOURCE)
cd src && make libespeak.a && cd ..
lib_LTLIBRARIES += src/libespeak.la

src_libespeak_la_LDFLAGS = -version-info $(SHARED_VERSION) $(wave_LIBS) -lpthread
src_libespeak_la_CXXFLAGS = $(wave_FLAGS) \
-fpic -fvisibility=hidden -D LIBRARY \
-pedantic -fno-exceptions -D PATH_ESPEAK_DATA=\"$(DATADIR)\"
src_libespeak_la_SOURCES = $(common_SOURCE) $(libespeak_SOURCE) $(wave_SOURCE)

bin_PROGRAMS += src/speak

src_speak_LDFLAGS = $(wave_LIBS) -lpthread
src_speak_CXXFLAGS = $(wave_FLAGS)
src_speak_SOURCES = src/speak.cpp $(common_SOURCE) $(wave_SOURCE)


src/libespeak.so: $(common_SOURCE) $(libespeak_SOURCE)
cd src && make libespeak.so && cd ..
bin_PROGRAMS += src/espeak


src/speak: $(common_SOURCE) src/speak.cpp
cd src && make speak && cd ..
src_espeak_LDADD = src/libespeak.la
src_espeak_SOURCES = src/espeak.cpp


src/espeak: src/libespeak.so src/espeak.cpp
cd src && make espeak && cd ..
bin_PROGRAMS += src/espeakedit


src/espeakedit: $(common_SOURCE) $(libespeak_SOURCE) $(espeakedit_SOURCE)
cd src && make espeakedit && cd ..
src_espeakedit_LDFLAGS = $(wave_LIBS) ${WX_LIBS}
src_espeakedit_CXXFLAGS = ${WX_CXXFLAGS} $(wave_FLAGS) \
-D_LARGEFILE_SOURCE=1 -DNO_GCC_PRAGMA -D_ESPEAKEDIT
src_espeakedit_SOURCES = $(common_SOURCE) $(libespeak_SOURCE) $(espeakedit_SOURCE) $(wave_SOURCE)


espeak-data/phontab: src/espeakedit espeak-data/phontab: src/espeakedit
ESPEAK_DATA_PATH=$(PWD) src/espeakedit --compile ESPEAK_DATA_PATH=$(PWD) src/espeakedit --compile

+ 1
- 3
configure.ac View File

AM_CONDITIONAL(AUDIO_RUNTIME, [test x"$AUDIO" = xruntime]) AM_CONDITIONAL(AUDIO_RUNTIME, [test x"$AUDIO" = xruntime])
AM_CONDITIONAL(AUDIO_PULSEAUDIO, [test x"$AUDIO" = xpulseaudio]) AM_CONDITIONAL(AUDIO_PULSEAUDIO, [test x"$AUDIO" = xpulseaudio])
AM_CONDITIONAL(AUDIO_PORTAUDIO, [test x"$AUDIO" = xportaudio]) AM_CONDITIONAL(AUDIO_PORTAUDIO, [test x"$AUDIO" = xportaudio])
AM_CONDITIONAL(AUDIO_PORTAUDIO0, [test x"$AUDIO" = xportaudio0])
AM_CONDITIONAL(AUDIO_PORTAUDIO2, [test x"$AUDIO" = xportaudio2])
AM_CONDITIONAL(AUDIO_SADA, [test x"$AUDIO" = xsada]) AM_CONDITIONAL(AUDIO_SADA, [test x"$AUDIO" = xsada])


dnl ================================================================ dnl ================================================================
dnl Generate output. dnl Generate output.
dnl ================================================================ dnl ================================================================


AC_CONFIG_FILES([Makefile src/Makefile])
AC_CONFIG_FILES([Makefile])
AC_OUTPUT AC_OUTPUT


AC_MSG_NOTICE([ AC_MSG_NOTICE([

+ 0
- 125
src/Makefile.am View File

PREFIX=@prefix@
BINDIR=@bindir@
INCDIR=@includedir@/espeak
LIBDIR=@libdir@
DATADIR=${PREFIX}/share/espeak-data

# remove -fno-exceptions if it causes problems with stdio library on some platforms (ARM)

RELEASE = 1.47
SPEAK = speak
ESPEAK = espeak
ESPEAKEDIT = espeakedit
LIBESPEAK = libespeak.so
STATIC_LIBESPEAK = libespeak.a
LIB_VERSION = 1
LIBTAG = $(LIB_VERSION).$(RELEASE)

# Use SONAME_OPT=-Wl,h, on Solaris
SONAME_OPT=-Wl,-soname,

# Use EXTRA_LIBS=-lm on Solaris
EXTRA_LIBS =

INSTALL = install
LN_SF = /bin/ln -sf
MKDIR = mkdir -p

# AUDIO='runtime' uses pulseaudio if it is running, else uses portaudio

if AUDIO_RUNTIME
WAVE=wave.cpp wave_pulse.cpp
LIB_AUDIO=-lpulse -lpulse-simple -lportaudio
USE_AUDIO=-DUSE_PULSEAUDIO -DUSE_PORTAUDIO
else
if AUDIO_PULSEAUDIO
WAVE=wave_pulse.cpp
LIB_AUDIO=-lpulse
USE_AUDIO=-DUSE_PULSEAUDIO
else
if AUDIO_PORTAUDIO
WAVE=wave.cpp
LIB_AUDIO=-lportaudio
USE_AUDIO=-DUSE_PORTAUDIO
else
if AUDIO_PORTAUDIO0
WAVE=wave.cpp
LIB_AUDIO=/usr/lib/libportaudio.so.0
USE_AUDIO=-DUSE_PORTAUDIO
else
if AUDIO_PORTAUDIO2
WAVE=wave.cpp
LIB_AUDIO=/usr/lib/libportaudio.so.2
USE_AUDIO=-DUSE_PORTAUDIO
else
if AUDIO_SADA
WAVE=wave_sada.cpp
USE_AUDIO=-DUSE_SADA
else
WAVE=wave.cpp
endif
endif
endif
endif
endif
endif

CXXFLAGS ?= -O2 -Wall
CPPFLAGS = -pedantic -fno-exceptions -D PATH_ESPEAK_DATA=\"$(DATADIR)\"

.cpp.o:
$(CXX) -c $(CXXFLAGS) $(USE_AUDIO) -I. $(CPPFLAGS) $<

e_%.o: %.cpp
$(CXX) -c $(CXXFLAGS) $(espeakedit_CXXFLAGS) $(USE_AUDIO) $(CPPFLAGS) -I. $< -o e_$*.o

x_%.o: %.cpp
$(CXX) -c $(CXXFLAGS) $(USE_AUDIO) -fpic -fvisibility=hidden \
-I. -D LIBRARY $(CPPFLAGS) $< -o x_$*.o

all: $(SPEAK) $(LIBESPEAK) $(STATIC_LIBESPEAK) $(ESPEAK) $(ESPEAKEDIT)

common_SOURCE = compiledict.cpp dictionary.cpp intonation.cpp \
klatt.cpp mbrowrap.cpp numbers.cpp readclause.cpp \
phonemelist.cpp setlengths.cpp sonic.cpp \
synthdata.cpp synthesize.cpp synth_mbrola.cpp \
translate.cpp tr_languages.cpp voices.cpp wavegen.cpp

speak_SOURCE = speak.cpp $(common_SOURCE)
speak_OBJS = ${speak_SOURCE:%.cpp=%.o}
speak_LIBS = -lstdc++ $(LIB_AUDIO) -lpthread $(EXTRA_LIBS)
$(SPEAK): $(speak_OBJS)
$(CXX) $(LDFLAGS) -o $@ $(speak_OBJS) $(speak_LIBS)

espeak_SOURCE = espeak.cpp
espeak_OBJS = ${espeak_SOURCE:%.cpp=%.o}
espeak_LIBS = -lstdc++ -L . -lespeak
$(ESPEAK): $(espeak_OBJS) $(LIB_NAME)
$(CXX) $(LDFLAGS) -o $@ $(espeak_OBJS) $(espeak_LIBS)

libespeak_SOURCE = speak_lib.cpp $(common_SOURCE) \
espeak_command.cpp event.cpp fifo.cpp $(WAVE) debug.cpp
libespeak_OBJS = ${libespeak_SOURCE:%.cpp=x_%.o}
libespeak_LIBS = -lstdc++ $(LIB_AUDIO) -lpthread
$(LIBESPEAK): $(libespeak_OBJS)
$(CXX) $(LDFLAGS) -shared $(SONAME_OPT)$(LIBESPEAK).$(LIB_VERSION) -o $@ \
$(libespeak_OBJS) $(libespeak_LIBS)
mv $(LIBESPEAK) $(LIBESPEAK).$(LIBTAG)
$(LN_SF) $(LIBESPEAK).$(LIBTAG) $(LIBESPEAK).$(LIB_VERSION)
$(LN_SF) $(LIBESPEAK).$(LIB_VERSION) $(LIBESPEAK)

$(STATIC_LIBESPEAK): $(libespeak_OBJS)
$(AR) cqs $(STATIC_LIBESPEAK) $(libespeak_OBJS)


espeakedit_SOURCE = $(common_SOURCE) compiledata.cpp debug.cpp espeakedit.cpp \
event.cpp extras.cpp fifo.cpp formantdlg.cpp \
menus.cpp options.cpp prosodydisplay.cpp \
espeak_command.cpp speak_lib.cpp spect.cpp \
spectdisplay.cpp spectseq.cpp \
transldlg.cpp voicedlg.cpp vowelchart.cpp $(WAVE)
espeakedit_OBJS=${espeakedit_SOURCE:%.cpp=e_%.o}
espeakedit_LIBS=-lstdc++ $(LIB_AUDIO)
espeakedit_CXXFLAGS = ${WX_CXXFLAGS} -D_LARGEFILE_SOURCE=1 -DNO_GCC_PRAGMA -D_ESPEAKEDIT
$(ESPEAKEDIT): $(espeakedit_OBJS)
$(CXX) $(LDFLAGS) -o $@ $(espeakedit_OBJS) $(espeakedit_LIBS) ${WX_LIBS}

Loading…
Cancel
Save