# Top level Makefile for rpm
-AUTOMAKE_OPTIONS = 1.3 foreign
+AUTOMAKE_OPTIONS = 1.4 foreign
-SUBDIRS = popt build lib po intl misc tools scripts
+EXTRA_DIST = CHANGES CREDITS Doxyheader GROUPS README.amiga INSTALL \
+ RPM-GPG-KEY RPM-PGP-KEY \
+ autodeps/none autodeps/*.prov autodeps/*.req autogen.sh \
+ gendiff installplatform platform* \
+ po/*.in po/*.po po/rpm.pot \
+ rpm.magic rpmpopt-$(VERSION) rpmqv.c
-INCLUDES = -I./build -I./lib -I./intl @INCPATH@
+# XXX TODO: perl
+SUBDIRS = intl po popt rpmio lib build misc @WITH_PYTHON_SUBDIR@ tools scripts tests doc .
-LDFLAGS = @LDFLAGS_STATIC@ -L./popt -L./build -L./lib -L./misc
+INCLUDES = -I$(top_srcdir)/build -I$(top_srcdir)/lib -I$(top_srcdir)/rpmio \
+ -I$(top_srcdir)/popt @INCPATH@
-rpmbindir = $(subst usr/bin,bin,$(bindir))
+LIBS =
+
+myLDFLAGS = # -L$(top_builddir)/build/.libs -L$(top_builddir)/lib/.libs \
+ -L$(top_builddir)/rpmio/.libs -L$(top_builddir)/popt/.libs
+
+# XXX libtool can/should generate dependent libs.
+# XXX solaris2.6 cannot use *.la with --all-static (downrev binutils/egcs?)
+# XXX top_builddir ldpaths are wrong building in tree
+myLDADD = $(top_builddir)/build/librpmbuild.la $(top_builddir)/lib/librpm.la \
+ $(top_builddir)/rpmio/librpmio.la $(top_builddir)/popt/libpopt.la \
+ @INTLLIBS@
+
+rpmbindir = `echo $(bindir) | sed -e s,usr/bin,bin,`
rpmbin_PROGRAMS = rpm
bin_PROGRAMS = rpm2cpio
bin_SCRIPTS = gendiff
-noinst_PROGRAMS = rpmconvert
-man_MANS = rpm.8 rpm2cpio.8
+pkglibdir = @RPMCONFIGDIR@
+pkglib_PROGRAMS = rpmb rpmdb rpmi rpmk rpmq
+pkglib_DATA = rpmrc rpmpopt-$(VERSION) macros
+pkglib_SCRIPTS = find-provides find-requires mkinstalldirs \
+ config.guess config.sub
-configdir = @RPMCONFIGDIR@
-config_DATA = rpmrc rpmpopt macros
-config_SCRIPTS = find-provides find-requires mkinstalldirs
+rpmpopt-$(VERSION): rpmpopt
+ cp $< $@
noinst_HEADERS = \
- acconfig.h build.h checksig.h ftp.h \
- install.h query.h system.h url.h \
- verify.h
-
-rpm_SOURCES = build.c checksig.c ftp.c install.c query.c rpm.c url.c \
- verify.c
-rpm_LDADD = -lrpmbuild -lpopt -lrpm @LIBMISC@
-
-rpm.o:
- $(COMPILE) \
- -DRPMNLSDIR=\"$(RPMNLSDIR)\" \
- -DRPMNLSPACKAGE=\"$(PACKAGE)\" \
- -DVERSION=\"$(VERSION)\" \
- -DLIBRPMALIAS_FILENAME=\"$(LIBRPMALIAS_FILENAME)\" \
- -DRPMCONFIGDIR="\"$(RPMCONFIGDIR)"\" \
- -c rpm.c
-
-include ./Makefile.inc
+ acconfig.h build.h debug.h system.h
+
+rpm_SOURCES = rpm.c
+rpm_LDFLAGS = @LDFLAGS_STATIC@ $(myLDFLAGS)
+rpm_LDADD = $(myLDADD) @LIBMISC@
+
+rpmb_SOURCES = build.c
+rpmb_LDFLAGS = $(myLDFLAGS)
+rpmb_LDADD = rpmb.o $(myLDADD)
+rpmb.o: rpmqv.c
+ $(COMPILE) -DIAM_RPMBT -o $@ -c $<
+
+rpmdb_SOURCES =
+rpmdb_LDFLAGS = $(myLDFLAGS)
+rpmdb_LDADD = rpmdb.o $(myLDADD)
+rpmdb.o: rpmqv.c
+ $(COMPILE) -DIAM_RPMDB -o $@ -c $<
+
+rpmi_SOURCES =
+rpmi_LDFLAGS = $(myLDFLAGS)
+rpmi_LDADD = rpmi.o $(myLDADD)
+rpmi.o: rpmqv.c
+ $(COMPILE) -DIAM_RPMEIU -o $@ -c $<
+
+rpmk_SOURCES =
+rpmk_LDFLAGS = $(myLDFLAGS)
+rpmk_LDADD = rpmk.o $(myLDADD)
+rpmk.o: rpmqv.c
+ $(COMPILE) -DIAM_RPMK -o $@ -c $<
+
+rpmq_SOURCES =
+rpmq_LDFLAGS = $(myLDFLAGS)
+rpmq_LDADD = rpmq.o $(myLDADD)
+rpmq.o: rpmqv.c
+ $(COMPILE) -DIAM_RPMQV -o $@ -c $<
rpm2cpio_SOURCES = rpm2cpio.c
-rpm2cpio_LDADD = -lrpmbuild -lpopt -lrpm
+rpm2cpio_LDFLAGS = $(myLDFLAGS)
+rpm2cpio_LDADD = $(myLDADD) @LIBMISC@
-rpmconvert_SOURCES = convertdb.c oldrpmdb.c
-rpmconvert_LDADD = -lrpmbuild -lpopt -lrpm -lgdbm
+$(PROGRAMS): $(myLDADD) @WITH_APIDOCS_TARGET@
-install-data-local:
- ln -s rpm/rpmrc $(libdir)/rpmrc
- ln -s rpm/rpmpopt $(libdir)/rpmpopt
+.PHONY: lclint
+lclint:
+ lclint $(DEFS) $(INCLUDES) $(rpm_SOURCES) $(rpmb_SOURCES) rpmqv.c
-# FIXME: these should be generated in configure.in
-find-requires: find-requires.sh
- cp $< $@
-find-provides: find-provides.sh
- cp $< $@
-rpmrc: lib-rpmrc
- cp $< $@
+CVSTAG = r$(subst .,-,$(VERSION))
-# FIXME: these should be checked
-.PHONY: tar
+install-data-local:
+ @$(mkinstalldirs) $(DESTDIR)$(varprefix)/lib/rpm
+ @rm -f $(DESTDIR)/$(libdir)/rpmrc
+ @@LN_S@ rpm/rpmrc $(DESTDIR)/$(libdir)/rpmrc
+ @rm -f $(DESTDIR)/$(libdir)/rpmpopt
+ @@LN_S@ rpm/rpmpopt $(DESTDIR)/$(libdir)/rpmpopt
+ @rm -f $(DESTDIR)/$(libdir)/rpm/rpmt
+ @@LN_S@ rpmb $(DESTDIR)/$(libdir)/rpm/rpmt
+ @rm -f $(DESTDIR)/$(libdir)/rpm/rpme
+ @@LN_S@ rpmi $(DESTDIR)/$(libdir)/rpm/rpme
+ @rm -f $(DESTDIR)/$(libdir)/rpm/rpmu
+ @@LN_S@ rpmi $(DESTDIR)/$(libdir)/rpm/rpmu
+ @rm -f $(DESTDIR)/$(libdir)/rpm/rpmv
+ @@LN_S@ rpmq $(DESTDIR)/$(libdir)/rpm/rpmv
+ rm -f $(DESTDIR)/$(bindir)/rpmbuild
+ @LN_S@ ../lib/rpm/rpmb $(DESTDIR)/$(bindir)/rpmbuild
+ rm -f $(DESTDIR)/$(bindir)/rpmquery
+ @LN_S@ ../lib/rpm/rpmq $(DESTDIR)/$(bindir)/rpmquery
+ rm -f $(DESTDIR)/$(bindir)/rpmverify
+ @LN_S@ ../lib/rpm/rpmv $(DESTDIR)/$(bindir)/rpmverify
+ rm -f $(DESTDIR)/$(bindir)/rpmsign
+ @LN_S@ ../lib/rpm/rpmk $(DESTDIR)/$(bindir)/rpmsign
+ for bf in db e i u ; do \
+ rm -f $(DESTDIR)/$(bindir)/rpm$$bf ; \
+ @LN_S@ ../lib/rpm/rpm$$bf $(DESTDIR)/$(bindir)/rpm$$bf ; \
+ done
+ @$(mkinstalldirs) $(DESTDIR)/$(prefix)/src/redhat/BUILD
+ @case "@build_cpu@" in \
+ *86) $(mkinstalldirs) $(DESTDIR)/$(prefix)/src/redhat/RPMS/i386;\
+ $(mkinstalldirs) $(DESTDIR)/$(prefix)/src/redhat/RPMS/i486;\
+ $(mkinstalldirs) $(DESTDIR)/$(prefix)/src/redhat/RPMS/i586;\
+ $(mkinstalldirs) $(DESTDIR)/$(prefix)/src/redhat/RPMS/i686;\
+ $(mkinstalldirs) $(DESTDIR)/$(prefix)/src/redhat/RPMS/athlon ;;\
+ alpha*) $(mkinstalldirs) $(DESTDIR)/$(prefix)/src/redhat/RPMS/alpha;\
+ $(mkinstalldirs) $(DESTDIR)/$(prefix)/src/redhat/RPMS/alphaev6 ;;\
+ sparc*) $(mkinstalldirs) $(DESTDIR)/$(prefix)/src/redhat/RPMS/sparc;\
+ $(mkinstalldirs) $(DESTDIR)/$(prefix)/src/redhat/RPMS/sparcv9;\
+ $(mkinstalldirs) $(DESTDIR)/$(prefix)/src/redhat/RPMS/sparc64 ;;\
+ ia64*) $(mkinstalldirs) $(DESTDIR)/$(prefix)/src/redhat/RPMS/ia64 ;;\
+ powerpc*) $(mkinstalldirs) $(DESTDIR)/$(prefix)/src/redhat/RPMS/ppc ;;\
+ esac
+ @case "@build_os@" in \
+ mint) $(mkinstalldirs) $(DESTDIR)/$(prefix)/src/redhat/RPMS/m68kmint ;;\
+ solaris*|linux*) \
+ chmod u+x ./installplatform; DESTDIR="$(DESTDIR)" pkglibdir="$(pkglibdir)" ./installplatform rpmrc macros platform ; \
+ $(mkinstalldirs) $(DESTDIR)/$(prefix)/src/redhat/RPMS/@build_cpu@ ;;\
+ *) $(mkinstalldirs) $(DESTDIR)/$(prefix)/src/redhat/RPMS/@build_cpu@ ;;\
+ esac
+ @$(mkinstalldirs) $(DESTDIR)/$(prefix)/src/redhat/RPMS/noarch
+ @$(mkinstalldirs) $(DESTDIR)/$(prefix)/src/redhat/SOURCES
+ @$(mkinstalldirs) $(DESTDIR)/$(prefix)/src/redhat/SPECS
+ @$(mkinstalldirs) $(DESTDIR)/$(prefix)/src/redhat/SRPMS
+ @$(mkinstalldirs) $(DESTDIR)/var/tmp
+
+.PHONY: tar
tar:
rm -rf /tmp/rpm-$(VERSION)
- make installprefix=/tmp/rpm-$(VERSION)$(ROOT) install
- $(mkinstalldirs) /tmp/rpm-$(VERSION)/usr/local/src/redhat/SOURCES
- $(mkinstalldirs) /tmp/rpm-$(VERSION)/usr/local/src/redhat/SPECS
- $(mkinstalldirs) /tmp/rpm-$(VERSION)/usr/local/src/redhat/SRPMS
- $(mkinstalldirs) /tmp/rpm-$(VERSION)/usr/local/src/redhat/RPMS
- $(mkinstalldirs) /tmp/rpm-$(VERSION)/usr/local/src/redhat/BUILD
- $(mkinstalldirs) /tmp/rpm-$(VERSION)/var/local/lib/rpm
- $(mkinstalldirs) /tmp/rpm-$(VERSION)/var/tmp
-# Couldn't figure de ARCH value
-# $(mkinstalldirs) /tmp/rpm-$(VERSION)/usr/local/src/redhat/RPMS/i386
+ $(MAKE) DESTDIR=/tmp/rpm-$(VERSION) install
cd /tmp/rpm-$(VERSION) ; tar cvf /tmp/rpm-$(VERSION).tar .
.PHONY: noconfig
.PHONY: archive
archive:
- @echo " "
- @echo "I hope you checked everything out and made sure it builds"
- @echo "maybe someday Erik will get around to making that automatic."
- @echo
- @echo "This is version $(VERSION)."
- @sleep 5
- @cvs -Q tag -F $(CVSTAG) .
- @rm -rf /tmp/rpm-$(VERSION) /tmp/rpm
- @cd /tmp; cvs -Q -d $(CVSROOT) export -r$(CVSTAG) rpm || :
- @mv /tmp/rpm /tmp/rpm-$(VERSION)
- @rm /tmp/rpm-$(VERSION)/popt/popt.spec
- @cd /tmp/rpm-$(VERSION); ./autogen.sh ; make depend; make distclean
- @cd /tmp/rpm-$(VERSION); ./autogen.sh --noconfigure
- @cd /tmp; tar czSpf rpm-$(VERSION).tar.gz rpm-$(VERSION)
- @rm -rf /tmp/rpm-$(VERSION)
- @cp /tmp/rpm-$(VERSION).tar.gz .
- @rm -f /tmp/rpm-$(VERSION).tar.gz
+ @cvs -d `cat CVS/Root` diff 2>&1 > /dev/null || { \
+ echo " " ; \
+ echo "==> Please resolve differences between the repository and" ; \
+ echo "==> your rpm check out before tagging." ; \
+ echo " " ; \
+ cvs -n up ; \
+ echo " " ; \
+ exit 1 ; \
+ }
+ @cvs -d `cat CVS/Root` -Q tag -F $(CVSTAG) .
+ @make dist
@echo " "
@echo "The final archive is ./rpm-$(VERSION).tar.gz."
+
+.PHONY: nextsrpm
+nextsrpm: all archive
+ @sudo ./rpm -ta rpm-$(VERSION).tar.gz
+
+.PHONY: doxygen
+doxygen @WITH_APIDOCS_TARGET@: Doxyfile
+ rm -rf $@
+ mkdir -p $@
+ - [ X"@__DOXYGEN@" != Xno ] && @__DOXYGEN@
+
+ctags:
+ find . -type f -name "*.[ch]*" | xargs @CTAGS@
+
+cscope:
+ @CSCOPE@ -b -R
+
+cref: ctags cscope