Why don't you just use:
%build
%configure --enable-unicode-properties --enable-pcregrep-libz
--enable-pcregrep-libbz2 --disable-pcretest-libreadline
The thing you need to remember about rpm "macros" is that they're really a cross
between macros and defines. In most caseses they are simply defines, it's a
simple search/replace type operation when the shell scripts are generated for
building.
The only time they really operate like macros are when there are certain
semantics like %(...), or %{?...}, or %{eval:...}
This looks to me like you are trying to come up with a solution to make your
packages look more uniform, while adding complexing and incompatibility to the
macros. I've done this before, and it was one of the greatest mistakes you can
make when working with RPM.
Use the macros your distribution provides, when you deviate or make changes from
that then maintenance becomes a huge burden. While it might save you 10 minutes
today, it'll cost you an hour when you upgrade.
--Mark
Ritesh Sood wrote:
I had sent the following mail to rpm-l...@lists.rpm.org
<mailto:rpm-l...@lists.rpm.org>, but haven't received a response.
Perhaps rpm-maint is a more appropriate forum for my queries.
Hi all,
I'm not a regular rpm builder, but have the need to build some at the
moment. I've been successful in building the few rpm's that I need
and now want to fine tune the process.
Please take a look at my .rpmmacros below. In particular, the addition
to the %configure macro in the last line (which is more like what I
want to do, but I'm not sure of the syntax):
----------- start .rpmmacros ------------------------
%packager Ritesh Sood <riteshs...@gmail.com <mailto:riteshs...@gmail.com>>
%vendor Dept. of ECE, UC Davis (Internal Use)
%_topdir %(echo $HOME)/ECESysAdmin/Syslog-ng/RPM-Build
%configure \
CFLAGS="${CFLAGS:-%optflags}" ; export CFLAGS ; \
CXXFLAGS="${CXXFLAGS:-%optflags}" ; export CXXFLAGS ; \
./configure --host=%{_host} --build=%{_build} \\\
... (original code from /usr/lib/rpm/macros) ...
%{?pkg_config_flags}
----------- end .rpmmacros ------------------------
The idea being that if I want to build the package ``pcre-ece" which
requires configure time flags, the spec file would be something like
----------- start pcre-ece.spec ------------------------
%define name pcre-ece
%define orig_name pcre
%define version 7.8
%define release 1
%define _prefix /usr/local
%define _docdir %{_datadir}/doc/%{orig_name}
%define pkg_config_flags --enable-unicode-properties
--enable-pcregrep-libz --enable-pcregrep-libbz2
--disable-pcretest-libreadline
Summary: Perl-compatible regular expression library
Name: %{name}
Version: %{version}
Release: %{release}
Source: %{orig_name}-%{version}.tar.bz2
URL: http://www.pcre.org/
License: BSD
Group: System Environment/Libraries
BuildRoot: %{_builddir}/%{orig_name}-root
Prereq: /sbin/ldconfig
BuildPrereq: sed
.
.
.
----------- end pcre-ece.spec ------------------------
Coming back to ``%{?pkg_config_flags}" in .rpmmacros above, if the
spec file defines ``pkg_config_flags", then it would be appended to
the default expansion of the ``configure" macro; if not, nothing would
be appended. The ``?" in the above is a conjectured syntax to achieve
what i've stated above.
I'm not able to find good documentation on the syntax and rules of
these macros (i'm familiar with those of ``make"). Neither at
http://rpm.org/wiki/Docs#PackagerDocumentation
nor in the books
http://www.rpm.org/max-rpm-snapshot/
http://docs.fedoraproject.org/drafts/rpm-guide-en/
Any help in finding documentation is much appreciated.
Secondly, it would be good to have the facility to append per-package
flags to other macros. I found the following in one of Suse linux's
RPM spec file
----------- start code ------------------------
%build
%{expand: %%define optflags %{optflags} -fPIC}
----------- end code ------------------------
So just to add the ``-fPIC" flag, poor guy has to jump through all
those hoops. How about something like the following appearing in the
``configure" macro instead:
----------- start code ------------------------
CFLAGS="${CFLAGS:-%optflags:-%{?pkg_cflags}}" ; export CFLAGS ; \
CXXFLAGS="${CXXFLAGS:-%optflags:-%{?pkg_cxxflags}}" ; export CXXFLAGS ; \
----------- end code ------------------------
and while we're at it, might as well add
----------- start code ------------------------
LDFLAGS="${LDFLAGS:-%{?pkg_ldflags}}" ; export LDFLAGS ; \
----------- end code ------------------------
Again, the syntax is my guess as to what it might look like, but you
get the idea.
Looking forward to feedback on the above suggestions.
Ritesh
------------------------------------------------------------------------
_______________________________________________
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint
_______________________________________________
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint