|
|
#KBUILD_VERBOSE=1 | #KBUILD_VERBOSE=1 |
#export KBUILD_VERBOSE | #export KBUILD_VERBOSE |
| |
KERNEL_DIR:=/lib/modules/$(shell uname -r)/build |
ifndef KERNEL_VER |
|
KERNEL_VER:=$(shell uname -r) |
|
endif |
|
ifndef KERNEL_DIR |
|
KERNEL_DIR:=/lib/modules/$(KERNEL_VER)/build |
|
endif |
|
ifndef KERNEL_OUTPUT_DIR |
|
KERNEL_OUTPUT_DIR:=$(KERNEL_DIR) |
|
endif |
| |
EXTRA_CFLAGS = -I$(obj) -I$(obj)/../modem |
EXTRA_CFLAGS+= -I$(obj) -I$(obj)/../modem |
| |
obj-m := slamr.o slusb.o | obj-m := slamr.o slusb.o |
| |
|
|
ifndef KERNELRELEASE | ifndef KERNELRELEASE |
ifndef KERNEL_VER | ifndef KERNEL_VER |
| |
all install uninstall: kernel-ver |
all install uninstall: |
$(MAKE) $@ KERNEL_VER=$(shell ./kernel-ver) |
$(MAKE) $@ |
| |
install: install-devices | install: install-devices |
uninstall: remove-devices | uninstall: remove-devices |
| |
kernel-ver:: |
kernel-ver: |
$(CC) -I$(KERNEL_DIR)/include -o $@ $@.c | $(CC) -I$(KERNEL_DIR)/include -o $@ $@.c |
| |
dep: |
|
clean: |
|
$(RM) kernel-ver $(obj-m) $(obj-m:.o=.ko) *st7554.o amrmo_init.o sysdep_amr.o *.mod.* .*.cmd *~ |
|
|
|
install-devices: | install-devices: |
mkdir -p ${DESTDIR}/dev | mkdir -p ${DESTDIR}/dev |
$(foreach minor,0 1 2 3, \ | $(foreach minor,0 1 2 3, \ |
mknod -m 600 ${DESTDIR}/dev/slamr$(minor) c 212 $(minor) ; ) echo -n | mknod -m 600 ${DESTDIR}/dev/slamr$(minor) c 212 $(minor) ; ) echo -n |
$(foreach minor,0 1 2 3, \ | $(foreach minor,0 1 2 3, \ |
mknod -m 600 ${DESTDIR}/dev/slusb$(minor) c 213 $(minor) ; ) echo -n | mknod -m 600 ${DESTDIR}/dev/slusb$(minor) c 213 $(minor) ; ) echo -n |
|
|
remove-devices: | remove-devices: |
$(foreach minor,0 1 2 3, \ |
$(RM) ${DESTDIR}/dev/slamr[0-3] ; ) echo -n |
$(RM) ${DESTDIR}/dev/slamr$(minor) ; ) echo -n |
$(RM) ${DESTDIR}/dev/slusb[0-3] ; ) echo -n |
$(foreach minor,0 1 2 3, \ |
|
$(RM) ${DESTDIR}/dev/slusb$(minor) ; ) echo -n |
|
| |
else | else |
ifeq ($(findstring 2.4,$(KERNEL_VER)),2.4) | ifeq ($(findstring 2.4,$(KERNEL_VER)),2.4) |
|
# 2.4 kernel |
| |
slusb-objs:= old_st7554.o | slusb-objs:= old_st7554.o |
obj:=. | obj:=. |
module-dir:=${DESTDIR}/lib/modules/$(KERNEL_VER)/misc | module-dir:=${DESTDIR}/lib/modules/$(KERNEL_VER)/misc |
| |
CFLAGS:= -Wall -pipe -O3 -fomit-frame-pointer -D__KERNEL__ -DMODULE -DEXPORT_SYMTAB -DMODVERSIONS --include $(KERNEL_DIR)/include/linux/modversions.h -I$(KERNEL_DIR)/include |
EXTRA_CFLAGS+= -D__KERNEL__ -DMODULE -DEXPORT_SYMTAB -DMODVERSIONS --include $(KERNEL_DIR)/include/linux/modversions.h -I$(KERNEL_DIR)/include |
| |
all: $(obj-m) | all: $(obj-m) |
| |
|
|
slamr.o slusb.o: | slamr.o slusb.o: |
$(LD) -r -o $@ $^ | $(LD) -r -o $@ $^ |
| |
install: uninstall-old |
install: install-modules |
|
mkdir -p $(DESTDIR)/etc && \ |
|
cp /etc/modules.conf $(DESTDIR)/etc/modules.conf.slamr && \ |
|
echo 'alias char-major-212 slamr' >> $(DESTDIR)/etc/modules.conf && \ |
|
echo 'alias char-major-213 slusb' >> $(DESTDIR)/etc/modules.conf |
|
# /sbin/depmod -a |
|
|
|
install-modules: uninstall-old |
install -D -m 644 slamr.o $(module-dir)/slamr.o | install -D -m 644 slamr.o $(module-dir)/slamr.o |
install -D -m 644 slusb.o $(module-dir)/slusb.o | install -D -m 644 slusb.o $(module-dir)/slusb.o |
cp /etc/modules.conf /etc/modules.conf.slamr && \ |
|
echo 'alias char-major-212 slamr' >> /etc/modules.conf && \ |
|
echo 'alias char-major-213 slusb' >> /etc/modules.conf |
|
/sbin/depmod -a |
|
uninstall: | uninstall: |
/sbin/modprobe -r slamr slusb | /sbin/modprobe -r slamr slusb |
cp /etc/modules.conf /etc/modules.conf.slamr && \ | cp /etc/modules.conf /etc/modules.conf.slamr && \ |
|
|
$(RM) $(module-dir)/slamr.o | $(RM) $(module-dir)/slamr.o |
$(RM) $(module-dir)/slusb.o | $(RM) $(module-dir)/slusb.o |
/sbin/depmod -a | /sbin/depmod -a |
|
|
uninstall-old: | uninstall-old: |
$(RM) $(module-dir)/slmdm.o \ | $(RM) $(module-dir)/slmdm.o \ |
$(module-dir)/slfax.o \ | $(module-dir)/slfax.o \ |
|
|
$(CC) $(CFLAGS) $(EXTRA_CFLAGS) $(CFLAGS_$@) -o $@ -c $< | $(CC) $(CFLAGS) $(EXTRA_CFLAGS) $(CFLAGS_$@) -o $@ -c $< |
| |
else | else |
|
# 2.6 Kernel |
|
|
|
EXTRA_CFLAGS+=-I $(KERNEL_INCLUDE_DIR) -I . |
| |
module-dir:=${DESTDIR}/lib/modules/$(KERNEL_VER)/extra | module-dir:=${DESTDIR}/lib/modules/$(KERNEL_VER)/extra |
| |
all: | all: |
$(MAKE) modules -C $(KERNEL_DIR) SUBDIRS=$(shell pwd) |
$(MAKE) modules -C $(KERNEL_DIR) SUBDIRS=$(shell pwd) O=$(KERNEL_OUTPUT_DIR) |
install: | install: |
install -D -m 644 slamr.ko $(module-dir)/slamr.ko | install -D -m 644 slamr.ko $(module-dir)/slamr.ko |
install -D -m 644 slusb.ko $(module-dir)/slusb.ko | install -D -m 644 slusb.ko $(module-dir)/slusb.ko |
/sbin/depmod -a |
# /sbin/depmod -a |
uninstall: | uninstall: |
modprobe -r slamr ; echo -n | modprobe -r slamr ; echo -n |
modprobe -r slusb ; echo -n | modprobe -r slusb ; echo -n |
|
|
endif | endif |
endif | endif |
| |
|
dep: |
|
clean: |
|
$(RM) kernel-ver $(obj-m) $(obj-m:.o=.ko) *st7554.o amrmo_init.o sysdep_amr.o *.mod.* .*.cmd *~ |
|
|
$(obj)/amrlibs.o: | $(obj)/amrlibs.o: |
echo "$@ done" | echo "$@ done" |
| |
|
|
|
.PHONY: install install-modules uninstall-old install-devices remove-devices all |