[alsa-devel] [PATCH 5/5] Android: add makefile and config.h

Takashi Iwai tiwai at suse.de
Sat Mar 16 10:39:31 CET 2019


On Fri, 15 Mar 2019 13:20:50 +0100,
Jaroslav Kysela wrote:
> 
> Dne 15. 03. 19 v 10:17 Chih-Wei Huang napsal(a):
> > This is the initial porting of alsa-lib 1.1.8 to Android.
> > 
> > Signed-off-by: Chih-Wei Huang <cwhuang at linux.org.tw>
> > ---
> >  android/Android.mk |  55 ++++++++++++
> >  android/config.h   | 217 +++++++++++++++++++++++++++++++++++++++++++++
> >  2 files changed, 272 insertions(+)
> >  create mode 100644 android/Android.mk
> >  create mode 100644 android/config.h
> > 
> > diff --git a/android/Android.mk b/android/Android.mk
> > new file mode 100644
> > index 00000000..e12fd3a6
> > --- /dev/null
> > +++ b/android/Android.mk
> > @@ -0,0 +1,55 @@
> > +#
> > +# Copyright (C) 2019 The Android-x86 Open Source Project
> > +#
> > +# Licensed under the GNU Lesser General Public License Version 2.1.
> > +# You may not use this file except in compliance with the License.
> > +# You may obtain a copy of the License at
> > +#
> > +#      http://www.gnu.org/licenses/lgpl.html
> > +#
> > +
> > +LOCAL_PATH := $(dir $(call my-dir))
> > +include $(CLEAR_VARS)
> > +
> > +LOCAL_MODULE := libasound
> > +LOCAL_MODULE_TAGS := optional
> > +LOCAL_MODULE_CLASS := SHARED_LIBRARIES
> > +
> > +intermediates := $(call local-generated-sources-dir)
> > +
> > +LOCAL_C_INCLUDES := $(LOCAL_PATH)include $(LOCAL_PATH)android
> > +LOCAL_EXPORT_C_INCLUDE_DIRS := $(intermediates)
> > +
> > +LOCAL_CFLAGS := -DPIC \
> > +	-Wno-absolute-value -Wno-address-of-packed-member -Wno-missing-braces \
> > +	-Wno-pointer-arith -Wno-sign-compare -Wno-unused-function \
> > +	-Wno-unused-const-variable -Wno-unused-parameter -Wno-unused-variable \
> > +	-finline-limit=300 -finline-functions -fno-inline-functions-called-once
> > +
> > +# list of files to be excluded
> > +EXCLUDE_SRC_FILES := \
> > +	src/alisp/alisp_snd.c \
> > +	src/compat/hsearch_r.c \
> > +	src/control/control_shm.c \
> > +	src/pcm/pcm_d%.c \
> > +	src/pcm/pcm_ladspa.c \
> > +	src/pcm/pcm_shm.c \
> > +	src/pcm/scopes/level.c \
> > +
> > +LOCAL_SRC_FILES := $(filter-out $(EXCLUDE_SRC_FILES),$(call all-c-files-under,src))
> > +
> > +GEN := $(intermediates)/alsa/asoundlib.h
> > +$(GEN): $(LOCAL_PATH)configure.ac $(wildcard $(LOCAL_PATH)include/*.h)
> > +	rm -rf $(@D); mkdir -p $(@D); cd $(@D); \
> > +	ln -s ../../../../../../../../$(<D)/include/*.h .
> > +	cat $(@D)/asoundlib-head.h > $@; \
> > +	sed -n "/.*\(#include <[ae].*.h>\).*/s//\1/p" $< >> $@; \
> > +	cat $(@D)/asoundlib-tail.h >> $@
> > +	sed -n "/^AC_INIT.* \([0-9.]*\))/s//\#define SND_LIB_VERSION_STR \"\1\"/p" $< > $(@D)/version.h; \
> > +	ln -sf alsa/version.h $(@D)/..
> > +
> > +LOCAL_GENERATED_SOURCES := $(GEN)
> > +
> > +LOCAL_SHARED_LIBRARIES := libdl
> > +
> > +include $(BUILD_SHARED_LIBRARY)
> > diff --git a/android/config.h b/android/config.h
> > new file mode 100644
> > index 00000000..53d50396
> > --- /dev/null
> > +++ b/android/config.h
> > @@ -0,0 +1,217 @@
> > +/* include/config.h.  Generated from config.h.in by configure.  */
> > +/* include/config.h.in.  Generated from configure.ac by autoheader.  */
> > +
> > +/* Directory with aload* device files */
> > +#define ALOAD_DEVICE_DIRECTORY "/dev/"
> > +
> > +/* directory containing ALSA configuration database */
> > +#define ALSA_CONFIG_DIR "/system/usr/share/alsa"
> > +
> > +/* Enable assert at error message handler */
> > +/* #undef ALSA_DEBUG_ASSERT */
> > +
> > +/* Directory with ALSA device files */
> > +#define ALSA_DEVICE_DIRECTORY "/dev/snd/"
> > +
> > +/* directory containing ALSA add-on modules */
> > +#define ALSA_PLUGIN_DIR "/system/usr/lib/alsa-lib"
> > +
> > +/* Build hwdep component */
> > +#define BUILD_HWDEP "1"
> > +
> > +/* Build mixer component */
> > +#define BUILD_MIXER "1"
> > +
> > +/* Build PCM component */
> > +#define BUILD_PCM "1"
> > +
> > +/* Build PCM adpcm plugin */
> > +#define BUILD_PCM_PLUGIN_ADPCM "1"
> > +
> > +/* Build PCM alaw plugin */
> > +#define BUILD_PCM_PLUGIN_ALAW "1"
> > +
> > +/* Build PCM lfloat plugin */
> > +#define BUILD_PCM_PLUGIN_LFLOAT "1"
> > +
> > +/* Build PCM mmap-emul plugin */
> > +#define BUILD_PCM_PLUGIN_MMAP_EMUL "1"
> > +
> > +/* Build PCM mulaw plugin */
> > +#define BUILD_PCM_PLUGIN_MULAW "1"
> > +
> > +/* Build PCM rate plugin */
> > +#define BUILD_PCM_PLUGIN_RATE "1"
> > +
> > +/* Build PCM route plugin */
> > +#define BUILD_PCM_PLUGIN_ROUTE "1"
> > +
> > +/* Build raw MIDI component */
> > +/* #undef BUILD_RAWMIDI */
> > +
> > +/* Build sequencer component */
> > +/* #undef BUILD_SEQ */
> > +
> > +/* Build DSP Topology component */
> > +#define BUILD_TOPOLOGY "1"
> > +
> > +/* Build UCM component */
> > +#define BUILD_UCM "1"
> > +
> > +/* Have clock gettime */
> > +#define HAVE_CLOCK_GETTIME 1
> > +
> > +/* Define to 1 if you have the <dlfcn.h> header file. */
> > +#define HAVE_DLFCN_H 1
> > +
> > +/* Define to 1 if you have the <endian.h> header file. */
> > +#define HAVE_ENDIAN_H 1
> > +
> > +/* Define to 1 if you have the <inttypes.h> header file. */
> > +#define HAVE_INTTYPES_H 1
> > +
> > +/* Have libdl */
> > +#define HAVE_LIBDL 1
> > +
> > +/* Have libpthread */
> > +#define HAVE_LIBPTHREAD 1
> > +
> > +/* Define to 1 if you have the `resmgr' library (-lresmgr). */
> > +/* #undef HAVE_LIBRESMGR */
> > +
> > +/* Have librt */
> > +/* #undef HAVE_LIBRT */
> > +
> > +/* Define to 1 if you have the <memory.h> header file. */
> > +#define HAVE_MEMORY_H 1
> > +
> > +/* Define if your pthreads implementation have PTHREAD_MUTEX_RECURSIVE */
> > +#define HAVE_PTHREAD_MUTEX_RECURSIVE /**/
> > +
> > +/* Avoid calculation in float */
> > +/* #undef HAVE_SOFT_FLOAT */
> > +
> > +/* Define to 1 if you have the <stdint.h> header file. */
> > +#define HAVE_STDINT_H 1
> > +
> > +/* Define to 1 if you have the <stdlib.h> header file. */
> > +#define HAVE_STDLIB_H 1
> > +
> > +/* Define to 1 if you have the <strings.h> header file. */
> > +#define HAVE_STRINGS_H 1
> > +
> > +/* Define to 1 if you have the <string.h> header file. */
> > +#define HAVE_STRING_H 1
> > +
> > +/* Define to 1 if you have the <sys/endian.h> header file. */
> > +/* #undef HAVE_SYS_ENDIAN_H */
> > +
> > +/* Define to 1 if you have the <sys/shm.h> header file. */
> > +#define HAVE_SYS_SHM_H 1
> > +
> > +/* Define to 1 if you have the <sys/stat.h> header file. */
> > +#define HAVE_SYS_STAT_H 1
> > +
> > +/* Define to 1 if you have the <sys/types.h> header file. */
> > +#define HAVE_SYS_TYPES_H 1
> > +
> > +/* Define to 1 if you have the <unistd.h> header file. */
> > +#define HAVE_UNISTD_H 1
> > +
> > +/* Define to 1 if you have the `uselocale' function. */
> > +#define HAVE_USELOCALE 1
> > +
> > +/* Enable use of wordexp */
> > +/* #undef HAVE_WORDEXP */
> > +
> > +/* Define to 1 if compiler supports __thread */
> > +#define HAVE___THREAD 1
> > +
> > +/* Define to the sub-directory where libtool stores uninstalled libraries. */
> > +#define LT_OBJDIR ".libs/"
> > +
> > +/* No assert debug */
> > +/* #undef NDEBUG */
> > +
> > +/* Name of package */
> > +#define PACKAGE "alsa-lib"
> > +
> > +/* Define to the address where bug reports for this package should be sent. */
> > +#define PACKAGE_BUGREPORT ""
> > +
> > +/* Define to the full name of this package. */
> > +#define PACKAGE_NAME "alsa-lib"
> > +
> > +/* Define to the one symbol short name of this package. */
> > +#define PACKAGE_TARNAME "alsa-lib"
> > +
> > +/* Define to the home page for this package. */
> > +#define PACKAGE_URL ""
> > +
> > +/* Max number of cards */
> > +#define SND_MAX_CARDS 32
> > +
> > +/* Define to 1 if you have the ANSI C header files. */
> > +#define STDC_HEADERS 1
> > +
> > +/* Support /dev/aload* access for auto-loading */
> > +/* #undef SUPPORT_ALOAD */
> > +
> > +/* Support resmgr with alsa-lib */
> > +/* #undef SUPPORT_RESMGR */
> > +
> > +/* Disable thread-safe API functions */
> > +#define THREAD_SAFE_API "1"
> > +
> > +/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
> > +#define TIME_WITH_SYS_TIME 1
> > +
> > +/* directory to put tmp socket files */
> > +#define TMPDIR "/tmp"
> > +
> > +/* Enable extensions on AIX 3, Interix.  */
> > +#ifndef _ALL_SOURCE
> > +# define _ALL_SOURCE 1
> > +#endif
> > +/* Enable GNU extensions on systems that have them.  */
> > +#ifndef _GNU_SOURCE
> > +# define _GNU_SOURCE 1
> > +#endif
> > +/* Enable threading extensions on Solaris.  */
> > +#ifndef _POSIX_PTHREAD_SEMANTICS
> > +# define _POSIX_PTHREAD_SEMANTICS 1
> > +#endif
> > +/* Enable extensions on HP NonStop.  */
> > +#ifndef _TANDEM_SOURCE
> > +# define _TANDEM_SOURCE 1
> > +#endif
> > +/* Enable general extensions on Solaris.  */
> > +#ifndef __EXTENSIONS__
> > +# define __EXTENSIONS__ 1
> > +#endif
> > +
> > +
> > +/* compiled with versioned symbols */
> > +/* #undef VERSIONED_SYMBOLS */
> > +
> > +/* Define to 1 if on MINIX. */
> > +/* #undef _MINIX */
> > +
> > +/* Define to 2 if the system does not provide POSIX.1 features except with
> > +   this defined. */
> > +/* #undef _POSIX_1_SOURCE */
> > +
> > +/* Define to 1 if you need to in order for `stat' and other things to work. */
> > +/* #undef _POSIX_SOURCE */
> > +
> > +/* Toolchain Symbol Prefix */
> > +#define __SYMBOL_PREFIX ""
> > +
> > +/* Define to empty if `const' does not conform to ANSI C. */
> > +/* #undef const */
> > +
> > +/* Define to `__inline__' or `__inline' if that's what the C compiler
> > +   calls it, or to nothing if 'inline' is not supported under any name.  */
> > +#ifndef __cplusplus
> > +/* #undef inline */
> > +#endif
> 
> I am afraid, but those changes do not belong to the universal source
> package. You may create an androidcompile script (something like
> gitcompile) with some reasonable defaults for configure / autoconf /
> automake.
> 
> If something is missing in the autoconf/automake files - just add it there.

Yes, otherwise we'd have to modify two places once when something
needs to be changed, and that's error-prone.

Or moving to a modern build infrastructure instead of stone aged
auto-tools would help for cross-platform builds?


thanks,

Takashi


More information about the Alsa-devel mailing list