(linenum→info "unix/slp.c:2238")

glibc/2.7/Rules

    1: # Copyright (C) 1991-2000,2002,2003,2004,2005,2006
    2: #       Free Software Foundation, Inc.
    3: # This file is part of the GNU C Library.
    4: 
    5: # The GNU C Library is free software; you can redistribute it and/or
    6: # modify it under the terms of the GNU Lesser General Public
    7: # License as published by the Free Software Foundation; either
    8: # version 2.1 of the License, or (at your option) any later version.
    9: 
   10: # The GNU C Library is distributed in the hope that it will be useful,
   11: # but WITHOUT ANY WARRANTY; without even the implied warranty of
   12: # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   13: # Lesser General Public License for more details.
   14: 
   15: # You should have received a copy of the GNU Lesser General Public
   16: # License along with the GNU C Library; if not, write to the Free
   17: # Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
   18: # 02111-1307 USA.
   19: 
   20: #
   21: #       Rules for making a subdirectory in the GNU C library.
   22: #       Each subdirectory Makefile defines some variables and includes this.
   23: #
   24: ifneq (,)
   25: This makefile requires GNU Make.
   26: endif
   27: 
   28: all: # Don't let the default goal come from Makeconfig.
   29: 
   30: include $(firstword $(..) ../)Makeconfig
   31: 
   32: ifndef  subdir
   33: Each subdirectory makefile must define the `subdir' variable.
   34: endif
   35: # This ` unconfuses emacs.
   36: # This is benign and useless in GNU make before 3.63.
   37: export subdir := $(subdir)
   38: ^L
   39: # This is the default target; it makes the library and auxiliary programs.
   40: .PHONY: all
   41: all: objs lib others
   42: 
   43: ifeq ($(build-programs),yes)
   44: others: $(addprefix $(objpfx),$(extra-objs) \
   45:                               $(install-lib) \
   46:                               $(install-bin) $(install-bin-script) \
   47:                               $(install-rootsbin) $(install-sbin))
   48: else
   49: others: $(addprefix $(objpfx),$(extra-objs) \
   50:                               $(install-lib))
   51: endif
   52: 
   53: ifneq   "$(findstring env,$(origin headers))" ""
   54: headers :=
   55: endif
   56: 
   57: ifneq   "$(findstring env,$(origin generated))" ""
   58: generated :=
   59: endif
   60: 
   61: ifneq   "$(findstring env,$(origin common-generated))" ""
   62: common-generated :=
   63: endif
   64: 
   65: # See below.  This must be set before Makerules processes it.
   66: before-compile += $(common-objpfx)bits/stdio_lim.h
   67: 
   68: include $(..)Makerules
   69: 
   70: .PHONY: subdir_lib
   71: subdir_lib: lib-noranlib
   72: 
   73: # Some subdirs need to install a dummy library.
   74: # They can use "$(objpfx)libfnord.a: $(dep-dummy-lib); $(make-dummy-lib)".
   75: dep-dummy-lib = $(common-objpfx)dummy.o
   76: define make-dummy-lib
   77: $(AR) cr$(verbose) $@ $<
   78: endef
   79: 
   80: $(common-objpfx)dummy.c:
   81:         rm -f $@
   82:         (echo 'extern void __dummy__ (void);'; \
   83:          echo 'void __dummy__ (void) { }') > $@
   84: common-generated += dummy.o dummy.c
   85: ^L
   86: # This makes all the auxiliary and test programs.
   87: 
   88: .PHONY: others tests
   89: ifeq ($(build-programs),yes)
   90: others: $(addprefix $(objpfx),$(others) $(sysdep-others) $(extra-objs))
   91: else
   92: others: $(addprefix $(objpfx),$(extra-objs))
   93: endif
   94: ifeq ($(cross-compiling),yes)
   95: tests: $(addprefix $(objpfx),$(tests) $(test-srcs))
   96: xtests: tests
   97: else
   98: ifeq ($(build-bounded),yes)
   99: tests-bp.out = $(tests:%=$(objpfx)%-bp.out)
  100: xtests-bp.out = $(xtests:%=$(objpfx)%-bp.out)
  101: endif
  102: tests: $(tests:%=$(objpfx)%.out) $(tests-bp.out)
  103: xtests: tests $(xtests:%=$(objpfx)%.out) $(xtests-bp.out)
  104: endif
  105: 
  106: ifeq ($(build-programs),yes)
  107: binaries-all = $(others) $(sysdep-others) $(tests) $(xtests) $(test-srcs)
  108: binaries-static = $(others-static) $(tests-static) $(xtests-static)
  109: else
  110: binaries-all = $(tests) $(xtests) $(test-srcs)
  111: binaries-static =
  112: endif
  113: 
  114: binaries-shared = $(filter-out $(binaries-static), $(binaries-all))
  115: 
  116: ifneq "$(strip $(binaries-shared))" ""
  117: $(addprefix $(objpfx),$(binaries-shared)): %: %.o \
  118:   $(sort $(filter $(common-objpfx)lib%,$(link-libc))) \
  119:   $(addprefix $(csu-objpfx),start.o) $(+preinit) $(+postinit)
  120:         $(+link)
  121: endif
  122: 
  123: ifneq "$(strip $(binaries-static))" ""
  124: $(addprefix $(objpfx),$(binaries-static)): %: %.o \
  125:   $(sort $(filter $(common-objpfx)lib%,$(link-libc-static))) \
  126:   $(addprefix $(csu-objpfx),start.o) $(+preinit) $(+postinit)
  127:         $(+link-static)
  128: endif
  129: 
  130: ifeq ($(build-bounded),yes)
  131: binaries-bounded = $(addsuffix -bp,$(tests) $(xtests) $(test-srcs))
  132: $(addprefix $(objpfx),$(binaries-bounded)): %-bp: %.ob \
  133:   $(sort $(filter $(common-objpfx)lib%,$(link-libc-bounded))) \
  134:   $(addprefix $(csu-objpfx),start.ob) $(+preinit) $(+postinit)
  135:         $(+link-bounded)
  136: endif
  137: 
  138: ifneq "$(strip $(tests) $(xtests) $(test-srcs))" ""
  139: # These are the implicit rules for making test outputs
  140: # from the test programs and whatever input files are present.
  141: 
  142: make-test-out = GCONV_PATH=$(common-objpfx)iconvdata LC_ALL=C \
  143:                 $($*-ENV) $(built-program-cmd) $($*-ARGS)
  144: $(objpfx)%-bp.out: %.input $(objpfx)%-bp
  145:         $(make-test-out) > $@ < $(word 1,$^)
  146: $(objpfx)%.out: %.input $(objpfx)%
  147:         $(make-test-out) > $@ < $(word 1,$^)
  148: $(objpfx)%.out: /dev/null $(objpfx)%    # Make it 2nd arg for canned sequence.
  149:         $(make-test-out) > $@
  150: 
  151: endif   # tests
  152: ^L
  153: .PHONY: distclean realclean subdir_distclean subdir_realclean \
  154:         subdir_clean subdir_mostlyclean subdir_testclean
  155: subdir_mostlyclean: mostlyclean
  156: subdir_clean: clean
  157: subdir_distclean: distclean
  158: subdir_realclean: realclean
  159: subdir_testclean: do-tests-clean
  160: realclean: distclean
  161: distclean: clean
  162: 
  163: # We want to install everything except the library itself, but update all
  164: # our portions of the library because the parent make will install it later
  165: # (likewise the stubs file).
  166: .PHONY: subdir_install
  167: subdir_install: install-no-libc.a lib-noranlib stubs
  168: 
  169: .PHONY: subdir_objs subdir_stubs
  170: subdir_objs: objs
  171: subdir_stubs: stubs
  172: 
  173: # Target required by the Hurd to ensure that all the MiG-generated
  174: # headers are in place before building a subdirectory.
  175: .PHONY: before-compile
  176: before-compile: $(before-compile)
  177: 
  178: $(common-objpfx)dummy.o: $(common-objpfx)dummy.c $(before-compile);
  179:         $(compile-command.c)
  180: 
  181: # Local Variables:
  182: # mode: makefile
  183: # End:
Syntax (Markdown)