Makefile 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. ################################################################################
  2. #
  3. # Copyright (c) 2013 Minoca Corp. All Rights Reserved
  4. #
  5. # Module Name:
  6. #
  7. # Minoca OS Library
  8. #
  9. # Abstract:
  10. #
  11. # This module implements the native system call interface between user
  12. # mode applications and the kernel. It runs in user mode, and is utilized
  13. # by the C library (or by applications directly) as an interface to the
  14. # kernel. Applications are permitted to link against this library and
  15. # call functions exported by it, but are not allowed to make system calls
  16. # themselves (most of this library is simply a function call veneer over
  17. # the system calls anyway). Applications utilizing this native library
  18. # can get added functionality or performance, but at the cost of
  19. # portability.
  20. #
  21. # Author:
  22. #
  23. # Evan Green 25-Feb-2013
  24. #
  25. # Environment:
  26. #
  27. # User Mode
  28. #
  29. ################################################################################
  30. BINARY = libminocaos.so.1
  31. BINARYTYPE = so
  32. BINPLACE = bin
  33. ENTRY = OsDynamicLoaderMain
  34. OBJS = env.o \
  35. heap.o \
  36. osimag.o \
  37. osbase.o \
  38. rwlock.o \
  39. socket.o \
  40. spinlock.o \
  41. time.o \
  42. tls.o \
  43. ARMV7_OBJS = armv7/features.o \
  44. armv7/osbasea.o \
  45. armv7/syscall.o \
  46. ARMV6_OBJS = $(ARMV7_OBJS)
  47. X86_OBJS = x86/features.o \
  48. x86/osbasea.o \
  49. x86/syscall.o \
  50. X64_OBJS = x64/osbasea.o \
  51. x64/syscall.o \
  52. EXTRA_LDFLAGS += -Wl,-Bsymbolic
  53. EXTRA_LDFLAGS += -nodefaultlibs -nostartfiles -nostdlib -Wl,--whole-archive
  54. EXTRA_SRC_DIRS = x86 x64 armv7
  55. TARGETLIBS = $(OBJROOT)/os/lib/rtl/base/basertl.a \
  56. $(OBJROOT)/os/lib/rtl/base/wide/basertlw.a \
  57. $(OBJROOT)/os/lib/im/im.a \
  58. $(OBJROOT)/os/apps/osbase/urtl/urtl.a \
  59. $(OBJROOT)/os/lib/crypto/crypto.a \
  60. DIRS = urtl \
  61. include $(SRCROOT)/os/minoca.mk
  62. $(OBJROOT)/os/apps/osbase/urtl/urtl.a: urtl
  63. postbuild:
  64. @mkdir -p $(BINROOT)/skel/lib
  65. @if test -d $(BINROOT)/skel/lib && \
  66. test $(BINROOT)/$(BINARY) -nt $(BINROOT)/skel/lib/$(BINARY); then \
  67. cp $(BINROOT)/$(BINARY) $(BINROOT)/skel/lib/ ; \
  68. fi