patch-2.1.21 linux/Rules.make

Next file: linux/arch/alpha/defconfig
Previous file: linux/Makefile
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.1.20/linux/Rules.make linux/Rules.make
@@ -67,7 +67,7 @@
 else
 	$(AR) rcs $@
 endif
-endif
+endif # O_TARGET
 
 #
 # Rule to compile a set of .o files into one .a file
@@ -140,56 +140,58 @@
 # Separate the object into "normal" objects and "exporting" objects
 # Exporting objects are: all objects that define symbol tables
 #
-ifdef CONFIG_MODVERSIONS
+ifdef CONFIG_MODULES
+
 SYMTAB_OBJS = $(LX_OBJS) $(OX_OBJS) $(MX_OBJS)
+
+ifdef CONFIG_MODVERSIONS
 ifneq "$(strip $(SYMTAB_OBJS))" ""
 
 MODINCL = $(TOPDIR)/include/linux/modules
 
-# The -w option (enable warnings) for /bin/genksyms will return here in 2.1
+# The -w option (enable warnings) for genksyms will return here in 2.1
 $(MODINCL)/%.ver: %.c
-	@if [ ! -x /sbin/genksyms ]; then echo "Please read: Documentation/modules.txt"; fi
-	$(CC) $(CFLAGS) -E -D__GENKSYMS__ $< | /sbin/genksyms $(MODINCL)
-
+	$(CC) $(CFLAGS) -E -D__GENKSYMS__ $<\
+	| $(GENKSYMS) -k $(VERSION).$(PATCHLEVEL).$(SUBLEVEL) > $@.tmp
+	mv $@.tmp $@
+	
 $(addprefix $(MODINCL)/,$(SYMTAB_OBJS:.o=.ver)): $(TOPDIR)/include/linux/autoconf.h
 
 $(TOPDIR)/include/linux/modversions.h: $(addprefix $(MODINCL)/,$(SYMTAB_OBJS:.o=.ver))
 	@echo updating $(TOPDIR)/include/linux/modversions.h
-	@(echo "#ifdef MODVERSIONS";\
-	echo "#undef  CONFIG_MODVERSIONS";\
-	echo "#define CONFIG_MODVERSIONS";\
-	echo "#ifndef _set_ver";\
-	echo "#define _set_ver(sym,vers) sym ## _R ## vers";\
-	echo "#endif";\
-	cd $(TOPDIR)/include/linux/modules; for f in *.ver;\
-	do echo "#include <linux/modules/$${f}>"; done; \
-	echo "#undef  CONFIG_MODVERSIONS";\
-	echo "#endif") \
-	> $(TOPDIR)/include/linux/modversions.h
-
-$(MX_OBJS): $(TOPDIR)/include/linux/modversions.h
-	$(CC) $(CFLAGS) -DEXPORT_SYMTAB -c $(@:.o=.c)
-
-$(LX_OBJS) $(OX_OBJS): $(TOPDIR)/include/linux/modversions.h
-	$(CC) $(CFLAGS) -DMODVERSIONS -DEXPORT_SYMTAB -c $(@:.o=.c)
+	@(echo "#ifndef _LINUX_MODVERSIONS_H";\
+	  echo "#define _LINUX_MODVERSIONS_H"; \
+	  echo "#include <linux/modsetver.h>"; \
+	  cd $(TOPDIR)/include/linux/modules; \
+	  for f in *.ver; do \
+	    if [ -f $$f ]; then echo "#include <linux/modules/$${f}>"; fi; \
+	  done; \
+	  echo "#endif"; \
+	) > $@
 
 dep fastdep: $(TOPDIR)/include/linux/modversions.h
 
-endif
+endif # SYMTAB_OBJS 
+
 $(M_OBJS): $(TOPDIR)/include/linux/modversions.h
 ifdef MAKING_MODULES
 $(O_OBJS) $(L_OBJS): $(TOPDIR)/include/linux/modversions.h
 endif
-# This is needed to ensure proper dependency for multipart modules such as
-# fs/ext.o.  (Otherwise, not all subobjects will be recompiled when
-# version information changes.)
 
 else
 
 $(TOPDIR)/include/linux/modversions.h:
-	@touch $(TOPDIR)/include/linux/modversions.h
+	@echo "#include <linux/modsetver.h>" > $@
+
+endif # CONFIG_MODVERSIONS
 
+ifneq "$(strip $(SYMTAB_OBJS))" ""
+$(SYMTAB_OBJS): $(TOPDIR)/include/linux/modversions.h
+	$(CC) $(CFLAGS) -DEXPORT_SYMTAB -c $(@:.o=.c)
 endif
+
+endif # CONFIG_MODULES
+
 
 #
 # include dependency files they exist

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov