improved test for rpm
[platform/upstream/rpm.git] / Makefile.in
1 include Makefile.inc
2
3 srcdir= @srcdir@
4
5 INSTALL= @INSTALL@
6 INSTALL_PROGRAM = @INSTALL_PROGRAM@
7 INSTALL_DATA = @INSTALL_DATA@
8 #LIBEFENCE = -lefence
9
10 #DEBUG = -g
11 installprefix=$(ROOT)
12
13 #LIBEFENCE = -lefence
14
15 RCSVERSION = $(subst .,-,$(VERSION))
16
17 ################################### Leave this stuff alone
18
19 ### These are variables meant to be exported
20
21 VPATH = $(srcdir)
22 WARNINGS = -Wall -Wpointer-arith -Wstrict-prototypes -Wmissing-prototypes 
23
24 BINDIR=$(prefix)/bin
25 RPMBINDIR=$(subst usr/bin,bin,$(BINDIR))
26 MANDIR=$(prefix)/man/man8
27 LIBDIR=$(libdir)
28 INCDIR=$(prefix)/include/rpm
29 ETCDIR=$(ROOT)/etc
30 NLSDIR=$(prefix)/lib/locale
31 NLSPACKAGE=rpm
32
33 # -----------------------------------------------------------------------
34
35 SUBDIRS = misc lib build tools @PO@
36 INSTSUBDIRS = lib @PO@
37 OTHERSUBDIRS = docs autodeps
38 OBJS = rpm.o query.o install.o verify.o checksig.o ftp.o url.o @GETTEXTSTUB@
39 PROGS = @RPM@ rpm2cpio
40 LOADLIBES = -lbuild -lrpm @LIBMISC@ @LIBS@ @ZLIB@ @LIBINTL@ @LIBSOCKET@ @LIBDL@
41
42 ifeq (.depend,$(wildcard .depend))
43 TARGET=everything
44 else
45 TARGET=depend everything
46 endif
47
48 all: $(TARGET)
49
50 rpm: lib/librpm.a build/libbuild.a $(OBJS)
51         $(CC) -o rpm -static $(LDFLAGS) $(OBJS) $(LOADLIBES) \
52                 $(LIBEFENCE)
53
54 rpm.shared: lib/librpm.a build/libbuild.a $(OBJS)
55         $(CC) -o rpm.shared $(LDFLAGS) $(OBJS) $(LOADLIBES) \
56                 $(LIBEFENCE)
57
58 rpm2cpio: lib/librpm.a rpm2cpio.o
59         $(CC) -o rpm2cpio $(LDFLAGS) rpm2cpio.o $(LOADLIBES) 
60
61 rpm.o: rpm.c query.h install.h lib/rpmlib.h Makefile
62         $(CC) $(CFLAGS) -DNLSPACKAGE=\"$(NLSPACKAGE)\" -DNLSDIR=\"$(NLSDIR)\" \
63                 -c $(srcdir)/rpm.c
64
65 # these rules should be in here, but they drive me batty
66 #Makefile: Makefile.in misc/Makefile.in lib/Makefile.in build/Makefile.in \
67           #tools/Makefile.in po/Makefile.in config.status
68         #sh ./config.status
69
70 #config.status: configure
71         #sh ./config.status --recheck
72
73 #configure: configure.in
74         #cd $(srcdir); autoconf
75
76 everything: make-subdirs $(PROGS)
77
78 make-subdirs:
79         for d in $(SUBDIRS); do \
80                 (cd $$d; $(MAKE)) \
81                   || case "$(MFLAGS)" in *k*) fail=yes;; *) exit 1;; esac;\
82         done && test -z "$$fail"
83
84 newtree:
85         rm -f RCS
86         ln -sf /usr/rhs/RCS/rpm-2.0 RCS
87         for d in $(SUBDIRS) $(OTHERSUBDIRS); do \
88                 mkdir -p $$d ;\
89                 (cd $$d; rm -f RCS; ln -sf /usr/rhs/RCS/rpm-2.0/$$d RCS) \
90                   || case "$(MFLAGS)" in *k*) fail=yes;; *) exit 1;; esac;\
91         done && test -z "$$fail"
92
93 $(PROGS): $(OBJS)
94
95 install: all
96         $(INSTALL) -m 755 -o 0 -g 0 -d $(installprefix)/$(RPMBINDIR)
97         $(INSTALL) -m 755 -o 0 -g 0 -d $(installprefix)/$(BINDIR)
98         $(INSTALL) -m 755 -o 0 -g 0 -d $(installprefix)/$(MANDIR)
99         $(INSTALL) -m 755 -o 0 -g 0 -d $(installprefix)/$(ETCDIR)
100         $(INSTALL) -m 755 -o 0 -g 0 -d $(installprefix)/$(LIBDIR)
101         if [ -x ./rpm ]; then \
102             $(INSTALL) -s -m 755 -o 0 -g 0 rpm $(installprefix)/$(RPMBINDIR); \
103         else \
104             $(INSTALL) -s -m 755 -o 0 -g 0 rpm.shared $(installprefix)/$(RPMBINDIR)/rpm; \
105         fi
106         $(INSTALL) -m 755 -o 0 -g 0 $(srcdir)/gendiff $(installprefix)/$(BINDIR)
107         $(INSTALL) -m 755 -o 0 -g 0 $(srcdir)/find-provides.sh $(installprefix)/$(BINDIR)/find-provides
108         $(INSTALL) -m 755 -o 0 -g 0 $(srcdir)/find-requires.sh $(installprefix)/$(BINDIR)/find-requires
109         $(INSTALL) -s -m 755 -o 0 -g 0 rpm2cpio $(installprefix)/$(BINDIR)
110         $(INSTALL) -m 644 -o 0 -g 0 $(srcdir)/rpm.8 $(installprefix)/$(MANDIR)
111         $(INSTALL) -m 644 -o 0 -g 0 $(srcdir)/rpm2cpio.8 $(installprefix)/$(MANDIR)
112         $(INSTALL) -m 644 -o 0 -g 0 $(srcdir)/lib-rpmrc $(installprefix)/$(LIBDIR)/rpmrc
113         (cd lib; $(MAKE) LIBDIR=$(installprefix)/$(LIBDIR) INCDIR=$(installprefix)/$(INCDIR) install)
114         for d in $(INSTSUBDIRS); do \
115                 (cd $$d; $(MAKE) NLSDIR=$(installprefix)/$(NLSDIR) LIBDIR=$(installprefix)/$(LIBDIR) INCDIR=$(installprefix)/$(INCDIR) install) ;\
116         done
117
118 .PHONY:         clean
119 clean:
120         for d in $(SUBDIRS); do \
121                 (cd $$d; $(MAKE) $@) ;\
122         done
123         rm -f *.a *.o core *~ $(PROGS) rpm.shared
124         find . -name core -exec rm {} \;
125
126 .PHONY:         distclean
127 distclean:      
128         for d in $(SUBDIRS); do \
129                 (cd $$d; $(MAKE) $@) ;\
130         done
131         rm -f *.a *.o core *~ $(PROGS) rpm.shared librpmrc
132         rm -f .depend Makefile Makefile.inc config.h config.cache config.status config.log
133
134
135 .PHONY:         depend
136 depend:
137         $(CPP) $(CFLAGS) -M $(srcdir)/*.c > .depend
138         for d in $(SUBDIRS); do \
139                 (cd $$d; $(MAKE) $@) ;\
140         done
141
142 co:
143         co RCS/*,v
144         for d in $(SUBDIRS) $(OTHERSUBDIRS); do \
145                 (cd $$d; co RCS/*,v) ;\
146         done
147
148 noconfig:
149         find . -name "Makefile" -exec rm {} \; 
150         rm -f *gz *rpm config.*
151
152 rcstag:
153         rcs -q -N$(RCSVERSION): RCS/*,v
154         for d in $(SUBDIRS) $(OTHERSUBDIRS); do \
155                 (cd $$d; rcs -q -N$(RCSVERSION): RCS/*,v) ;\
156         done
157
158 archive: rcstag
159         @echo " "
160         @echo "I hope you checked everything out and made sure it builds"
161         @echo "maybe someday Erik will get around to making that automatic."
162         @sleep 5
163         @rm -rf /tmp/rpm-$(VERSION)
164         @mkdir /tmp/rpm-$(VERSION)
165         @tar cSpf - * | (cd /tmp/rpm-$(VERSION); tar xSpf -)
166         @cd /tmp/rpm-$(VERSION); \
167             make distclean; \
168             rm -f *.tar.gz; \
169             find . -name "RCS" -exec rm {} \;
170         @cd /tmp; tar czSpf rpm-$(VERSION).tar.gz rpm-$(VERSION)
171         @rm -rf /tmp/rpm-$(VERSION)
172         @cp /tmp/rpm-$(VERSION).tar.gz .
173         @rm -f /tmp/rpm-$(VERSION).tar.gz 
174         @echo " "
175         @echo "The final archive is ./rpm-$(VERSION).tar.gz."
176
177 ifeq (.depend,$(wildcard .depend))
178 include .depend
179 endif