Subversion Repositories Kolibri OS

Rev

Rev 6324 | Blame | Compare with Previous | Last modification | View Log | RSS feed

  1. CC = kos32-gcc
  2. LD = kos32-ld
  3. SDK_DIR = ../../../sdk
  4.  
  5. NAME= ld-new
  6.  
  7. LIB_DIR:= $(SDK_DIR)/lib
  8.  
  9. CFLAGS_OPT = -U_Win32 -U_WIN32 -U__MINGW32__ -UWIN32 -U_MSC_VER -O2
  10. CFLAGS_OPT+= -fomit-frame-pointer -fno-ident -mno-ms-bitfields
  11. CFLAGS_OPT+= -W -Wall -Wmissing-prototypes -Wno-format -Werror
  12. ELF_CFLAGS = -DELF_LIST_OPTIONS=FALSE -DELF_SHLIB_LIST_OPTIONS=FALSE
  13. ELF_CFLAGS+= -DELF_PLT_UNWIND_LIST_OPTIONS=FALSE
  14. CFLAGS   = -c -save-temps $(CFLAGS_OPT) $(ELF_CFLAGS)
  15.  
  16. INCLUDES= -I. -I../bfd -I../include -I$(SDK_DIR)/sources/newlib/libc/include
  17.  
  18. DEFINES=  -DHAVE_CONFIG_H -DLOCALEDIR='"/home/autobuild/tools/win32/share/locale"'
  19. FDEFS=    -DSCRIPTDIR='"/home/autobuild/tools/win32/mingw32/lib"' -DBINDIR='"/home/autobuild/tools/win32/bin"'
  20. FDEFS+=   -DTOOLBINDIR='"/home/autobuild/tools/win32/mingw32/bin"'
  21. MDEFS=    -DDEFAULT_EMULATION='"i386pe"' -DBINDIR='"/home/autobuild/tools/win32/bin"'
  22. MDEFS+=   -DTOOLBINDIR='"/home/autobuild/tools/win32/mingw32/bin"' -DTARGET='"i686-pc-mingw32"'
  23. MDEFS+=   -DTARGET_SYSTEM_ROOT='"/home/autobuild/tools/win32"' -DTARGET_SYSTEM_ROOT_RELOCATABLE
  24.  
  25. LIBS= -lc -lbfd -liberty -lz -lgcc -lc.dll
  26.  
  27. LIBPATH:= -L$(LIB_DIR) -L/home/autobuild/tools/win32/mingw32/lib
  28.  
  29. LDFLAGS = -static -nostdlib --stack 12582912 -T$(SDK_DIR)/sources/newlib/app.lds --image-base 0 --subsystem native
  30.  
  31.  
  32. SRCS = \
  33.         deffilep.c ei386pe.c ldbuildid.c\
  34.         ldcref.c ldctor.c ldemul.c      \
  35.         ldexp.c  ldfile.c ldgram.c      \
  36.         ldlang.c ldlex-wrapper.c        \
  37.         ldmain.c ldmisc.c  ldver.c      \
  38.         ldwrite.c lexsup.c mri.c        \
  39.         pe-dll.c
  40.  
  41.  
  42.  
  43. OBJS  =  $(patsubst %.cpp, %.o, $(patsubst %.c, %.o, $(SRCS)))
  44.  
  45. # targets
  46.  
  47. all: $(NAME)
  48.  
  49. $(NAME): $(OBJS) Makefile
  50.         $(LD) $(LDFLAGS) $(LIBPATH) -o $@ $(OBJS) $(LIBS)
  51.         kos32-objcopy $@ -O binary
  52.  
  53. %.o : %.c Makefile
  54.         $(CC) $(CFLAGS) $(DEFINES) $(INCLUDES) -o $@ $<
  55.  
  56. ldfile.o : ldfile.c Makefile
  57.         $(CC) $(CFLAGS) $(DEFINES) $(FDEFS) $(INCLUDES) -o $@ $<
  58.  
  59. ldmain.o : ldmain.c Makefile
  60.         $(CC) $(CFLAGS) $(DEFINES) $(MDEFS) $(INCLUDES) -o $@ $<
  61.  
  62.