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