1*02e95f1aSMarcin RadomskiDESTDIR ?= 2*02e95f1aSMarcin RadomskiPREFIX ?= /usr/local 3*02e95f1aSMarcin RadomskiLIBDIR ?= $(PREFIX)/lib 4*02e95f1aSMarcin RadomskiBINDIR ?= $(PREFIX)/bin 5*02e95f1aSMarcin Radomskiifdef DEB_HOST_MULTIARCH 6*02e95f1aSMarcin RadomskiLIBDIR := $(LIBDIR)/$(DEB_HOST_MULTIARCH) 7*02e95f1aSMarcin Radomskiendif 8*02e95f1aSMarcin Radomski 9*02e95f1aSMarcin RadomskiCC = $(CROSS_COMPILE)gcc 10*02e95f1aSMarcin RadomskiAR = $(CROSS_COMPILE)ar 11*02e95f1aSMarcin RadomskiLD = $(CROSS_COMPILE)gcc 12*02e95f1aSMarcin Radomski 13*02e95f1aSMarcin RadomskiWARNINGS = -Wall -Wextra -Werror -Wfatal-errors 14*02e95f1aSMarcin RadomskiINCLUDE_DIRS = -I ../include 15*02e95f1aSMarcin Radomskioverride CFLAGS := $(WARNINGS) $(INCLUDE_DIRS) -fPIC $(CFLAGS) 16*02e95f1aSMarcin Radomski 17*02e95f1aSMarcin RadomskiVPATH = ../include/tinyalsa 18*02e95f1aSMarcin RadomskiOBJECTS = limits.o mixer.o pcm.o pcm_plugin.o pcm_hw.o snd_card_plugin.o mixer_plugin.o mixer_hw.o 19*02e95f1aSMarcin Radomski 20*02e95f1aSMarcin RadomskiLIBVERSION_MAJOR = $(TINYALSA_VERSION_MAJOR) 21*02e95f1aSMarcin RadomskiLIBVERSION = $(TINYALSA_VERSION) 22*02e95f1aSMarcin Radomski 23*02e95f1aSMarcin Radomski.PHONY: all 24*02e95f1aSMarcin Radomskiall: libtinyalsa.a libtinyalsa.so 25*02e95f1aSMarcin Radomski 26*02e95f1aSMarcin Radomskipcm.o: pcm.c limits.h pcm.h pcm_io.h plugin.h snd_card_plugin.h 27*02e95f1aSMarcin Radomski 28*02e95f1aSMarcin Radomskipcm_plugin.o: pcm_plugin.c asoundlib.h pcm_io.h plugin.h snd_card_plugin.h 29*02e95f1aSMarcin Radomski 30*02e95f1aSMarcin Radomskipcm_hw.o: pcm_hw.c asoundlib.h pcm_io.h 31*02e95f1aSMarcin Radomski 32*02e95f1aSMarcin Radomskilimits.o: limits.c limits.h 33*02e95f1aSMarcin Radomski 34*02e95f1aSMarcin Radomskimixer.o: mixer.c mixer.h mixer_io.h plugin.h 35*02e95f1aSMarcin Radomski 36*02e95f1aSMarcin Radomskisnd_card_plugin.o: snd_card_plugin.c plugin.h snd_card_plugin.h 37*02e95f1aSMarcin Radomski 38*02e95f1aSMarcin Radomskimixer_plugin.o: mixer_plugin.c mixer_io.h plugin.h snd_card_plugin.h 39*02e95f1aSMarcin Radomski 40*02e95f1aSMarcin Radomskimixer_hw.o: mixer_hw.c mixer_io.h 41*02e95f1aSMarcin Radomski 42*02e95f1aSMarcin Radomskilibtinyalsa.a: $(OBJECTS) 43*02e95f1aSMarcin Radomski $(AR) $(ARFLAGS) $@ $^ 44*02e95f1aSMarcin Radomski 45*02e95f1aSMarcin Radomskilibtinyalsa.so: libtinyalsa.so.$(LIBVERSION_MAJOR) 46*02e95f1aSMarcin Radomski ln -sf $< $@ 47*02e95f1aSMarcin Radomski 48*02e95f1aSMarcin Radomskilibtinyalsa.so.$(LIBVERSION_MAJOR): libtinyalsa.so.$(LIBVERSION) 49*02e95f1aSMarcin Radomski ln -sf $< $@ 50*02e95f1aSMarcin Radomski 51*02e95f1aSMarcin Radomskilibtinyalsa.so.$(LIBVERSION): $(OBJECTS) 52*02e95f1aSMarcin Radomski $(LD) $(LDFLAGS) -shared -Wl,-soname,libtinyalsa.so.$(LIBVERSION_MAJOR) $^ -o $@ 53*02e95f1aSMarcin Radomski 54*02e95f1aSMarcin Radomski.PHONY: clean 55*02e95f1aSMarcin Radomskiclean: 56*02e95f1aSMarcin Radomski rm -f libtinyalsa.a 57*02e95f1aSMarcin Radomski rm -f libtinyalsa.so 58*02e95f1aSMarcin Radomski rm -f libtinyalsa.so.$(LIBVERSION_MAJOR) 59*02e95f1aSMarcin Radomski rm -f libtinyalsa.so.$(LIBVERSION) 60*02e95f1aSMarcin Radomski rm -f $(OBJECTS) 61*02e95f1aSMarcin Radomski 62*02e95f1aSMarcin Radomski.PHONY: install 63*02e95f1aSMarcin Radomskiinstall: libtinyalsa.a libtinyalsa.so.$(LIBVERSION_MAJOR) 64*02e95f1aSMarcin Radomski install -d $(DESTDIR)$(LIBDIR)/ 65*02e95f1aSMarcin Radomski install libtinyalsa.a $(DESTDIR)$(LIBDIR)/ 66*02e95f1aSMarcin Radomski install libtinyalsa.so.$(LIBVERSION) $(DESTDIR)$(LIBDIR)/ 67*02e95f1aSMarcin Radomski ln -sf libtinyalsa.so.$(LIBVERSION) $(DESTDIR)$(LIBDIR)/libtinyalsa.so.$(LIBVERSION_MAJOR) 68*02e95f1aSMarcin Radomski ln -sf libtinyalsa.so.$(LIBVERSION_MAJOR) $(DESTDIR)$(LIBDIR)/libtinyalsa.so 69*02e95f1aSMarcin Radomski 70