AcessNative - Bugfixes 'r' us, GUI can start and render (partially)
[tpg/acess2.git] / AcessNative / ld-acess_src / Makefile
index eb84ad8..805b3a5 100644 (file)
@@ -5,43 +5,50 @@ ifeq ($(PLATFORM),)
        PLATFORM := lin
 endif
 
-OBJ := main.o syscalls.o request.o binary.o memory.o
-OBJ += elf.o
-OBJ := $(addsuffix .$(PLATFORM),$(OBJ))
+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
 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
+CPPFLAGS += -DARCHDIR_is_x86_64=1
+LDFLAGS  += -g -Wl,-T,obj-$(PLATFORM)/link.ld
 
-DEPFILES  = $(filter %.o.$(PLATFORM),$(OBJ))
-DEPFILES := $(DEPFILES:%.o.$(PLATFORM)=%.d.$(PLATFORM))
+DEPFILES  = $(filter %.o,$(OBJ))
+DEPFILES := $(DEPFILES:%=%.dep)
 
 .PHONY: all clean
 
 all: $(BIN)
 
 clean:
-       $(RM) $(BIN) $(OBJ) $(DEPFILES)
+       $(RM) $(BIN) $(OBJ) $(DEPFILES) obj-$(PLATFORM)/link.ld
 
-$(BIN): link.ld.$(PLATFORM) $(OBJ)
-#      $(LD) -g -o $@ $(OBJ) -T link.ld.$(PLATFORM)
-       $(CC) -g -o $@ $(OBJ) -m32 -Wl,-T,link.ld.$(PLATFORM)
+$(BIN): obj-$(PLATFORM)/link.ld $(OBJ)
+       $(CC) $(LDFLAGS) -o $@ $(OBJ)
+       objdump -S $@ > [email protected]
 
-%.o.$(PLATFORM): %.c
+obj-$(PLATFORM)/%.o: %.c
+       @mkdir -p $(dir $@)
        @echo [CC] -o $@
        @$(CC) -c $< -o $@ $(CFLAGS) $(CPPFLAGS)
-       @$(CC) -M $(CPPFLAGS) -MT $@ -o $*.d.$(PLATFORM) $<
+       @$(CC) -M $(CPPFLAGS) -MT $@ -o $@.dep $<
 
 # Modify the default makefile to put the executable at 1MB instead
-link.ld.lin:
-       @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' > $@
+obj-lin/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)
 

UCC git Repository :: git.ucc.asn.au