- turn on auto-generated perl requirements (#58519, #58536, #58537).
[tools/librpm-tizen.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         config.site db db3/configure gendiff installplatform platform* \
9         Perl-RPM po/*.in po/*.po po/rpm.pot \
10         rpm.magic rpmpopt-$(VERSION) rpmqv.c rpm.c
11
12 SUBDIRS = intl po @WITH_ZLIB_SUBDIR@ @WITH_DB_SUBDIR@ popt beecrypt rpmio rpmdb lib build misc @WITH_PYTHON_SUBDIR@ tools scripts tests doc .
13
14 INCLUDES = \
15         -I$(top_srcdir)/build \
16         -I$(top_srcdir)/lib \
17         -I$(top_srcdir)/rpmdb \
18         -I$(top_srcdir)/rpmio \
19         -I$(top_srcdir)/beecrypt \
20         -I$(top_srcdir)/popt \
21         @WITH_ZLIB_INCLUDE@ \
22         @INCPATH@
23
24 LIBS = -lrt -lpthread
25
26 myLDFLAGS = @LDFLAGS_STATIC@
27
28 # XXX libtool can/should generate dependent libs.
29 # XXX solaris2.6 cannot use *.la with --all-static (downrev binutils/egcs?)
30 # XXX top_builddir ldpaths are wrong building in tree
31 myLDADD = \
32         $(top_builddir)/build/librpmbuild.la \
33         $(top_builddir)/lib/librpm.la \
34         $(top_builddir)/rpmdb/librpmdb.la \
35         $(top_builddir)/rpmio/librpmio.la \
36         $(top_builddir)/popt/libpopt.la \
37         @WITH_ZLIB_LIB@ \
38         @INTLLIBS@ @LIBMISC@
39
40 rpmbindir = `echo $(bindir) | sed -e s,usr/bin,bin,`
41 rpmbin_PROGRAMS = rpm
42
43 bin_PROGRAMS =          rpm2cpio
44 bin_SCRIPTS =           gendiff
45
46 pkglibdir =             @RPMCONFIGDIR@
47 pkglib_PROGRAMS =       rpmb rpmd rpmi rpmk rpmq
48 pkglib_DATA =           rpmrc rpmpopt-$(VERSION) macros
49 pkglib_SCRIPTS =        find-provides find-requires mkinstalldirs \
50                         config.guess config.sub config.site
51
52 rpmpopt-$(VERSION): rpmpopt
53         cp rpmpopt $@
54
55 noinst_HEADERS = \
56         acconfig.h      build.h         debug.h         system.h
57
58 rpm_SOURCES =
59 rpm_LDFLAGS =           @LDFLAGS_STATIC@ $(myLDFLAGS)
60 rpm_LDADD =             rpm.o $(myLDADD)
61 rpm.o:  rpmqv.c
62         $(COMPILE) -DIAM_RPMDB -DIAM_RPMEIU -DIAM_RPMK -DIAM_RPMQV -o $@ -c rpmqv.c
63
64 #rpm_SOURCES =          rpm.c
65 #rpm_LDFLAGS =          @LDFLAGS_STATIC@ $(myLDFLAGS)
66 #rpm_LDADD =            $(myLDADD)
67
68 rpmb_SOURCES =          build.c
69 rpmb_LDFLAGS =          $(myLDFLAGS)
70 rpmb_LDADD =            rpmb.o $(myLDADD)
71 rpmb.o: rpmqv.c
72         $(COMPILE) -DIAM_RPMBT -o $@ -c rpmqv.c
73
74 rpmd_SOURCES =
75 rpmd_LDFLAGS =          $(myLDFLAGS)
76 rpmd_LDADD =            rpmd.o $(myLDADD)
77 rpmd.o: rpmqv.c
78         $(COMPILE) -DIAM_RPMDB -o $@ -c rpmqv.c
79
80 rpmi_SOURCES =
81 rpmi_LDFLAGS =          $(myLDFLAGS)
82 rpmi_LDADD =            rpmi.o $(myLDADD)
83 rpmi.o: rpmqv.c
84         $(COMPILE) -DIAM_RPMEIU -o $@ -c rpmqv.c
85
86 rpmk_SOURCES =
87 rpmk_LDFLAGS =          $(myLDFLAGS)
88 rpmk_LDADD =            rpmk.o $(myLDADD)
89 rpmk.o: rpmqv.c
90         $(COMPILE) -DIAM_RPMK -o $@ -c rpmqv.c
91
92 rpmq_SOURCES =
93 rpmq_LDFLAGS =          $(myLDFLAGS)
94 rpmq_LDADD =            rpmq.o $(myLDADD)
95 rpmq.o: rpmqv.c
96         $(COMPILE) -DIAM_RPMQV -o $@ -c rpmqv.c
97
98 rpm2cpio_SOURCES =      rpm2cpio.c
99 rpm2cpio_LDFLAGS =      $(myLDFLAGS)
100 rpm2cpio_LDADD =        $(myLDADD) @LIBMISC@
101
102 $(PROGRAMS):            $(myLDADD) @WITH_APIDOCS_TARGET@
103
104 .PHONY: lclint
105 lclint:
106         lclint $(DEFS) $(INCLUDES) rpmqv.c $(rpmb_SOURCES) \
107                 `make -s sources -C build` \
108                 `make -s sources -C lib` \
109                 `make -s sources -C rpmdb` \
110                 `make -s sources -C rpmio` \
111                 `make -s sources -C beecrypt` \
112                 `make -s sources -C popt`
113
114 CVSTAG = r$(subst .,-,$(VERSION))
115
116 pkgsrcdir = $(prefix)/src/$(RPMCANONVENDOR)
117
118 install-data-local:
119         @$(mkinstalldirs) $(DESTDIR)$(varprefix)/lib/rpm
120         @rm -f $(DESTDIR)$(libdir)/rpmrc
121         @@LN_S@ rpm/rpmrc $(DESTDIR)$(libdir)/rpmrc
122         @rm -f $(DESTDIR)$(libdir)/rpmpopt
123         @@LN_S@ rpm/rpmpopt $(DESTDIR)$(libdir)/rpmpopt
124         @rm -f $(DESTDIR)$(libdir)/rpm/rpmt
125         @@LN_S@ rpmb $(DESTDIR)$(libdir)/rpm/rpmt
126         @rm -f $(DESTDIR)$(libdir)/rpm/rpme
127         @@LN_S@ rpmi $(DESTDIR)$(libdir)/rpm/rpme
128         @rm -f $(DESTDIR)$(libdir)/rpm/rpmu
129         @@LN_S@ rpmi $(DESTDIR)$(libdir)/rpm/rpmu
130         @rm -f $(DESTDIR)$(libdir)/rpm/rpmv
131         @@LN_S@ rpmq $(DESTDIR)$(libdir)/rpm/rpmv
132         rm -f $(DESTDIR)$(bindir)/rpmbuild
133         @LN_S@ ../lib/rpm/rpmb $(DESTDIR)$(bindir)/rpmbuild
134         rm -f $(DESTDIR)$(bindir)/rpmquery
135         @LN_S@ ../lib/rpm/rpmq $(DESTDIR)$(bindir)/rpmquery
136         rm -f $(DESTDIR)$(bindir)/rpmverify
137         @LN_S@ ../lib/rpm/rpmv $(DESTDIR)$(bindir)/rpmverify
138         rm -f $(DESTDIR)$(bindir)/rpmsign
139         @LN_S@ ../lib/rpm/rpmk $(DESTDIR)$(bindir)/rpmsign
140         rm -f $(DESTDIR)$(bindir)/rpmdb ; \
141         @LN_S@ ../lib/rpm/rpmd $(DESTDIR)$(bindir)/rpmdb ; \
142         for bf in e i u ; do \
143             rm -f $(DESTDIR)$(bindir)/rpm$$bf ; \
144             @LN_S@ ../lib/rpm/rpm$$bf $(DESTDIR)$(bindir)/rpm$$bf ; \
145         done
146         @for dir in BUILD RPMS SOURCES SPECS SRPMS ; do\
147             $(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/$$dir;\
148         done
149         @case "@host_cpu@" in \
150         *86)    $(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/RPMS/i386 ;\
151                 $(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/RPMS/i486 ;\
152                 $(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/RPMS/i586 ;\
153                 $(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/RPMS/i686 ;\
154                 $(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/RPMS/athlon ;;\
155         alpha*) $(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/RPMS/alpha ;\
156                 $(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/RPMS/alphaev6 ;;\
157         sparc*) $(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/RPMS/sparc ;\
158                 $(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/RPMS/sparcv9 ;\
159                 $(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/RPMS/sparc64 ;;\
160         ia64*)  $(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/RPMS/ia64 ;;\
161         s390*)  $(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/RPMS/s390 ;;\
162         mipsel*) $(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/RPMS/mipsel ;;\
163         mips*)  $(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/RPMS/mips ;;\
164         powerpc*) $(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/RPMS/ppc ;\
165                 $(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/RPMS/ppc64 ;;\
166         *)      $(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/RPMS/@host_cpu@ ;;\
167         esac
168         $(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/RPMS/noarch
169         @case "@host_os@" in \
170         mint) $(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/RPMS/m68kmint ;;\
171         solaris*|linux*) \
172            chmod u+x ./installplatform; DESTDIR="$(DESTDIR)" pkglibdir="$(pkglibdir)" ./installplatform rpmrc macros platform ;; \
173         esac
174         @$(mkinstalldirs) $(DESTDIR)/var/tmp
175
176 .PHONY: setperms
177 setperms:
178         @for f in $(rpmbin_PROGRAMS) ; do\
179             $(__CHOWN) ${RPMUSER}.${RPMGROUP} $(DESTDIR)$(rpmbindir)/$$f ;\
180             $(__CHMOD) g+s $(DESTDIR)$(rpmbindir)/$$f ;\
181         done
182         @for f in $(bin_PROGRAMS) ; do\
183             $(__CHOWN) ${RPMUSER}.${RPMGROUP} $(DESTDIR)$(bindir)/$$f ;\
184         done
185         @for f in $(pkglib_PROGRAMS) ; do\
186             $(__CHOWN) ${RPMUSER}.${RPMGROUP} $(DESTDIR)$(pkglibdir)/$$f ;\
187             $(__CHMOD) g+s $(DESTDIR)$(pkglibdir)/$$f ;\
188         done
189         @for f in $(pkglib_SCRIPTS) ; do\
190             $(__CHOWN) ${RPMUSER}.${RPMGROUP} $(DESTDIR)$(pkglibdir)/$$f ;\
191         done
192         @$(__CHOWN) ${RPMUSER}.${RPMGROUP} $(DESTDIR)$(pkglibdir)
193         @$(__CHOWN) -R ${RPMUSER}.${RPMGROUP} $(DESTDIR)$(varprefix)/lib/rpm
194         -@$(__CHMOD) 0664 $(DESTDIR)$(varprefix)/lib/rpm/[A-Z]*
195         -@$(__CHMOD) 0775 $(DESTDIR)$(varprefix)/lib/rpm
196         -@$(__CHMOD) 0664 $(DESTDIR)$(varprefix)/lib/rpm/__db.*
197
198 .PHONY: unsetgid
199 unsetgid:
200         @for f in $(rpmbin_PROGRAMS) ; do\
201             $(__CHMOD) g-s $(DESTDIR)$(rpmbindir)/$$f ;\
202         done
203         @for f in $(pkglib_PROGRAMS) ; do\
204             $(__CHMOD) g-s $(DESTDIR)$(pkglibdir)/$$f ;\
205         done
206
207 .PHONY: tar
208 tar:
209         rm -rf /tmp/rpm-$(VERSION)
210         $(MAKE) DESTDIR=/tmp/rpm-$(VERSION) install
211         cd /tmp/rpm-$(VERSION) ; tar cvf /tmp/rpm-$(VERSION).tar .
212
213 .PHONY: noconfig
214 noconfig:
215         find . -name "Makefile" -exec rm {} \; 
216         rm -f *gz *rpm config.*
217
218 .PHONY: archive
219 archive: 
220         @cvs -d `cat CVS/Root` diff 2>&1 > /dev/null || { \
221             echo " " ; \
222             echo "==> Please resolve differences between the repository and" ; \
223             echo "==> your rpm check out before tagging." ; \
224             echo " " ; \
225             cvs -n up ; \
226             echo " " ; \
227             exit 1 ; \
228         }
229         @cvs -d `cat CVS/Root` -Q tag -F $(CVSTAG) .
230         @make dist
231         @echo " "
232         @echo "The final archive is ./rpm-$(VERSION).tar.gz."
233
234 .PHONY: nextsrpm
235 nextsrpm: all archive
236         @sudo ./rpm -ta rpm-$(VERSION).tar.gz
237
238 .PHONY: doxygen
239 doxygen @WITH_APIDOCS_TARGET@: Doxyfile
240         rm -rf $@
241         mkdir -p $@
242         - [ X"@__DOXYGEN@" != Xno ] && @__DOXYGEN@
243
244 ctags:
245         find . -type f -name "*.[ch]*" | xargs @CTAGS@
246
247 cscope:
248         @CSCOPE@ -b -R
249
250 cref: ctags cscope