mirror of
https://github.com/google/liblc3.git
synced 2026-04-16 12:45:31 +00:00
make: switch to shared object library
This commit is contained in:
13
Makefile
13
Makefile
@@ -48,7 +48,7 @@ lib_list :=
|
|||||||
bin_list :=
|
bin_list :=
|
||||||
|
|
||||||
define add-lib
|
define add-lib
|
||||||
$(eval $(1)_bin ?= $(1).a)
|
$(eval $(1)_bin ?= $(1).so)
|
||||||
$(eval $(1)_bin := $(addprefix $(BIN_DIR)/,$($(1)_bin)))
|
$(eval $(1)_bin := $(addprefix $(BIN_DIR)/,$($(1)_bin)))
|
||||||
|
|
||||||
lib_list += $(1)
|
lib_list += $(1)
|
||||||
@@ -72,7 +72,6 @@ define set-target
|
|||||||
$(patsubst %.s,%.o,$(filter %.s,$($(1)_src))) \
|
$(patsubst %.s,%.o,$(filter %.s,$($(1)_src))) \
|
||||||
$(patsubst %.cc,%.o,$(filter %.cc,$($(1)_src))))
|
$(patsubst %.cc,%.o,$(filter %.cc,$($(1)_src))))
|
||||||
$(eval $(1)_obj := $(addprefix $(BUILD_DIR)/,$($(1)_obj)))
|
$(eval $(1)_obj := $(addprefix $(BUILD_DIR)/,$($(1)_obj)))
|
||||||
$(eval $(1)_lib := $(foreach lib, $($(1)_lib), $($(lib)_bin)))
|
|
||||||
|
|
||||||
$($(1)_obj): INCLUDE += $($(1)_include)
|
$($(1)_obj): INCLUDE += $($(1)_include)
|
||||||
$($(1)_obj): DEFINE += $($(1)_define)
|
$($(1)_obj): DEFINE += $($(1)_define)
|
||||||
@@ -81,7 +80,6 @@ define set-target
|
|||||||
|
|
||||||
-include $($(1)_obj:.o=.d)
|
-include $($(1)_obj:.o=.d)
|
||||||
|
|
||||||
$($(1)_bin): $($(1)_lib)
|
|
||||||
$($(1)_bin): $($(1)_obj)
|
$($(1)_bin): $($(1)_obj)
|
||||||
$($(1)_bin): $($(1)_dependencies)
|
$($(1)_bin): $($(1)_dependencies)
|
||||||
|
|
||||||
@@ -138,16 +136,17 @@ $(BUILD_DIR)/%.o: %.cc $(MAKEFILE_DEPS)
|
|||||||
$(addprefix -I,$(INCLUDE)) \
|
$(addprefix -I,$(INCLUDE)) \
|
||||||
$(addprefix -D,$(DEFINE)) -MMD -MF $(@:.o=.d) -o $@
|
$(addprefix -D,$(DEFINE)) -MMD -MF $(@:.o=.d) -o $@
|
||||||
|
|
||||||
|
$(LIB): CFLAGS += -fPIC
|
||||||
$(LIB): $(MAKEFILE_DEPS)
|
$(LIB): $(MAKEFILE_DEPS)
|
||||||
@echo " AR $(notdir $@)"
|
@echo " LD $(notdir $@)"
|
||||||
$(V)mkdir -p $(dir $@)
|
$(V)mkdir -p $(dir $@)
|
||||||
$(V)$(AR) rcs $@ $(filter %.o,$^)
|
$(V)$(LD) $(filter %.o,$^) -shared -o $@
|
||||||
|
|
||||||
$(BIN): $(MAKEFILE_DEPS)
|
$(BIN): $(MAKEFILE_DEPS)
|
||||||
@echo " LD $(notdir $@)"
|
@echo " LD $(notdir $@)"
|
||||||
$(V)mkdir -p $(dir $@)
|
$(V)mkdir -p $(dir $@)
|
||||||
$(V)$(LD) $(filter %.o,$^) $(filter %.a,$^) $(LDFLAGS) \
|
$(V)$(LD) $(filter %.o,$^) \
|
||||||
$(addprefix -l,$(LDLIBS)) -o $@
|
$(LDFLAGS) -L $(BIN_DIR) $(addprefix -l,$(LDLIBS)) -o $@
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
$(V)rm -rf $(BUILD_DIR)
|
$(V)rm -rf $(BUILD_DIR)
|
||||||
|
|||||||
14
README.md
14
README.md
@@ -30,7 +30,7 @@ The default toolchain used is GCC. Invoke `make` to build the library.
|
|||||||
$ make -j
|
$ make -j
|
||||||
```
|
```
|
||||||
|
|
||||||
Compiled library `liblc3.a` will be found in `bin` directory.
|
Compiled library `liblc3.so` will be found in `bin` directory.
|
||||||
|
|
||||||
LC3 Plus features can be selectively disabled :
|
LC3 Plus features can be selectively disabled :
|
||||||
- `LC3_PLUS=0` disable the support of 2.5ms and 5ms frame durations.
|
- `LC3_PLUS=0` disable the support of 2.5ms and 5ms frame durations.
|
||||||
@@ -81,13 +81,17 @@ file are omitted.
|
|||||||
In such way you can easly test encoding / decoding loop with :
|
In such way you can easly test encoding / decoding loop with :
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
$ ./elc3 <in.wav> -b <bitrate> | ./dlc3 > <out.wav>
|
$ alias elc3="LD_LIBRARY_PATH=`pwd`/bin `pwd`/bin/elc3"
|
||||||
|
$ alias dlc3="LD_LIBRARY_PATH=`pwd`/bin `pwd`/bin/dlc3"
|
||||||
|
$ elc3 <in.wav> -b <bitrate> | dlc3 > <out.wav>
|
||||||
```
|
```
|
||||||
|
|
||||||
Adding Linux `aplay` tools, you will be able to instant hear the result :
|
Adding Linux `aplay` tools, you will be able to instant hear the result :
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
$ ./elc3 <in.wav> -b <bitrate> | ./dlc3 | aplay
|
$ alias elc3="LD_LIBRARY_PATH=`pwd`/bin `pwd`/bin/elc3"
|
||||||
|
$ alias dlc3="LD_LIBRARY_PATH=`pwd`/bin `pwd`/bin/dlc3"
|
||||||
|
$ elc3 <in.wav> -b <bitrate> | dlc3 | aplay -D pipewire
|
||||||
```
|
```
|
||||||
|
|
||||||
## Test
|
## Test
|
||||||
@@ -141,8 +145,6 @@ environment.
|
|||||||
|
|
||||||
```sh
|
```sh
|
||||||
$ meson build
|
$ meson build
|
||||||
$ cd build
|
$ cd build && meson install
|
||||||
$ ninja
|
|
||||||
$ sudo ninja install
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
@@ -17,8 +17,8 @@
|
|||||||
efuzz_src += \
|
efuzz_src += \
|
||||||
$(FUZZ_DIR)/efuzz.cc
|
$(FUZZ_DIR)/efuzz.cc
|
||||||
|
|
||||||
efuzz_lib += liblc3
|
efuzz_ldlibs += lc3 m
|
||||||
efuzz_ldlibs += m
|
efuzz_dependencies += liblc3
|
||||||
|
|
||||||
$(eval $(call add-bin,efuzz))
|
$(eval $(call add-bin,efuzz))
|
||||||
|
|
||||||
@@ -26,8 +26,8 @@ $(eval $(call add-bin,efuzz))
|
|||||||
dfuzz_src += \
|
dfuzz_src += \
|
||||||
$(FUZZ_DIR)/dfuzz.cc
|
$(FUZZ_DIR)/dfuzz.cc
|
||||||
|
|
||||||
dfuzz_lib += liblc3
|
dfuzz_ldlibs += lc3 m
|
||||||
dfuzz_ldlibs += m
|
dfuzz_dependencies += liblc3
|
||||||
|
|
||||||
$(eval $(call add-bin,dfuzz))
|
$(eval $(call add-bin,dfuzz))
|
||||||
|
|
||||||
@@ -44,9 +44,9 @@ efuzz dfuzz: CXXFLAGS += $(FUZZER_SANITIZE)
|
|||||||
efuzz dfuzz: LDFLAGS += $(FUZZER_SANITIZE)
|
efuzz dfuzz: LDFLAGS += $(FUZZER_SANITIZE)
|
||||||
|
|
||||||
dfuzz:
|
dfuzz:
|
||||||
$(V)$(dfuzz_bin) -runs=1000000
|
$(V)LD_LIBRARY_PATH=$(BIN_DIR) $(dfuzz_bin) -runs=1000000
|
||||||
|
|
||||||
efuzz:
|
efuzz:
|
||||||
$(V)$(efuzz_bin) -runs=1000000
|
$(V)LD_LIBRARY_PATH=$(BIN_DIR) $(efuzz_bin) -runs=1000000
|
||||||
|
|
||||||
fuzz: efuzz dfuzz
|
fuzz: efuzz dfuzz
|
||||||
|
|||||||
@@ -19,9 +19,8 @@ elc3_src += \
|
|||||||
$(TOOLS_DIR)/lc3bin.c \
|
$(TOOLS_DIR)/lc3bin.c \
|
||||||
$(TOOLS_DIR)/wave.c
|
$(TOOLS_DIR)/wave.c
|
||||||
|
|
||||||
elc3_lib += liblc3
|
elc3_ldlibs += lc3 m
|
||||||
elc3_ldlibs += m
|
elc3_dependencies += liblc3
|
||||||
elc3_ldflags += -flto
|
|
||||||
|
|
||||||
$(eval $(call add-bin,elc3))
|
$(eval $(call add-bin,elc3))
|
||||||
|
|
||||||
@@ -31,9 +30,8 @@ dlc3_src += \
|
|||||||
$(TOOLS_DIR)/lc3bin.c \
|
$(TOOLS_DIR)/lc3bin.c \
|
||||||
$(TOOLS_DIR)/wave.c
|
$(TOOLS_DIR)/wave.c
|
||||||
|
|
||||||
dlc3_lib += liblc3
|
dlc3_ldlibs += lc3 m
|
||||||
dlc3_ldlibs += m
|
dlc3_dependencies += liblc3
|
||||||
elc3_ldflags += -flto
|
|
||||||
|
|
||||||
$(eval $(call add-bin,dlc3))
|
$(eval $(call add-bin,dlc3))
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user