about summary refs log tree commit diff
path: root/rpm
diff options
context:
space:
mode:
Diffstat (limited to 'rpm')
-rw-r--r--rpm/Makefile67
-rw-r--r--rpm/template8
2 files changed, 75 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)
+
diff --git a/rpm/template b/rpm/template
new file mode 100644
index 0000000000..3d88336608
--- /dev/null
+++ b/rpm/template
@@ -0,0 +1,8 @@
+Name: glibc
+Description: GNU libc
+Group: Development/Libraries/Libc
+Version: @VERSION@
+Release: 1
+Copyright: LGPL, GPL
+
+%files