- tsort prefers presentation order.
[platform/upstream/rpm.git] / Makefile.am
index 49b302f..2fbeed3 100644 (file)
 # Top level Makefile for rpm
 
-AUTOMAKE_OPTIONS = 1.3 foreign
+AUTOMAKE_OPTIONS = 1.4 foreign
 
-SUBDIRS = popt build lib po intl misc tools scripts tests
+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$(top_srcdir)/build -I$(top_srcdir)/lib -I$(top_srcdir)/intl @INCPATH@
+# XXX TODO: perl
+SUBDIRS = intl po popt rpmio lib build misc @WITH_PYTHON_SUBDIR@ tools scripts tests doc .
 
-LDFLAGS = @LDFLAGS_STATIC@ -L$(top_builddir)/build -L$(top_builddir)/lib -L$(top_builddir)/popt -L$(top_builddir)/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       system.h        url.h   \
-       verify.h
-
-rpm_SOURCES =          build.c checksig.c ftp.c install.c rpm.c url.c \
-                       verify.c
-rpm_LDADD =            -lrpmbuild -lrpm -lpopt @LIBMISC@
+       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 $<
 
-$(PROGRAMS): ./build/librpmbuild.a ./lib/librpm.a ./popt/libpopt.a
+rpm2cpio_SOURCES =     rpm2cpio.c
+rpm2cpio_LDFLAGS =     $(myLDFLAGS)
+rpm2cpio_LDADD =       $(myLDADD) @LIBMISC@
 
-include ./Makefile.inc
+$(PROGRAMS):           $(myLDADD) @WITH_APIDOCS_TARGET@
 
 .PHONY:        lclint
 lclint:
-       lclint ${DEFS} ${INCLUDES} ${rpm_SOURCES}
+       lclint $(DEFS) $(INCLUDES) $(rpm_SOURCES) $(rpmb_SOURCES) rpmqv.c
 
 CVSTAG = r$(subst .,-,$(VERSION))
 
-rpm2cpio_SOURCES =     rpm2cpio.c
-rpm2cpio_LDADD =       -lrpmbuild -lrpm -lpopt
-
-rpmconvert_SOURCES =   convertdb.c oldrpmdb.c
-rpmconvert_LDADD =     -lrpmbuild -lrpm -lpopt -lgdbm
-
 install-data-local:
-       @$(mkinstalldirs) $(DESTDIR)/var/lib/rpm
+       @$(mkinstalldirs) $(DESTDIR)$(varprefix)/lib/rpm
        @rm -f $(DESTDIR)/$(libdir)/rpmrc
-       @ln -s rpm/rpmrc $(DESTDIR)/$(libdir)/rpmrc
+       @@LN_S@ rpm/rpmrc $(DESTDIR)/$(libdir)/rpmrc
        @rm -f $(DESTDIR)/$(libdir)/rpmpopt
-       @ln -s rpm/rpmpopt $(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/RPMS/@build_cpu@
        @$(mkinstalldirs) $(DESTDIR)/$(prefix)/src/redhat/SOURCES
        @$(mkinstalldirs) $(DESTDIR)/$(prefix)/src/redhat/SPECS
        @$(mkinstalldirs) $(DESTDIR)/$(prefix)/src/redhat/SRPMS
-       @$(mkinstalldirs) $(DESTDIR)/var/lib/rpm
        @$(mkinstalldirs) $(DESTDIR)/var/tmp
 
-# FIXME: these should be generated in configure.in
-find-requires: find-requires.sh
-       cp $< $@
-find-provides: find-provides.sh
-       cp $< $@
-rpmrc: lib-rpmrc
-       cp $< $@
-
-# FIXME: these should be checked
-.PHONY:                tar
+.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
@@ -92,23 +158,34 @@ 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 -C /tmp/rpm-$(VERSION) 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