Implement autotools build scripts
This commit is contained in:
parent
3785f97e1e
commit
bd4beee119
54
Makefile
54
Makefile
|
@ -1,54 +0,0 @@
|
||||||
CC := $(CROSS_COMPILE)gcc
|
|
||||||
LD := $(CROSS_COMPILE)gcc
|
|
||||||
STRIP := $(CROSS_COMPILE)strip
|
|
||||||
|
|
||||||
# -Wno-multichar is used for vban.h:25 define.
|
|
||||||
CFLAGS := -DLINUX -ansi -Wpedantic -Wall -Wno-multichar
|
|
||||||
LDFLAGS := -lasound
|
|
||||||
|
|
||||||
# Defaultly compiles release version of the application
|
|
||||||
CONFIG := release
|
|
||||||
|
|
||||||
ifneq ($(filter release%,$(CONFIG)),)
|
|
||||||
LDFLAGS += -O3
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifneq ($(filter debug%,$(CONFIG)),)
|
|
||||||
CFLAGS += -g
|
|
||||||
endif
|
|
||||||
|
|
||||||
SOURCES := main.c \
|
|
||||||
socket.c \
|
|
||||||
audio.c \
|
|
||||||
|
|
||||||
OBJECTS := $(SOURCES:.c=.o)
|
|
||||||
DEPENDENCIES:= $(SOURCES:.c=.d)
|
|
||||||
EXECUTABLE := vban_receptor
|
|
||||||
|
|
||||||
all: $(EXECUTABLE)
|
|
||||||
|
|
||||||
$(EXECUTABLE): $(OBJECTS)
|
|
||||||
@echo "Linking $@"
|
|
||||||
@$(LD) $(LDFLAGS) -o "$@" $^
|
|
||||||
ifneq ($(filter release%,$(CONFIG)),)
|
|
||||||
@echo "Stripping $@"
|
|
||||||
@$(STRIP) "$@"
|
|
||||||
endif
|
|
||||||
|
|
||||||
%.o:%.c
|
|
||||||
@echo "Compiling $<"
|
|
||||||
@$(CC) -c $(CFLAGS) -MMD -MF "$(patsubst %.o,%.d,$@)" -o "$@" "$<"
|
|
||||||
|
|
||||||
-include $(DEPENDENCIES)
|
|
||||||
|
|
||||||
install:
|
|
||||||
@mkdir -p $(DESTDIR)/usr/sbin
|
|
||||||
@cp $(EXECUTABLE) $(DESTDIR)/usr/sbin
|
|
||||||
|
|
||||||
clean:
|
|
||||||
@echo "Cleaning artifacts and objects"
|
|
||||||
@rm -f $(OBJECTS) $(DEPENDENCIES) $(EXECUTABLE)
|
|
||||||
@rm -f *~*
|
|
||||||
|
|
||||||
distclean: clean
|
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
# We want to avoid GNU potential warnings
|
||||||
|
AUTOMAKE_OPTIONS = foreign
|
||||||
|
# We want to compile source in src, so let's go there
|
||||||
|
SUBDIRS = src
|
||||||
|
|
11
README.md
11
README.md
|
@ -10,10 +10,15 @@ VBAN is a simple audio over UDP protocol proposed by VB-Audio, see [VBAN Audio w
|
||||||
Compilation and installation
|
Compilation and installation
|
||||||
----------------------------
|
----------------------------
|
||||||
|
|
||||||
vban_receptor doesn't have a configure script. Nevertheless the makefile is very simple and has some basic variables (CC, LD, STRIP, CROSS_COMPILE, DESTDIR) to define whatever compilation toolchain you wish to use and where you want to install. This will probably evolve in future releases.
|
vban_receptor uses ALSA, therefore you need to have ALSA library and headers available on your platform.
|
||||||
So simply use:
|
In standard Linux distributions, ALSA library package is usually named libasound(X) and header files come in package named libasound(X)-dev.
|
||||||
|
|
||||||
$ make
|
vban_receptor is distributed with autotools build scripts, therefore, to build, you need to invoke:
|
||||||
|
$ ./autogen.sh # probably only once for ever
|
||||||
|
$ ./configure # with or without options
|
||||||
|
$ make # with or without options
|
||||||
|
|
||||||
|
To install, simply invoke:
|
||||||
# make install
|
# make install
|
||||||
|
|
||||||
Usage
|
Usage
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
#! /bin/sh
|
||||||
|
|
||||||
|
aclocal \
|
||||||
|
&& automake --add-missing \
|
||||||
|
&& autoconf
|
||||||
|
|
|
@ -0,0 +1,28 @@
|
||||||
|
# -*- Autoconf -*-
|
||||||
|
# Process this file with autoconf to produce a configure script.
|
||||||
|
|
||||||
|
AC_PREREQ([2.69])
|
||||||
|
AC_INIT([vban_receptor], [v0.5], [quiniouben@yahoo.fr])
|
||||||
|
AM_INIT_AUTOMAKE
|
||||||
|
|
||||||
|
# Checks for programs.
|
||||||
|
AC_PROG_CC
|
||||||
|
AC_LANG(C)
|
||||||
|
|
||||||
|
# Checks for libraries.
|
||||||
|
AC_CHECK_HEADERS([alsa/asoundlib.h], [], [AC_MSG_ERROR(Missing ALSA headers)])
|
||||||
|
AC_CHECK_LIB([asound], [snd_pcm_open], [], [AC_MSG_ERROR(Missing ALSA library)])
|
||||||
|
|
||||||
|
# Checks for header files.
|
||||||
|
AC_CHECK_HEADERS([arpa/inet.h inttypes.h netinet/in.h stddef.h stdlib.h string.h sys/socket.h unistd.h], [], [AC_MSG_ERROR(Missing some system headers)])
|
||||||
|
|
||||||
|
# Checks for typedefs, structures, and compiler characteristics.
|
||||||
|
AC_TYPE_SIZE_T
|
||||||
|
AC_TYPE_UINT32_T
|
||||||
|
AC_TYPE_UINT8_T
|
||||||
|
|
||||||
|
# Checks for library functions.
|
||||||
|
AC_FUNC_MALLOC
|
||||||
|
AC_CHECK_FUNCS([inet_ntoa memset socket strerror], [], [AC_MSG_ERROR(Missing some system functions)])
|
||||||
|
|
||||||
|
AC_OUTPUT(Makefile src/Makefile)
|
|
@ -0,0 +1,6 @@
|
||||||
|
# Let's define some things here
|
||||||
|
AM_CFLAGS = -ansi -Wpedantic -Wall -Wno-multichar -O2
|
||||||
|
AM_LDFLAGS = -lasound
|
||||||
|
|
||||||
|
bin_PROGRAMS = vban_receptor
|
||||||
|
vban_receptor_SOURCES = main.c audio.h audio.c socket.h socket.c vban.h
|
Loading…
Reference in New Issue