blob: c953e4370165628f112b12f0b64aa35e8f49ec4b [file] [log] [blame]
#
# Makefile for ALSA driver
# Copyright (c) 1994-98 by Jaroslav Kysela <perex@perex.cz>
#
ifneq ($(KERNELRELEASE),)
# call from 2.6 kernel build system
obj-m += acore/ i2c/ drivers/ isa/ pci/ ppc/ arm/ synth/ usb/ sparc/ parisc/ sh/ pcmcia/ aoa/ soc/ misc/ firewire/
else
ifndef IGROUP
IGROUP = root
endif
ifndef IUSER
IUSER = root
endif
ALSAKERNELFILE = alsa-kernel/sound_core.c
ifeq (Makefile.conf,$(wildcard Makefile.conf))
include Makefile.conf
include toplevel.config
else
.PHONY: dummy1
dummy1:
$(MAKE) all-deps
@echo
@echo "Please, run the configure script as first..."
@echo
MAINSRCDIR := $(shell /bin/pwd)
endif
SND_TOPDIR = $(MAINSRCDIR)
export SND_TOPDIR
ifeq (,$(wildcard acinclude.m4))
.PHONY: dummy2
dummy2:
$(MAKE) all-deps
@echo
@echo "Please, run the configure script as first..."
@echo
endif
ifdef NEW_KBUILD
ifdef V
ifeq ("$(origin V)", "command line")
KBUILD_VERBOSE = $(V)
endif
endif
ifndef KBUILD_VERBOSE
KBUILD_VERBOSE = 0
endif
ifdef C
ifeq ("$(origin C)", "command line")
KBUILD_CHECKSRC = $(C)
endif
endif
ifndef KBUILD_CHECKSRC
KBUILD_CHECKSRC = 0
endif
export KBUILD_VERBOSE KBUILD_CHECKSRC
endif
SUBDIRS = include acore i2c drivers isa synth pci aoa soc
CSUBDIRS =
ifndef NEW_KBUILD
SUBDIRS += support
endif
ifeq (y,$(CONFIG_ARM))
SUBDIRS += arm
endif
ifeq (y,$(CONFIG_PPC))
SUBDIRS += ppc
endif
ifeq (y,$(CONFIG_SPARC32))
SUBDIRS += sparc
else
ifeq (y,$(CONFIG_SPARC64))
SUBDIRS += sparc
endif
endif
ifeq (y,$(CONFIG_MIPS))
SUBDIRS += mips
endif
ifeq (y,$(CONFIG_SGI))
SUBDIRS += hal2
endif
ifeq (y,$(CONFIG_USB))
SUBDIRS += usb
endif
ifeq (y,$(CONFIG_PCMCIA))
SUBDIRS += pcmcia
endif
ifeq (y,$(CONFIG_PARISC))
SUBDIRS += parisc
endif
ifeq (y,$(CONFIG_SUPERH))
SUBDIRS += sh
endif
ifeq (m,$(CONFIG_AC97_BUS))
SUBDIRS += misc
endif
ifeq (y,$(CONFIG_FIREWIRE))
SUBDIRS += firewire
endif
ifeq (m,$(CONFIG_FIREWIRE))
SUBDIRS += firewire
endif
CSUBDIRS += test utils
KCONFIG_FILES = $(shell find $(SND_TOPDIR) -name Kconfig) $(shell find $(SND_TOPDIR)/alsa-kernel/ -name Kconfig)
.PHONY: all
all: compile
$(ALSAKERNELFILE):
{ \
rm -rf alsa-kernel ; \
if [ ! -z "$(ALSAKERNELDIR)" ]; then \
if [ -f $(ALSAKERNELDIR)/kernel/sched.c ]; then \
# whole linux kernel source tree \
mkdir alsa-kernel; \
for i in $(ALSAKERNELDIR)/sound/* ; do \
ln -sf $$i alsa-kernel ; \
done ; \
ln -sf $(ALSAKERNELDIR)/include/sound \
alsa-kernel/include ; \
ln -sf $(ALSAKERNELDIR)/Documentation/sound/alsa \
alsa-kernel/Documentation ; \
else \
# alsa-kmirror tree \
ln -sf $(ALSAKERNELDIR) alsa-kernel ; \
fi; \
ln -sf alsa-kernel sound ; \
fi \
}
# to use newalsakernel target:
# ALSAKERNELDIR=yourlinuxtree_or_kmirrortree make newalsakernel
.PHONY: newalsakernel
newalsakernel: $(ALSAKERNELFILE) clean
rm -rf alsa-kernel
$(MAKE) $(ALSAKERNELFILE)
utils/mod-deps: utils/mod-deps.c
gcc utils/mod-deps.c -o utils/mod-deps
toplevel.config.in: $(KCONFIG_FILES) $(ALSAKERNELFILE) utils/mod-deps kconfig-vers
utils/mod-deps --basedir $(SND_TOPDIR)/alsa-kernel --hiddendir $(SND_TOPDIR) --versiondep $(SND_TOPDIR)/kconfig-vers --makeconf > toplevel.config.in
acinclude.m4: $(KCONFIG_FILES) $(ALSAKERNELFILE) utils/mod-deps kconfig-vers
utils/mod-deps --basedir $(SND_TOPDIR)/alsa-kernel --hiddendir $(SND_TOPDIR) --versiondep $(SND_TOPDIR)/kconfig-vers --acinclude > acinclude.m4
include/config1.h.in: $(KCONFIG_FILES) $(ALSAKERNELFILE) utils/mod-deps kconfig-vers
utils/mod-deps --basedir $(SND_TOPDIR)/alsa-kernel --hiddendir $(SND_TOPDIR) --versiondep $(SND_TOPDIR)/kconfig-vers --include > include/config1.h.in
all-deps: toplevel.config.in acinclude.m4 include/config1.h.in
include/sndversions.h:
$(MAKE) dep
.PHONY: compile
compile: include/sndversions.h
ifdef NEW_KBUILD
$(MAKE) -C $(CONFIG_SND_KERNELBUILD) SUBDIRS=$(MAINSRCDIR) $(MAKE_ADDS) CPP="$(CPP)" CC="$(CC)" modules
utils/link-modules $(SND_TOPDIR)
else
@for d in $(SUBDIRS); do if ! $(MAKE) -C $$d; then exit 1; fi; done
endif
@echo
@echo "ALSA modules were successfully compiled."
@echo
.PHONY: dep
dep:
ifdef NEW_KBUILD
@for d in $(SUBDIRS); do if ! $(MAKE) -C $$d prepare; then exit 1; fi; done
else
@for d in $(SUBDIRS); do if ! $(MAKE) -C $$d fastdep; then exit 1; fi; done
endif
.PHONY: map
map:
awk "{ if ( length( $$1 ) != 0 ) print $$1 }" snd.map | sort -o snd.map1
mv -f snd.map1 snd.map
.PHONY: install
install: install-headers install-modules install-scripts check-snd-prefix
@if [ -L /dev/snd ]; then \
echo "The ALSA devices were removed from /proc/asound/dev directory." ; \
echo "Creating static device entries in /dev/snd." ; \
$(SND_TOPDIR)/snddevices ; \
fi
cat WARNING
.PHONY: install-headers
install-headers:
if [ -L $(DESTDIR)$(prefix)/include/sound ]; then \
rm -f $(DESTDIR)$(prefix)/include/sound; \
ln -sf $(MAINSRCDIR)/include/sound $(DESTDIR)$(prefix)/include/sound; \
else \
rm -rf $(DESTDIR)$(prefix)/include/sound; \
install -d -m 755 -g $(IGROUP) -o $(IUSER) $(DESTDIR)$(prefix)/include/sound; \
for f in include/sound/*.h; do \
install -m 644 -g $(IGROUP) -o $(IUSER) $$f $(DESTDIR)$(prefix)/include/sound; \
done \
fi
ifeq ($(CONFIG_SND_KERNELDIR)/System.map,$(wildcard $(CONFIG_SND_KERNELDIR)/System.map))
SYSTEM_MAP_OPT = -F $(CONFIG_SND_KERNELDIR)/System.map
endif
.PHONY: install-modules
install-modules:
ifeq ($(moddir_tree),y)
find $(DESTDIR)$(moddir) -name 'snd*.*o' | xargs rm -f
find $(DESTDIR)$(moddir) -name 'snd*.*o.gz' | xargs rm -f
find $(DESTDIR)$(moddir) -name 'ac97_bus.*o' | xargs rm -f
find $(DESTDIR)$(moddir) -name 'ac97_bus.*o.gz' | xargs rm -f
else
rm -f $(DESTDIR)$(moddir)/snd*.*o $(DESTDIR)$(moddir)/persist.o $(DESTDIR)$(moddir)/isapnp.o
rm -f $(DESTDIR)$(moddir)/snd*.*o.gz $(DESTDIR)$(moddir)/persist.o.gz $(DESTDIR)$(moddir)/isapnp.o.gz
endif
@for d in $(SUBDIRS); do if ! $(MAKE) -C $$d modules_install; then exit 1; fi; done
ifeq ($(DESTDIR),)
-/sbin/depmod -a $(kaversion) $(SYSTEM_MAP_OPT)
else
@echo "*** This is a \`staged' install using the prefix"
@echo "*** \"$(DESTDIR)\"."
@echo "***"
@echo "*** Once the modules have been moved to their final destination you must run the command"
@echo "*** \"/sbin/depmod -a $(kaversion) $(SYSTEM_MAP_OPT)\"."
@echo "***"
@echo "*** Alternatively, if you build a package (e.g. rpm), include the"
@echo "*** depmode command above in the post-(un)install procedure."
endif
.PHONY: install-scripts
install-scripts:
@for d in /sbin/init.d /etc/rc.d/init.d /etc/init.d; do \
if [ -d $(DESTDIR)$$d ]; then \
if [ -f $(DESTDIR)$$d/alsasound ]; then \
cmp -s utils/alsasound $(DESTDIR)$$d/alsasound || \
install -m 755 -g $(IGROUP) -o $(IUSER) utils/alsasound $(DESTDIR)$$d/alsasound.new; \
break; \
fi; \
install -m 755 -g $(IGROUP) -o $(IUSER) utils/alsasound $(DESTDIR)$$d/alsasound; \
break; \
fi; done
.PHONY: check-snd-prefix
check-snd-prefix:
@ if [ x"$(DESTDIR)" = x -a -f /etc/modules.conf ]; then \
if grep -s -q snd_ /etc/modules.conf; then \
echo;\
echo " ===== WARNING =====";\
echo;\
echo "The options for ALSA modules on your system still include snd_ prefix,";\
echo "which is obsoleted now. Please fix /etc/modules.conf.";\
echo "For convenience, you can use utils/module-options script to convert";\
echo "the snd_ prefix automatically.";\
echo;\
fi; fi
.PHONY: clean1
clean1:
rm -f .depend *.o snd.map*
ifdef DEXPORT
rm -f $(DEXPORT)/*.ver
endif
rm -f modules/*.o modules/*.ko
.PHONY: clean
clean: clean1
ifdef NEW_KBUILD
rm -rf .tmp_versions
endif
@for d in $(SUBDIRS); do if ! $(MAKE) -C $$d clean; then exit 1; fi; done
@for d in $(CSUBDIRS); do if ! $(MAKE) -C $$d clean; then exit 1; fi; done
.PHONY: mrproper
mrproper: clean1
@for d in $(SUBDIRS); do if ! $(MAKE) -C $$d mrproper; then exit 1; fi; done
@for d in $(CSUBDIRS); do if ! $(MAKE) -C $$d mrproper; then exit 1; fi; done
rm -f *~ out.txt *.orig *.rej .#* .gdb_history
rm -f doc/*~
-rm -f config.cache config.log config.status Makefile.conf
rm -f utils/alsa-driver.spec
rm -f `find alsa-kernel -name "*~"`
rm -f `find alsa-kernel -name "*.orig"`
rm -f `find alsa-kernel -name "*.rej"`
rm -f `find alsa-kernel -name ".#*"`
rm -f `find alsa-kernel -name "out.txt"`
rm -rf autom4te.cache
.PHONY: cvsclean hgclean gitclean
gitclean: mrproper
rm -f configure snddevices aclocal.m4 acinclude.m4 include/config.h include/config1.h \
include/config1.h.in toplevel.config toplevel.config.in \
sound
rm -rf include/linux alsa-kernel
hgclean: gitclean
cvsclean: gitclean
.PHONY: pack
pack: $(ALSAKERNELFILE) mrproper
chmod 755 utils/alsasound
# big note: use always '--bzip2 -p' where -p is fake argument
# it seems that some older tar has wrong getopt list
{ \
cd .. ; \
rm -rf alsa-driver/alsa-kernel ; \
mv alsa-kmirror alsa-driver/alsa-kernel ; \
mv alsa-driver alsa-driver-$(CONFIG_SND_VERSION) ; \
tar --exclude=CVS --exclude=kchanges --exclude=.cvsignore \
--exclude='.hg*' --exclude=.gitignore \
--owner=$(IGROUP) --group=$(IUSER) -cv --bzip2 -p \
-f alsa-driver-$(CONFIG_SND_VERSION).tar.bz2 alsa-driver-$(CONFIG_SND_VERSION) ; \
mv alsa-driver-$(CONFIG_SND_VERSION) alsa-driver ; \
}
.PHONY: uninstall
uninstall:
-rm -rf $(DESTDIR)$(prefix)/include/sound
ifeq ($(moddir_tree),y)
{ \
for i in core $(SUBDIRS) ; do \
rm -rf $(DESTDIR)$(moddir)/$$i ; \
done ; \
}
else
rm -f $(DESTDIR)$(moddir)/snd*.o $(DESTDIR)$(moddir)/persist.o $(DESTDIR)$(moddir)/isapnp.o
endif
rm -f $(DESTDIR)/sbin/init.d/alsasound
rm -f $(DESTDIR)/etc/rc.d/init.d/alsasound
rm -f $(DESTDIR)/etc/init.d/alsasound
.PHONY: TAGS
TAGS:
find . -name '*.[ch]' | etags -
endif # call from 2.6 kernel build system