mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2025-02-05 12:53:16 +08:00
All of the settings in here are handled by the common top-level config.h, so drop the individual arch-config.h files entirely. This will also help guarantee that we don't add any new arch specific defines that would affect common code which will help with the effort of unifying them.
197 lines
5.7 KiB
Makefile
197 lines
5.7 KiB
Makefile
# Makefile template for configure for the eBPF simulator
|
|
# Copyright (C) 2020-2021 Free Software Foundation, Inc.
|
|
#
|
|
# This file is part of GDB, the GNU debugger.
|
|
#
|
|
# This program is free software; you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License as published by
|
|
# the Free Software Foundation; either version 3 of the License, or
|
|
# (at your option) any later version.
|
|
#
|
|
# This program is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
## COMMON_PRE_CONFIG_FRAG
|
|
|
|
CGEN_STD_OBJS = cgen-run.o cgen-scache.o cgen-trace.o cgen-utils.o
|
|
BPF_GEN_OBJS = arch.o cpu.o \
|
|
decode-le.o decode-be.o \
|
|
sem-le.o sem-be.o \
|
|
mloop-le.o mloop-be.o
|
|
BPF_HAND_OBJS = bpf.o sim-if.o traps.o bpf-helpers.o
|
|
|
|
SIM_OBJS = \
|
|
$(SIM_NEW_COMMON_OBJS) \
|
|
$(CGEN_STD_OBJS) \
|
|
$(BPF_GEN_OBJS) \
|
|
$(BPF_HAND_OBJS)
|
|
|
|
SIM_EXTRA_DEPS = \
|
|
$(CGEN_INCLUDE_DEPS) \
|
|
arch.h \
|
|
bpf-sim.h \
|
|
eng-le.h eng-be.h \
|
|
$(srcdir)/../../opcodes/bpf-desc.h \
|
|
$(srcdir)/../../opcodes/bpf-opc.h
|
|
|
|
SIM_EXTRA_CLEAN = bpf-clean
|
|
|
|
## COMMON_POST_CONFIG_FRAG
|
|
|
|
# cgen support, enable with --enable-cgen-maint
|
|
CGEN_MAINT = ; @true
|
|
# The following line is commented in or out depending upon --enable-cgen-maint.
|
|
@CGEN_MAINT@CGEN_MAINT =
|
|
|
|
# BPF headers
|
|
|
|
BPF_INCLUDE_DEPS = \
|
|
$(CGEN_MAIN_CPU_DEPS) \
|
|
$(SIM_EXTRA_DEPS) \
|
|
cpu.h cpuall.h \
|
|
decode-le.h decode-be.h \
|
|
defs-le.h defs-be.h \
|
|
eng-le.h eng-be.h
|
|
|
|
# Dependencies for binaries from CGEN generated source
|
|
|
|
mloop-le.o: mloop-le.c
|
|
$(COMPILE) -DWANT_ISA_EBPFLE mloop-le.c
|
|
$(POSTCOMPILE)
|
|
mloop-be.o: mloop-be.c
|
|
$(COMPILE) -DWANT_ISA_EBPFBE mloop-be.c
|
|
$(POSTCOMPILE)
|
|
|
|
decode-le.o: decode-le.c
|
|
$(COMPILE) -DWANT_ISA_EBPFLE $(srcdir)/decode-le.c
|
|
$(POSTCOMPILE)
|
|
decode-be.o: decode-be.c $(BPF_INCLUDE_DEPS)
|
|
$(COMPILE) -DWANT_ISA_EBPFBE $(srcdir)/decode-be.c
|
|
$(POSTCOMPILE)
|
|
|
|
sem-le.o: sem-le.c
|
|
$(COMPILE) -DWANT_ISA_EBPFLE $(srcdir)/sem-le.c
|
|
$(POSTCOMPILE)
|
|
sem-be.o: sem-be.c
|
|
$(COMPILE) -DWANT_ISA_EBPFBE $(srcdir)/sem-be.c
|
|
$(POSTCOMPILE)
|
|
|
|
arch = bpf
|
|
|
|
CGEN_COMMON_DEPS = \
|
|
$(CGEN_READ_SCM) \
|
|
$(srcdir)/../../cpu/bpf.cpu \
|
|
$(srcdir)/../../cpu/bpf.opc \
|
|
Makefile
|
|
|
|
stamp-arch: $(CGEN_COMMON_DEPS) $(CGEN_ARCH_SCM)
|
|
$(MAKE) cgen-arch $(CGEN_FLAGS_TO_PASS) \
|
|
mach=bpf cpu=bpfbf \
|
|
archfile=$(srcdir)/../../cpu/bpf.cpu \
|
|
FLAGS="with-scache"
|
|
touch $@
|
|
$(srcdir)/arch.h $(srcdir)/arch.c $(srcdir)/cpuall.h: $(CGEN_MAINT) stamp-arch
|
|
@true
|
|
|
|
stamp-cpu: $(CGEN_COMMON_DEPS) $(CGEN_CPU_SCM)
|
|
$(MAKE) cgen-cpu $(CGEN_FLAGS_TO_PASS) \
|
|
isa=ebpfle,ebpfbe cpu=bpfbf mach=bpf \
|
|
archfile=$(srcdir)/../../cpu/bpf.cpu \
|
|
FLAGS="with-multiple-isa with-scache"
|
|
rm -f $(srcdir)/model.c
|
|
touch $@
|
|
$(srcdir)/cpu.h $(srcdir)/cpu.c $(srcdir)/model.c: $(CGEN_MAINT) stamp-cpu
|
|
@true
|
|
|
|
# We need to generate a group of files per ISA.
|
|
# For eBPF little-endian:
|
|
# defs-le.h
|
|
# sem-le.c, decode-le.c, decode-le.h
|
|
# $(objdir)/mloop-le.c $(objdir)/eng-le.h
|
|
# For eBPF big-endian:
|
|
# defs-be.h
|
|
# sem-be.c, decode-be.c, decode-be.h
|
|
# $(objdir)/mloop-be.c $(objdir)/eng-le.h
|
|
#
|
|
# The rules below take care of that.
|
|
|
|
stamp-defs-le: $(CGEN_COMMON_DEPS) $(CGEN_CPU_SCM)
|
|
$(MAKE) cgen-defs $(CGEN_FLAGS_TO_PASS) \
|
|
isa=ebpfle cpu=bpfbf mach=bpf \
|
|
archfile=$(srcdir)/../../cpu/bpf.cpu \
|
|
FLAGS="with-scache" \
|
|
SUFFIX="-le"
|
|
touch $@
|
|
$(srcdir)/defs-le.h: $(CGEN_MAINT) stamp-defs-le
|
|
@true
|
|
|
|
|
|
stamp-defs-be: $(CGEN_COMMON_DEPS) $(CGEN_CPU_SCM)
|
|
$(MAKE) cgen-defs $(CGEN_FLAGS_TO_PASS) \
|
|
isa=ebpfbe cpu=bpfbf mach=bpf \
|
|
archfile=$(srcdir)/../../cpu/bpf.cpu \
|
|
FLAGS="with-scache" \
|
|
SUFFIX="-be"
|
|
touch $@
|
|
$(srcdir)/defs-be.h: $(CGEN_MAINT) stamp-defs-be
|
|
@true
|
|
|
|
stamp-decode-le: $(CGEN_COMMON_DEPS) $(CGEN_CPU_SCM) $(GEN_DECODE_SCM)
|
|
$(MAKE) cgen-decode $(CGEN_FLAGS_TO_PASS) \
|
|
isa=ebpfle cpu=bpfbf mach=bpf \
|
|
archfile=$(srcdir)/../../cpu/bpf.cpu \
|
|
FLAGS="with-scache" \
|
|
SUFFIX="-le" \
|
|
EXTRAFILES="$(CGEN_CPU_SEM)"
|
|
touch $@
|
|
$(srcdir)/sem-le.c $(srcdir)/decode-le.c $(srcdir)/decode-le.h: \
|
|
$(CGEN_MAINT) stamp-decode-le
|
|
@true
|
|
|
|
|
|
stamp-decode-be: $(CGEN_COMMON_DEPS) $(CGEN_CPU_SCM) $(GEN_DECODE_SCM)
|
|
$(MAKE) cgen-decode $(CGEN_FLAGS_TO_PASS) \
|
|
isa=ebpfbe cpu=bpfbf mach=bpf \
|
|
archfile=$(srcdir)/../../cpu/bpf.cpu \
|
|
FLAGS="with-scache" \
|
|
SUFFIX="-be" \
|
|
EXTRAFILES="$(CGEN_CPU_SEM)"
|
|
touch $@
|
|
$(srcdir)/sem-be.c $(srcdir)/decode-be.c $(srcdir)/decode-be.h: \
|
|
$(CGEN_MAINT) stamp-decode-be
|
|
@true
|
|
|
|
# Note the following files are generated in objdir, not srcdir.
|
|
|
|
stamp-mloop: stamp-mloop-le stamp-mloop-be
|
|
|
|
stamp-mloop-le: $(srcdir)/../common/genmloop.sh mloop.in Makefile
|
|
$(SHELL) $(srccom)/genmloop.sh -shell $(SHELL) \
|
|
-mono -scache -prefix bpfbf_ebpfle -cpu bpfbf \
|
|
-infile $(srcdir)/mloop.in -outfile-suffix -le
|
|
$(SHELL) $(srcroot)/move-if-change eng-le.hin eng-le.h
|
|
$(SHELL) $(srcroot)/move-if-change mloop-le.cin mloop-le.c
|
|
touch $@
|
|
mloop-le.c eng-le.h: stamp-mloop-le
|
|
@true
|
|
|
|
stamp-mloop-be: $(srcdir)/../common/genmloop.sh mloop.in Makefile
|
|
$(SHELL) $(srccom)/genmloop.sh -shell $(SHELL) \
|
|
-mono -scache -prefix bpfbf_ebpfbe -cpu bpfbf \
|
|
-infile $(srcdir)/mloop.in -outfile-suffix -be
|
|
$(SHELL) $(srcroot)/move-if-change eng-be.hin eng-be.h
|
|
$(SHELL) $(srcroot)/move-if-change mloop-be.cin mloop-be.c
|
|
touch $@
|
|
mloop-be.c eng-be.h: stamp-mloop-be
|
|
@true
|
|
|
|
.PHONY = bpf-clean
|
|
|
|
bpf-clean:
|
|
rm -f stamp-arch stamp-cpu stamp-decode stamp-defs stamp-mloop
|