diff options
Diffstat (limited to 'rpm/Makefile')
-rw-r--r-- | rpm/Makefile | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/rpm/Makefile b/rpm/Makefile new file mode 100644 index 0000000000..a4e7969c23 --- /dev/null +++ b/rpm/Makefile @@ -0,0 +1,67 @@ +# 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.so itself, which is a special case in Makerules. +install-others += $(slibdir)/libc.so +ifdef libc.so-version +install-others += $(slibdir)/libc-$(version).so \ + $(slibdir)/libc.so$(libc.so-version) +endif + + +glibc-$(version).$(config).rpm: $(config) + +all: $(config) + +$(config): template $(distinfo) Makefile + rm -f $@.new + (sed -e 's%@VERSION@%$(version)%g' $<; \ + ($(foreach var,include lib bin sbin data others,\ + 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) + |