Browse Source

Port the build system to automake.

tags/4.1.2
Stephen Sinclair 5 years ago
parent
commit
fbcd1910a3
10 changed files with 243 additions and 2883 deletions
  1. +18
    -0
      Makefile.am
  2. +0
    -75
      Makefile.in
  3. +107
    -0
      autogen.sh
  4. +0
    -1371
      config/config.guess
  5. +0
    -1366
      config/config.sub
  6. +0
    -0
      config/install.sh
  7. +58
    -13
      configure.ac
  8. +33
    -0
      doc/Makefile.am
  9. +27
    -0
      tests/Makefile.am
  10. +0
    -58
      tests/Makefile.in

+ 18
- 0
Makefile.am View File

@@ -0,0 +1,18 @@
SUBDIRS = . tests
if MAKE_DOC
SUBDIRS += doc
endif

lib_LTLIBRARIES = %D%/librtaudio.la
%C%_librtaudio_la_LDFLAGS = -no-undefined -export-dynamic -version-info @SO_VERSION@
%C%_librtaudio_la_SOURCES = \
%D%/RtAudio.cpp

rtaudio_incdir = $(includedir)/rtaudio
rtaudio_inc_HEADERS = \
%D%/RtAudio.h

pkgconfigdatadir = $(libdir)/pkgconfig
pkgconfigdata_DATA = rtaudio.pc

EXTRA_DIST = autogen.sh readme install.txt contrib include

+ 0
- 75
Makefile.in View File

@@ -1,75 +0,0 @@
### Do not edit -- Generated by 'configure --with-whatever' from Makefile.in
### RtAudio library Makefile

RM = /bin/rm
LN = /bin/ln

OBJECTS = RtAudio.o @objects@

LIBNAME = librtaudio
STATIC = $(LIBNAME).a
SHARED = @sharedlib@
RELEASE = 4.1.1
MAJOR = 4
LIBRARIES = $(STATIC) $(SHARED)

CC = @CXX@
AR = @AR@
RANLIB = @RANLIB@

DEFS = @CPPFLAGS@
CFLAGS = @CXXFLAGS@ -Iinclude -fPIC

PREFIX = @prefix@

all : $(LIBRARIES)

tests:
cd tests && $(MAKE) all

$(LIBRARIES): $(OBJECTS)
$(AR) ruv $(STATIC) $(OBJECTS)
ranlib $(STATIC)
$(CC) -fPIC @libflags@ $(OBJECTS) @LIBS@
$(LN) -sf @sharedname@ $(SHARED)
$(LN) -sf @sharedname@ $(SHARED).$(MAJOR)

%.o : %.cpp
$(CC) $(CFLAGS) $(DEFS) -c $(<) -o $@

%.o : include/%.cpp
$(CC) $(CFLAGS) $(DEFS) -c $(<) -o $@

install:
install --mode=755 $(STATIC) $(PREFIX)/lib/
install --mode=755 @sharedname@ $(PREFIX)/lib/
$(LN) -sf @sharedname@ $(PREFIX)/lib/$(SHARED)
$(LN) -sf @sharedname@ $(PREFIX)/lib/$(SHARED).$(MAJOR)
install --mode=644 $(LIBNAME).pc $(PREFIX)/lib/pkgconfig
install --mode=644 RtAudio.h $(PREFIX)/include/
install --mode=755 rtaudio-config $(PREFIX)/bin/

uninstall:
-@rm -vf $(patsubst %,$(PREFIX)/lib/%, $(LIBRARIES) $(SHARED).$(MAJOR) $(SHARED).$(RELEASE))
-@rm -vf $(PREFIX)/lib/pkgconfig/$(LIBNAME).pc
-@rm -vf $(PREFIX)/bin/rtaudio-config

clean :
$(RM) -f $(LIBRARIES) @sharedname@ $(SHARED)*
$(RM) -f $(OBJECTS)
$(RM) -f *~
cd tests && $(MAKE) clean

distclean:
$(RM) -f $(LIBRARIES) @sharedname@ $(SHARED)*
$(RM) -f $(OBJECTS)
$(RM) -f *~
$(RM) -rf config.log config.status autom4te.cache Makefile rtaudio-config $(LIBNAME).pc
cd tests && $(MAKE) distclean

strip :
strip $(LIBRARIES)
ranlib $(LIBRARIES)
cd tests && $(MAKE) strip

.PHONY: clean distclean strip install uninstall

+ 107
- 0
autogen.sh View File

@@ -0,0 +1,107 @@
#!/bin/sh
# Run this to generate all the initial makefiles, etc.

