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