Makefile
上传用户:hxtd_72
上传日期:2007-06-06
资源大小:64k
文件大小:4k
源码类别:

驱动编程

开发平台:

C/C++

  1. # Makefile for ksymoops
  2. # Defaults for vmlinux, ksyms, objects, lsmod, System.map.  Externalised so
  3. # distributions can tweak to suit their own file system layout.
  4. # To default to not reading a source, set to any empty string.
  5. # To default to reading a source, supply a quoted and escaped string.
  6. # If the string contains *r (*m, *n, *s) then it is replaced at run time by
  7. # the current value of `uname -r` (-m, -n, -s).  '*' was chosen as something
  8. # that rarely appears in filenames and does not cause problems like '%' or '$'.
  9. # RedHat users might want defaults like these
  10. # DEF_MAP := "/boot/System.map-*r"
  11. DEF_VMLINUX := # default no vmlinux
  12. DEF_KSYMS := "/proc/ksyms" # default current ksyms
  13. DEF_LSMOD := "/proc/modules" # default current lsmod
  14. DEF_OBJECTS := "/lib/modules/*r/" # default current modules
  15. DEF_MAP := "/usr/src/linux/System.map" # default current map
  16. # Cross compile program prefix for installing cross ksymoops, and
  17. # running binutils (objdump & nm), normally empty for system binutils
  18. # If you are building for a cross compile, these sample values might be useful.
  19. # DEF_TARGET := "elf64-bigmips"
  20. # DEF_ARCH := "mips:8000"
  21. # CROSS := mips64-linux-
  22. # BFD_PREFIX := /usr/mips64-linux
  23. # Prefix for finding BFD library, normally empty for system bfd
  24. BFD_PREFIX :=
  25. DEF_TARGET := # default bfd target, empty for system
  26. DEF_ARCH := # default bfd arch, empty for system
  27. CROSS := # prefix for installed program, nm, objdump
  28. # Prefix for install libraries
  29. INSTALL_PREFIX := /usr
  30. # Install program
  31. INSTALL := /usr/bin/install
  32. # Assignment followed by a comment includes the spaces between the value and the
  33. # comment as part of the value, so strip those extra spaces.
  34. override DEF_VMLINUX := $(strip $(DEF_VMLINUX))
  35. override DEF_KSYMS := $(strip $(DEF_KSYMS))
  36. override DEF_LSMOD := $(strip $(DEF_LSMOD))
  37. override DEF_OBJECTS := $(strip $(DEF_OBJECTS))
  38. override DEF_MAP := $(strip $(DEF_MAP))
  39. override DEF_TARGET := $(strip $(DEF_TARGET))
  40. override DEF_ARCH := $(strip $(DEF_ARCH))
  41. override INSTALL_PREFIX := $(strip $(INSTALL_PREFIX))
  42. override CROSS := $(strip $(CROSS))
  43. override BFD_PREFIX := $(strip $(BFD_PREFIX))
  44. DEFS := Makefile ksymoops.h
  45. PROGS := ksymoops
  46. CC := gcc
  47. CFLAGS += -Dlinux 
  48.  -Wall 
  49.  -Wno-conversion 
  50.  -Waggregate-return 
  51.  -Wstrict-prototypes 
  52.  -Wmissing-prototypes 
  53.  -DINSTALL_PREFIX=""$(INSTALL_PREFIX)"" 
  54.  -DCROSS=""$(CROSS)"" 
  55.  $(DEBUG)
  56. ifneq ($(DEF_VMLINUX),)
  57. CFLAGS += -DDEF_VMLINUX=$(DEF_VMLINUX)
  58. endif
  59. ifneq ($(DEF_KSYMS),)
  60. CFLAGS += -DDEF_KSYMS=$(DEF_KSYMS)
  61. endif
  62. ifneq ($(DEF_LSMOD),)
  63. CFLAGS += -DDEF_LSMOD=$(DEF_LSMOD)
  64. endif
  65. ifneq ($(DEF_OBJECTS),)
  66. CFLAGS += -DDEF_OBJECTS=$(DEF_OBJECTS)
  67. endif
  68. ifneq ($(DEF_MAP),)
  69. CFLAGS += -DDEF_MAP=$(DEF_MAP)
  70. endif
  71. ifneq ($(DEF_TARGET),)
  72. CFLAGS += -DDEF_TARGET=$(DEF_TARGET)
  73. endif
  74. ifneq ($(DEF_ARCH),)
  75. CFLAGS += -DDEF_ARCH=$(DEF_ARCH)
  76. endif
  77. ifneq ($(BFD_PREFIX),)
  78. CFLAGS += -I$(BFD_PREFIX)/include
  79. LDFLAGS += -L$(BFD_PREFIX)/lib
  80. endif
  81. ifeq ($(INSTALL_MANDIR),)
  82. INSTALL_MANDIR := $(INSTALL_PREFIX)/man
  83. endif
  84. STATIC := -Wl,-Bstatic
  85. DYNAMIC := -Wl,-Bdynamic
  86. OBJECTS := io.o ksyms.o ksymoops.o map.o misc.o object.o oops.o re.o symbol.o
  87. all: $(PROGS)
  88. : $(OBJECTS)
  89. $(OBJECTS): $(DEFS)
  90. $(PROGS): %: %.o $(DEFS) $(OBJECTS)
  91. $(CC) $(OBJECTS) $(CFLAGS) $(LDFLAGS) $(STATIC) -lbfd -liberty $(DYNAMIC) -o $@
  92. -@size $@
  93. clean:
  94. rm -f core *.o $(PROGS)
  95. install: all
  96. $(INSTALL) -d $(INSTALL_PREFIX)/bin
  97. $(INSTALL) ksymoops $(INSTALL_PREFIX)/bin/$(CROSS)ksymoops
  98. $(INSTALL) -d $(INSTALL_MANDIR)/man8
  99. $(INSTALL) ksymoops.8 $(INSTALL_MANDIR)/man8/$(CROSS)ksymoops.8