summaryrefslogtreecommitdiff
path: root/dist/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'dist/Makefile')
-rw-r--r--dist/Makefile133
1 files changed, 133 insertions, 0 deletions
diff --git a/dist/Makefile b/dist/Makefile
new file mode 100644
index 0000000..c771f93
--- /dev/null
+++ b/dist/Makefile
@@ -0,0 +1,133 @@
+# ======================================================================
+# $Source$
+# $Revision$
+# $Date$
+# $Author$
+# $Name$
+# $State$
+# ======================================================================
+
+# Makefile for generating rpm package files (.rpm) for net-snmp.
+
+# GNU 'make'-specific features are used in this makefile.
+# Other makes may or may not work with it.
+# See http://www.gnu.org/manual/make/index.html for details.
+
+SHELL = /bin/sh
+
+# Define the RPM package name
+NAME = net-snmp
+
+# Define the default RPM release number. Set by Version-Munge.pl
+VERSION = 5.7.2
+
+VERSION_TAG=`echo Ext-$(VERSION) | sed 's/\./-/g;'`
+
+WITH_PERL=1
+EMBED_PERL=1
+
+# Define the RPM architecture, i.e., 'ppc', 'i386', etc.
+ARCH = `uname -i`
+
+# Directory structure expected by 'rpm' program
+RPM_BASE := $(PWD)/rpm
+
+RPM_TREE := \
+ $(RPM_BASE)/BUILD \
+ $(RPM_BASE)/RPMS \
+ $(RPM_BASE)/SOURCES \
+ $(RPM_BASE)/SPECS \
+ $(RPM_BASE)/SRPMS
+
+.PHONY: all clean rpm_files binary_rpm source_rpm all_rpm
+
+all: all_rpm_files
+
+# Delete all generated files.
+clean:
+ rm -rf $(RPM_BASE)
+
+# --------------------------------------------------------------------
+# Macros and rules for updating net-snmp-x.x.x.tar.gz.
+# 'rpm' expects a compressed archive (.tar.gz) of the source directory
+# to exist (in the rpm/SOURCES directory) before it is run.
+# --------------------------------------------------------------------
+CVSROOT = :pserver:anonymous@net-snmp.cvs.sourceforge.net:/cvsroot/net-snmp
+
+PKG_VER := $(NAME)-$(VERSION)
+
+GZIP_TAR := $(RPM_BASE)/SOURCES/$(PKG_VER).tar.gz
+
+gzip_tar: $(GZIP_TAR)
+
+$(GZIP_TAR):
+ @echo "Creating a compressed archive of the package's source files..."
+ (cd $(RPM_BASE)/SOURCES; \
+ cvs -d$(CVSROOT) login; \
+ cvs -z3 -d$(CVSROOT) export -r$(VERSION_TAG) $(NAME); \
+ mv $(NAME) $(PKG_VER); \
+ tar cf $(PKG_VER).tar $(PKG_VER); \
+ gzip $(PKG_VER).tar)
+ @echo "A compressed archive of the package's source-file tree has been created."
+
+# --------------------------------------------------------------------
+# Macros and rules for updating the binary and source RPM package files.
+# --------------------------------------------------------------------
+# Redefine '%_topdir' to allow an RPM package file to be built anywhere,
+# instead of in the /usr/src/redhat directory tree.
+#
+# Don't want 'rpmbuild' to strip your executable programs?
+# Then add this line:
+# --define='_os_install_post /usr/lib/rpm/brp-compress' \
+# to the RPM_OPTS macro definition. This will eliminate the
+# stripping of binaries, but still retain the compression of
+# manual pages.
+#
+ifeq ($(WITH_PERL),0)
+PERLOPTS = --without perl_modules
+endif
+ifeq ($(EMBED_PERL),0)
+PERLOPTS += --without embedded_perl
+endif
+
+RPM_OPTS := \
+ --define='_topdir $(RPM_BASE)' \
+ --define='_includedir /usr/include/net-snmp' \
+ --target $(ARCH) $(PERLOPTS)
+
+SPEC_FILE := $(NAME).spec
+RPM_SPEC := $(RPM_BASE)/SPECS/$(SPEC_FILE)
+
+BINARY_RPM := $(RPM_BASE)/RPMS/$(ARCH)/$(PKG_VER)-$(RELEASE).$(ARCH).rpm
+SOURCE_RPM := $(RPM_BASE)/SRPMS/$(PKG_VER)-$(RELEASE).src.rpm
+
+rpm_files: $(GZIP_TAR) all_rpm_files
+binary_rpm: $(BINARY_RPM)
+source_rpm: $(SOURCE_RPM)
+rpm_tree: $(RPM_TREE)
+
+all_rpm_files: $(RPM_TREE) $(RPM_SPEC)
+ (cd $(RPM_BASE)/SPECS; \
+ rpmbuild -ba $(RPM_OPTS) $(SPEC_FILE))
+
+$(BINARY_RPM): $(RPM_TREE) $(RPM_SPEC)
+ (cd $(RPM_BASE)/SPECS; \
+ rpmbuild -bb $(RPM_OPTS) $(SPEC_FILE))
+
+$(SOURCE_RPM): $(RPM_TREE) $(RPM_SPEC)
+ (cd $(RPM_BASE)/SPECS; \
+ rpmbuild -bs $(RPM_OPTS) $(SPEC_FILE))
+
+$(RPM_SPEC): $(RPM_BASE)/SPECS $(SPEC_FILE)
+ cp $(SPEC_FILE) $@
+
+$(RPM_TREE):
+ mkdir -p $@
+
+$(SPEC_FILE):
+ @echo "ERROR: missing '$(SPEC_FILE)' in the current directory"
+ @exit 1
+
+FORCE:
+
+# === End of Makefile === #