blob: a995dba20874b1bcbca8c229cef84a94d485b172 [file] [log] [blame]
INC = include
CFLAGS = -g -O0 -I$(INC) -Wall
LIB = libtinyalsa.a
LINKOPTS := -static
# Versions are 1.0, 1.0.1, 1.0.2, 1.1, 1.1.1, etc.
VERSION_STR := 1.1-rc1
# Version string bytes: 0xMMmmPP (MM=major, mm=minor, PP=patch)
VERSION := 0x0100F0
HOSTCC := gcc
HOSTCXX := g++
HOSTAR := ar
HOSTLINKOPTS :=
HOSTCFLAGS := $(HOSTLINKOPTS) $(CFLAGS)
HOSTLDFLAGS :=
HOSTLDLIBS :=
HOSTGENGETOPT := gengetopt
# If you set ARCH to anything, then CROSS_COMPILE will be used.
ifneq ($(ARCH),)
TARGET_CROSS_COMPILE := $(CROSS_COMPILE)
else
TARGET_CROSS_COMPILE :=
endif
TARGETCC := $(TARGET_CROSS_COMPILE)gcc
TARGETCXX := $(TARGET_CROSS_COMPILE)g++
TARGETAR := $(TARGET_CROSS_COMPILE)ar
TARGETLINKOPTS := -static
TARGETCFLAGS := $(TARGETLINKOPTS) $(CFLAGS) \
-DVERSION_STR="\"$(VERSION_STR)\"" \
-DCMDLINE_PARSER_VERSION="\"$(VERSION_STR)\"" \
-DVERSION=$(VERSION) \
TARGETLDFLAGS :=
TARGETLDLIBS := $(LIB) -lm -lrt
TARGETS := $(LIB) \
audio-tool \
LIB_OBJECTS = \
tinyplay.o \
tinycap.o \
tinymix.o \
mixer.o \
pcm.o \
pulse-generator.o \
tone-generator.o \
oscillator-table.o \
save.o \
restore.o \
mixer_cache.o \
module.o \
defaults.o \
alsa-control.o \
config_cmd.o \
MODULES = \
card-omap-abe.o \
all: $(TARGETS)
audio-tool: main.o config.o cmdline.o $(LIB) $(MODULES)
$(TARGETCC) $(TARGETCFLAGS) $(TARGETLDFLAGS) -o $@ $^ $(TARGETLDLIBS)
config.o: config.c cmdline.h
$(TARGETCC) $(TARGETCFLAGS) -c -o $@ $<
cmdline.h: cmdline.c
cmdline.c: cmdline.ggo
$(HOSTGENGETOPT) --input=$< --file-name=cmdline --unamed-opts
tinymix: tinymix.o $(LIB)
$(TARGETCC) $(TARGETCFLAGS) $(TARGETLDFLAGS) -o $@ $^ $(TARGETLDLIBS)
pulse-generator: pulse-generator.o $(LIB)
$(TARGETCC) $(TARGETCFLAGS) $(TARGETLDFLAGS) -o $@ $^ $(TARGETLDLIBS)
$(LIB): $(LIB_OBJECTS)
$(TARGETAR) rc $@ $^
.c.o:
$(TARGETCC) $(TARGETCFLAGS) -c $<
clean: clean_tone_generator
-rm -f *.o $(TARGETS)
-rm -f cmdline.c cmdline.h
card-omap45.o: card-omap45.c card-omap-common-4-5.h
$(TARGETCC) $(TARGETCFLAGS) -o $@ -c $<
card-sdp4430.o: card-sdp4430.c card-omap-common-4-5.h
$(TARGETCC) $(TARGETCFLAGS) -o $@ -c $<
##############################################
##
## TONE GENERATOR
##
##############################################
TONEGEN_CFLAGS := $(TARGETCFLAGS)
TONEGEN_LDFLAGS := $(LDFLAGS)
TONEGEN_LDLIBS := $(LDLIBS) $(LIB) -lm
TONEGEN_WAVE_LENGTH = 2048
TONEGEN_WAVE_FORMAT = S16
TONEGEN_EXE_TARGETS = generate-wave-table \
tone-generator
TONEGEN_TABLE_TARGETS = table_square.c \
table_sine.c \
table_triangle.c \
table_sawtooth.c
clean_tone_generator:
-rm -f $(TONEGEN_EXE_TARGETS) *.o
-rm -f $(TONEGEN_TABLE_TARGETS)
# This program is intended as a build tool, so it's compiled for the host.
generate-wave-table: generate-wave-table.o
$(HOSTCC) $(HOSTCFLAGS) $(HOSTLDFLAGS) -o $@ $^ $(HOSTLDLIBS) -lm
# This program is intended as a build tool, so it's compiled for the host.
generate-wave-table.o: generate-wave-table.c
$(HOSTCC) -c $(HOSTCFLAGS) $(HOSTCFLAGS) -o $@ $^
table_%.c: generate-wave-table
./generate-wave-table $* $(TONEGEN_WAVE_LENGTH) $(TONEGEN_WAVE_FORMAT) > $@
tone-generator.o: tone-generator.c $(TONEGEN_TABLE_TARGETS)
$(TARGETCC) -c $(TONEGEN_CPPFLAGS) $(TONEGEN_CFLAGS) -o $@ $<