Makefile 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624
  1. # Makefile for core analysis suite
  2. #
  3. # Copyright (C) 1999, 2000, 2001, 2002 Mission Critical Linux, Inc.
  4. # www.missioncriticallinux.com, info@missioncriticallinux.com
  5. #
  6. # Copyright (C) 2002-2013 David Anderson
  7. # Copyright (C) 2002-2013 Red Hat, Inc. All rights reserved.
  8. #
  9. # This program is free software; you can redistribute it and/or modify
  10. # it under the terms of the GNU General Public License as published by
  11. # the Free Software Foundation; either version 2 of the License, or
  12. # (at your option) any later version.
  13. #
  14. # This program is distributed in the hope that it will be useful,
  15. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  16. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  17. # GNU General Public License for more details.
  18. #
  19. PROGRAM=crash
  20. #
  21. # Supported targets: X86 ALPHA PPC IA64 PPC64
  22. # TARGET and GDB_CONF_FLAGS will be configured automatically by configure
  23. #
  24. TARGET=
  25. GDB_CONF_FLAGS=
  26. ARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ -e s/arm.*/arm/ -e s/sa110/arm/)
  27. ifeq (${ARCH}, ppc64)
  28. CONF_FLAGS = -m64
  29. endif
  30. #
  31. # GDB, GDB_FILES, GDB_OFILES and GDB_PATCH_FILES will be configured automatically by configure
  32. #
  33. GDB=
  34. GDB_FILES=
  35. GDB_OFILES=
  36. GDB_PATCH_FILES=
  37. #
  38. # Default installation directory
  39. #
  40. INSTALLDIR=${DESTDIR}/usr/bin
  41. # LDFLAGS will be configured automatically by configure
  42. LDFLAGS=
  43. GENERIC_HFILES=defs.h xen_hyper_defs.h
  44. MCORE_HFILES=va_server.h vas_crash.h
  45. REDHAT_HFILES=netdump.h diskdump.h makedumpfile.h xendump.h kvmdump.h qemu-load.h
  46. LKCD_DUMP_HFILES=lkcd_vmdump_v1.h lkcd_vmdump_v2_v3.h lkcd_dump_v5.h \
  47. lkcd_dump_v7.h lkcd_dump_v8.h
  48. LKCD_OBSOLETE_HFILES=lkcd_fix_mem.h
  49. LKCD_TRACE_HFILES=lkcd_x86_trace.h
  50. IBM_HFILES=ibm_common.h
  51. SADUMP_HFILES=sadump.h
  52. UNWIND_HFILES=unwind.h unwind_i.h rse.h unwind_x86.h unwind_x86_64.h
  53. CFILES=main.c tools.c global_data.c memory.c filesys.c help.c task.c \
  54. kernel.c test.c gdb_interface.c configure.c net.c dev.c \
  55. alpha.c x86.c ppc.c ia64.c s390.c s390x.c s390dbf.c ppc64.c x86_64.c \
  56. arm.c arm64.c \
  57. extensions.c remote.c va_server.c va_server_v1.c symbols.c cmdline.c \
  58. lkcd_common.c lkcd_v1.c lkcd_v2_v3.c lkcd_v5.c lkcd_v7.c lkcd_v8.c\
  59. lkcd_fix_mem.c s390_dump.c lkcd_x86_trace.c \
  60. netdump.c diskdump.c makedumpfile.c xendump.c unwind.c unwind_decoder.c \
  61. unwind_x86_32_64.c unwind_arm.c \
  62. xen_hyper.c xen_hyper_command.c xen_hyper_global_data.c \
  63. xen_hyper_dump_tables.c kvmdump.c qemu.c qemu-load.c sadump.c ipcs.c \
  64. ramdump.c
  65. SOURCE_FILES=${CFILES} ${GENERIC_HFILES} ${MCORE_HFILES} \
  66. ${REDHAT_CFILES} ${REDHAT_HFILES} ${UNWIND_HFILES} \
  67. ${LKCD_DUMP_HFILES} ${LKCD_TRACE_HFILES} ${LKCD_OBSOLETE_HFILES}\
  68. ${IBM_HFILES} ${SADUMP_HFILES}
  69. OBJECT_FILES=main.o tools.o global_data.o memory.o filesys.o help.o task.o \
  70. build_data.o kernel.o test.o gdb_interface.o net.o dev.o \
  71. alpha.o x86.o ppc.o ia64.o s390.o s390x.o s390dbf.o ppc64.o x86_64.o \
  72. arm.o arm64.o \
  73. extensions.o remote.o va_server.o va_server_v1.o symbols.o cmdline.o \
  74. lkcd_common.o lkcd_v1.o lkcd_v2_v3.o lkcd_v5.o lkcd_v7.o lkcd_v8.o \
  75. lkcd_fix_mem.o s390_dump.o netdump.o diskdump.o makedumpfile.o xendump.o \
  76. lkcd_x86_trace.o unwind_v1.o unwind_v2.o unwind_v3.o \
  77. unwind_x86_32_64.o unwind_arm.o \
  78. xen_hyper.o xen_hyper_command.o xen_hyper_global_data.o \
  79. xen_hyper_dump_tables.o kvmdump.o qemu.o qemu-load.o sadump.o ipcs.o \
  80. ramdump.o
  81. MEMORY_DRIVER_FILES=memory_driver/Makefile memory_driver/crash.c memory_driver/README
  82. # These are the current set of crash extensions sources. They are not built
  83. # by default unless the third command line of the "all:" stanza is uncommented.
  84. # Alternatively, they can be built by entering "make extensions" from this
  85. # directory.
  86. EXTENSIONS=extensions
  87. EXTENSION_SOURCE_FILES=${EXTENSIONS}/Makefile ${EXTENSIONS}/echo.c ${EXTENSIONS}/dminfo.c \
  88. ${EXTENSIONS}/snap.c ${EXTENSIONS}/snap.mk ${EXTENSIONS}/trace.c \
  89. ${EXTENSIONS}/eppic.c ${EXTENSIONS}/eppic.mk
  90. DAEMON_OBJECT_FILES=remote_daemon.o va_server.o va_server_v1.o \
  91. lkcd_common.o lkcd_v1.o lkcd_v2_v3.o lkcd_v5.o lkcd_v7.o lkcd_v8.o \
  92. s390_dump.o netdump_daemon.o
  93. GDB_5.0_FILES=${GDB}/gdb/Makefile.in \
  94. ${GDB}/gdb/main.c ${GDB}/gdb/symtab.c ${GDB}/gdb/target.c \
  95. ${GDB}/gdb/blockframe.c ${GDB}/gdb/alpha-tdep.c \
  96. ${GDB}/gdb/symfile.c ${GDB}/gdb/elfread.c \
  97. ${GDB}/gdb/ui-file.c ${GDB}/gdb/utils.c ${GDB}/gdb/gnu-regex.c \
  98. ${GDB}/gdb/ppc-linux-nat.c
  99. GDB_5.0_OFILES=${GDB}/gdb/main.o ${GDB}/gdb/symtab.o ${GDB}/gdb/target.o \
  100. ${GDB}/gdb/blockframe.o ${GDB}/gdb/alpha-tdep.o \
  101. ${GDB}/gdb/symfile.o ${GDB}/gdb/elfread.o \
  102. ${GDB}/gdb/ui-file.o ${GDB}/gdb/utils.o ${GDB}/gdb/gnu-regex.o \
  103. ${GDB}/gdb/ppc-linux-nat.o
  104. GDB_5.1_FILES=${GDB}/gdb/Makefile.in \
  105. ${GDB}/gdb/main.c ${GDB}/gdb/symtab.c ${GDB}/gdb/target.c \
  106. ${GDB}/gdb/blockframe.c ${GDB}/gdb/alpha-tdep.c \
  107. ${GDB}/gdb/symfile.c ${GDB}/gdb/elfread.c \
  108. ${GDB}/gdb/ui-file.c ${GDB}/gdb/utils.c ${GDB}/gdb/gnu-regex.c
  109. GDB_5.1_OFILES=${GDB}/gdb/main.o ${GDB}/gdb/symtab.o ${GDB}/gdb/target.o \
  110. ${GDB}/gdb/blockframe.o ${GDB}/gdb/alpha-tdep.o \
  111. ${GDB}/gdb/symfile.o ${GDB}/gdb/elfread.o \
  112. ${GDB}/gdb/ui-file.o ${GDB}/gdb/utils.o ${GDB}/gdb/gnu-regex.o
  113. GDB_5.2.1_FILES=${GDB}/gdb/Makefile.in \
  114. ${GDB}/gdb/main.c ${GDB}/gdb/symtab.c ${GDB}/gdb/target.c \
  115. ${GDB}/gdb/blockframe.c ${GDB}/gdb/alpha-tdep.c \
  116. ${GDB}/gdb/symfile.c ${GDB}/gdb/elfread.c \
  117. ${GDB}/gdb/ui-file.c ${GDB}/gdb/utils.c
  118. GDB_5.2.1_OFILES=${GDB}/gdb/main.o ${GDB}/gdb/symtab.o ${GDB}/gdb/target.o \
  119. ${GDB}/gdb/blockframe.o ${GDB}/gdb/alpha-tdep.o \
  120. ${GDB}/gdb/symfile.o ${GDB}/gdb/elfread.o \
  121. ${GDB}/gdb/ui-file.o ${GDB}/gdb/utils.o
  122. GDB_5.3post-0.20021129.36rh_FILES=${GDB}/gdb/Makefile.in \
  123. ${GDB}/gdb/main.c ${GDB}/gdb/symtab.c ${GDB}/gdb/target.c \
  124. ${GDB}/gdb/frame.c ${GDB}/gdb/alpha-tdep.c \
  125. ${GDB}/gdb/symfile.c ${GDB}/gdb/elfread.c \
  126. ${GDB}/gdb/ui-file.c ${GDB}/gdb/utils.c ${GDB}/gdb/dwarf2read.c
  127. GDB_5.3post-0.20021129.36rh_OFILES=${GDB}/gdb/main.o ${GDB}/gdb/symtab.o \
  128. ${GDB}/gdb/target.o ${GDB}/gdb/frame.o ${GDB}/gdb/alpha-tdep.o \
  129. ${GDB}/gdb/symfile.o ${GDB}/gdb/elfread.o ${GDB}/gdb/ui-file.o \
  130. ${GDB}/gdb/utils.o ${GDB}/gdb/dwarf2read.o
  131. GDB_6.0_FILES=${GDB}/gdb/Makefile.in ${GDB}/Makefile.in \
  132. ${GDB}/gdb/main.c ${GDB}/gdb/symtab.c ${GDB}/gdb/target.c \
  133. ${GDB}/gdb/symfile.c ${GDB}/gdb/elfread.c \
  134. ${GDB}/gdb/ui-file.c ${GDB}/gdb/utils.c \
  135. ${GDB}/gdb/ppc-linux-tdep.c ${GDB}/sim/ppc/ppc-instructions \
  136. ${GDB}/bfd/simple.c ${GDB}/include/obstack.h
  137. GDB_6.0_OFILES=${GDB}/gdb/main.o ${GDB}/gdb/symtab.o \
  138. ${GDB}/gdb/target.o ${GDB}/gdb/symfile.o ${GDB}/gdb/elfread.o \
  139. ${GDB}/gdb/ui-file.o ${GDB}/gdb/utils.o \
  140. ${GDB}/gdb/ppc-linux-tdep.o ${GDB}/bfd/simple.o
  141. GDB_6.1_FILES=${GDB}/gdb/Makefile.in ${GDB}/Makefile.in \
  142. ${GDB}/gdb/main.c ${GDB}/gdb/symtab.c ${GDB}/gdb/target.c \
  143. ${GDB}/gdb/symfile.c ${GDB}/gdb/elfread.c \
  144. ${GDB}/gdb/ui-file.c ${GDB}/gdb/utils.c ${GDB}/gdb/dwarf2read.c \
  145. ${GDB}/include/obstack.h ${GDB}/gdb/ppc-linux-tdep.c
  146. GDB_6.1_OFILES=${GDB}/gdb/main.o ${GDB}/gdb/symtab.o \
  147. ${GDB}/gdb/target.o ${GDB}/gdb/symfile.o ${GDB}/gdb/elfread.o \
  148. ${GDB}/gdb/ui-file.o ${GDB}/gdb/utils.o ${GDB}/gdb/dwarf2read.o \
  149. ${GDB}/gdb/ppc-linux-tdep.o
  150. GDB_7.0_FILES=
  151. GDB_7.0_OFILES=${GDB}/gdb/symtab.o
  152. GDB_7.3.1_FILES=
  153. GDB_7.3.1_OFILES=${GDB}/gdb/symtab.o
  154. GDB_7.6_FILES=
  155. GDB_7.6_OFILES=${GDB}/gdb/symtab.o
  156. #
  157. # GDB_FLAGS is passed up from the gdb Makefile.
  158. #
  159. GDB_FLAGS=
  160. #
  161. # WARNING_OPTIONS and WARNING_ERROR are both applied on a per-file basis.
  162. # WARNING_ERROR is NOT used on files including "dirty" gdb headers so that
  163. # successful compilations can be achieved with acceptable warnings; its
  164. # usefulness is also dependent upon the processor's compiler -- your mileage
  165. # may vary.
  166. #
  167. #WARNING_OPTIONS=-Wall -O2 -Wstrict-prototypes -Wmissing-prototypes -fstack-protector -Wformat-security
  168. #WARNING_ERROR=-Werror
  169. # TARGET_CFLAGS will be configured automatically by configure
  170. TARGET_CFLAGS=
  171. CRASH_CFLAGS=-g -D${TARGET} ${TARGET_CFLAGS} ${GDB_FLAGS} ${CFLAGS}
  172. GPL_FILES=
  173. TAR_FILES=${SOURCE_FILES} Makefile ${GPL_FILES} README .rh_rpm_package crash.8 \
  174. ${EXTENSION_SOURCE_FILES} ${MEMORY_DRIVER_FILES}
  175. CSCOPE_FILES=${SOURCE_FILES}
  176. READLINE_DIRECTORY=./${GDB}/readline
  177. BFD_DIRECTORY=./${GDB}/bfd
  178. GDB_INCLUDE_DIRECTORY=./${GDB}/include
  179. REDHATFLAGS=-DREDHAT
  180. # target could be set on command line when invoking make. Like: make target=ARM
  181. # otherwise target will be the same as the host
  182. ifneq ($(target),)
  183. CONF_TARGET_FLAG="-t$(target)"
  184. endif
  185. # To build the extensions library by default, uncomment the third command
  186. # line below. Otherwise they can be built by entering "make extensions".
  187. all: make_configure
  188. @./configure ${CONF_TARGET_FLAG} -p "RPMPKG=${RPMPKG}" -b
  189. @make --no-print-directory gdb_merge
  190. # @make --no-print-directory extensions
  191. gdb_merge: force
  192. @if [ ! -f ${GDB}/README ]; then \
  193. make --no-print-directory gdb_unzip; fi
  194. @echo "${LDFLAGS} -lz -ldl -rdynamic" > ${GDB}/gdb/mergelibs
  195. @echo "../../${PROGRAM} ../../${PROGRAM}lib.a" > ${GDB}/gdb/mergeobj
  196. @rm -f ${PROGRAM}
  197. @if [ ! -f ${GDB}/config.status ]; then \
  198. (cd ${GDB}; ./configure ${GDB_CONF_FLAGS} --with-separate-debug-dir=/usr/lib/debug \
  199. --with-bugurl="" --with-expat=no --with-python=no; \
  200. make --no-print-directory CRASH_TARGET=${TARGET}; echo ${TARGET} > crash.target) \
  201. else make --no-print-directory rebuild; fi
  202. @if [ ! -f ${PROGRAM} ]; then \
  203. echo; echo "${PROGRAM} build failed"; \
  204. echo; exit 1; fi
  205. rebuild:
  206. @if [ ! -f ${GDB}/${GDB}.patch ]; then \
  207. touch ${GDB}/${GDB}.patch; fi
  208. @if [ -f ${GDB}.patch ] && [ -s ${GDB}.patch ] && \
  209. [ "`sum ${GDB}.patch`" != "`sum ${GDB}/${GDB}.patch`" ]; then \
  210. (patch -N -p0 < ${GDB}.patch; cp ${GDB}.patch ${GDB}; cd ${GDB}; \
  211. make --no-print-directory CRASH_TARGET=${TARGET}) \
  212. else (cd ${GDB}/gdb; make --no-print-directory CRASH_TARGET=${TARGET}); fi
  213. gdb_unzip:
  214. @rm -f gdb.files
  215. @for FILE in ${GDB_FILES} dummy; do\
  216. echo $$FILE >> gdb.files; done
  217. @if [ ! -f ${GDB}.tar.gz ] && [ ! -f /usr/bin/wget ]; then \
  218. echo /usr/bin/wget is required to download ${GDB}.tar.gz; echo; exit 1; fi
  219. @if [ ! -f ${GDB}.tar.gz ] && [ -f /usr/bin/wget ]; then \
  220. wget http://ftp.gnu.org/gnu/gdb/${GDB}.tar.gz; fi
  221. @tar --exclude-from gdb.files -xvzmf ${GDB}.tar.gz
  222. @make --no-print-directory gdb_patch
  223. gdb_patch:
  224. if [ -f ${GDB}.patch ] && [ -s ${GDB}.patch ]; then \
  225. patch -p0 < ${GDB}.patch; cp ${GDB}.patch ${GDB}; fi
  226. if [ "${ARCH}" = "ppc64le" ] && [ -f ${GDB}-ppc64le-support.patch ]; then \
  227. patch -d ${GDB} -p1 -F0 < ${GDB}-ppc64le-support.patch ; \
  228. fi
  229. library: make_build_data ${OBJECT_FILES}
  230. ar -rs ${PROGRAM}lib.a ${OBJECT_FILES}
  231. gdb: force
  232. rm -f ${GDB_OFILES}
  233. @make --no-print-directory all
  234. force:
  235. make_configure: force
  236. @rm -f configure
  237. @${CC} ${CONF_FLAGS} -o configure configure.c ${WARNING_ERROR} ${WARNING_OPTIONS}
  238. clean: make_configure
  239. @./configure ${CONF_TARGET_FLAG} -q -b
  240. @make --no-print-directory do_clean
  241. do_clean:
  242. rm -f ${OBJECT_FILES} ${DAEMON_OBJECT_FILES} ${PROGRAM} ${PROGRAM}lib.a ${GDB_OFILES}
  243. @(cd extensions; make --no-print-directory -i clean)
  244. @(cd memory_driver; make --no-print-directory -i clean)
  245. make_build_data: force
  246. ${CC} -c ${CRASH_CFLAGS} build_data.c ${WARNING_OPTIONS} ${WARNING_ERROR}
  247. install:
  248. /usr/bin/install ${PROGRAM} ${INSTALLDIR}
  249. # /usr/bin/install ${PROGRAM}d ${INSTALLDIR}
  250. unconfig: make_configure
  251. @./configure -u
  252. warn: make_configure
  253. @./configure ${CONF_TARGET_FLAG} -w -b
  254. @make --no-print-directory gdb_merge
  255. Warn: make_configure
  256. @./configure ${CONF_TARGET_FLAG} -W -b
  257. @make --no-print-directory gdb_merge
  258. nowarn: make_configure
  259. @./configure ${CONF_TARGET_FLAG} -n -b
  260. @make --no-print-directory gdb_merge
  261. lzo: make_configure
  262. @./configure -x lzo ${CONF_TARGET_FLAG} -w -b
  263. @make --no-print-directory gdb_merge
  264. snappy: make_configure
  265. @./configure -x snappy ${CONF_TARGET_FLAG} -w -b
  266. @make --no-print-directory gdb_merge
  267. main.o: ${GENERIC_HFILES} main.c
  268. ${CC} -c ${CRASH_CFLAGS} main.c ${WARNING_OPTIONS} ${WARNING_ERROR}
  269. cmdline.o: ${GENERIC_HFILES} cmdline.c
  270. ${CC} -c ${CRASH_CFLAGS} cmdline.c -I${READLINE_DIRECTORY} ${WARNING_OPTIONS} ${WARNING_ERROR}
  271. tools.o: ${GENERIC_HFILES} tools.c
  272. ${CC} -c ${CRASH_CFLAGS} tools.c ${WARNING_OPTIONS} ${WARNING_ERROR}
  273. global_data.o: ${GENERIC_HFILES} global_data.c
  274. ${CC} -c ${CRASH_CFLAGS} global_data.c ${WARNING_OPTIONS} ${WARNING_ERROR}
  275. symbols.o: ${GENERIC_HFILES} symbols.c
  276. ${CC} -c ${CRASH_CFLAGS} symbols.c -I${BFD_DIRECTORY} -I${GDB_INCLUDE_DIRECTORY} ${WARNING_OPTIONS} ${WARNING_ERROR}
  277. filesys.o: ${GENERIC_HFILES} filesys.c
  278. ${CC} -c ${CRASH_CFLAGS} filesys.c ${WARNING_OPTIONS} ${WARNING_ERROR}
  279. help.o: ${GENERIC_HFILES} help.c
  280. ${CC} -c ${CRASH_CFLAGS} help.c ${WARNING_OPTIONS} ${WARNING_ERROR}
  281. memory.o: ${GENERIC_HFILES} memory.c
  282. ${CC} -c ${CRASH_CFLAGS} memory.c ${WARNING_OPTIONS} ${WARNING_ERROR}
  283. test.o: ${GENERIC_HFILES} test.c
  284. ${CC} -c ${CRASH_CFLAGS} test.c ${WARNING_OPTIONS} ${WARNING_ERROR}
  285. task.o: ${GENERIC_HFILES} task.c
  286. ${CC} -c ${CRASH_CFLAGS} task.c ${WARNING_OPTIONS} ${WARNING_ERROR}
  287. kernel.o: ${GENERIC_HFILES} kernel.c
  288. ${CC} -c ${CRASH_CFLAGS} kernel.c ${WARNING_OPTIONS} ${WARNING_ERROR}
  289. gdb_interface.o: ${GENERIC_HFILES} gdb_interface.c
  290. ${CC} -c ${CRASH_CFLAGS} gdb_interface.c ${WARNING_OPTIONS} ${WARNING_ERROR}
  291. va_server.o: ${MCORE_HFILES} va_server.c
  292. ${CC} -c ${CRASH_CFLAGS} va_server.c ${WARNING_OPTIONS} ${WARNING_ERROR}
  293. va_server_v1.o: ${MCORE_HFILES} va_server_v1.c
  294. ${CC} -c ${CRASH_CFLAGS} va_server_v1.c ${WARNING_OPTIONS} ${WARNING_ERROR}
  295. lkcd_common.o: ${GENERIC_HFILES} ${LKCD_DUMP_HFILES} lkcd_common.c
  296. ${CC} -c ${CRASH_CFLAGS} lkcd_common.c ${WARNING_OPTIONS} ${WARNING_ERROR}
  297. lkcd_v1.o: ${GENERIC_HFILES} ${LKCD_DUMP_HFILES} lkcd_v1.c
  298. ${CC} -c ${CRASH_CFLAGS} lkcd_v1.c -DMCLX ${WARNING_OPTIONS} ${WARNING_ERROR}
  299. lkcd_v2_v3.o: ${GENERIC_HFILES} ${LKCD_DUMP_HFILES} lkcd_v2_v3.c
  300. ${CC} -c ${CRASH_CFLAGS} lkcd_v2_v3.c -DMCLX ${WARNING_OPTIONS} ${WARNING_ERROR}
  301. lkcd_v5.o: ${GENERIC_HFILES} ${LKCD_DUMP_HFILES} lkcd_v5.c
  302. ${CC} -c ${CRASH_CFLAGS} lkcd_v5.c -DMCLX ${WARNING_OPTIONS} ${WARNING_ERROR}
  303. lkcd_v7.o: ${GENERIC_HFILES} ${LKCD_DUMP_HFILES} lkcd_v7.c
  304. ${CC} -c ${CRASH_CFLAGS} lkcd_v7.c -DMCLX ${WARNING_OPTIONS} ${WARNING_ERROR}
  305. lkcd_v8.o: ${GENERIC_HFILES} ${LKCD_DUMP_HFILES} lkcd_v8.c
  306. ${CC} -c ${CRASH_CFLAGS} lkcd_v8.c -DMCLX ${WARNING_OPTIONS} ${WARNING_ERROR}
  307. net.o: ${GENERIC_HFILES} net.c
  308. ${CC} -c ${CRASH_CFLAGS} net.c ${WARNING_OPTIONS} ${WARNING_ERROR}
  309. dev.o: ${GENERIC_HFILES} dev.c
  310. ${CC} -c ${CRASH_CFLAGS} dev.c ${WARNING_OPTIONS} ${WARNING_ERROR}
  311. # remote.c functionality has been deprecated
  312. remote.o: ${GENERIC_HFILES} remote.c
  313. @${CC} -c ${CRASH_CFLAGS} remote.c ${WARNING_OPTIONS} ${WARNING_ERROR}
  314. remote_daemon.o: ${GENERIC_HFILES} remote.c
  315. ${CC} -c ${CRASH_CFLAGS} -DDAEMON remote.c -o remote_daemon.o ${WARNING_OPTIONS} ${WARNING_ERROR}
  316. x86.o: ${GENERIC_HFILES} ${REDHAT_HFILES} x86.c
  317. ${CC} -c ${CRASH_CFLAGS} x86.c -DMCLX ${WARNING_OPTIONS} ${WARNING_ERROR}
  318. alpha.o: ${GENERIC_HFILES} alpha.c
  319. ${CC} -c ${CRASH_CFLAGS} alpha.c ${WARNING_OPTIONS} ${WARNING_ERROR}
  320. ppc.o: ${GENERIC_HFILES} ppc.c
  321. ${CC} -c ${CRASH_CFLAGS} ppc.c ${WARNING_OPTIONS} ${WARNING_ERROR}
  322. ia64.o: ${GENERIC_HFILES} ${REDHAT_HFILES} ia64.c
  323. ${CC} -c ${CRASH_CFLAGS} ia64.c ${WARNING_OPTIONS} ${WARNING_ERROR}
  324. ppc64.o: ${GENERIC_HFILES} ppc64.c
  325. ${CC} -c ${CRASH_CFLAGS} ppc64.c ${WARNING_OPTIONS} ${WARNING_ERROR}
  326. x86_64.o: ${GENERIC_HFILES} ${REDHAT_HFILES} x86_64.c
  327. ${CC} -c ${CRASH_CFLAGS} x86_64.c ${WARNING_OPTIONS} ${WARNING_ERROR}
  328. arm.o: ${GENERIC_HFILES} ${REDHAT_HFILES} arm.c
  329. ${CC} -c ${CRASH_CFLAGS} arm.c ${WARNING_OPTIONS} ${WARNING_ERROR}
  330. arm64.o: ${GENERIC_HFILES} ${REDHAT_HFILES} arm64.c
  331. ${CC} -c ${CRASH_CFLAGS} arm64.c ${WARNING_OPTIONS} ${WARNING_ERROR}
  332. s390.o: ${GENERIC_HFILES} ${IBM_HFILES} s390.c
  333. ${CC} -c ${CRASH_CFLAGS} s390.c ${WARNING_OPTIONS} ${WARNING_ERROR}
  334. s390x.o: ${GENERIC_HFILES} ${IBM_HFILES} s390x.c
  335. ${CC} -c ${CRASH_CFLAGS} s390x.c ${WARNING_OPTIONS} ${WARNING_ERROR}
  336. s390dbf.o: ${GENERIC_HFILES} ${IBM_HFILES} s390dbf.c
  337. ${CC} -c ${CRASH_CFLAGS} s390dbf.c ${WARNING_OPTIONS} ${WARNING_ERROR}
  338. s390_dump.o: ${GENERIC_HFILES} ${IBM_HFILES} s390_dump.c
  339. ${CC} -c ${CRASH_CFLAGS} s390_dump.c ${WARNING_OPTIONS} ${WARNING_ERROR}
  340. netdump.o: ${GENERIC_HFILES} ${REDHAT_HFILES} ${SADUMP_HFILES} netdump.c
  341. ${CC} -c ${CRASH_CFLAGS} netdump.c ${WARNING_OPTIONS} ${WARNING_ERROR}
  342. netdump_daemon.o: ${GENERIC_HFILES} ${REDHAT_HFILES} netdump.c
  343. ${CC} -c ${CRASH_CFLAGS} -DDAEMON netdump.c -o netdump_daemon.o ${WARNING_OPTIONS} ${WARNING_ERROR}
  344. diskdump.o: ${GENERIC_HFILES} ${REDHAT_HFILES} diskdump.c
  345. ${CC} -c ${CRASH_CFLAGS} diskdump.c ${WARNING_OPTIONS} ${WARNING_ERROR}
  346. makedumpfile.o: ${GENERIC_HFILES} ${REDHAT_HFILES} makedumpfile.c
  347. ${CC} -c ${CRASH_CFLAGS} makedumpfile.c ${WARNING_OPTIONS} ${WARNING_ERROR}
  348. xendump.o: ${GENERIC_HFILES} ${REDHAT_HFILES} xendump.c
  349. ${CC} -c ${CRASH_CFLAGS} xendump.c ${WARNING_OPTIONS} ${WARNING_ERROR}
  350. kvmdump.o: ${GENERIC_HFILES} ${REDHAT_HFILES} kvmdump.c
  351. ${CC} -c ${CRASH_CFLAGS} kvmdump.c ${WARNING_OPTIONS} ${WARNING_ERROR}
  352. qemu.o: ${GENERIC_HFILES} ${REDHAT_HFILES} qemu.c
  353. ${CC} -c ${CRASH_CFLAGS} qemu.c ${WARNING_OPTIONS} ${WARNING_ERROR}
  354. qemu-load.o: ${GENERIC_HFILES} ${REDHAT_HFILES} qemu-load.c
  355. ${CC} -c ${CRASH_CFLAGS} qemu-load.c ${WARNING_OPTIONS} ${WARNING_ERROR}
  356. sadump.o: ${GENERIC_HFILES} ${SADUMP_HFILES} sadump.c
  357. ${CC} -c ${CRASH_CFLAGS} sadump.c ${WARNING_OPTIONS} ${WARNING_ERROR}
  358. ipcs.o: ${GENERIC_HFILES} ipcs.c
  359. ${CC} -c ${CRASH_CFLAGS} ipcs.c ${WARNING_OPTIONS} ${WARNING_ERROR}
  360. extensions.o: ${GENERIC_HFILES} extensions.c
  361. ${CC} -c ${CRASH_CFLAGS} extensions.c ${WARNING_OPTIONS} ${WARNING_ERROR}
  362. lkcd_x86_trace.o: ${GENERIC_HFILES} ${LKCD_TRACE_HFILES} lkcd_x86_trace.c
  363. ${CC} -c ${CRASH_CFLAGS} lkcd_x86_trace.c -DREDHAT ${WARNING_OPTIONS} ${WARNING_ERROR}
  364. unwind_x86_32_64.o: ${GENERIC_HFILES} ${UNWIND_HFILES} unwind_x86_32_64.c
  365. ${CC} -c ${CRASH_CFLAGS} unwind_x86_32_64.c -o unwind_x86_32_64.o ${WARNING_OPTIONS} ${WARNING_ERROR}
  366. unwind_arm.o: ${GENERIC_HFILES} ${UNWIND_HFILES} unwind_arm.c
  367. ${CC} -c ${CRASH_CFLAGS} unwind_arm.c -o unwind_arm.o ${WARNING_OPTIONS} ${WARNING_ERROR}
  368. unwind_v1.o: ${GENERIC_HFILES} ${UNWIND_HFILES} unwind.c unwind_decoder.c
  369. ${CC} -c ${CRASH_CFLAGS} unwind.c -DREDHAT -DUNWIND_V1 -o unwind_v1.o ${WARNING_OPTIONS} ${WARNING_ERROR}
  370. unwind_v2.o: ${GENERIC_HFILES} ${UNWIND_HFILES} unwind.c unwind_decoder.c
  371. ${CC} -c ${CRASH_CFLAGS} unwind.c -DREDHAT -DUNWIND_V2 -o unwind_v2.o ${WARNING_OPTIONS} ${WARNING_ERROR}
  372. unwind_v3.o: ${GENERIC_HFILES} ${UNWIND_HFILES} unwind.c unwind_decoder.c
  373. ${CC} -c ${CRASH_CFLAGS} unwind.c -DREDHAT -DUNWIND_V3 -o unwind_v3.o ${WARNING_OPTIONS} ${WARNING_ERROR}
  374. lkcd_fix_mem.o: ${GENERIC_HFILES} ${LKCD_HFILES} lkcd_fix_mem.c
  375. ${CC} -c ${CRASH_CFLAGS} lkcd_fix_mem.c -DMCLX ${WARNING_OPTIONS} ${WARNING_ERROR}
  376. xen_hyper.o: ${GENERIC_HFILES} xen_hyper.c
  377. ${CC} -c ${CRASH_CFLAGS} xen_hyper.c ${WARNING_OPTIONS} ${WARNING_ERROR}
  378. xen_hyper_command.o: ${GENERIC_HFILES} xen_hyper_command.c
  379. ${CC} -c ${CRASH_CFLAGS} xen_hyper_command.c ${WARNING_OPTIONS} ${WARNING_ERROR}
  380. xen_hyper_global_data.o: ${GENERIC_HFILES} xen_hyper_global_data.c
  381. ${CC} -c ${CRASH_CFLAGS} xen_hyper_global_data.c ${WARNING_OPTIONS} ${WARNING_ERROR}
  382. xen_hyper_dump_tables.o: ${GENERIC_HFILES} xen_hyper_dump_tables.c
  383. ${CC} -c ${CRASH_CFLAGS} xen_hyper_dump_tables.c ${WARNING_OPTIONS} ${WARNING_ERROR}
  384. ramdump.o: ${GENERIC_HFILES} ${REDHAT_HFILES} ramdump.c
  385. ${CC} -c ${CRASH_CFLAGS} ramdump.c ${WARNING_OPTIONS} ${WARNING_ERROR}
  386. ${PROGRAM}: force
  387. @make --no-print-directory all
  388. # Remote daemon functionality has been deprecated.
  389. daemon_deprecated: force
  390. @echo "WARNING: remote daemon functionality has been deprecated"
  391. @echo
  392. ${PROGRAM}d: daemon_deprecated make_configure
  393. @./configure -d
  394. @make --no-print-directory make_build_data
  395. @make --no-print-directory daemon
  396. daemon: ${DAEMON_OBJECT_FILES}
  397. ${CC} ${LDFLAGS} -o ${PROGRAM}d ${DAEMON_OBJECT_FILES} build_data.o -lz
  398. files: make_configure
  399. @./configure -q -b
  400. @make --no-print-directory show_files
  401. gdb_files: make_configure
  402. @./configure -q -b
  403. @echo ${GDB_FILES} ${GDB_PATCH_FILES}
  404. show_files:
  405. @if [ -f ${PROGRAM} ]; then \
  406. ./${PROGRAM} --no_scroll --no_crashrc -h README > README; fi
  407. @echo ${SOURCE_FILES} Makefile ${GDB_FILES} ${GDB_PATCH_FILES} ${GPL_FILES} README \
  408. .rh_rpm_package crash.8 ${EXTENSION_SOURCE_FILES} ${MEMORY_DRIVER_FILES}
  409. ctags:
  410. ctags ${SOURCE_FILES}
  411. tar: make_configure
  412. @./configure -q -b
  413. @make --no-print-directory do_tar
  414. do_tar:
  415. @if [ -f ${PROGRAM} ]; then \
  416. ./${PROGRAM} --no_scroll --no_crashrc -h README > README; fi
  417. tar cvzf ${PROGRAM}.tar.gz ${TAR_FILES} ${GDB_FILES} ${GDB_PATCH_FILES}
  418. @echo; ls -l ${PROGRAM}.tar.gz
  419. VERSION=
  420. RELEASE=0
  421. release: make_configure
  422. @if [ "`id --user`" != "0" ]; then \
  423. echo "make release: must be super-user"; exit 1; fi
  424. @./configure -P "RPMPKG=${RPMPKG}" -u -g
  425. @make --no-print-directory release_configure
  426. @echo
  427. @echo "cvs tag this release if necessary"
  428. release_configure: make_configure
  429. @if [ "${GDB}" = "" ] ; then \
  430. echo "make release: GDB not defined: append GDB=gdb-x.x to make command line"; echo; exit 1; fi
  431. @./configure -r ${GDB}
  432. @make --no-print-directory do_release
  433. do_release:
  434. @echo "CRASH VERSION: ${VERSION} GDB VERSION: ${GDB}"
  435. @if [ ! -f .rh_rpm_package ]; then \
  436. echo "no .rh_rpm_package exists!"; exit 1; fi
  437. @chmod 666 .rh_rpm_package
  438. @rm -rf ./RELDIR; mkdir ./RELDIR; mkdir ./RELDIR/${PROGRAM}-${VERSION}
  439. @rm -f ${PROGRAM}-${VERSION}.tar.gz
  440. @rm -f ${PROGRAM}-${VERSION}-${RELEASE}.src.rpm
  441. @chown root ./RELDIR/${PROGRAM}-${VERSION}
  442. @tar cf - ${SOURCE_FILES} Makefile ${GDB_FILES} ${GDB_PATCH_FILES} ${GPL_FILES} \
  443. .rh_rpm_package crash.8 ${EXTENSION_SOURCE_FILES} ${MEMORY_DRIVER_FILES} | \
  444. (cd ./RELDIR/${PROGRAM}-${VERSION}; tar xf -)
  445. @cp ${GDB}.tar.gz ./RELDIR/${PROGRAM}-${VERSION}
  446. @./${PROGRAM} --no_scroll --no_crashrc -h README > ./RELDIR/${PROGRAM}-${VERSION}/README
  447. @(cd ./RELDIR; find . -exec chown root {} ";")
  448. @(cd ./RELDIR; find . -exec chgrp root {} ";")
  449. @(cd ./RELDIR; find . -exec touch {} ";")
  450. @(cd ./RELDIR; \
  451. tar czvf ../${PROGRAM}-${VERSION}.tar.gz ${PROGRAM}-${VERSION})
  452. @chgrp root ${PROGRAM}-${VERSION}.tar.gz
  453. @rm -rf ./RELDIR
  454. @echo
  455. @ls -l ${PROGRAM}-${VERSION}.tar.gz
  456. @./configure -s -u > ${PROGRAM}.spec
  457. @if [ -s ${PROGRAM}.spec ]; then \
  458. rm -rf ./RPMBUILD; \
  459. mkdir -p ./RPMBUILD/SOURCES ./RPMBUILD/SPECS ./RPMBUILD/SRPMS; \
  460. cp ${PROGRAM}-${VERSION}.tar.gz ./RPMBUILD/SOURCES; \
  461. cp ${PROGRAM}.spec ./RPMBUILD/SPECS; \
  462. rpmbuild --define "_sourcedir ./RPMBUILD/SOURCES" \
  463. --define "_srcrpmdir ./RPMBUILD/SRPMS" \
  464. --define "_specdir ./RPMBUILD/SPECS" \
  465. --nodeps -bs ./RPMBUILD/SPECS/${PROGRAM}.spec > /dev/null; \
  466. mv ./RPMBUILD/SRPMS/${PROGRAM}-${VERSION}-${RELEASE}.src.rpm . ; \
  467. rm -rf ./RPMBUILD; \
  468. ls -l ${PROGRAM}-${VERSION}-${RELEASE}.src.rpm; \
  469. fi
  470. ref:
  471. make ctags cscope
  472. cscope:
  473. rm -f cscope.files cscope_out
  474. for FILE in ${SOURCE_FILES}; do \
  475. echo $$FILE >> cscope.files; done
  476. cscope
  477. glink: make_configure
  478. @./configure -q -b
  479. rm -f gdb
  480. ln -s ${GDB}/gdb gdb
  481. (cd ${GDB}/gdb; rm -f ${PROGRAM}; ln -s ../../${PROGRAM} ${PROGRAM})
  482. name:
  483. @echo ${PROGRAM}
  484. dis:
  485. objdump --disassemble --line-numbers ${PROGRAM} > ${PROGRAM}.dis
  486. extensions: make_configure
  487. @./configure ${CONF_TARGET_FLAG} -q -b
  488. @make --no-print-directory do_extensions
  489. do_extensions:
  490. @(cd extensions; make -i TARGET=$(TARGET) TARGET_CFLAGS="$(TARGET_CFLAGS)" GDB=$(GDB) GDB_FLAGS=$(GDB_FLAGS))
  491. memory_driver: make_configure
  492. @(cd memory_driver; make --no-print-directory -i)