srcdir=`dirname $0`
test -z "$srcdir" && srcdir=.

DIE=0

if test -z "$*"; then
echo "**Warning**: I am going to run \`configure' with arguments for"
echo "developer/maintainer mode. If you wish to pass extra arguments,"
echo "(such as --prefix), please specify them on the \`$0'"
echo "command line."
echo "If you wish to run configure yourself, please specify --no-configure."
echo
fi

(test -f $srcdir/configure.ac) || {
echo -n "**Error**: Directory "\`$srcdir\'" does not look like the"
echo " top-level package directory"
exit 1
}

# Make some directories required by automake, if they don't exist
if ! [ -d config ]; then mkdir -v config; fi
if ! [ -d m4 ]; then mkdir -v m4; fi

if ! autoreconf --version </dev/null >/dev/null 2>&1
then

(autoconf --version) < /dev/null > /dev/null 2>&1 || {
echo
echo "**Error**: You must have \`autoconf' installed."
echo "Download the appropriate package for your distribution,"
echo "or get the source tarball at ftp://ftp.gnu.org/pub/gnu/"
DIE=1
}

(grep "^LT_INIT" $srcdir/configure.ac >/dev/null) && {
(libtoolize --version) < /dev/null > /dev/null 2>&1 \
&& LIBTOOLIZE=libtoolize || {
(glibtoolize --version) < /dev/null > /dev/null 2>&1 \
&& LIBTOOLIZE=glibtoolize || {
echo
echo "**Error**: You must have \`libtool' installed."
echo "You can get it from: ftp://ftp.gnu.org/pub/gnu/"
DIE=1
}
}
}

(automake --version) < /dev/null > /dev/null 2>&1 || {
echo
echo "**Error**: You must have \`automake' installed."
echo "You can get it from: ftp://ftp.gnu.org/pub/gnu/"
DIE=1
NO_AUTOMAKE=yes
}


# if no automake, don't bother testing for aclocal
test -n "$NO_AUTOMAKE" || (aclocal --version) < /dev/null > /dev/null 2>&1 || {
echo
echo "**Error**: Missing \`aclocal'. The version of \`automake'"
echo "installed doesn't appear recent enough."
echo "You can get automake from ftp://ftp.gnu.org/pub/gnu/"
DIE=1
}

if test "$DIE" -eq 1; then
exit 1
fi

case $CC in
xlc )
am_opt=--include-deps;;
esac

echo "Running aclocal $aclocalinclude ..."
aclocal $ACLOCAL_FLAGS || exit 1
echo "Running $LIBTOOLIZE ..."
$LIBTOOLIZE || exit 1
echo "Running automake --gnu $am_opt ..."
automake --add-missing --gnu $am_opt || exit 1
echo "Running autoconf ..."
autoconf || exit 1

else # autoreconf instead

echo "Running autoreconf --verbose --install ..."
autoreconf --verbose --install || exit 1

fi

if ( echo "$@" | grep -q -e "--no-configure" ); then
NOCONFIGURE=1
fi

conf_flags="--enable-maintainer-mode --enable-debug --disable-silent-rules"

if test x$NOCONFIGURE = x; then
echo Running $srcdir/configure $conf_flags "$@" ...
$srcdir/configure $conf_flags "$@" \
&& echo Now type \`make\' to compile. || exit 1
else
echo Skipping configure process.
fi

+ 0
- 1371
config/config.guess
File diff suppressed because it is too large
View File


+ 0
- 1366
config/config.sub
File diff suppressed because it is too large
View File


+ 0
- 0
config/install.sh View File


+ 58
- 13
configure.ac View File

@@ -2,7 +2,35 @@
AC_INIT(RtAudio, 4.1, gary@music.mcgill.ca, rtaudio)
AC_CONFIG_AUX_DIR(config)
AC_CONFIG_SRCDIR(RtAudio.cpp)
AC_CONFIG_FILES([rtaudio-config rtaudio.pc Makefile tests/Makefile doc/doxygen/Doxyfile])
AC_CONFIG_FILES([rtaudio-config rtaudio.pc Makefile tests/Makefile doc/Makefile doc/doxygen/Doxyfile])
AM_INIT_AUTOMAKE([1.14 -Wall -Werror foreign subdir-objects])

# libtool version: current:revision:age
#
# If the library source code has changed at all since the last update, then
# increment revision (`c:r:a' becomes `c:r+1:a').
#
# If any interfaces have been added, removed, or changed since the last update,
# increment current, and set revision to 0.
#
# If any interfaces have been added since the last public release, then
# increment age.
#
# If any interfaces have been removed since the last public release, then set
# age to 0.
m4_define([lt_current], 5)
m4_define([lt_revision], 0)
m4_define([lt_age], 0)

