Permalink
Cannot retrieve contributors at this time
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
glibc/rpm/Makefile
Go to fileThis commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
92 lines (74 sloc)
2.91 KB
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# A start at automated rpm-making for GNU libc. | |
# Generates an rpm spec file in `CPU-VENDOR-OS' from the list of installed | |
# files and the `template' file. | |
all: | |
subdir := rpm | |
include ../Makeconfig | |
include $(common-objpfx)soversions.mk | |
include $(common-objpfx)version.mk | |
distinfo := $(wildcard $(subdirs:%=../%/distinfo)) | |
-include $(distinfo) | |
config = $(config-machine)-$(config-vendor)-$(config-os) | |
headers := $(foreach d,$(subdirs),$($d-headers)) | |
install-lib := $(foreach d,$(subdirs),$($d-install-lib)) | |
install-lib.so := $(foreach d,$(subdirs),$(filter-out $($d-versioned),\ | |
$($d-install-lib.so))) | |
versioned := $(foreach d,$(subdirs),$($d-versioned)) | |
install-bin := $(foreach d,$(subdirs),$($d-install-bin)) | |
install-sbin := $(foreach d,$(subdirs),$($d-install-sbin)) | |
install-data := $(foreach d,$(subdirs),$($d-install-data)) | |
install-others := $(foreach d,$(subdirs),$($d-install-others)) | |
# Notice things to be installed in /etc. They get specially marked as | |
# possibly user-modified config files. | |
install-sysconf := $(filter $(sysconfdir)/%,$(install-others)) | |
install-others := $(filter-out $(sysconfdir)/%,$(install-others)) | |
# Add the unversioned lib*.so's to install-lib. | |
install-lib += $(install-lib.so) | |
# For each versioned lib*.so, add three files: | |
# lib*-VERSION.so, lib*.so.MAJOR, and lib*.so | |
install-lib += $(foreach lib,$(versioned),\ | |
$(patsubst %.so,%-$(version).so,$(lib)) \ | |
$(lib)$($(lib)-version) $(lib)) | |
# Add libc.a and libc_p.a. | |
install-lib += $(foreach o,$(filter-out .so,$(object-suffixes)),\ | |
$(patsubst %,$(libtype$o),c)) | |
ifeq (yes,$(build-shared)) | |
# Add libc.so itself, which is a special case in Makerules. | |
ifndef libc.so-version | |
install-others += $(slibdir)/libc.so | |
else | |
install-others += $(libdir)/libc.so \ | |
$(slibdir)/libc-$(version).so \ | |
$(slibdir)/libc.so$(libc.so-version) | |
endif | |
endif | |
all: glibc-$(version).$(config).rpm | |
instvars = include lib bin sbin data others | |
# Generate the rpm spec file for this configuration. | |
$(config): template $(distinfo) Makefile | |
rm -f $@.new | |
(sed -e 's%@VERSION@%$(version)%g' $<; \ | |
($(foreach var,$(instvars),\ | |
for f in $(install-$(var)); do \ | |
echo $(filter-out /,$($(var)dir)/)$$f; \ | |
done;\ | |
)) | sort; \ | |
(for f in $(install-sysconf); do \ | |
echo %config $$f; \ | |
done) | sort) > $@.new | |
mv -f $@.new $@ | |
install-include = $(headers) | |
instfiles := $(sort $(foreach x,$(instvars),\ | |
$(addprefix $(filter-out /,$($xdir)/),\ | |
$(install-$x)))) | |
# Build the binary rpm for this configuration. | |
glibc-$(version).$(config).rpm: $(config) rpmrc $(instfiles) | |
# rpm is really lame. You cannot tell it the name of the output file, | |
# and you can only guess at what the name will turn out to be! | |
arch=`uname -m | sed -e 's/i.86/i386/' -e 's/alpha/axp/'`; \ | |
rm -f $$arch; ln -s . $$arch; \ | |
rpm --rcfile rpmrc -bb $<; \ | |
rm -f $$arch; \ | |
mv -f glibc-$(version)-1.$${arch}.rpm $@ | |
# Avoid time-consuming implicit rule search. | |
$(instfiles) : ; |