The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/libsyscall/BSDmakefile

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 .ifndef DSTROOT
    2 DSTROOT != x=`pwd`/DSTROOT && mkdir -p $$x && echo $$x
    3 .endif
    4 .ifndef OBJROOT
    5 OBJROOT != x=`pwd`/OBJROOT && mkdir -p $$x && echo $$x
    6 .endif
    7 .ifndef SRCROOT
    8 SRCROOT != dirname `pwd`
    9 .endif
   10 .ifndef SYMROOT
   11 SYMROOT != x=`pwd`/SYMROOT && mkdir -p $$x && echo $$x
   12 .endif
   13 ARCH != arch
   14 .ifndef RC_ARCHS
   15 RC_ARCHS = $(ARCH)
   16 RC_$(RC_ARCHS) = 1
   17 .endif
   18 NARCHS != echo $(RC_ARCHS) | wc -w
   19 LIBSYS = $(NEXT_ROOT)/usr/local/lib/system
   20 NJOBS != perl -e '$$n = `/usr/sbin/sysctl -n hw.ncpu`; printf "%d\n", $$n < 2 ? 2 : ($$n * 1.5)'
   21 BSDMAKE = bsdmake -f Makefile
   22 BSDMAKEJ = $(BSDMAKE) -j $(NJOBS)
   23 
   24 # This variables are to guarantee that the left-hand side of an expression is
   25 # always a variable
   26 dynamic = dynamic
   27 static = static
   28 
   29 # Remove the arch stuff, since we know better here.
   30 LOCAL_CFLAGS != echo $(RC_CFLAGS) | sed 's/ *-arch [^ ][^ ]*//g'
   31 
   32 FORMS := debug dynamic profile static
   33 
   34 all: setup build
   35 
   36 build: build-debug build-dynamic build-profile build-static
   37 
   38 # These are the non B&I defaults
   39 .ifndef RC_ProjectName
   40 install: installhdrs install-all
   41 
   42 .else # RC_ProjectName
   43 
   44 install: setup
   45 .for F in $(FORMS)
   46 install: BI-install-$(F)
   47 .endfor # FORMS
   48 install:
   49         install -c -m 444 $(OBJROOT)/sys/libsyscall.list $(DSTROOT)/usr/local/lib/system
   50 .endif # RC_ProjectName
   51 
   52 .for F in $(FORMS)
   53 .if $(dynamic) == $(F)
   54 SUFFIX$(F) =
   55 .else
   56 SUFFIX$(F) = _$(F)
   57 .endif
   58 LIPOARGS$(F) != perl -e 'printf "%s\n", join(" ", map(qq(-arch $$_ \"$(OBJROOT)/obj.$$_/libsyscall$(SUFFIX$(F)).a\"), qw($(RC_ARCHS))))'
   59 
   60 .for A in $(RC_ARCHS)
   61 build-$(F): build-$(A)-$(F)
   62 .endfor # RC_ARCHS
   63 build-$(F):
   64 .if $(NARCHS) == 1
   65         cp -p "$(OBJROOT)/obj.$(RC_ARCHS)/libsyscall$(SUFFIX$(F)).a" "$(SYMROOT)"
   66 .else
   67         lipo -create $(LIPOARGS$(F)) -output $(SYMROOT)/libsyscall$(SUFFIX$(F)).a
   68 .endif
   69 
   70 .for A in $(RC_ARCHS)
   71 build-$(A)-$(F):
   72         mkdir -p $(OBJROOT)/obj.$(A) && \
   73         MAKEOBJDIR="$(OBJROOT)/obj.$(A)" MACHINE_ARCH="$(A)" \
   74                 DSTROOT='$(DSTROOT)' OBJROOT='$(OBJROOT)' SYMROOT='$(SYMROOT)' \
   75                 MAKEFLAGS="" CFLAGS="-arch $(A) $(LOCAL_CFLAGS)" $(BSDMAKEJ) libsyscall$(SUFFIX$(F)).a
   76 .endfor # RC_ARCHS
   77 .endfor # FORMS
   78 
   79 installhdrs:
   80         MAKEOBJDIR="$(OBJROOT)" DESTDIR="$(DSTROOT)" MAKEFLAGS="" \
   81                 DSTROOT='$(DSTROOT)' OBJROOT='$(OBJROOT)' SYMROOT='$(SYMROOT)' \
   82                 $(BSDMAKE) installhdrs
   83 .for A in $(RC_ARCHS)
   84         mkdir -p "$(OBJROOT)/obj.$(A)" && \
   85         MAKEOBJDIR="$(OBJROOT)/obj.$(A)" MACHINE_ARCH="$(A)" \
   86                 DSTROOT='$(DSTROOT)' OBJROOT='$(OBJROOT)' SYMROOT='$(SYMROOT)' \
   87                 MAKEFLAGS="" $(BSDMAKE) installhdrs-md
   88 .endfor # RC_ARCHS
   89 
   90 .for F in $(FORMS)
   91 BI-install-$(F): build-$(F)
   92         mkdir -p $(DSTROOT)/usr/local/lib/system
   93         if [ -f "$(SYMROOT)/libsyscall$(SUFFIX$(F)).a" ]; then \
   94                 echo "Installing libsyscall$(SUFFIX$(F)).a" && \
   95                 install -c -m 444 "$(SYMROOT)/libsyscall$(SUFFIX$(F)).a" \
   96                         $(DSTROOT)/usr/local/lib/system && \
   97                 ranlib "$(DSTROOT)/usr/local/lib/system/libsyscall$(SUFFIX$(F)).a"; \
   98         fi
   99 .endfor # FORMS
  100 
  101 install-man:
  102         mkdir -p $(DSTROOT)/usr/share/man/man2
  103         MAKEOBJDIR="$(OBJROOT)" DESTDIR="$(DSTROOT)" \
  104                 DSTROOT='$(DSTROOT)' OBJROOT='$(OBJROOT)' SYMROOT='$(SYMROOT)' \
  105                 MACHINE_ARCH="$(ARCH)" MAKEFLAGS="" $(BSDMAKE) all-man maninstall
  106 
  107 install-all: setup build install-man
  108 .for F in $(FORMS)
  109 install-all: BI-install-$(F)
  110 .endfor # FORMS
  111 
  112 clean:
  113 .for F in $(FORMS)
  114         rm -f $(OBJROOT)/libsyscall$(SUFFIX$(F)).a
  115 .endfor # FORMS
  116 .for A in $(RC_ARCHS)
  117         rm -rf $(OBJROOT)/obj.$(A)
  118 .endfor # RC_ARCHS
  119 
  120 INCLUDEDIR = $(OBJROOT)/include
  121 SYSDIR = $(OBJROOT)/sys
  122 
  123 setup: $(INCLUDEDIR) $(SYSDIR)
  124 
  125 USR-INCLUDE = /usr/include
  126 MOD-HEADERS = architecture/ppc/mode_independent_asm.h architecture/i386/asm_help.h
  127 
  128 $(INCLUDEDIR):
  129         mkdir -p $(INCLUDEDIR)
  130 .for h in $(MOD-HEADERS)
  131         mkdir -p $(INCLUDEDIR)/$(h:H)
  132         sed 's/\.globl/.private_extern/g' $(USR-INCLUDE)/$(h) > $(INCLUDEDIR)/$(h)
  133 .endfor # MOD-HEADERS
  134 
  135 $(SYSDIR):
  136         mkdir -p $(SYSDIR)
  137         $(SRCROOT)/libsyscall/create-syscalls.pl $(SRCROOT)/bsd/kern/syscalls.master $(SRCROOT)/libsyscall/custom $(SYSDIR)

Cache object: dd94b97e4016e385db798ee0d6a8f379


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.