Usermode/ld-acess - Overhaul cleanup of ELF loader
[tpg/acess2.git] / Usermode / Libraries / ld-acess.so_src / Makefile
index d204771..78aac4b 100644 (file)
@@ -4,36 +4,54 @@
 
 -include ../Makefile.cfg
 
-COBJ = main.o lib.o loadlib.o elf.o pe.o
-AOBJ = core.ao vfs.ao mm.ao
-BIN = ../ld-acess.so
-
-CFLAGS   = -Wall -fno-builtin -fno-leading-underscore -fno-stack-protector
-ASFLAGS  = -felf
-LDFLAGS  = -T link.ld -Map map.txt -Bstatic
-
-
-.PHONY: all clean install
-
-all:   $(BIN)
+OBJ := main.o lib.o loadlib.o export.o elf.o pe.o
+OBJ += arch/$(ARCHDIR).ao_
+BIN = ld-acess.so
+EXTRABIN := libld-acess.so
+EXTRACLEAN = $(_OBJPREFIX)_stublib.o
+INCFILES := sys/sys.h
+
+#CPPFLAGS += -D DISABLE_ELF64
+CFLAGS   = -g -Wall -fno-builtin -fno-stack-protector -fPIC -std=c99 -ffreestanding
+# -fno-leading-underscore
+CFLAGS  += $(CPPFLAGS)
+LDFLAGS  = -ffreestanding -nostdlib -g -Wl,-T,arch/$(ARCHDIR).ld -Map map.txt --export-dynamic -x
+LIBS := $(LIBGCC_PATH)
+
+ifeq ($(ARCH),native)
+XBIN := $(addprefix $(OUTPUTDIR)Libs/,$(EXTRABIN)) 
+$(XBIN): obj-$(ARCH)/_stublib.o
+all: $(XBIN)
+CFLAGS += -ffreestanding
+LDFLAGS := 
+BIN := 
+OBJ :=
+endif
+
+include ../Makefile.tpl
+
+# create libld-acess.so
+$(_XBIN): $(_OBJPREFIX)_stublib.o
+       @echo [LD] -o -shared libld-acess.so
+       $(LD) -shared -o $@ $<
+#      @$(LD) $(LDFLAGS) -o $@ $(OBJ)
+
+
+# Override .ao to look in the object prefix for the source
+$(_OBJPREFIX)arch/$(ARCHDIR).ao_: $(_OBJPREFIX)arch/$(ARCHDIR).$(ASSUFFIX)
+       @echo [AS] -o $@
+       @mkdir -p $(dir $@)
+       @$(AS) $(ASFLAGS) -o $@ $<
 
-clean:
-       $(RM) $(BIN) $(AOBJ) $(COBJ) ld-acess.dmp ld-acess.dsm link.txt map.txt
+#.PRECIOUS: $(OBJ:%.ao=%.asm)
 
-install: $(BIN)
-       $(xCP) $(BIN) $(DISTROOT)/Libs/
+# Preprocessing objects if needed
+$(_OBJPREFIX)arch/$(ARCHDIR).$(ASSUFFIX): arch/$(ARCHDIR).$(ASSUFFIX).h arch/syscalls.s.h
+       @echo [CPP] -o $@
+       @mkdir -p $(dir $@)
+       @$(CPP) $(CPPFLAGS) -P -D__ASSEMBLER__ $< -o $@
 
-$(BIN): $(AOBJ) $(COBJ)
-       @echo --- $(LD) -shared -o $@
-       @$(LD) $(LDFLAGS) -o $(BIN) $(AOBJ) $(COBJ) > link.txt
-       $(OBJDUMP) -x $(BIN) > ld-acess.dmp
-       $(OBJDUMP) -d $(BIN) > ld-acess.dsm
+$(_OBJPREFIX)arch/$(ARCHDIR).$(ASSUFFIX): $(ACESSDIR)/KernelLand/Kernel/include/syscalls.h
 
-$(COBJ): %.o: %.c
-       @echo $(CC) -o $@
-       @$(CC) $(CFLAGS) -o $@ -c $<
+$(_OBJPREFIX)_stublib.o: arch/syscalls.s.h
 
-$(AOBJ): %.ao: %.asm
-       @echo $(AS) -o $@
-       @$(AS) $(ASFLAGS) -o $@ $<
-       

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