Makefile.in 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909
  1. #
  2. # This file is part of the program psim.
  3. #
  4. # Copyright 1994, 1995, 1996, 1997, 2003 Andrew Cagney
  5. #
  6. # This program is free software; you can redistribute it and/or modify
  7. # it under the terms of the GNU General Public License as published by
  8. # the Free Software Foundation; either version 3 of the License, or
  9. # (at your option) any later version.
  10. #
  11. # This program is distributed in the hope that it will be useful,
  12. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  14. # GNU General Public License for more details.
  15. #
  16. # You should have received a copy of the GNU General Public License
  17. # along with this program; if not, see <http://www.gnu.org/licenses/>.
  18. #
  19. default: all
  20. VPATH = @srcdir@
  21. srcdir = @srcdir@
  22. srccom = $(srcdir)/../common
  23. srcroot = $(srcdir)/../..
  24. srcsim = $(srcdir)/..
  25. prefix = @prefix@
  26. exec_prefix = @exec_prefix@
  27. host_alias = @host_alias@
  28. target_alias = @target_alias@
  29. program_transform_name = @program_transform_name@
  30. bindir = @bindir@
  31. libdir = @libdir@
  32. tooldir = $(libdir)/$(target_alias)
  33. datarootdir = @datarootdir@
  34. datadir = @datadir@
  35. mandir = @mandir@
  36. man1dir = $(mandir)/man1
  37. man2dir = $(mandir)/man2
  38. man3dir = $(mandir)/man3
  39. man4dir = $(mandir)/man4
  40. man5dir = $(mandir)/man5
  41. man6dir = $(mandir)/man6
  42. man7dir = $(mandir)/man7
  43. man8dir = $(mandir)/man8
  44. man9dir = $(mandir)/man9
  45. infodir = @infodir@
  46. includedir = @includedir@
  47. # This can be referenced by the gettext configuration code.
  48. top_builddir = ..
  49. EXEEXT = @EXEEXT@
  50. SHELL = /bin/sh
  51. INSTALL = @INSTALL@
  52. INSTALL_PROGRAM = @INSTALL_PROGRAM@
  53. INSTALL_DATA = @INSTALL_DATA@
  54. AR = @AR@
  55. AR_FLAGS = rc
  56. CC = @CC@
  57. CFLAGS = @CFLAGS@
  58. CC_FOR_BUILD = @CC_FOR_BUILD@
  59. CFLAGS_FOR_BUILD = @CFLAGS_FOR_BUILD@
  60. BISON = bison
  61. MAKEINFO = makeinfo
  62. RANLIB = @RANLIB@
  63. SIM_CFLAGS = @sim_cflags@
  64. INLINE_CFLAGS = @sim_inline@
  65. BSWAP_CFLAGS = @sim_bswap@
  66. ENDIAN_CFLAGS = @sim_endian@
  67. REGPARM_CFLAGS = @sim_regparm@
  68. STDCALL_CFLAGS = @sim_stdcall@
  69. HOSTENDIAN_CFLAGS = @sim_hostendian@
  70. SMP_CFLAGS = @sim_smp@
  71. XOR_ENDIAN_CFLAGS = @sim_xor_endian@
  72. BITSIZE_CFLAGS = @sim_bitsize@
  73. HOSTBITSIZE_CFLAGS = @sim_hostbitsize@
  74. ENV_CFLAGS = @sim_env@
  75. TIMEBASE_CFLAGS = @sim_timebase@
  76. ALIGNMENT_CFLAGS = @sim_alignment@
  77. FLOAT_CFLAGS = @sim_float@
  78. TRACE_CFLAGS = @sim_trace@
  79. ASSERT_CFLAGS = @sim_assert@
  80. RESERVED_CFLAGS = @sim_reserved@
  81. MONITOR_CFLAGS = @sim_monitor@
  82. MODEL_CFLAGS = @sim_model@ @sim_default_model@ @sim_model_issue@
  83. STDIO_CFLAGS = @sim_stdio@
  84. TERMIO_CFLAGS = @sim_termio@
  85. WARNING_CFLAGS = @sim_warnings@
  86. DEVZERO_CFLAGS = @sim_devzero@
  87. CONFIG_CFLAGS = $(BSWAP_CFLAGS) \
  88. $(ENDIAN_CFLAGS) \
  89. $(REGPARM_CFLAGS) \
  90. $(STDCALL_CFLAGS) \
  91. $(HOSTENDIAN_CFLAGS) \
  92. $(SMP_CFLAGS) \
  93. $(XOR_ENDIAN_CFLAGS) \
  94. $(BITSIZE_CFLAGS) \
  95. $(HOSTBITSIZE_CFLAGS) \
  96. $(ENV_CFLAGS) \
  97. $(TIMEBASE_CFLAGS) \
  98. $(ALIGNMENT_CFLAGS) \
  99. $(FLOAT_CFLAGS) \
  100. $(TRACE_CFLAGS) \
  101. $(ASSERT_CFLAGS) \
  102. $(RESERVED_CFLAGS) \
  103. $(MONITOR_CFLAGS) \
  104. $(MODEL_CFLAGS) \
  105. $(STDIO_CFLAGS) \
  106. $(TERMIO_CFLAGS) \
  107. $(DEVZERO_CFLAGS)
  108. SIM_FPU_CFLAGS = @sim_fpu_cflags@
  109. STD_CFLAGS = $(CFLAGS) $(INLINE_CFLAGS) $(CONFIG_CFLAGS) $(WARNING_CFLAGS) $(SIM_CFLAGS) $(HDEFINES) $(TDEFINES) $(INCLUDES) $(INTL_CFLAGS) $(SIM_FPU_CFLAGS)
  110. NOWARN_CFLAGS = $(CFLAGS) $(INLINE_CFLAGS) $(CONFIG_CFLAGS) $(SIM_CFLAGS) $(HDEFINES) $(TDEFINES) $(INCLUDES) $(SIM_FPU_CFLAGS)
  111. BUILD_CFLAGS = $(CFLAGS_FOR_BUILD) $(INCLUDES) $(WARNING_CFLAGS)
  112. BUILD_LDFLAGS =
  113. LIBS = @LIBS@
  114. CONFIG_FILE = @sim_config@
  115. IGEN_OPCODE_RULES = @sim_opcode@
  116. IGEN_DECODE_MECHANISM = @sim_decode_mechanism@
  117. IGEN_DUPLICATE = @sim_dup@
  118. IGEN_JUMP = @sim_jump@
  119. IGEN_FILTER = @sim_filter@
  120. IGEN_ICACHE = @sim_icache@
  121. IGEN_SMP = @sim_igen_smp@
  122. IGEN_LINE_NR = @sim_line_nr@
  123. DGEN_FLAGS = @sim_switch@
  124. HDEFINES = @HDEFINES@
  125. TDEFINES =
  126. IGEN_FLAGS = \
  127. $(IGEN_DECODE_MECHANISM) \
  128. $(IGEN_DUPLICATE) \
  129. $(IGEN_JUMP) \
  130. $(IGEN_FILTER) \
  131. $(IGEN_ICACHE) \
  132. $(IGEN_SMP) \
  133. $(IGEN_LINE_NR)
  134. .NOEXPORT:
  135. MAKEOVERRIDES=
  136. LIB_INCLUDES = -I$(srcdir)/../../include
  137. BFD_INCLUDES = -I../../bfd -I$(srcdir)/../../bfd
  138. GDB_INCLUDES = -I../../gdb -I$(srcdir)/../../gdb -I$(srcdir)/../../gdb/config
  139. INCLUDES = -I. -I$(srcdir) $(LIB_INCLUDES) $(BFD_INCLUDES) $(GDB_INCLUDES)
  140. LIBIBERTY_LIB = ../../libiberty/libiberty.a
  141. BFD_LIB = ../../bfd/libbfd.a
  142. ZLIB = @zlibdir@ -lz
  143. LIBINTL = @LIBINTL@
  144. LIBINTL_DEP = @LIBINTL_DEP@
  145. INTL_CFLAGS = @INCINTL@
  146. TARGETLIB = libsim.a
  147. all: run $(TARGETLIB) $(GDB_OBJ)
  148. .c.o:
  149. $(CC) -c $(STD_CFLAGS) $<
  150. # Headers outside sim/ppc.
  151. ANSIDECL_H = $(srcroot)/include/ansidecl.h
  152. BFD_H = ../../bfd/bfd.h
  153. GDB_CALLBACK_H = $(srcroot)/include/gdb/callback.h
  154. GDB_REMOTE_SIM_H = $(srcroot)/include/gdb/remote-sim.h
  155. GDB_SIM_PPC_H = $(srcroot)/include/gdb/sim-ppc.h
  156. COMMON_SIM_BASE_H = $(srcroot)/sim/common/sim-base.h
  157. COMMON_SIM_BASICS_H = $(srcroot)/sim/common/sim-basics.h
  158. COMMON_SIM_FPU_H = $(srcroot)/sim/common/sim-fpu.h
  159. COMMON_SIM_INLINE_H = $(srcroot)/sim/common/sim-inline.h
  160. COMMON_SIM_SIGNAL_H = $(srcroot)/sim/common/sim-signal.h
  161. # Headers in sim/ppc.
  162. ACCONFIG_H = \
  163. acconfig.h
  164. ALTIVEC_EXPRESSION_H = \
  165. altivec_expression.h
  166. ALTIVEC_REGISTERS_H = \
  167. altivec_registers.h
  168. BASICS_H = \
  169. basics.h \
  170. $(CONFIG_H) \
  171. $(PPC_CONFIG_H) \
  172. $(INLINE_H) \
  173. $(SIM_CALLBACKS_H) \
  174. $(DEBUG_H) \
  175. $(WORDS_H) \
  176. $(BITS_H) \
  177. $(SIM_ENDIAN_H)
  178. BITS_H = \
  179. bits.h \
  180. bits.c
  181. CAP_H = \
  182. cap.h \
  183. $(BASICS_H)
  184. COREFILE_H = \
  185. corefile.h
  186. COREFILE_N_H = \
  187. corefile-n.h
  188. CPU_H = \
  189. cpu.h \
  190. $(BASICS_H) \
  191. $(REGISTERS_H) \
  192. $(DEVICE_H) \
  193. $(COREFILE_H) \
  194. $(VM_H) \
  195. $(EVENTS_H) \
  196. $(INTERRUPTS_H) \
  197. $(PSIM_H) \
  198. $(IDECODE_H) \
  199. $(ITABLE_H) \
  200. $(OS_EMUL_H) \
  201. $(MON_H) \
  202. $(MODEL_H) \
  203. cpu.c
  204. DEBUG_H = \
  205. debug.h \
  206. $(FILTER_FILENAME_H)
  207. DEVICE_H = \
  208. device.h
  209. DEVICE_TABLE_H = \
  210. device_table.h \
  211. $(BASICS_H) \
  212. $(DEVICE_H) \
  213. $(TREE_H) \
  214. $(HW_H)
  215. E500_EXPRESSION_H = \
  216. e500_expression.h
  217. E500_REGISTERS_H = \
  218. e500_registers.h
  219. EMUL_BUGAPI_H = \
  220. emul_bugapi.h
  221. EMUL_CHIRP_H = \
  222. emul_chirp.h
  223. EMUL_GENERIC_H = \
  224. emul_generic.h \
  225. $(CPU_H) \
  226. $(IDECODE_H) \
  227. $(OS_EMUL_H) \
  228. $(TREE_H) \
  229. $(BFD_H)
  230. EMUL_NETBSD_H = \
  231. emul_netbsd.h
  232. EMUL_UNIX_H = \
  233. emul_unix.h
  234. EVENTS_H = \
  235. events.h
  236. FILTER_FILENAME_H = \
  237. filter_filename.h
  238. FILTER_H = \
  239. filter.h
  240. GEN_ICACHE_H = \
  241. gen-icache.h
  242. GEN_IDECODE_H = \
  243. gen-idecode.h
  244. GEN_ITABLE_H = \
  245. gen-itable.h
  246. GEN_MODEL_H = \
  247. gen-model.h
  248. GEN_SEMANTICS_H = \
  249. gen-semantics.h
  250. GEN_SUPPORT_H = \
  251. gen-support.h
  252. HW_CPU_H = \
  253. hw_cpu.h
  254. HW_PHB_H = \
  255. hw_phb.h
  256. IDECODE_BRANCH_H = \
  257. idecode_branch.h
  258. IDECODE_EXPRESSION_H = \
  259. idecode_expression.h \
  260. $(ALTIVEC_EXPRESSION_H) \
  261. $(E500_EXPRESSION_H)
  262. IDECODE_FIELDS_H = \
  263. idecode_fields.h
  264. IGEN_H = \
  265. igen.h
  266. INLINE_H = \
  267. inline.h
  268. INTERRUPTS_H = \
  269. interrupts.h
  270. LD_CACHE_H = \
  271. ld-cache.h
  272. LD_DECODE_H = \
  273. ld-decode.h
  274. LD_INSN_H = \
  275. ld-insn.h
  276. LF_H = \
  277. lf.h
  278. MISC_H = \
  279. misc.h \
  280. $(CONFIG_H) \
  281. $(FILTER_FILENAME_H)
  282. MON_H = \
  283. mon.h \
  284. $(BASICS_H) \
  285. $(ITABLE_H)
  286. OPTIONS_H = \
  287. options.h
  288. OS_EMUL_H = \
  289. os_emul.h
  290. PSIM_H = \
  291. psim.h \
  292. $(BASICS_H)
  293. REGISTERS_H = \
  294. registers.h \
  295. $(E500_REGISTERS_H) \
  296. $(ALTIVEC_REGISTERS_H) \
  297. $(SPREG_H)
  298. SIM_CALLBACKS_H = \
  299. sim_callbacks.h
  300. SIM_ENDIAN_H = \
  301. sim-endian.h \
  302. sim-endian.c
  303. SIM_ENDIAN_N_H = \
  304. sim-endian-n.h
  305. SIM_MAIN_H = \
  306. sim-main.h \
  307. $(COMMON_SIM_BASICS_H) \
  308. $(COMMON_SIM_SIGNAL_H) \
  309. $(COMMON_SIM_BASE_H)
  310. STD_CONFIG_H = \
  311. std-config.h
  312. TABLE_H = \
  313. table.h
  314. TREE_H = \
  315. tree.h
  316. VM_H = \
  317. vm.h
  318. VM_N_H = \
  319. vm_n.h
  320. WORDS_H = \
  321. words.h
  322. # Generated headers.
  323. CONFIG_H = \
  324. config.h
  325. DEFINES_H = \
  326. defines.h
  327. HW_H = \
  328. hw.h
  329. ICACHE_H = \
  330. icache.h
  331. IDECODE_H = \
  332. idecode.h \
  333. $(IDECODE_EXPRESSION_H) \
  334. $(IDECODE_FIELDS_H) \
  335. $(IDECODE_BRANCH_H)
  336. ITABLE_H = \
  337. itable.h
  338. MODEL_H = \
  339. model.h
  340. PK_H = \
  341. pk.h
  342. PPC_CONFIG_H = \
  343. ppc-config.h
  344. SEMANTICS_H = \
  345. semantics.h
  346. SPREG_H = \
  347. spreg.h
  348. SUPPORT_H = \
  349. support.h \
  350. support.c
  351. TARG_VALS_H = \
  352. targ-vals.h
  353. TCONFIG_H = \
  354. tconfig.h
  355. INLINE = \
  356. inline.h \
  357. inline.c
  358. BUILT_SRC_WO_CONFIG = \
  359. icache.h icache.c \
  360. support.h support.c \
  361. idecode.h idecode.c \
  362. semantics.h semantics.c \
  363. itable.h itable.c \
  364. spreg.h spreg.c \
  365. model.h model.c \
  366. support.h support.c \
  367. pk.h \
  368. hw.h hw.c \
  369. filter_host.c \
  370. @sim_targ_vals@
  371. BUILT_SRC = \
  372. $(BUILT_SRC_WO_CONFIG) \
  373. config.h \
  374. ppc-config.h
  375. LIB_INLINE_SRC = \
  376. psim.c \
  377. bits.c \
  378. debug.c \
  379. sim-endian.c \
  380. sim-endian.h \
  381. sim-endian-n.h \
  382. vm.c \
  383. vm_n.h \
  384. corefile.c \
  385. events.c \
  386. os_emul.c \
  387. registers.c \
  388. cpu.c \
  389. interrupts.c \
  390. device.c \
  391. tree.c \
  392. device_table.c \
  393. cap.c \
  394. mon.c \
  395. options.c
  396. LIB_SRC = \
  397. $(PACKAGE_SRC) \
  398. $(HW_SRC) \
  399. $(LIB_INLINE_SRC)
  400. MAIN_SRC = \
  401. main.c \
  402. gdb-sim.c \
  403. sim_calls.c
  404. # NOTE: semantics, idecode and psim put last so smaller files are compiled
  405. # first
  406. LIB_OBJ = \
  407. debug.o \
  408. filter_filename.o \
  409. bits.o \
  410. sim-endian.o \
  411. os_emul.o \
  412. emul_generic.o \
  413. emul_bugapi.o \
  414. emul_chirp.o \
  415. emul_netbsd.o \
  416. emul_unix.o \
  417. registers.o \
  418. vm.o \
  419. corefile.o \
  420. model.o \
  421. spreg.o \
  422. cpu.o \
  423. interrupts.o \
  424. events.o \
  425. cap.o \
  426. device.o \
  427. tree.o \
  428. device_table.o \
  429. itable.o \
  430. mon.o \
  431. icache.o \
  432. semantics.o \
  433. idecode.o \
  434. support.o \
  435. @sim_fpu@ \
  436. psim.o \
  437. version.o \
  438. $(PACKAGE_OBJ) \
  439. $(HW_OBJ) \
  440. options.o
  441. GDB_OBJ = gdb-sim.o sim_calls.o @sim_callback@
  442. HW_SRC = @sim_hw_src@
  443. HW_OBJ = @sim_hw_obj@
  444. PACKAGE_SRC = @sim_pk_src@
  445. PACKAGE_OBJ = @sim_pk_obj@
  446. psim: $(TARGETLIB) main.o $(LIBIBERTY_LIB) $(BFD_LIB) $(LIBINTL_DEP)
  447. $(CC) $(CFLAGS) $(SIM_CFLAGS) $(LDFLAGS) -o psim$(EXEEXT) main.o $(TARGETLIB) $(BFD_LIB) $(ZLIB) $(LIBINTL) $(LIBIBERTY_LIB) $(LIBS)
  448. run: psim
  449. rm -f run$(EXEEXT)
  450. ln psim$(EXEEXT) run$(EXEEXT)
  451. $(TARGETLIB): tmp-igen tmp-dgen tmp-hw tmp-pk tmp-defines $(LIB_OBJ) $(GDB_OBJ)
  452. rm -f $(TARGETLIB)
  453. $(AR) $(AR_FLAGS) $(TARGETLIB) $(LIB_OBJ) $(GDB_OBJ)
  454. $(RANLIB) $(TARGETLIB)
  455. version.c: Makefile $(srcroot)/gdb/version.in $(srcroot)/bfd/version.h $(srcroot)/gdb/common/create-version.sh
  456. $(SHELL) $(srcroot)/gdb/common/create-version.sh $(srcroot)/gdb \
  457. $(host_alias) $(target_alias) version.c
  458. version.o: version.c $(version_h)
  459. psim.o: psim.c $(CPU_H) $(IDECODE_H) $(OPTIONS_H) $(TREE_H) $(BFD_H)
  460. bits.o: bits.c $(BASICS_H)
  461. debug.o: debug.c $(CONFIG_H) $(BASICS_H)
  462. filter_filename.o: filter_filename.c $(CONFIG_H) $(PPC_CONFIG_H) $(FILTER_FILENAME_H)
  463. sim-endian.o: sim-endian.c $(CONFIG_H) $(BASICS_H) $(SIM_ENDIAN_N_H)
  464. os_emul.o: os_emul.c $(CPU_H) $(IDECODE_H) $(OS_EMUL_H) $(EMUL_GENERIC_H) $(EMUL_NETBSD_H) $(EMUL_UNIX_H) $(EMUL_CHIRP_H) $(EMUL_BUGAPI_H)
  465. emul_generic.o: emul_generic.c $(EMUL_GENERIC_H)
  466. emul_bugapi.o: emul_bugapi.c $(EMUL_GENERIC_H) $(EMUL_BUGAPI_H)
  467. emul_chirp.o: emul_chirp.c $(EMUL_GENERIC_H) $(EMUL_CHIRP_H)
  468. emul_netbsd.o: emul_netbsd.c $(EMUL_GENERIC_H) $(EMUL_NETBSD_H)
  469. emul_unix.o: emul_unix.c $(EMUL_GENERIC_H) $(EMUL_UNIX_H)
  470. registers.o: registers.c $(BASICS_H) $(REGISTERS_H)
  471. cpu.o: cpu.c $(CPU_H) $(IDECODE_H)
  472. interrupts.o: interrupts.c $(CPU_H) $(IDECODE_H) $(OS_EMUL_H)
  473. # Given that inlines are turned on now, rebuild idecode whenever
  474. # anything changes.
  475. idecode.o: idecode.c $(CPU_H) $(IDECODE_H) $(SEMANTICS_H) $(LIB_INLINE_SRC) $(BUILT_SRC)
  476. # double.o: double.c dp-bit.c
  477. vm.o: vm.c $(BASICS_H) $(REGISTERS_H) $(DEVICE_H) $(COREFILE_H) $(VM_H) $(INTERRUPTS_H) $(MON_H) $(CPU_H) $(VM_N_H)
  478. corefile.o: corefile.c $(BASICS_H) $(DEVICE_TABLE_H) $(COREFILE_H) $(COREFILE_N_H)
  479. model.o: model.c $(CPU_H) $(MON_H)
  480. events.o: events.c $(BASICS_H) $(EVENTS_H)
  481. sim_calls.o: sim_calls.c $(PSIM_H) $(OPTIONS_H) $(DEFS_H) $(BFD_H) $(GDB_CALLBACK_H) $(GDB_REMOTE_SIM_H)
  482. gdb-sim.o: gdb-sim.c $(PSIM_H) $(OPTIONS_H) $(REGISTERS_H) $(GDB_REMOTE_SIM_H) $(GDB_SIM_PPC_H) $(SIM_CALLBACK_H)
  483. spreg.o: spreg.c $(BASICS_H) $(SPREG_H)
  484. main.o: main.c $(PSIM_H) $(OPTIONS_H) $(DEVICE_H) $(EVENTS_H) $(BFD_H) $(GDB_CALLBACK_H) $(GDB_REMOTE_SIM_H)
  485. device.o: device.c $(DEVICE_TABLE_H) $(CAP_H) $(EVENTS_H) $(PSIM_H)
  486. tree.o: tree.c $(BASICS_H) $(DEVICE_H) $(TREE_H)
  487. device_table.o: device_table.c $(DEVICE_TABLE_H) hw.c
  488. cap.o: cap.c $(CAP_H)
  489. semantics.o: semantics.c $(CPU_H) $(IDECODE_H) $(SEMANTICS_H) $(COMMON_SIM_INLINE_H) $(COMMON_SIM_FPU_H) $(SUPPORT_H)
  490. icache.o: icache.c $(CPU_H) $(IDECODE_H) $(SEMANTICS_H) $(ICACHE_H) $(COMMON_SIM_INLINE_H) $(COMMON_SIM_FPU_H) $(SUPPORT_H)
  491. support.o: support.c $(CPU_H) $(IDECODE_H) $(COMMON_SIM_INLINE_H) $(COMMON_SIM_FPU_H) $(SUPPORT_H)
  492. itable.o: itable.c $(ITABLE_H)
  493. mon.o: mon.c $(BASICS_H) $(CPU_H) $(MON_H)
  494. # GDB after 4.16 expects the default_callback structure to be setup.
  495. # As a kludge, build the common stuff here for now.
  496. gentmap: ../common/gentmap.c Makefile targ-vals.def
  497. $(CC_FOR_BUILD) $(BUILD_CFLAGS) -I. -I../common -I$(srcdir)/../common -o gentmap $< $(BUILD_LIBS)
  498. targ-vals.def: $(srcdir)/../common/nltvals.def
  499. rm -f targ-vals.def tmp-def
  500. cat $(srcdir)/../common/nltvals.def > tmp-vals.def
  501. $(SHELL) $(srcdir)/../../move-if-change tmp-vals.def targ-vals.def
  502. targ-vals.h: Makefile gentmap $(srcdir)/../../move-if-change
  503. rm -f tmp-vals.h
  504. ./gentmap -h > tmp-vals.h
  505. $(SHELL) $(srcdir)/../../move-if-change tmp-vals.h targ-vals.h
  506. targ-map.c: Makefile gentmap $(srcdir)/../../move-if-change
  507. rm -f tmp-map.c
  508. ./gentmap -c > tmp-map.c
  509. $(SHELL) $(srcdir)/../../move-if-change tmp-map.c targ-map.c
  510. callback.o: ../common/callback.c $(TARG_VALS_H) $(CONFIG_H)
  511. $(CC) -c $(STD_CFLAGS) -DHAVE_CONFIG_H $<
  512. targ-map.o: targ-map.c $(ANSIDECL_H) $(GDB_CALLBACK_H) $(TARG_VALS_H)
  513. sim-fpu.o: $(srcdir)/../common/sim-fpu.c $(CONFIG_H) $(TCONFIG_H)
  514. $(CC) -c $(STD_CFLAGS) -DHAVE_CONFIG_H $(srcdir)/../common/sim-fpu.c
  515. tconfig.h:
  516. rm -f tconfig.h
  517. echo > tconfig.h
  518. # Rebuild options whenever something changes so the date/time is up to date.
  519. options.o: options.c $(CPU_H) $(OPTIONS_H) $(DEFINES_H) $(BASICS_H) $(IDECODE_H) $(INLINE) $(LIB_SRC) $(BUILT_SRC) config.status Makefile
  520. $(CC) -c $(STD_CFLAGS) '-DOPCODE_RULES="@sim_opcode@"' '-DIGEN_FLAGS="$(IGEN_FLAGS)"' '-DDGEN_FLAGS="$(DGEN_FLAGS)"' $<
  521. defines.h: tmp-defines; @true
  522. tmp-defines: config.h Makefile
  523. sed -n -e '/^#define HAVE_/s/ 1$$/",/' -e '/^#define HAVE_/s//"HAVE_/p' < config.h > tmp-defines.h
  524. $(SHELL) $(srcdir)/../../move-if-change tmp-defines.h defines.h
  525. touch tmp-defines
  526. #
  527. # Rules to create the built c source code files
  528. #
  529. ppc-config.h: $(CONFIG_FILE)
  530. cp $(srcdir)/$(CONFIG_FILE) ppc-config.h
  531. tmp-dgen: dgen ppc-spr-table $(srcdir)/../../move-if-change
  532. ./dgen $(DGEN_FLAGS) \
  533. -r $(srcdir)/ppc-spr-table \
  534. -n spreg.h -hp tmp-spreg.h \
  535. -n spreg.c -p tmp-spreg.c
  536. $(SHELL) $(srcdir)/../../move-if-change tmp-spreg.h spreg.h
  537. $(SHELL) $(srcdir)/../../move-if-change tmp-spreg.c spreg.c
  538. touch tmp-dgen
  539. tmp-igen: igen $(srcdir)/ppc-instructions $(srcdir)/altivec.igen $(srcdir)/e500.igen $(IGEN_OPCODE_RULES) $(srcdir)/../../move-if-change tmp-ld-decode tmp-ld-cache tmp-ld-insn tmp-filter
  540. ./igen $(IGEN_FLAGS) \
  541. -o $(srcdir)/$(IGEN_OPCODE_RULES) \
  542. -I $(srcdir) -i $(srcdir)/ppc-instructions \
  543. -n icache.h -hc tmp-icache.h \
  544. -n icache.c -c tmp-icache.c \
  545. -n semantics.h -hs tmp-semantics.h \
  546. -n semantics.c -s tmp-semantics.c \
  547. -n idecode.h -hd tmp-idecode.h \
  548. -n idecode.c -d tmp-idecode.c \
  549. -n itable.h -ht tmp-itable.h \
  550. -n itable.c -t tmp-itable.c \
  551. -n model.h -hm tmp-model.h \
  552. -n model.c -m tmp-model.c \
  553. -n support.h -hf tmp-support.h \
  554. -n support.c -f tmp-support.c
  555. $(SHELL) $(srcdir)/../../move-if-change tmp-icache.h icache.h
  556. $(SHELL) $(srcdir)/../../move-if-change tmp-icache.c icache.c
  557. $(SHELL) $(srcdir)/../../move-if-change tmp-idecode.h idecode.h
  558. $(SHELL) $(srcdir)/../../move-if-change tmp-idecode.c idecode.c
  559. $(SHELL) $(srcdir)/../../move-if-change tmp-semantics.h semantics.h
  560. $(SHELL) $(srcdir)/../../move-if-change tmp-semantics.c semantics.c
  561. $(SHELL) $(srcdir)/../../move-if-change tmp-itable.h itable.h
  562. $(SHELL) $(srcdir)/../../move-if-change tmp-itable.c itable.c
  563. $(SHELL) $(srcdir)/../../move-if-change tmp-model.h model.h
  564. $(SHELL) $(srcdir)/../../move-if-change tmp-model.c model.c
  565. $(SHELL) $(srcdir)/../../move-if-change tmp-support.h support.h
  566. $(SHELL) $(srcdir)/../../move-if-change tmp-support.c support.c
  567. touch tmp-igen
  568. # NOTE: Some versions of make don't handle files created as side-effects
  569. # uncomment the below if that is the case.
  570. $(TARGETLIB): tmp-igen tmp-dgen
  571. itable.h itable.c icache.h icache.c idecode.h idecode.c semantics.h semantics.c model.h model.c support.h support.c: tmp-igen
  572. spreg.h spreg.c: tmp-dgen
  573. dgen: dgen.o table.o lf.o misc.o filter_host.o
  574. $(CC_FOR_BUILD) $(BUILD_CFLAGS) -o dgen dgen.o table.o lf.o misc.o filter_host.o $(BUILD_LIBS)
  575. igen: igen.o table.o lf.o misc.o filter_host.o ld-decode.o ld-cache.o filter.o ld-insn.o gen-model.o gen-itable.o gen-icache.o gen-semantics.o gen-idecode.o gen-support.o
  576. $(CC_FOR_BUILD) $(BUILD_CFLAGS) $(BUILD_LDFLAGS) -o igen igen.o table.o lf.o misc.o filter_host.o ld-decode.o ld-cache.o filter.o ld-insn.o gen-model.o gen-itable.o gen-icache.o gen-semantics.o gen-idecode.o gen-support.o $(BUILD_LIBS)
  577. filter_host.c: filter_filename.c
  578. cat $(srcdir)/filter_filename.c > filter_host.c
  579. filter_host.o: filter_host.c $(CONFIG_H) $(PPC_CONFIG_H) $(FILTER_FILENAME_H)
  580. $(CC_FOR_BUILD) $(BUILD_CFLAGS) -c filter_host.c
  581. table.o: table.c $(CONFIG_H) $(MISC_H) $(LF_H) $(TABLE_H)
  582. $(CC_FOR_BUILD) $(BUILD_CFLAGS) -c $(srcdir)/table.c
  583. lf.o: lf.c $(CONFIG_H) $(MISC_H) $(LF_H)
  584. $(CC_FOR_BUILD) $(BUILD_CFLAGS) -c $(srcdir)/lf.c
  585. filter.o: filter.c $(CONFIG_H) $(MISC_H) $(FILTER_H)
  586. $(CC_FOR_BUILD) $(BUILD_CFLAGS) -c $(srcdir)/filter.c
  587. tmp-filter: filter.c $(MISC_H) misc.o
  588. $(CC_FOR_BUILD) $(BUILD_CFLAGS) $(BUILD_LDFLAGS) -o tmp-filter -DMAIN $(srcdir)/filter.c misc.o $(BUILD_LIBS)
  589. ld-decode.o: ld-decode.c $(MISC_H) $(LF_H) $(TABLE_H) $(LD_DECODE_H)
  590. $(CC_FOR_BUILD) $(BUILD_CFLAGS) -c $(srcdir)/ld-decode.c
  591. tmp-ld-decode: ld-decode.c misc.o lf.o table.o filter_host.o
  592. $(CC_FOR_BUILD) $(BUILD_CFLAGS) $(BUILD_LDFLAGS) -o tmp-ld-decode -DMAIN $(srcdir)/ld-decode.c misc.o lf.o table.o filter_host.o $(BUILD_LIBS)
  593. ld-cache.o: ld-cache.c $(MISC_H) $(LF_H) $(TABLE_H) $(LD_CACHE_H)
  594. $(CC_FOR_BUILD) $(BUILD_CFLAGS) -c $(srcdir)/ld-cache.c
  595. tmp-ld-cache: ld-cache.c misc.o lf.o table.o filter_host.o
  596. $(CC_FOR_BUILD) $(BUILD_CFLAGS) $(BUILD_LDFLAGS) -o tmp-ld-cache -DMAIN $(srcdir)/ld-cache.c misc.o lf.o table.o filter_host.o $(BUILD_LIBS)
  597. ld-insn.o: ld-insn.c $(MISC_H) $(LF_H) $(TABLE_H) $(FILTER_H) $(LD_DECODE_H) $(LD_CACHE_H) $(LD_INSN_H) $(IGEN_H)
  598. $(CC_FOR_BUILD) $(BUILD_CFLAGS) -c $(srcdir)/ld-insn.c
  599. tmp-ld-insn: ld-insn.c ld-cache.o misc.o lf.o table.o ld-decode.o filter_host.o filter.o
  600. $(CC_FOR_BUILD) $(BUILD_CFLAGS) $(BUILD_LDFLAGS) -o tmp-ld-insn -DMAIN $(srcdir)/ld-insn.c ld-cache.o misc.o lf.o table.o ld-decode.o filter_host.o filter.o $(BUILD_LIBS)
  601. gen-model.o: gen-model.c $(MISC_H) $(LF_H) $(TABLE_H) $(FILTER_H) $(LD_CACHE_H) $(LD_DECODE_H) $(LD_INSN_H) $(GEN_MODEL_H)
  602. $(CC_FOR_BUILD) $(BUILD_CFLAGS) -c $(srcdir)/gen-model.c
  603. gen-itable.o: gen-itable.c $(MISC_H) $(LF_H) $(TABLE_H) $(FILTER_H) $(LD_CACHE_H) $(LD_DECODE_H) $(LD_INSN_H) $(IGEN_H) $(GEN_ITABLE_H)
  604. $(CC_FOR_BUILD) $(BUILD_CFLAGS) -c $(srcdir)/gen-itable.c
  605. gen-icache.o: gen-icache.c $(MISC_H) $(LF_H) $(TABLE_H) $(FILTER_H) $(LD_DECODE_H) $(LD_CACHE_H) $(LD_INSN_H) $(IGEN_H) $(GEN_SEMANTICS_H) $(GEN_IDECODE_H) $(GEN_ICACHE_H)
  606. $(CC_FOR_BUILD) $(BUILD_CFLAGS) -c $(srcdir)/gen-icache.c
  607. gen-semantics.o: gen-semantics.c $(MISC_H) $(LF_H) $(TABLE_H) $(FILTER_H) $(LD_DECODE_H) $(LD_CACHE_H) $(LD_INSN_H) $(IGEN_H) $(GEN_SEMANTICS_H) $(GEN_ICACHE_H) $(GEN_IDECODE_H)
  608. $(CC_FOR_BUILD) $(BUILD_CFLAGS) -c $(srcdir)/gen-semantics.c
  609. gen-idecode.o: gen-idecode.c $(MISC_H) $(LF_H) $(TABLE_H) $(FILTER_H) $(LD_DECODE_H) $(LD_CACHE_H) $(LD_INSN_H) $(IGEN_H) $(GEN_IDECODE_H) $(GEN_ICACHE_H) $(GEN_SEMANTICS_H)
  610. $(CC_FOR_BUILD) $(BUILD_CFLAGS) -c $(srcdir)/gen-idecode.c
  611. gen-support.o: gen-support.c $(MISC_H) $(LF_H) $(TABLE_H) $(FILTER_H) $(LD_DECODE_H) $(LD_CACHE_H) $(LD_INSN_H) $(IGEN_H) $(GEN_SEMANTICS_H) $(GEN_SUPPORT_H)
  612. $(CC_FOR_BUILD) $(BUILD_CFLAGS) -c $(srcdir)/gen-support.c
  613. dgen.o: dgen.c $(CONFIG_H) $(MISC_H) $(LF_H) $(TABLE_H)
  614. $(CC_FOR_BUILD) $(BUILD_CFLAGS) -c $(srcdir)/dgen.c
  615. igen.o: igen.c $(MISC_H) $(LF_H) $(TABLE_H) $(CONFIG_H) $(FILTER_H) $(LD_CACHE_H) $(LD_DECODE_H) $(LD_INSN_H) $(IGEN_H) $(GEN_MODEL_H) $(GEN_ICACHE_H) $(GEN_ITABLE_H) $(GEN_IDECODE_H) $(GEN_SEMANTICS_H) $(GEN_SUPPORT_H)
  616. $(CC_FOR_BUILD) $(BUILD_CFLAGS) -c $(srcdir)/igen.c
  617. misc.o: misc.c $(CONFIG_H) $(MISC_H)
  618. $(CC_FOR_BUILD) $(BUILD_CFLAGS) -c $(srcdir)/misc.c
  619. # real hardware
  620. hw.c hw.h: tmp-hw; @true
  621. tmp-hw: Makefile $(HW_SRC) $(srcdir)/../../move-if-change
  622. # The first for loop is to remove duplicates.
  623. f=""; \
  624. for i in $(HW_SRC) ; do \
  625. case " $$f " in \
  626. *" $$i "*) ;; \
  627. *) f="$$f $$i" ;; \
  628. esac ; \
  629. done ; \
  630. for hw in $$f ; do echo $$hw ; done \
  631. | sed -e 's/^.*\(hw_.*\)\.c/\1/' \
  632. -e 's/^/extern const device_descriptor /' \
  633. -e 's/$$/_device_descriptor\[\];/' \
  634. > tmp-hw.h
  635. f=""; \
  636. for i in $(HW_SRC) ; do \
  637. case " $$f " in \
  638. *" $$i "*) ;; \
  639. *) f="$$f $$i" ;; \
  640. esac ; \
  641. done ; \
  642. for hw in $$f ; do echo $$hw ; done \
  643. | sed -e 's/^.*\(hw_.*\)\.c/\1/' \
  644. -e 's/^/ /' \
  645. -e 's/$$/_device_descriptor,/' \
  646. > tmp-hw.c
  647. $(SHELL) $(srcdir)/../../move-if-change tmp-hw.h hw.h
  648. $(SHELL) $(srcdir)/../../move-if-change tmp-hw.c hw.c
  649. touch tmp-hw
  650. hw_cpu.o: hw_cpu.c $(DEVICE_TABLE_H) $(HW_CPU_H) $(INTERRUPTS_H) $(CPU_H)
  651. hw_com.o: hw_com.c $(DEVICE_TABLE_H)
  652. hw_core.o: hw_core.c $(DEVICE_TABLE_H) $(COREFILE_H)
  653. hw_disk.o: hw_disk.c $(DEVICE_TABLE_H) $(PK_H)
  654. hw_eeprom.o: hw_eeprom.c $(DEVICE_TABLE_H)
  655. hw_glue.o: hw_glue.c $(DEVICE_TABLE_H)
  656. hw_htab.o: hw_htab.c $(DEVICE_TABLE_H) $(BFD_H)
  657. hw_ide.o: hw_ide.c $(DEVICE_TABLE_H)
  658. hw_init.o: hw_init.c $(DEVICE_TABLE_H) $(BFD_H) $(PSIM_H)
  659. hw_iobus.o: hw_iobus.c $(DEVICE_TABLE_H)
  660. hw_memory.o: hw_memory.c $(DEVICE_TABLE_H)
  661. hw_nvram.o: hw_nvram.c $(DEVICE_TABLE_H)
  662. hw_opic.o: hw_opic.c $(DEVICE_TABLE_H)
  663. hw_pal.o: hw_pal.c $(DEVICE_TABLE_H) $(CPU_H)
  664. hw_phb.o: hw_phb.c $(DEVICE_TABLE_H) $(HW_PHB_H) $(COREFILE_H)
  665. hw_register.o: hw_register.c $(DEVICE_TABLE_H) $(PSIM_H)
  666. hw_sem.o: hw_sem.c $(DEVICE_TABLE_H) $(PSIM_H)
  667. hw_shm.o: hw_shm.c $(DEVICE_TABLE_H) $(PSIM_H)
  668. hw_trace.o: hw_trace.c $(DEVICE_TABLE_H)
  669. hw_vm.o: hw_vm.c $(DEVICE_TABLE_H) $(CPU_H)
  670. # ignore this line, it stops make from getting confused
  671. # real packages
  672. pk.h: tmp-pk; @true
  673. tmp-pk: Makefile $(PACKAGE_SRC) $(srcdir)/../../move-if-change
  674. # The first for loop is to remove duplicates.
  675. f=""; \
  676. for i in $(PACKAGE_SRC) ; do \
  677. case " $$f " in \
  678. *" $$i "*) ;; \
  679. *) f="$$f $$i" ;; \
  680. esac ; \
  681. done ; \
  682. for pk in $$f ; do echo $$pk ; done \
  683. | sed -e 's/^.*pk_\(.*\)\.c/\1/' \
  684. -e 's/^/extern package_create_instance_callback pk_/' \
  685. -e 's/$$/_create_instance;/' \
  686. > tmp-pk.h
  687. $(SHELL) $(srcdir)/../../move-if-change tmp-pk.h pk.h
  688. touch tmp-pk
  689. pk_disklabel.o: pk_disklabel.c $(DEVICE_TABLE_H) $(PK_H)
  690. # ignore this line, it stops make from getting confused
  691. tags etags: TAGS
  692. TAGS: $(BUILT_SRC)
  693. etags $(srcdir)/*.h $(srcdir)/*.c $(BUILT_SRC)
  694. clean mostlyclean:
  695. rm -f tmp-* *.[oasi] core psim$(EXEEXT) run$(EXEEXT) igen dgen $(BUILT_SRC_WO_CONFIG) gentmap
  696. distclean realclean: clean
  697. rm -f TAGS Makefile config.cache config.status config.h defines.h stamp-h config.log
  698. maintainer-clean: distclean
  699. rm -f *~ *.log ppc-config.h core *.core
  700. Makefile: Makefile.in config.status
  701. CONFIG_FILES=Makefile CONFIG_HEADERS= $(SHELL) ./config.status
  702. config.h: stamp-h ; @true
  703. stamp-h: config.in config.status
  704. CONFIG_FILES= CONFIG_HEADERS=config.h:config.in $(SHELL) ./config.status
  705. config.status: configure
  706. $(SHELL) ./config.status --recheck
  707. install: installdirs
  708. n=`echo run | sed '$(program_transform_name)'`; \
  709. $(INSTALL_PROGRAM) run$(EXEEXT) $(DESTDIR)$(bindir)/$$n$(EXEEXT)
  710. installdirs:
  711. $(SHELL) $(srcdir)/../../mkinstalldirs $(DESTDIR)$(bindir)