diff --git a/Makefile b/Makefile index d7cb8d9..66aea8e 100644 --- a/Makefile +++ b/Makefile @@ -23,6 +23,7 @@ # # artifact paths +SRC:=src BUILD:=build BIN:=bin @@ -50,7 +51,7 @@ EXE= endif CC=$(CROSS_PREFIX)gcc STRIP=$(CROSS_PREFIX)strip -CFLAGS=-O2 -Wall -g -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -MMD +CFLAGS=-O2 -Wall -g -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -MMD -Isrc -Isrc/slirp CFLAGS+=-D_GNU_SOURCE -DCONFIG_VERSION=\"$(shell cat VERSION)\" LDFLAGS= @@ -64,7 +65,7 @@ PROGS+=build_filelist splitimg endif endif -all: $(PROGS) +all: $(addprefix $(BIN)/,$(PROGS)) EMU_OBJS:=virtio.o pci.o fs.o cutils.o iomem.o simplefb.o \ json.o machine.o temu.o @@ -107,35 +108,34 @@ CFLAGS+=-DCONFIG_X86EMU EMU_OBJS+=x86_cpu.o x86_machine.o ide.o ps2.o vmmouse.o pckbd.o vga.o endif -# macro to prepend $(BUILD) +# macros to relevant path definitions define mkbuild -$(addprefix $(BUILD)/,$(1)) +$(addprefix $(BUILD)/,$1) endef -temu$(EXE): $(BUILD) $(BIN) $(EMU_OBJS) - $(CC) $(LDFLAGS) -o $(BIN)/$@ $(call mkbuild,$(EMU_OBJS)) $(EMU_LIBS) +$(BIN)/temu$(EXE): $(BUILD) $(BIN) $(call mkbuild,$(EMU_OBJS)) + $(CC) $(LDFLAGS) -o $@ $(call mkbuild,$(EMU_OBJS)) $(EMU_LIBS) -riscv_cpu32.o: riscv_cpu.c - $(CC) $(CFLAGS) -DMAX_XLEN=32 -c -o $(BUILD)/$@ $< +$(BUILD)/riscv_cpu32.o: $(SRC)/riscv_cpu.c + $(CC) $(CFLAGS) -DMAX_XLEN=32 -c -o $@ $< -riscv_cpu64.o: riscv_cpu.c - $(CC) $(CFLAGS) -DMAX_XLEN=64 -c -o $(BUILD)/$@ $< +$(BUILD)/riscv_cpu64.o: $(SRC)/riscv_cpu.c + $(CC) $(CFLAGS) -DMAX_XLEN=64 -c -o $@ $< -riscv_cpu128.o: riscv_cpu.c - $(CC) $(CFLAGS) -DMAX_XLEN=128 -c -o $(BUILD)/$@ $< +$(BUILD)/riscv_cpu128.o: $(SRC)/riscv_cpu.c + $(CC) $(CFLAGS) -DMAX_XLEN=128 -c -o $@ $< -build_filelist: build_filelist.o fs_utils.o cutils.o - $(CC) $(LDFLAGS) -o $(BIN)/$@ $(call mkbuild,$^) -lm +$(BIN)/build_filelist: $(BUILD)/build_filelist.o $(BUILD)/fs_utils.o $(BUILD)/cutils.o + $(CC) $(LDFLAGS) -o $@ $^ -lm -splitimg: splitimg.o - $(CC) $(LDFLAGS) -o $(BIN)/$@ $(call mkbuild,$^) +$(BIN)/splitimg: $(BUILD)/splitimg.o + $(CC) $(LDFLAGS) -o $@ $^ -install: $(PROGS) - $(STRIP) $(PROGS) - $(INSTALL) -m755 $(PROGS) "$(DESTDIR)$(bindir)" +$(BUILD)/%.o: $(SRC)/%.c + $(CC) $(CFLAGS) -c -o $@ $< -%.o: %.c - $(CC) $(CFLAGS) -c -o $(BUILD)/$@ $< +$(BUILD)/slirp/%.o: $(SRC)/slirp/%.c + $(CC) $(CFLAGS) -c -o $@ $< .PHONY: $(BUILD) $(BUILD): @@ -145,10 +145,15 @@ $(BUILD): $(BIN): @mkdir -p $@ +.PHONY: install +install: $(PROGS) + $(STRIP) $(PROGS) + $(INSTALL) -m755 $(PROGS) "$(DESTDIR)$(bindir)" + .PHONY: clean clean: rm -f *~ $(PROGS) rm -rf $(BUILD) --include $(wildcard $(BUILD)/*.d) +-include $(wildcard build/*.d) -include $(wildcard $(BUILD)/slirp/*.d) diff --git a/VERSION b/VERSION index bd16728..cbb0522 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -2019-12-21 +cry-2025-7-22 diff --git a/aes.c b/src/aes.c similarity index 100% rename from aes.c rename to src/aes.c diff --git a/aes.h b/src/aes.h similarity index 100% rename from aes.h rename to src/aes.h diff --git a/block_net.c b/src/block_net.c similarity index 100% rename from block_net.c rename to src/block_net.c diff --git a/build_filelist.c b/src/build_filelist.c similarity index 100% rename from build_filelist.c rename to src/build_filelist.c diff --git a/cutils.c b/src/cutils.c similarity index 100% rename from cutils.c rename to src/cutils.c diff --git a/cutils.h b/src/cutils.h similarity index 100% rename from cutils.h rename to src/cutils.h diff --git a/fbuf.h b/src/fbuf.h similarity index 100% rename from fbuf.h rename to src/fbuf.h diff --git a/fs.c b/src/fs.c similarity index 100% rename from fs.c rename to src/fs.c diff --git a/fs.h b/src/fs.h similarity index 100% rename from fs.h rename to src/fs.h diff --git a/fs_disk.c b/src/fs_disk.c similarity index 100% rename from fs_disk.c rename to src/fs_disk.c diff --git a/fs_net.c b/src/fs_net.c similarity index 100% rename from fs_net.c rename to src/fs_net.c diff --git a/fs_utils.c b/src/fs_utils.c similarity index 100% rename from fs_utils.c rename to src/fs_utils.c diff --git a/fs_utils.h b/src/fs_utils.h similarity index 100% rename from fs_utils.h rename to src/fs_utils.h diff --git a/fs_wget.c b/src/fs_wget.c similarity index 100% rename from fs_wget.c rename to src/fs_wget.c diff --git a/fs_wget.h b/src/fs_wget.h similarity index 100% rename from fs_wget.h rename to src/fs_wget.h diff --git a/ide.c b/src/ide.c similarity index 100% rename from ide.c rename to src/ide.c diff --git a/ide.h b/src/ide.h similarity index 100% rename from ide.h rename to src/ide.h diff --git a/iomem.c b/src/iomem.c similarity index 100% rename from iomem.c rename to src/iomem.c diff --git a/iomem.h b/src/iomem.h similarity index 100% rename from iomem.h rename to src/iomem.h diff --git a/jsemu.c b/src/jsemu.c similarity index 100% rename from jsemu.c rename to src/jsemu.c diff --git a/json.c b/src/json.c similarity index 100% rename from json.c rename to src/json.c diff --git a/json.h b/src/json.h similarity index 100% rename from json.h rename to src/json.h diff --git a/list.h b/src/list.h similarity index 100% rename from list.h rename to src/list.h diff --git a/machine.c b/src/machine.c similarity index 100% rename from machine.c rename to src/machine.c diff --git a/machine.h b/src/machine.h similarity index 100% rename from machine.h rename to src/machine.h diff --git a/pci.c b/src/pci.c similarity index 100% rename from pci.c rename to src/pci.c diff --git a/pci.h b/src/pci.h similarity index 100% rename from pci.h rename to src/pci.h diff --git a/pckbd.c b/src/pckbd.c similarity index 100% rename from pckbd.c rename to src/pckbd.c diff --git a/ps2.c b/src/ps2.c similarity index 100% rename from ps2.c rename to src/ps2.c diff --git a/ps2.h b/src/ps2.h similarity index 100% rename from ps2.h rename to src/ps2.h diff --git a/riscv_cpu.c b/src/riscv_cpu.c similarity index 100% rename from riscv_cpu.c rename to src/riscv_cpu.c diff --git a/riscv_cpu.h b/src/riscv_cpu.h similarity index 100% rename from riscv_cpu.h rename to src/riscv_cpu.h diff --git a/riscv_cpu_fp_template.h b/src/riscv_cpu_fp_template.h similarity index 100% rename from riscv_cpu_fp_template.h rename to src/riscv_cpu_fp_template.h diff --git a/riscv_cpu_priv.h b/src/riscv_cpu_priv.h similarity index 100% rename from riscv_cpu_priv.h rename to src/riscv_cpu_priv.h diff --git a/riscv_cpu_template.h b/src/riscv_cpu_template.h similarity index 100% rename from riscv_cpu_template.h rename to src/riscv_cpu_template.h diff --git a/riscv_machine.c b/src/riscv_machine.c similarity index 100% rename from riscv_machine.c rename to src/riscv_machine.c diff --git a/sdl.c b/src/sdl.c similarity index 100% rename from sdl.c rename to src/sdl.c diff --git a/sha256.c b/src/sha256.c similarity index 100% rename from sha256.c rename to src/sha256.c diff --git a/sha256.h b/src/sha256.h similarity index 100% rename from sha256.h rename to src/sha256.h diff --git a/simplefb.c b/src/simplefb.c similarity index 100% rename from simplefb.c rename to src/simplefb.c diff --git a/slirp/bootp.c b/src/slirp/bootp.c similarity index 100% rename from slirp/bootp.c rename to src/slirp/bootp.c diff --git a/slirp/bootp.h b/src/slirp/bootp.h similarity index 100% rename from slirp/bootp.h rename to src/slirp/bootp.h diff --git a/slirp/cksum.c b/src/slirp/cksum.c similarity index 100% rename from slirp/cksum.c rename to src/slirp/cksum.c diff --git a/slirp/debug.h b/src/slirp/debug.h similarity index 100% rename from slirp/debug.h rename to src/slirp/debug.h diff --git a/slirp/if.c b/src/slirp/if.c similarity index 100% rename from slirp/if.c rename to src/slirp/if.c diff --git a/slirp/if.h b/src/slirp/if.h similarity index 100% rename from slirp/if.h rename to src/slirp/if.h diff --git a/slirp/ip.h b/src/slirp/ip.h similarity index 100% rename from slirp/ip.h rename to src/slirp/ip.h diff --git a/slirp/ip_icmp.c b/src/slirp/ip_icmp.c similarity index 100% rename from slirp/ip_icmp.c rename to src/slirp/ip_icmp.c diff --git a/slirp/ip_icmp.h b/src/slirp/ip_icmp.h similarity index 100% rename from slirp/ip_icmp.h rename to src/slirp/ip_icmp.h diff --git a/slirp/ip_input.c b/src/slirp/ip_input.c similarity index 100% rename from slirp/ip_input.c rename to src/slirp/ip_input.c diff --git a/slirp/ip_output.c b/src/slirp/ip_output.c similarity index 100% rename from slirp/ip_output.c rename to src/slirp/ip_output.c diff --git a/slirp/libslirp.h b/src/slirp/libslirp.h similarity index 100% rename from slirp/libslirp.h rename to src/slirp/libslirp.h diff --git a/slirp/main.h b/src/slirp/main.h similarity index 100% rename from slirp/main.h rename to src/slirp/main.h diff --git a/slirp/mbuf.c b/src/slirp/mbuf.c similarity index 100% rename from slirp/mbuf.c rename to src/slirp/mbuf.c diff --git a/slirp/mbuf.h b/src/slirp/mbuf.h similarity index 100% rename from slirp/mbuf.h rename to src/slirp/mbuf.h diff --git a/slirp/misc.c b/src/slirp/misc.c similarity index 100% rename from slirp/misc.c rename to src/slirp/misc.c diff --git a/slirp/misc.h b/src/slirp/misc.h similarity index 100% rename from slirp/misc.h rename to src/slirp/misc.h diff --git a/slirp/sbuf.c b/src/slirp/sbuf.c similarity index 100% rename from slirp/sbuf.c rename to src/slirp/sbuf.c diff --git a/slirp/sbuf.h b/src/slirp/sbuf.h similarity index 100% rename from slirp/sbuf.h rename to src/slirp/sbuf.h diff --git a/slirp/slirp.c b/src/slirp/slirp.c similarity index 100% rename from slirp/slirp.c rename to src/slirp/slirp.c diff --git a/slirp/slirp.h b/src/slirp/slirp.h similarity index 100% rename from slirp/slirp.h rename to src/slirp/slirp.h diff --git a/slirp/slirp_config.h b/src/slirp/slirp_config.h similarity index 100% rename from slirp/slirp_config.h rename to src/slirp/slirp_config.h diff --git a/slirp/socket.c b/src/slirp/socket.c similarity index 100% rename from slirp/socket.c rename to src/slirp/socket.c diff --git a/slirp/socket.h b/src/slirp/socket.h similarity index 100% rename from slirp/socket.h rename to src/slirp/socket.h diff --git a/slirp/tcp.h b/src/slirp/tcp.h similarity index 100% rename from slirp/tcp.h rename to src/slirp/tcp.h diff --git a/slirp/tcp_input.c b/src/slirp/tcp_input.c similarity index 100% rename from slirp/tcp_input.c rename to src/slirp/tcp_input.c diff --git a/slirp/tcp_output.c b/src/slirp/tcp_output.c similarity index 100% rename from slirp/tcp_output.c rename to src/slirp/tcp_output.c diff --git a/slirp/tcp_subr.c b/src/slirp/tcp_subr.c similarity index 100% rename from slirp/tcp_subr.c rename to src/slirp/tcp_subr.c diff --git a/slirp/tcp_timer.c b/src/slirp/tcp_timer.c similarity index 100% rename from slirp/tcp_timer.c rename to src/slirp/tcp_timer.c diff --git a/slirp/tcp_timer.h b/src/slirp/tcp_timer.h similarity index 100% rename from slirp/tcp_timer.h rename to src/slirp/tcp_timer.h diff --git a/slirp/tcp_var.h b/src/slirp/tcp_var.h similarity index 100% rename from slirp/tcp_var.h rename to src/slirp/tcp_var.h diff --git a/slirp/tcpip.h b/src/slirp/tcpip.h similarity index 100% rename from slirp/tcpip.h rename to src/slirp/tcpip.h diff --git a/slirp/tftp.h b/src/slirp/tftp.h similarity index 100% rename from slirp/tftp.h rename to src/slirp/tftp.h diff --git a/slirp/udp.c b/src/slirp/udp.c similarity index 100% rename from slirp/udp.c rename to src/slirp/udp.c diff --git a/slirp/udp.h b/src/slirp/udp.h similarity index 100% rename from slirp/udp.h rename to src/slirp/udp.h diff --git a/softfp.c b/src/softfp.c similarity index 100% rename from softfp.c rename to src/softfp.c diff --git a/softfp.h b/src/softfp.h similarity index 100% rename from softfp.h rename to src/softfp.h diff --git a/softfp_template.h b/src/softfp_template.h similarity index 100% rename from softfp_template.h rename to src/softfp_template.h diff --git a/softfp_template_icvt.h b/src/softfp_template_icvt.h similarity index 100% rename from softfp_template_icvt.h rename to src/softfp_template_icvt.h diff --git a/splitimg.c b/src/splitimg.c similarity index 100% rename from splitimg.c rename to src/splitimg.c diff --git a/temu.c b/src/temu.c similarity index 100% rename from temu.c rename to src/temu.c diff --git a/src/temu.d b/src/temu.d new file mode 100644 index 0000000..842d1fa --- /dev/null +++ b/src/temu.d @@ -0,0 +1,3 @@ +src/temu: src/temu.c src/cutils.h src/iomem.h src/virtio.h src/pci.h \ + src/fs.h src/machine.h src/json.h src/fs_utils.h src/fs_wget.h \ + src/slirp/libslirp.h diff --git a/vga.c b/src/vga.c similarity index 100% rename from vga.c rename to src/vga.c diff --git a/virtio.c b/src/virtio.c similarity index 100% rename from virtio.c rename to src/virtio.c diff --git a/virtio.h b/src/virtio.h similarity index 100% rename from virtio.h rename to src/virtio.h diff --git a/vmmouse.c b/src/vmmouse.c similarity index 100% rename from vmmouse.c rename to src/vmmouse.c diff --git a/x86_cpu.c b/src/x86_cpu.c similarity index 100% rename from x86_cpu.c rename to src/x86_cpu.c diff --git a/x86_cpu.h b/src/x86_cpu.h similarity index 100% rename from x86_cpu.h rename to src/x86_cpu.h diff --git a/x86_machine.c b/src/x86_machine.c similarity index 100% rename from x86_machine.c rename to src/x86_machine.c