m4_define([lt_version_info], [lt_current:lt_revision:lt_age])
m4_define([lt_current_minus_age], [m4_eval(lt_current - lt_age)])

SO_VERSION=lt_version_info
AC_SUBST(SO_VERSION)

# Enable some nice automake features if they are available
m4_ifdef([AM_MAINTAINER_MODE], [AM_MAINTAINER_MODE])
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])

# Fill GXX with something before test.
AC_SUBST( GXX, ["no"] )
@@ -23,12 +51,16 @@ $4])

# Checks for programs.
AC_PROG_CXX(g++ CC c++ cxx)
AC_PROG_RANLIB
AM_PROG_AR
AC_PATH_PROG(AR, ar, no)
if [[ $AR = "no" ]] ; then
AC_MSG_ERROR("Could not find ar - needed to create a library");
fi

# Initialize libtool
LT_INIT([win32-dll])
AC_CONFIG_MACRO_DIR([m4])

# Checks for header files.
AC_HEADER_STDC
AC_CHECK_HEADERS(sys/ioctl.h unistd.h)
@@ -64,19 +96,32 @@ fi

CXXFLAGS="$CXXFLAGS $cxxflag"

AC_CANONICAL_HOST

AC_SUBST( sharedlib, ["librtaudio.so"] )
AC_SUBST( sharedname, ["librtaudio.so.\$(RELEASE)"] )
AC_SUBST( libflags, ["-shared -Wl,-soname,\$(SHARED).\$(MAJOR) -o \$(SHARED).\$(RELEASE)"] )
case $host in
*-apple*)
AC_SUBST( sharedlib, ["librtaudio.dylib"] )
AC_SUBST( sharedname, ["librtaudio.\$(RELEASE).dylib"] )
AC_SUBST( libflags, ["-dynamiclib -o librtaudio.\$(RELEASE).dylib"] )
esac
# Checks for doxygen
AC_CHECK_PROG( DOXYGEN, [doxygen], [doxygen] )
AM_CONDITIONAL( MAKE_DOC, [test "x${DOXYGEN}" != x] )

# Copy doc files to build dir if necessary
AC_CONFIG_LINKS( [doc/release.txt:doc/release.txt] )
AC_CONFIG_LINKS( [doc/doxygen/footer.html:doc/doxygen/footer.html] )
AC_CONFIG_LINKS( [doc/doxygen/error.txt:doc/doxygen/error.txt] )
AC_CONFIG_LINKS( [doc/doxygen/tutorial.txt:doc/doxygen/tutorial.txt] )
AC_CONFIG_LINKS( [doc/doxygen/compiling.txt:doc/doxygen/compiling.txt] )
AC_CONFIG_LINKS( [doc/doxygen/acknowledge.txt:doc/doxygen/acknowledge.txt] )
AC_CONFIG_LINKS( [doc/doxygen/license.txt:doc/doxygen/license.txt] )
AC_CONFIG_LINKS( [doc/doxygen/header.html:doc/doxygen/header.html] )
AC_CONFIG_LINKS( [doc/doxygen/duplex.txt:doc/doxygen/duplex.txt] )
AC_CONFIG_LINKS( [doc/doxygen/settings.txt:doc/doxygen/settings.txt] )
AC_CONFIG_LINKS( [doc/doxygen/probe.txt:doc/doxygen/probe.txt] )
AC_CONFIG_LINKS( [doc/doxygen/playback.txt:doc/doxygen/playback.txt] )
AC_CONFIG_LINKS( [doc/doxygen/multi.txt:doc/doxygen/multi.txt] )
AC_CONFIG_LINKS( [doc/doxygen/recording.txt:doc/doxygen/recording.txt] )
AC_CONFIG_LINKS( [doc/doxygen/apinotes.txt:doc/doxygen/apinotes.txt] )
AC_CONFIG_LINKS( [doc/images/mcgill.gif:doc/images/mcgill.gif] )
AC_CONFIG_LINKS( [doc/images/ccrma.gif:doc/images/ccrma.gif] )

# Checks for package options and external software
AC_CANONICAL_HOST

AC_SUBST( api, [""] )
AC_SUBST( req, [""] )
AC_MSG_CHECKING(for audio API)


+ 33
- 0
doc/Makefile.am View File

@@ -0,0 +1,33 @@

MAINTAINERCLEANFILES=Makefile.in

CLEANFILES=doxygen-build.stamp

DOX=Doxyfile

EXTRA_DIST=html

INSTIMAGES=html/doxygen.png

