Blame dist/Makefile

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