This is an automated email from the ASF dual-hosted git repository.

jerpelea pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx-apps.git


The following commit(s) were added to refs/heads/master by this push:
     new 309f42ea2 apps: add lame Makefile & CMakeLists.txt
309f42ea2 is described below

commit 309f42ea212fe090d32ce6b29449d2518bc98e58
Author: shizhenghui <[email protected]>
AuthorDate: Mon Jul 8 18:17:31 2024 +0800

    apps: add lame Makefile & CMakeLists.txt
    
    Signed-off-by: shizhenghui <[email protected]>
---
 audioutils/lame/.gitignore     |   1 +
 audioutils/lame/CMakeLists.txt |  26 ++++++++++
 audioutils/lame/Kconfig        |   8 ++++
 audioutils/lame/Make.defs      |  23 +++++++++
 audioutils/lame/Makefile       | 105 +++++++++++++++++++++++++++++++++++++++++
 5 files changed, 163 insertions(+)

diff --git a/audioutils/lame/.gitignore b/audioutils/lame/.gitignore
new file mode 100644
index 000000000..746d2f0dd
--- /dev/null
+++ b/audioutils/lame/.gitignore
@@ -0,0 +1 @@
+lame
diff --git a/audioutils/lame/CMakeLists.txt b/audioutils/lame/CMakeLists.txt
new file mode 100644
index 000000000..d0abfd65c
--- /dev/null
+++ b/audioutils/lame/CMakeLists.txt
@@ -0,0 +1,26 @@
+# 
##############################################################################
+# apps/audioutils/lame/CMakeLists.txt
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more 
contributor
+# license agreements.  See the NOTICE file distributed with this work for
+# additional information regarding copyright ownership.  The ASF licenses this
+# file to you under the Apache License, Version 2.0 (the "License"); you may 
not
+# use this file except in compliance with the License.  You may obtain a copy 
of
+# the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
+# License for the specific language governing permissions and limitations under
+# the License.
+#
+# 
##############################################################################
+
+if(CONFIG_AUDIOUTILS_LAME)
+
+  # call origin build system to generate libmp3lame
+  nuttx_call_apps_makefile(TARGET lame TARGET_BIN libmp3lame.a)
+
+endif()
diff --git a/audioutils/lame/Kconfig b/audioutils/lame/Kconfig
new file mode 100644
index 000000000..47adb3219
--- /dev/null
+++ b/audioutils/lame/Kconfig
@@ -0,0 +1,8 @@
+#
+# For a description of the syntax of this configuration file,
+# see the file kconfig-language.txt in the NuttX tools repository.
+#
+
+config AUDIOUTILS_LAME
+       bool "Enable LAME MP3 Encoder"
+       default n
diff --git a/audioutils/lame/Make.defs b/audioutils/lame/Make.defs
new file mode 100644
index 000000000..632d2a95e
--- /dev/null
+++ b/audioutils/lame/Make.defs
@@ -0,0 +1,23 @@
+############################################################################
+# apps/audioutils/lame/Make.defs
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.  The
+# ASF licenses this file to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance with the
+# License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
+# License for the specific language governing permissions and limitations
+# under the License.
+#
+############################################################################
+
+ifneq ($(CONFIG_AUDIOUTILS_LAME),)
+CONFIGURED_APPS += $(APPDIR)/audioutils/lame
+endif
diff --git a/audioutils/lame/Makefile b/audioutils/lame/Makefile
new file mode 100644
index 000000000..e941b8bd8
--- /dev/null
+++ b/audioutils/lame/Makefile
@@ -0,0 +1,105 @@
+############################################################################
+# apps/audioutils/lame/Makefile
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.  The
+# ASF licenses this file to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance with the
+# License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
+# License for the specific language governing permissions and limitations
+# under the License.
+#
+############################################################################
+
+# Download lame if no lame/configure found
+lame-svn:
+       $(Q) echo "svn checkout lame ..."
+       $(Q) svn checkout https://svn.code.sf.net/p/lame/svn/trunk/lame lame
+
+ifeq ($(wildcard lame/configure),)
+context:: lame-svn
+distclean::
+       $(call DELDIR, lame)
+endif
+
+ifeq ($(DST_PATH),)
+  include $(APPDIR)/Make.defs
+  # configure in place
+  DST_PATH := lame
+else
+  # configure out of tree
+  DST_PATH := $(realpath $(DST_PATH))
+  include $(DST_PATH)/Make.defs
+  BIN := $(DST_PATH)/libmp3lame.a
+  # enable Application.mk PREFIX
+  PREFIX := $(DST_PATH)$(DELIM)
+endif
+
+ifneq ($(CONFIG_ARCH),sim)
+  CFG_CMDS += --host=$(CONFIG_ARCH)
+  CFG_CMDS += --cross-prefix=$(CROSSDEV)
+endif
+
+SRC_PATH := lame
+
+CFLAGS += -DHAVE_CONFIG_H -D'fast_log2=lame_fast_log2'
+CFLAGS += $(INCDIR_PREFIX)$(DST_PATH) \
+          $(INCDIR_PREFIX)$(SRC_PATH)/include \
+          $(INCDIR_PREFIX)$(SRC_PATH)/libmp3lame
+CFLAGS += -Wno-address -Wno-array-parameter \
+          -Wno-builtin-declaration-mismatch \
+          -Wno-incompatible-pointer-types \
+          -Wno-implicit-function-declaration -Wno-shadow \
+          -Wno-stringop-overflow -Wno-unused-variable \
+          -Wno-unused-but-set-variable \
+          -msse
+
+CSRCS += $(SRC_PATH)/libmp3lame/bitstream.c \
+         $(SRC_PATH)/libmp3lame/encoder.c \
+         $(SRC_PATH)/libmp3lame/fft.c \
+         $(SRC_PATH)/libmp3lame/gain_analysis.c \
+         $(SRC_PATH)/libmp3lame/id3tag.c \
+         $(SRC_PATH)/libmp3lame/lame.c \
+         $(SRC_PATH)/libmp3lame/newmdct.c \
+         $(SRC_PATH)/libmp3lame/psymodel.c \
+         $(SRC_PATH)/libmp3lame/quantize.c \
+         $(SRC_PATH)/libmp3lame/vector/xmm_quantize_sub.c \
+         $(SRC_PATH)/libmp3lame/quantize_pvt.c \
+         $(SRC_PATH)/libmp3lame/set_get.c \
+         $(SRC_PATH)/libmp3lame/vbrquantize.c \
+         $(SRC_PATH)/libmp3lame/reservoir.c \
+         $(SRC_PATH)/libmp3lame/tables.c \
+         $(SRC_PATH)/libmp3lame/takehiro.c \
+         $(SRC_PATH)/libmp3lame/util.c \
+         $(SRC_PATH)/libmp3lame/VbrTag.c \
+         $(SRC_PATH)/libmp3lame/version.c \
+         $(SRC_PATH)/libmp3lame/presets.c
+
+LAME_CONFIG_SCRIPT := $(CURDIR)$(DELIM)lame$(DELIM)configure
+
+$(DST_PATH)/config.h:
+       $(Q)echo "lame configure... $(CONFIG_ARCH)"
+       $(Q)cd $(DST_PATH) && $(LAME_CONFIG_SCRIPT) \
+       --disable-cpml --disable-decoder --disable-efence \
+       --disable-frontend --disable-mp3x --disable-gtktest \
+       --disable-ipv6 --disable-rpath --enable-static \
+       $(CFG_CMDS)
+
+context:: $(DST_PATH)/config.h
+
+ifneq ($(PREFIX),)
+       @$(eval ALL_SRCS = $(CSRCS))
+       @$(foreach src,$(ALL_SRCS),$(shell mkdir -p $(PREFIX)$(dir $(src))))
+endif
+
+distclean::
+       $(Q)cd $(DST_PATH) && make distclean
+
+include $(APPDIR)/Application.mk

Reply via email to