DOC_STAMPS=doxygen-build.stamp

DOC_DIR=$(HTML_DIR)

all-local: doxygen-build.stamp

doxygen-build.stamp: doxygen/$(DOX) $(top_srcdir)/RtAudio.h
@echo '*** Running doxygen ***'
cd doxygen; $(DOXYGEN) $(DOX)
touch doxygen-build.stamp

clean-local:
rm -f *~ *.bak $(DOC_STAMPS) || true
if test -d html; then rm -fr html; fi
if test -d latex; then rm -fr latex; fi
if test -d man; then rm -fr man; fi

distclean-local: clean
rm -f *.stamp || true
if test -d html; then rm -rf html; fi

html-local: $(DOC_STAMPS)

+ 27
- 0
tests/Makefile.am View File

@@ -0,0 +1,27 @@

noinst_PROGRAMS = audioprobe playsaw playraw record duplex testall teststops

AM_CXXFLAGS = -Wall -I$(top_srcdir)

audioprobe_SOURCES = audioprobe.cpp
audioprobe_LDADD = $(top_builddir)/librtaudio.la

playsaw_SOURCES = playsaw.cpp
playsaw_LDADD = $(top_builddir)/librtaudio.la

playraw_SOURCES = playraw.cpp
playraw_LDADD = $(top_builddir)/librtaudio.la

record_SOURCES = record.cpp
record_LDADD = $(top_builddir)/librtaudio.la

duplex_SOURCES = duplex.cpp
duplex_LDADD = $(top_builddir)/librtaudio.la

testall_SOURCES = testall.cpp
testall_LDADD = $(top_builddir)/librtaudio.la

teststops_SOURCES = teststops.cpp
teststops_LDADD = $(top_builddir)/librtaudio.la

EXTRA_DIST = Windows

+ 0
- 58
tests/Makefile.in View File

@@ -1,58 +0,0 @@
### Do not edit -- Generated by 'configure --with-whatever' from Makefile.in
### RtAudio tests Makefile - for various flavors of unix and MinGW

PROGRAMS = audioprobe playsaw playraw record duplex testall teststops
RM = /bin/rm
SRC_PATH = ..
INCLUDE = ..
OBJECT_PATH = @object_path@
vpath %.o $(OBJECT_PATH)

OBJECTS = RtAudio.o @objects@

CC = @CXX@
DEFS = @CPPFLAGS@
CFLAGS = @CXXFLAGS@
CFLAGS += -I$(INCLUDE) -I../include
LIBRARY = @LIBS@

%.o : $(SRC_PATH)/%.cpp
$(CC) $(CFLAGS) $(DEFS) -c $(<) -o $(OBJECT_PATH)/$@

%.o : ../include/%.cpp
$(CC) $(CFLAGS) $(DEFS) -c $(<) -o $(OBJECT_PATH)/$@

all : $(PROGRAMS)

audioprobe : audioprobe.cpp $(OBJECTS)
$(CC) $(CFLAGS) $(DEFS) -o audioprobe audioprobe.cpp $(OBJECT_PATH)/*.o $(LIBRARY)

playsaw : playsaw.cpp $(OBJECTS)
$(CC) $(CFLAGS) $(DEFS) -o playsaw playsaw.cpp $(OBJECT_PATH)/*.o $(LIBRARY)

playraw : playraw.cpp $(OBJECTS)
$(CC) $(CFLAGS) $(DEFS) -o playraw playraw.cpp $(OBJECT_PATH)/*.o $(LIBRARY)

record : record.cpp $(OBJECTS)
$(CC) $(CFLAGS) $(DEFS) -o record record.cpp $(OBJECT_PATH)/*.o $(LIBRARY)

duplex : duplex.cpp $(OBJECTS)
$(CC) $(CFLAGS) $(DEFS) -o duplex duplex.cpp $(OBJECT_PATH)/*.o $(LIBRARY)

testall : testall.cpp $(OBJECTS)
$(CC) $(CFLAGS) $(DEFS) -o testall testall.cpp $(OBJECT_PATH)/*.o $(LIBRARY)

teststops : teststops.cpp $(OBJECTS)
$(CC) $(CFLAGS) $(DEFS) -o teststops teststops.cpp $(OBJECT_PATH)/*.o $(LIBRARY)

clean :
$(RM) -f $(OBJECT_PATH)/*.o
$(RM) -f $(PROGRAMS)
$(RM) -f *.raw *~ *.exe
$(RM) -fR *.dSYM

distclean: clean
$(RM) -f Makefile

strip :
strip $(PROGRAMS)

Loading…
Cancel
Save