1 # Makefile template for configure for the eBPF simulator
2 # Copyright (C) 2020 Free Software Foundation, Inc.
4 # This file is part of GDB, the GNU debugger.
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.
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.
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/>.
19 ## COMMON_PRE_CONFIG_FRAG
21 CGEN_STD_OBJS
= cgen-run.o cgen-scache.o cgen-trace.o cgen-utils.o
22 BPF_GEN_OBJS
= arch.o cpu.o \
23 decode-le.o decode-be.o \
26 BPF_HAND_OBJS
= bpf.o sim-if.o traps.o bpf-helpers.o
29 $(SIM_NEW_COMMON_OBJS
) \
35 $(CGEN_INCLUDE_DEPS
) \
38 $(srcdir)/..
/..
/opcodes
/bpf-desc.h \
39 $(srcdir)/..
/..
/opcodes
/bpf-opc.h
41 SIM_EXTRA_CLEAN
= bpf-clean
43 ## COMMON_POST_CONFIG_FRAG
45 # cgen support, enable with --enable-cgen-maint
47 # The following line is commented in or out depending upon --enable-cgen-maint.
48 @CGEN_MAINT@CGEN_MAINT
=
53 $(CGEN_MAIN_CPU_DEPS
) \
56 decode-le.h decode-be.h \
61 # Dependencies for binaries from CGEN generated source
63 arch.o
: arch.c
$(SIM_MAIN_DEPS
)
64 cpu.o
: cpu.c
$(BPF_INCLUDE_DEPS
)
65 decode-le.o
: decode-le.c
$(BPF_INCLUDE_DEPS
)
66 decode-be.o
: decode-be.c
$(BPF_INCLUDE_DEPS
)
68 sim-if.o
: sim-if.c
$(SIM_MAIN_DEPS
) $(srcdir)/..
/common
/sim-core.h eng.h
72 traps.o
: traps.c
$(SIM_MAIN_DEPS
) eng.h
76 mloop-le.o
: mloop-le.c
$(BPF_INCLUDE_DEPS
)
77 $(CC
) -c mloop-le.c
$(ALL_CFLAGS
) -DWANT_ISA_EBPFLE
78 mloop-be.o
: mloop-be.c
$(BPF_INCLUDE_DEPS
)
79 $(CC
) -c mloop-be.c
$(ALL_CFLAGS
) -DWANT_ISA_EBPFBE
81 decode-le.o
: decode-le.c
$(BPF_INCLUDE_DEPS
)
82 $(CC
) -c
$(srcdir)/decode-le.c
$(ALL_CFLAGS
) -DWANT_ISA_EBPFLE
83 decode-be.o
: decode-be.c
$(BPF_INCLUDE_DEPS
)
84 $(CC
) -c
$(srcdir)/decode-be.c
$(ALL_CFLAGS
) -DWANT_ISA_EBPFBE
86 sem-le.o
: sem-le.c
$(BPF_INCLUDE_DEPS
)
87 $(CC
) -c
$(srcdir)/sem-le.c
$(ALL_CFLAGS
) -DWANT_ISA_EBPFLE
88 sem-be.o
: sem-be.c
$(BPF_INCLUDE_DEPS
)
89 $(CC
) -c
$(srcdir)/sem-be.c
$(ALL_CFLAGS
) -DWANT_ISA_EBPFBE
95 $(srcdir)/..
/..
/cpu
/bpf.cpu \
96 $(srcdir)/..
/..
/cpu
/bpf.opc \
99 stamp-arch
: $(CGEN_COMMON_DEPS
) $(CGEN_ARCH_SCM
)
100 $(MAKE
) cgen-arch
$(CGEN_FLAGS_TO_PASS
) \
102 archfile
=$(srcdir)/..
/..
/cpu
/bpf.cpu \
105 $(srcdir)/arch.h
$(srcdir)/arch.c
$(srcdir)/cpuall.h
: $(CGEN_MAINT
) stamp-arch
108 stamp-cpu
: $(CGEN_COMMON_DEPS
) $(CGEN_CPU_SCM
)
109 $(MAKE
) cgen-cpu
$(CGEN_FLAGS_TO_PASS
) \
110 isa
=ebpfle
,ebpfbe cpu
=bpfbf mach
=bpf \
111 archfile
=$(srcdir)/..
/..
/cpu
/bpf.cpu \
112 FLAGS
="with-multiple-isa with-scache"
113 rm -f
$(srcdir)/model.c
115 $(srcdir)/cpu.h
$(srcdir)/cpu.c
$(srcdir)/model.c
: $(CGEN_MAINT
) stamp-cpu
118 # We need to generate a group of files per ISA.
119 # For eBPF little-endian:
121 # sem-le.c, decode-le.c, decode-le.h
122 # $(objdir)/mloop-le.c $(objdir)/eng-le.h
123 # For eBPF big-endian:
125 # sem-be.c, decode-be.c, decode-be.h
126 # $(objdir)/mloop-be.c $(objdir)/eng-le.h
128 # The rules below take care of that.
130 stamp-defs-le
: $(CGEN_COMMON_DEPS
) $(CGEN_CPU_SCM
)
131 $(MAKE
) cgen-defs
$(CGEN_FLAGS_TO_PASS
) \
132 isa
=ebpfle cpu
=bpfbf mach
=bpf \
133 archfile
=$(srcdir)/..
/..
/cpu
/bpf.cpu \
134 FLAGS
="with-scache" \
137 $(srcdir)/defs-le.h
: $(CGEN_MAINT
) stamp-defs-le
141 stamp-defs-be
: $(CGEN_COMMON_DEPS
) $(CGEN_CPU_SCM
)
142 $(MAKE
) cgen-defs
$(CGEN_FLAGS_TO_PASS
) \
143 isa
=ebpfbe cpu
=bpfbf mach
=bpf \
144 archfile
=$(srcdir)/..
/..
/cpu
/bpf.cpu \
145 FLAGS
="with-scache" \
148 $(srcdir)/defs-be.h
: $(CGEN_MAINT
) stamp-defs-be
151 stamp-decode-le
: $(CGEN_COMMON_DEPS
) $(CGEN_CPU_SCM
) $(GEN_DECODE_SCM
)
152 $(MAKE
) cgen-decode
$(CGEN_FLAGS_TO_PASS
) \
153 isa
=ebpfle cpu
=bpfbf mach
=bpf \
154 archfile
=$(srcdir)/..
/..
/cpu
/bpf.cpu \
155 FLAGS
="with-scache" \
157 EXTRAFILES
="$(CGEN_CPU_SEM)"
159 $(srcdir)/sem-le.c
$(srcdir)/decode-le.c
$(srcdir)/decode-le.h
: \
160 $(CGEN_MAINT
) stamp-decode-le
164 stamp-decode-be
: $(CGEN_COMMON_DEPS
) $(CGEN_CPU_SCM
) $(GEN_DECODE_SCM
)
165 $(MAKE
) cgen-decode
$(CGEN_FLAGS_TO_PASS
) \
166 isa
=ebpfbe cpu
=bpfbf mach
=bpf \
167 archfile
=$(srcdir)/..
/..
/cpu
/bpf.cpu \
168 FLAGS
="with-scache" \
170 EXTRAFILES
="$(CGEN_CPU_SEM)"
172 $(srcdir)/sem-be.c
$(srcdir)/decode-be.c
$(srcdir)/decode-be.h
: \
173 $(CGEN_MAINT
) stamp-decode-be
176 # Note the following files are generated in objdir, not srcdir.
178 stamp-mloop
: stamp-mloop-le stamp-mloop-be
180 stamp-mloop-le
: $(srcdir)/..
/common
/genmloop.sh mloop.in Makefile
181 $(SHELL
) $(srccom
)/genmloop.sh
-shell $(SHELL
) \
182 -mono
-scache
-prefix bpfbf_ebpfle
-cpu bpfbf \
183 -infile
$(srcdir)/mloop.in
-outfile-suffix
-le
184 $(SHELL
) $(srcroot
)/move-if-change eng-le.hin eng-le.h
185 $(SHELL
) $(srcroot
)/move-if-change mloop-le.cin mloop-le.c
187 mloop-le.c eng-le.h
: stamp-mloop-le
190 stamp-mloop-be
: $(srcdir)/..
/common
/genmloop.sh mloop.in Makefile
191 $(SHELL
) $(srccom
)/genmloop.sh
-shell $(SHELL
) \
192 -mono
-scache
-prefix bpfbf_ebpfbe
-cpu bpfbf \
193 -infile
$(srcdir)/mloop.in
-outfile-suffix
-be
194 $(SHELL
) $(srcroot
)/move-if-change eng-be.hin eng-be.h
195 $(SHELL
) $(srcroot
)/move-if-change mloop-be.cin mloop-be.c
197 mloop-be.c eng-be.h
: stamp-mloop-be
203 rm -f stamp-arch stamp-cpu stamp-decode stamp-defs stamp-mloop