- still more boring lclint annotations and fiddles.
[platform/upstream/rpm.git] / Makefile.am
1 # Top level Makefile for rpm
2
3 AUTOMAKE_OPTIONS = 1.4 foreign
4
5 EXTRA_DIST = CHANGES CREDITS Doxyheader GROUPS README.amiga INSTALL \
6         RPM-GPG-KEY RPM-PGP-KEY \
7         autodeps/none autodeps/*.prov autodeps/*.req autogen.sh \
8         gendiff installplatform platform* \
9         po/*.in po/*.po po/rpm.pot \
10         rpm.magic rpmpopt-$(VERSION) rpmqv.c
11
12 # XXX TODO: perl
13 SUBDIRS = intl po popt rpmio lib build misc @WITH_PYTHON_SUBDIR@ tools scripts tests doc .
14
15 INCLUDES = -I$(top_srcdir)/build -I$(top_srcdir)/lib -I$(top_srcdir)/rpmio \
16         -I$(top_srcdir)/popt @INCPATH@
17
18 LIBS =
19
20 myLDFLAGS = # -L$(top_builddir)/build/.libs -L$(top_builddir)/lib/.libs \
21         -L$(top_builddir)/rpmio/.libs -L$(top_builddir)/popt/.libs
22
23 # XXX libtool can/should generate dependent libs.
24 # XXX solaris2.6 cannot use *.la with --all-static (downrev binutils/egcs?)
25 # XXX top_builddir ldpaths are wrong building in tree
26 myLDADD = $(top_builddir)/build/librpmbuild.la $(top_builddir)/lib/librpm.la \
27         $(top_builddir)/rpmio/librpmio.la $(top_builddir)/popt/libpopt.la \
28         @INTLLIBS@ @LIBMISC@
29
30 rpmbindir = `echo $(bindir) | sed -e s,usr/bin,bin,`
31 rpmbin_PROGRAMS = rpm
32
33 bin_PROGRAMS =          rpm2cpio
34 bin_SCRIPTS =           gendiff
35
36 pkglibdir =             @RPMCONFIGDIR@
37 pkglib_PROGRAMS =       rpmb rpmdb rpmi rpmk rpmq
38 pkglib_DATA =           rpmrc rpmpopt-$(VERSION) macros
39 pkglib_SCRIPTS =        find-provides find-requires mkinstalldirs \
40                         config.guess config.sub
41
42 rpmpopt-$(VERSION): rpmpopt
43         cp rpmpopt $@
44
45 noinst_HEADERS = \
46         acconfig.h      build.h         debug.h         system.h
47
48 rpm_SOURCES =           rpm.c
49 rpm_LDFLAGS =           @LDFLAGS_STATIC@ $(myLDFLAGS)
50 rpm_LDADD =             $(myLDADD)
51
52 rpmb_SOURCES =          build.c
53 rpmb_LDFLAGS =          @LDFLAGS_STATIC@ $(myLDFLAGS)
54 rpmb_LDADD =            rpmb.o $(myLDADD)
55 rpmb.o: rpmqv.c
56         $(COMPILE) -DIAM_RPMBT -o $@ -c rpmqv.c
57
58 rpmdb_SOURCES =
59 rpmdb_LDFLAGS =         @LDFLAGS_STATIC@ $(myLDFLAGS)
60 rpmdb_LDADD =           rpmdb.o $(myLDADD)
61 rpmdb.o:        rpmqv.c
62         $(COMPILE) -DIAM_RPMDB -o $@ -c rpmqv.c
63
64 rpmi_SOURCES =
65 rpmi_LDFLAGS =          @LDFLAGS_STATIC@ $(myLDFLAGS)
66 rpmi_LDADD =            rpmi.o $(myLDADD)
67 rpmi.o: rpmqv.c
68         $(COMPILE) -DIAM_RPMEIU -o $@ -c rpmqv.c
69
70 rpmk_SOURCES =
71 rpmk_LDFLAGS =          @LDFLAGS_STATIC@ $(myLDFLAGS)
72 rpmk_LDADD =            rpmk.o $(myLDADD)
73 rpmk.o: rpmqv.c
74         $(COMPILE) -DIAM_RPMK -o $@ -c rpmqv.c
75
76 rpmq_SOURCES =
77 rpmq_LDFLAGS =          @LDFLAGS_STATIC@ $(myLDFLAGS)
78 rpmq_LDADD =            rpmq.o $(myLDADD)
79 rpmq.o: rpmqv.c
80         $(COMPILE) -DIAM_RPMQV -o $@ -c rpmqv.c
81
82 rpm2cpio_SOURCES =      rpm2cpio.c
83 rpm2cpio_LDFLAGS =      @LDFLAGS_STATIC@ $(myLDFLAGS)
84 rpm2cpio_LDADD =        $(myLDADD)
85
86 $(PROGRAMS):            $(myLDADD) @WITH_APIDOCS_TARGET@
87
88 .PHONY: lclint
89 lclint:
90         lclint $(DEFS) $(INCLUDES) rpmqv.c $(rpmb_SOURCES) \
91                 `make -s sources -C build` \
92                 `make -s sources -C lib` \
93                 `make -s sources -C rpmio` \
94                 `make -s sources -C popt`
95
96 CVSTAG = r$(subst .,-,$(VERSION))
97
98 pkgsrcdir = $(prefix)/src/$(RPMCANONVENDOR)
99
100 install-data-local:
101         @$(mkinstalldirs) $(DESTDIR)$(varprefix)/lib/rpm
102         @rm -f $(DESTDIR)$(libdir)/rpmrc
103         @@LN_S@ rpm/rpmrc $(DESTDIR)$(libdir)/rpmrc
104         @rm -f $(DESTDIR)$(libdir)/rpmpopt
105         @@LN_S@ rpm/rpmpopt $(DESTDIR)$(libdir)/rpmpopt
106         @rm -f $(DESTDIR)$(libdir)/rpm/rpmt
107         @@LN_S@ rpmb $(DESTDIR)$(libdir)/rpm/rpmt
108         @rm -f $(DESTDIR)$(libdir)/rpm/rpme
109         @@LN_S@ rpmi $(DESTDIR)$(libdir)/rpm/rpme
110         @rm -f $(DESTDIR)$(libdir)/rpm/rpmu
111         @@LN_S@ rpmi $(DESTDIR)$(libdir)/rpm/rpmu
112         @rm -f $(DESTDIR)$(libdir)/rpm/rpmv
113         @@LN_S@ rpmq $(DESTDIR)$(libdir)/rpm/rpmv
114         rm -f $(DESTDIR)$(bindir)/rpmbuild
115         @LN_S@ ../lib/rpm/rpmb $(DESTDIR)$(bindir)/rpmbuild
116         rm -f $(DESTDIR)$(bindir)/rpmquery
117         @LN_S@ ../lib/rpm/rpmq $(DESTDIR)$(bindir)/rpmquery
118         rm -f $(DESTDIR)$(bindir)/rpmverify
119         @LN_S@ ../lib/rpm/rpmv $(DESTDIR)$(bindir)/rpmverify
120         rm -f $(DESTDIR)$(bindir)/rpmsign
121         @LN_S@ ../lib/rpm/rpmk $(DESTDIR)$(bindir)/rpmsign
122         for bf in db e i u ; do \
123             rm -f $(DESTDIR)$(bindir)/rpm$$bf ; \
124             @LN_S@ ../lib/rpm/rpm$$bf $(DESTDIR)$(bindir)/rpm$$bf ; \
125         done
126         @$(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/BUILD
127         @case "@build_cpu@" in \
128         *86)    $(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/RPMS/i386;\
129                 $(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/RPMS/i486;\
130                 $(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/RPMS/i586;\
131                 $(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/RPMS/i686;\
132                 $(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/RPMS/athlon ;;\
133         alpha*) $(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/RPMS/alpha;\
134                 $(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/RPMS/alphaev6 ;;\
135         sparc*) $(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/RPMS/sparc;\
136                 $(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/RPMS/sparcv9;\
137                 $(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/RPMS/sparc64 ;;\
138         ia64*)  $(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/RPMS/ia64 ;;\
139         s390*)  $(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/RPMS/s390 ;;\
140         powerpc*) $(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/RPMS/ppc ;;\
141         esac
142         @case "@build_os@" in \
143         mint) $(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/RPMS/m68kmint ;;\
144         solaris*|linux*) \
145            chmod u+x ./installplatform; DESTDIR="$(DESTDIR)" pkglibdir="$(pkglibdir)" ./installplatform rpmrc macros platform ; \
146            $(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/RPMS/@build_cpu@ ;;\
147         *) $(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/RPMS/@build_cpu@ ;;\
148         esac
149         @$(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/RPMS/noarch
150         @$(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/SOURCES
151         @$(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/SPECS
152         @$(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/SRPMS
153         @$(mkinstalldirs) $(DESTDIR)/var/tmp
154
155 .PHONY: tar
156 tar:
157         rm -rf /tmp/rpm-$(VERSION)
158         $(MAKE) DESTDIR=/tmp/rpm-$(VERSION) install
159         cd /tmp/rpm-$(VERSION) ; tar cvf /tmp/rpm-$(VERSION).tar .
160
161 .PHONY: noconfig
162 noconfig:
163         find . -name "Makefile" -exec rm {} \; 
164         rm -f *gz *rpm config.*
165
166 .PHONY: archive
167 archive: 
168         @cvs -d `cat CVS/Root` diff 2>&1 > /dev/null || { \
169             echo " " ; \
170             echo "==> Please resolve differences between the repository and" ; \
171             echo "==> your rpm check out before tagging." ; \
172             echo " " ; \
173             cvs -n up ; \
174             echo " " ; \
175             exit 1 ; \
176         }
177         @cvs -d `cat CVS/Root` -Q tag -F $(CVSTAG) .
178         @make dist
179         @echo " "
180         @echo "The final archive is ./rpm-$(VERSION).tar.gz."
181
182 .PHONY: nextsrpm
183 nextsrpm: all archive
184         @sudo ./rpm -ta rpm-$(VERSION).tar.gz
185
186 .PHONY: doxygen
187 doxygen @WITH_APIDOCS_TARGET@: Doxyfile
188         rm -rf $@
189         mkdir -p $@
190         - [ X"@__DOXYGEN@" != Xno ] && @__DOXYGEN@
191
192 ctags:
193         find . -type f -name "*.[ch]*" | xargs @CTAGS@
194
195 cscope:
196         @CSCOPE@ -b -R
197
198 cref: ctags cscope