X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=AcessNative%2Fld-acess_src%2FMakefile;h=b118824e7b3365fd67e28380cb09c158de688265;hb=8b72370eae1a3cfa8916136fd8ffc1460e9291ba;hp=5a604a3c5bc40534189e412da92f31e2d35b4382;hpb=542d8ba58741acef4f373b8e4395e03136c5404c;p=tpg%2Facess2.git diff --git a/AcessNative/ld-acess_src/Makefile b/AcessNative/ld-acess_src/Makefile index 5a604a3c..b118824e 100644 --- a/AcessNative/ld-acess_src/Makefile +++ b/AcessNative/ld-acess_src/Makefile @@ -5,19 +5,26 @@ ifeq ($(PLATFORM),) PLATFORM := lin endif -OBJ := main.o syscalls.o request.o binary.o memory.o -OBJ += elf.o +OBJ := main.o syscalls.o request.o binary.o memory.o exports.o +OBJ += elf.o elf_load.o OBJ := $(addprefix obj-$(PLATFORM)/,$(OBJ)) ifeq ($(PLATFORM),win) BIN := ../ld-acess.exe + LINKADDR := 0x70000000 + LDFLAGS += -lws2_32 -Wl,--image-base,$(LINKADDR) endif ifeq ($(PLATFORM),lin) BIN := ../ld-acess - LD += -m elf_i386 + LINKADDR := 0x70000000 +# LD += -m elf_i386 endif -CFLAGS += -Wall -Werror -g -m32 +CFLAGS += -Wall +CFLAGS += -Werror +CFLAGS += -g -std=c99 +CPPFLAGS += -DARCHDIR_is_x86_64=1 +LDFLAGS += -g -Wl,-T,obj-$(PLATFORM)/link.ld DEPFILES = $(filter %.o,$(OBJ)) DEPFILES := $(DEPFILES:%=%.dep) @@ -27,10 +34,11 @@ DEPFILES := $(DEPFILES:%=%.dep) all: $(BIN) clean: - $(RM) $(BIN) $(OBJ) $(DEPFILES) + $(RM) $(BIN) $(OBJ) $(DEPFILES) obj-$(PLATFORM)/link.ld $(BIN): obj-$(PLATFORM)/link.ld $(OBJ) - $(CC) -g -o $@ $(OBJ) -m32 -Wl,-T,obj-$(PLATFORM)/link.ld + $(CC) -o $@ $(OBJ) $(LDFLAGS) + objdump -S $@ > $@.dsm obj-$(PLATFORM)/%.o: %.c @mkdir -p $(dir $@) @@ -39,10 +47,16 @@ obj-$(PLATFORM)/%.o: %.c @$(CC) -M $(CPPFLAGS) -MT $@ -o $@.dep $< # Modify the default makefile to put the executable at 1MB instead -obj-lin/link.ld: +obj-lin/link.ld: Makefile @mkdir -p $(dir $@) @echo "Making Linker Script ($@)" - @$(LD) --verbose | awk '{ if( substr($$0,0,5) == "====="){ bPrint = !bPrint; } else { if(bPrint){ print $$0;} } }' | sed 's/\b0x0[08][0-9]*\b/0x00100000/g' > $@ + $(LD) -g --verbose | awk '{ if( substr($$1,0,5) == "====="){ bPrint = !bPrint; } else { if(bPrint){ print $$0;} } }' | sed 's/\b0x[048][0-9]*\b/$(LINKADDR)/g' | sed 's/CONSTANT (MAXPAGESIZE)/0x1000/g' > $@ + +# Modify the default makefile to put the executable at 1MB instead +obj-win/link.ld: Makefile + @mkdir -p $(dir $@) + @echo "Making Linker Script ($@)" + $(LD) -g --verbose | awk '{ if( substr($$1,0,5) == "====="){ bPrint = !bPrint; } else { if(bPrint){ print $$0;} } }' | sed 's/\b0x[048][0-9]*\b/$(LINKADDR)/g' | sed 's/CONSTANT (MAXPAGESIZE)/0x1000/g' > $@ -include $(DEPFILES)