Index: shfs-0.35/shfs/Linux-2.4/Makefile =================================================================== --- shfs-0.35.orig/shfs/Linux-2.4/Makefile 2007-06-04 13:22:58.143016200 +0200 +++ shfs-0.35/shfs/Linux-2.4/Makefile 2007-06-04 13:22:58.209006168 +0200 @@ -1,3 +1,13 @@ +# +# the original Makefile was trashed and replaced by this one +# The main reason is that loadable modules should be built with +# the same compile flags the kernel was built with, so we'd better +# let the kernel tree build the module for us, like that : +# +# make -C $(KERNEL_DIR) SUBDIRS="$(shell pwd)" modules +# make -C $(KERNEL_DIR) SUBDIRS="$(shell pwd)" modules_install +# + ifndef KERNEL KERNEL=$(shell uname -r) endif @@ -10,67 +20,29 @@ KERNEL_SOURCES=${MODULESDIR}/build endif -ifeq (${MODVERSIONS},detect) - ifeq ($(shell test -e ${KERNEL_SOURCES}/include/linux/modversions.h; echo $$?),0) - MODVERSIONS=yes - endif -endif - -ifeq (${MODVERSIONS},yes) -MVER=-DMODVERSIONS -DEXPORT_SYMTAB -endif - -LINVER=linux-${KERNEL} - -ALL_TARGETS := shfs.o - -SEARCHDIRS := -I- -I. -I${KERNEL_SOURCES}/include #-I/usr/src/linux/include/ +all: all-y -CC := gcc -CFLAGS = -O2 -fomit-frame-pointer -fno-strict-aliasing -pipe -Wall ${SEARCHDIRS} -DMODULE ${MVER} -D__KERNEL__ -DLINUX -LINKER := ld -LDFLAGS = -r -LOADLIBES := +O_TARGET := shfs.o -all: ${ALL_TARGETS} +shfs-objs := dcache.o dir.o fcache.o file.o inode.o ioctl.o proc.o shell.o symlink.o -%.o: %.c $(wildcard *.h) - ${CC} ${CFLAGS} -c $< -o $@ +obj-y := $(shfs-objs) +obj-m := $(O_TARGET) -shfs.o: dcache.o dir.o fcache.o file.o inode.o ioctl.o proc.o shell.o symlink.o - ${LINKER} ${LDFLAGS} -o $@ ${filter-out %.a %.so, $^} ${LOADLIBES} - -tidy: - ${RM} core dcache.o dir.o fcache.o file.o inode.o ioctl.o proc.o shell.o symlink.o - -clean: tidy patch-clean - ${RM} shfs.o +-include $(TOPDIR)/Rules.make +all-y: + make -C ${KERNEL_SOURCES} TOPDIR="${KERNEL_SOURCES}" SUBDIRS="$(shell pwd)" modules + install: shfs.o rm -f ${MODULESDIR}/kernel/fs/shfs/shfs.o install -m644 -b -D shfs.o ${MODULESDIR}/kernel/fs/shfs/shfs.o - if [ -x /sbin/depmod -a "${ROOT}" = "/" ]; then /sbin/depmod -aq; fi uninstall: rm -rf ${MODULESDIR}/kernel/fs/shfs - if [ -x /sbin/depmod -a "${ROOT}" = "/" ]; then /sbin/depmod -aq; fi -patch: - rm -rf ${LINVER} ${LINVER}.orig; mkdir ${LINVER}; - for i in Documentation fs/shfs include/linux; do \ - mkdir -p ${LINVER}/$$i; \ - done - cp ${KERNEL_SOURCES}/Documentation/Configure.help ${LINVER}/Documentation - cp ${KERNEL_SOURCES}/fs/{Makefile,Config.in} ${LINVER}/fs - cp -r ${LINVER} ${LINVER}.orig - cp ../../Changelog *.c shfs_debug.h proc.h ${LINVER}/fs/shfs/ - cp shfs.h shfs_fs* ${LINVER}/include/linux/ - (cd ${LINVER}; patch -p1 <../kernel-config.diff) - find . -type f -name "*.orig" -print | xargs rm -f - diff -urN ${LINVER}.orig ${LINVER} >${LINVER}.diff; true - -patch-clean: - rm -rf ${LINVER} ${LINVER}.orig; - rm -f ${LINVER}.diff - -.PHONY : all tidy clean install uninstall patch patch-clean +clean: + rm -f core *.o *.a *.s + +shfs.o: $(shfs-objs) +