Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #! /usr/bin/make -f
- # -*- makefile -*-
- # debian/rules file for GNU libc.
- # Copyright 1998, 1999 by Joel Klecker <espy@debian.org>
- # Copyright 2000 Ben Collins <bcollins@debian.org>
- # Copyright 2003 Jeff Bailey <jbailey@debian.org>
- # This Makefile is free software; you can redistribute it and/or modify
- # it under the terms of the GNU General Public License as published by
- # the Free Software Foundation; either version 2 of the License, or
- # (at your option) any later version.
- # What are the phases to building glibc?
- # Unpack main tarball
- # Do any necessary overlays
- # Apply patches
- # Determine how many builds there are to do. For Each build:
- # Create build directory
- # Configure
- # Build
- # Test as desired
- # Install to package directories
- # Run debian magic to build packages.
- # Things you may need to customise:
- # These are done as absolute paths so that in the case of filesystem size
- # limitations, they can be overridden and spread all over.
- build-tree := build-tree
- stamp := $(CURDIR)/stamp-dir/
- DUMMY := $(shell mkdir -p $(stamp))
- # Beyond here you shouldn't need to customise anything:
- export SHELL = /bin/bash -e
- DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH)
- DEB_HOST_ARCH_ENDIAN ?= $(shell dpkg-architecture -qDEB_HOST_ARCH_ENDIAN)
- DEB_HOST_ARCH_OS ?= $(shell dpkg-architecture -qDEB_HOST_ARCH_OS)
- DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
- DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
- DEB_BUILD_ARCH ?= $(shell dpkg-architecture -qDEB_BUILD_ARCH)
- DEB_BUILD_ARCH_BITS ?= $(shell dpkg-architecture -qDEB_BUILD_ARCH_BITS)
- DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
- DEB_SOURCE_PACKAGE := $(strip $(shell egrep '^Source: ' debian/control | cut -f 2 -d ':'))
- DEB_VERSION := $(shell dpkg-parsechangelog | egrep '^Version:' | cut -f 2 -d ' ')
- GLIBC_VERSION = $(shell echo $(DEB_VERSION) | sed -e 's/.*://' -e 's/[+-].*//')
- SOURCE_DATE_EPOCH ?= $(shell dpkg-parsechangelog -STimestamp)
- # The minimum package version with which these packages are compatible.
- shlib_dep_ver = $(GLIBC_VERSION)
- shlib_dep = $(libc) (>= $(shlib_dep_ver))
- DEB_BUILDDIR ?= $(build-tree)/$(DEB_HOST_ARCH)-$(curpass)
- DEB_BUILDDIRLIBC ?= $(build-tree)/$(DEB_HOST_ARCH)-libc
- GLIBC_SOURCES = $(filter-out debian $(shell basename $(stamp)) $(build-tree), $(wildcard *))
- # Support multiple makes at once based on number of processors
- ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
- NJOBS := -j $(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
- endif
- # use the package settings, not the settings from the environment
- define unsetenv
- unexport $(1)
- $(1) =
- endef
- $(foreach v, CPPFLAGS CFLAGS CXXFLAGS LDFLAGS, $(if $(filter environment,$(origin $(v))),$(eval $(call unsetenv, $(v)))))
- # Default setup
- GLIBC_PASSES ?= libc
- prefix=/usr
- bindir=$(prefix)/bin
- datadir=$(prefix)/share
- complocaledir=$(prefix)/lib/locale
- sysconfdir=/etc
- libexecdir=$(prefix)/lib
- rootsbindir=/sbin
- includedir=$(prefix)/include
- docdir=$(prefix)/share/doc
- mandir=$(prefix)/share/man
- sbindir=$(prefix)/sbin
- vardbdir=/var/lib/misc
- rtlddir=/lib
- slibdir=/lib/$(DEB_HOST_MULTIARCH)
- libdir=/usr/lib/$(DEB_HOST_MULTIARCH)
- mvec = no
- BASE_CC = gcc
- BASE_CXX = g++
- BASE_MIG = mig
- DEB_GCC_VERSION ?= -8
- RUN_TESTSUITE = yes
- TIMEOUTFACTOR = 25
- # Set cross and native compiler names, including version.
- CC = $(DEB_HOST_GNU_TYPE)-$(BASE_CC)$(DEB_GCC_VERSION) -no-pie -fno-PIE
- CXX = $(DEB_HOST_GNU_TYPE)-$(BASE_CXX)$(DEB_GCC_VERSION) -no-pie -fno-PIE
- MIG = $(DEB_HOST_GNU_TYPE)-$(BASE_MIG)
- BUILD_CC = $(DEB_BUILD_GNU_TYPE)-$(BASE_CC)
- BUILD_CXX = $(DEB_BUILD_GNU_TYPE)-$(BASE_CXX)
- BUILD_CFLAGS = -O2 -g
- HOST_CFLAGS = -pipe -O2 -g $(call xx,extra_cflags)
- # 32-bit MIPS builders have a 2GB memory space. This is not enough to
- # build test-tgmath3.o with GCC, unless tweaking the garbage collector.
- ifeq ($(findstring mips,$(DEB_BUILD_ARCH))-$(DEB_BUILD_ARCH_BITS), mips-32)
- CC += --param ggc-min-expand=10
- endif
- configure_target := $(DEB_HOST_GNU_TYPE)
- # Normally we'll just use this for --build. If the architecture requires
- # that build daemons be able to run a particular optimized library, then
- # they can set the --build to match --host for that optimized build.
- # Among other things this lets tests run.
- configure_build := $(DEB_BUILD_GNU_TYPE)
- # Which build pass are we on?
- curpass = $(filter-out %_,$(subst _,_ ,$@))
- ifneq ($(filter stage1,$(DEB_BUILD_PROFILES)),)
- DEB_ARCH_REGULAR_PACKAGES = $(libc)-dev
- DEB_INDEP_REGULAR_PACKAGES =
- DEB_UDEB_PACKAGES =
- ifeq ($(filter nocheck,$(DEB_BUILD_OPTIONS)),)
- DEB_BUILD_OPTIONS+=nocheck
- endif
- else
- DEB_ARCH_REGULAR_PACKAGES = $(libc) $(libc)-dev $(libc)-dbg $(libc)-pic libc-bin libc-dev-bin multiarch-support
- DEB_INDEP_REGULAR_PACKAGES = glibc-doc glibc-source locales
- DEB_UDEB_PACKAGES = $(libc)-udeb
- ## Locales can only be pre-generated during native compiles
- ifeq ($(DEB_HOST_ARCH),$(DEB_BUILD_ARCH))
- DEB_ARCH_REGULAR_PACKAGES += locales-all
- endif
- endif
- # Generic kernel version check
- define kernel_check
- (if [ $(CURRENT_KERNEL_VERSION) -lt $(1) ]; then \
- false; \
- fi)
- endef
- # Include libidn for both NPTL and FBTL targets.
- standard-add-ons = libidn,
- # Pull in all the per-arch magic!
- -include debian/sysdeps/$(DEB_HOST_ARCH_OS).mk
- -include debian/sysdeps/$(DEB_HOST_ARCH).mk
- ifneq ($(filter stage1,$(DEB_BUILD_PROFILES)),)
- DEB_ARCH_REGULAR_PACKAGES += $(foreach p,$(DEB_ARCH_MULTILIB_PACKAGES), $(if $(findstring -dev,$(p)), $(p)))
- else
- DEB_ARCH_REGULAR_PACKAGES += $(DEB_ARCH_MULTILIB_PACKAGES)
- endif
- # Don't run dh_strip on this package
- NOSTRIP_$(libc)-dbg = 1
- # Put the debug files from these packages in $(libc)-dbg
- DEBUG_$(libc) = 1
- DEBUG_libc6-xen = 1
- DEBUG_libc6.1-alphaev67 = 1
- ifeq ($(filter stage1,$(DEB_BUILD_PROFILES)),)
- ifeq ($(threads),yes)
- DEB_ARCH_REGULAR_PACKAGES += nscd
- endif
- endif
- # And now the rules...
- include debian/rules.d/*.mk
- clean:: unpatch
- rm -rf $(patsubst %,debian/tmp-%,$(GLIBC_PASSES))
- rm -rf $(build-tree)
- rm -rf $(stamp)
- rm -rf debian/include
- rm -f debian/control.in/libc0.1 debian/control.in/libc0.3 \
- debian/control.in/libc6 debian/control.in/libc6.1 \
- debian/*.preinst.*
- # Required Debian targets
- build-arch: $(stamp)info \
- $(patsubst %,$(stamp)build_%,$(GLIBC_PASSES)) \
- $(patsubst %,$(stamp)check_%,$(GLIBC_PASSES))
- ifeq ($(filter stage1,$(DEB_BUILD_PROFILES)),)
- build-arch: $(stamp)build_C.UTF-8 \
- $(stamp)build_locales-all
- endif
- build-indep: $(stamp)source
- build: build-arch build-indep
- binary-indep: build-indep testroot debian/control $(build-tree) \
- $(patsubst %,$(stamp)binaryinst_%,$(DEB_INDEP_REGULAR_PACKAGES))
- binary-arch: build-arch testroot debian/control $(build-tree) \
- $(patsubst %,$(stamp)binaryinst_%,$(DEB_ARCH_REGULAR_PACKAGES)) \
- $(patsubst %,$(stamp)binaryinst_%,$(DEB_UDEB_PACKAGES))
- binary: binary-indep binary-arch
- testroot:
- dh_testroot
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement