Browse Source

Add make rpms target

This allows rpms to be built straight from the development tree.

Signed-off-by: Simo Sorce <[email protected]>
Simo Sorce 10 years ago
parent
commit
44cc536083
4 changed files with 38 additions and 7 deletions
  1. 3 0
      .gitignore
  2. 30 0
      Makefile.am
  3. 4 2
      configure.ac
  4. 1 5
      rpm/389-ds-base.spec.in

+ 3 - 0
.gitignore

@@ -5,3 +5,6 @@ autom4te.cache
 .cproject
 .project
 .settings
+.deps
+rpmbuild
+rpm/389-ds-base.spec

+ 30 - 0
Makefile.am

@@ -17,6 +17,9 @@ DS_DEFINES = -DBUILD_NUM=$(BUILDNUM) -DVENDOR="\"$(vendor)\"" -DBRAND="\"$(brand
 if enable_nunc_stans
 NUNC_STANS_INCLUDES = $(nunc_stans_inc)
 NUNC_STANS_LINK = $(nunc_stans_lib) -lnunc-stans
+NUNC_STANS_ON = 1
+else
+NUNC_STANS_ON = 0
 endif
 DS_INCLUDES = -I$(srcdir)/ldap/include -I$(srcdir)/ldap/servers/slapd -I$(srcdir)/include -I. $(NUNC_STANS_INCLUDES)
 
@@ -1940,3 +1943,30 @@ git-archive:
 	fi ; \
 	git archive --prefix=$(distdir)/ $$gittag | bzip2 > $$srcdistdir/$(distdir).tar.bz2
 
+
+# RPM-related tasks
+
+RPMBUILD ?= $(PWD)/rpmbuild
+
+rpmroot:
+	$(MKDIR_P) $(RPMBUILD)/BUILD
+	$(MKDIR_P) $(RPMBUILD)/RPMS
+	$(MKDIR_P) $(RPMBUILD)/SOURCES
+	$(MKDIR_P) $(RPMBUILD)/SPECS
+	$(MKDIR_P) $(RPMBUILD)/SRPMS
+
+rpmbrprep: dist-bzip2 rpmroot
+	cp $(distdir).tar.bz2 $(RPMBUILD)/SOURCES
+	cp $(builddir)/rpm/389-ds-base-git.sh $(RPMBUILD)/SOURCES
+	cp $(builddir)/rpm/389-ds-base-devel.README $(RPMBUILD)/SOURCES
+	sed -e "s/__VERSION__/$(RPM_VERSION)/" -e "s/__RELEASE__/$(RPM_RELEASE)/" -e "s/__NUNC_STANS_ON__/$(NUNC_STANS_ON)/" < $(builddir)/rpm/389-ds-base.spec > $(RPMBUILD)/SPECS/389-ds-base.spec
+
+
+rpms: rpmbrprep
+	cd $(RPMBUILD); \
+	rpmbuild --define "_topdir $(RPMBUILD)" -ba SPECS/389-ds-base.spec
+
+srpm: rpmbrprep
+	cd $(RPMBUILD); \
+	rpmbuild --define "_topdir $(RPMBUILD)" \
+	         -bs SPECS/389-ds-base.spec

+ 4 - 2
configure.ac

@@ -11,12 +11,14 @@ AC_DEFINE_UNQUOTED([DS_PACKAGE_VERSION], "$PACKAGE_VERSION", [package version])
 AC_DEFINE_UNQUOTED([DS_PACKAGE_TARNAME], "$PACKAGE_TARNAME", [package tarball name])
 AC_DEFINE_UNQUOTED([DS_PACKAGE_BUGREPORT], "$PACKAGE_BUGREPORT", [package bug report url])
 AC_DEFINE_UNQUOTED([DS_PACKAGE_STRING], "$PACKAGE_STRING", [package string])
-AM_INIT_AUTOMAKE([1.9 foreign subdir-objects dist-bzip2 no-dist-gzip no-define])
+AM_INIT_AUTOMAKE([1.9 foreign subdir-objects dist-bzip2 no-dist-gzip no-define tar-pax])
 # define these for automake distdir
 VERSION=$PACKAGE_VERSION
 PACKAGE=$PACKAGE_TARNAME
 AC_DEFINE_UNQUOTED([VERSION], "$VERSION", [package version])
 AC_DEFINE_UNQUOTED([PACKAGE], "$PACKAGE", [package tar name])
+AC_SUBST([RPM_VERSION])
+AC_SUBST([RPM_RELEASE])
 AC_SUBST([CONSOLE_VERSION])
 AM_MAINTAINER_MODE
 AC_CANONICAL_HOST
@@ -778,6 +780,6 @@ if test "$GCC" != yes ; then
    rm -f libtool.tmp
 fi
 
-AC_CONFIG_FILES([Makefile])
+AC_CONFIG_FILES([Makefile rpm/389-ds-base.spec])
 
 AC_OUTPUT

+ 1 - 5
rpm/389-ds-base.spec.in

@@ -12,12 +12,8 @@
 # If perl-Socket-2.000 or newer is available, set 0 to use_Socket6.
 %global use_Socket6 0
 # nunc-stans only builds on x86_64 for now
-%ifarch x86_64
 # To build without nunc-stans, set 0 to use_nunc_stans.
-%global use_nunc_stans 1
-%else
-%global use_nunc_stans 0
-%endif 
+%global use_nunc_stans __NUNC_STANS_ON__
 
 %if %{use_nunc_stans}
 %global nunc_stans_ver 0.1.5