diff options
Diffstat (limited to 'dist/Makefile')
-rw-r--r-- | dist/Makefile | 133 |
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 === # |