1## The IGEN simulator generator for GDB, the GNU Debugger. 2## 3## Copyright 2002-2024 Free Software Foundation, Inc. 4## 5## Contributed by Andrew Cagney. 6## 7## This file is part of GDB. 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 3 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## You should have received a copy of the GNU General Public License 20## along with this program. If not, see <http://www.gnu.org/licenses/>. 21 22# igen leaks memory, and therefore makes AddressSanitizer unhappy. Disable 23# leak detection while running it. 24IGEN = %D%/igen$(EXEEXT) 25IGEN_RUN = ASAN_OPTIONS=detect_leaks=0 $(IGEN) $(IGEN_FLAGS_SMP) 26 27# Alias for developers. 28igen: $(IGEN) 29 30EXTRA_LIBRARIES += %D%/libigen.a 31%C%_libigen_a_SOURCES = \ 32 %D%/table.c \ 33 %D%/lf.c \ 34 %D%/misc.c \ 35 %D%/filter_host.c \ 36 %D%/ld-decode.c \ 37 %D%/ld-cache.c \ 38 %D%/filter.c \ 39 %D%/ld-insn.c \ 40 %D%/gen-model.c \ 41 %D%/gen-itable.c \ 42 %D%/gen-icache.c \ 43 %D%/gen-semantics.c \ 44 %D%/gen-idecode.c \ 45 %D%/gen-support.c \ 46 %D%/gen-engine.c \ 47 %D%/gen.c 48 49%C%_igen_SOURCES = %D%/igen.c 50%C%_igen_LDADD = %D%/libigen.a 51 52# These rules are copied from automake, but tweaked to use FOR_BUILD variables. 53%D%/libigen.a: $(igen_libigen_a_OBJECTS) $(igen_libigen_a_DEPENDENCIES) $(EXTRA_igen_libigen_a_DEPENDENCIES) %D%/$(am__dirstamp) 54 $(AM_V_at)-rm -f $@ 55 $(AM_V_AR)$(AR_FOR_BUILD) $(ARFLAGS) $@ $(igen_libigen_a_OBJECTS) $(igen_libigen_a_LIBADD) 56 $(AM_V_at)$(RANLIB_FOR_BUILD) $@ 57 58%D%/igen$(EXEEXT): $(%C%_igen_OBJECTS) $(%C%_igen_DEPENDENCIES) %D%/$(am__dirstamp) 59 $(AM_V_CCLD)$(LINK_FOR_BUILD) $(%C%_igen_OBJECTS) $(%C%_igen_LDADD) 60 61# igen is a build-time only tool. Override the default rules for it. 62%D%/%.o: %D%/%.c 63 $(AM_V_CC)$(COMPILE_FOR_BUILD) -c $< -o $@ 64 65# Build some of the files in standalone mode for developers of igen itself. 66%D%/%-main.o: %D%/%.c 67 $(AM_V_CC)$(COMPILE_FOR_BUILD) -DMAIN -c $< -o $@ 68 69%C%_filter_SOURCES = 70%C%_filter_LDADD = %D%/filter-main.o %D%/libigen.a 71 72%C%_gen_SOURCES = 73%C%_gen_LDADD = %D%/gen-main.o %D%/libigen.a 74 75%C%_ld_cache_SOURCES = 76%C%_ld_cache_LDADD = %D%/ld-cache-main.o %D%/libigen.a 77 78%C%_ld_decode_SOURCES = 79%C%_ld_decode_LDADD = %D%/ld-decode-main.o %D%/libigen.a 80 81%C%_ld_insn_SOURCES = 82%C%_ld_insn_LDADD = %D%/ld-insn-main.o %D%/libigen.a 83 84%C%_table_SOURCES = 85%C%_table_LDADD = %D%/table-main.o %D%/libigen.a 86 87%C%_IGEN_TOOLS = \ 88 $(IGEN) \ 89 %D%/filter \ 90 %D%/gen \ 91 %D%/ld-cache \ 92 %D%/ld-decode \ 93 %D%/ld-insn \ 94 %D%/table 95EXTRA_PROGRAMS += $(%C%_IGEN_TOOLS) 96MOSTLYCLEANFILES += $(%C%_IGEN_TOOLS) %D%/libigen.a 97