chiark / gitweb /
[PATCH] klibc: update v0.205
[elogind.git] / klibc / Makefile
1 VERSION := $(shell cat version)
2 SUBDIRS = klibc ash ipconfig nfsmount utils kinit gzip
3 SRCROOT = .
4
5 all:
6
7 rpmbuild = $(shell which rpmbuild 2>/dev/null || which rpm)
8
9 klibc.spec: klibc.spec.in version
10         sed -e 's/@@VERSION@@/$(VERSION)/g' < $< > $@
11
12 .PHONY: rpm
13 rpm: klibc.spec
14         +$(rpmbuild) -bb klibc.spec --target=$(ARCH)
15
16 $(CROSS)klibc.config: Makefile
17         rm -f $@
18         echo 'ARCH=$(ARCH)' >> $@
19         echo 'CROSS=$(CROSS)' >> $@
20         echo "CC=$(shell bash -c 'type -p $(CC)')" >> $@
21         echo "LD=$(shell bash -c 'type -p $(LD)')" >> $@
22         echo 'REQFLAGS=$(filter-out -I%,$(REQFLAGS))' >> $@
23         echo 'OPTFLAGS=$(OPTFLAGS)' >> $@
24         echo 'LDFLAGS=$(LDFLAGS)' >> $@
25         echo "STRIP=$(shell bash -c 'type -p $(STRIP)')" >> $@
26         echo 'STRIPFLAGS=$(STRIPFLAGS)' >> $@
27         echo 'EMAIN=$(EMAIN)' >> $@
28         echo 'BITSIZE=$(BITSIZE)' >> $@
29         echo 'INSTALLDIR=$(INSTALLDIR)' >> $@
30
31 $(CROSS)klcc: klcc.in $(CROSS)klibc.config makeklcc.pl
32         $(PERL) makeklcc.pl klcc.in $(CROSS)klibc.config \
33                 $(shell bash -c 'type -p $(PERL)') > $@ || ( rm -f $@ ; exit 1 )
34         chmod a+x $@
35
36 %: local-%
37         @set -e; for d in $(SUBDIRS); do $(MAKE) -C $$d $@; done
38
39 local-all: $(CROSS)klcc
40
41 local-clean:
42         rm -f klibc.config klcc
43
44 local-spotless:
45         rm -f klibc.spec *~ tags
46
47 local-install: $(CROSS)klcc
48         mkdir -p $(INSTALLROOT)$(bindir)
49         mkdir -p $(INSTALLROOT)$(mandir)/man1
50         mkdir -p $(INSTALLROOT)$(SHLIBDIR)
51         mkdir -p $(INSTALLROOT)$(INSTALLDIR)
52         -rm -rf $(INSTALLROOT)$(INSTALLDIR)/$(CROSS)include
53         mkdir -p $(INSTALLROOT)$(INSTALLDIR)/$(CROSS)include
54         mkdir -p $(INSTALLROOT)$(INSTALLDIR)/$(CROSS)lib
55         mkdir -p $(INSTALLROOT)$(INSTALLDIR)/$(CROSS)bin
56         set -xe ; for d in linux asm asm-generic ; do \
57           mkdir -p $(INSTALLROOT)$(INSTALLDIR)/$(CROSS)include/$$d ; \
58           cp -rfL $(KRNLSRC)/include/$$d/.  $(INSTALLROOT)$(INSTALLDIR)/$(CROSS)include/$$d/. ; \
59           cp -rfL $(KRNLOBJ)/include/$$d/.  $(INSTALLROOT)$(INSTALLDIR)/$(CROSS)include/$$d/. ; \
60           [ ! -d $(KRNLOBJ)/include2/$$d ] || \
61             cp -rfL $(KRNLOBJ)/include2/$$d/. $(INSTALLROOT)$(INSTALLDIR)/$(CROSS)include/$$d/. ; \
62         done
63         cp -rf include/. $(INSTALLROOT)$(INSTALLDIR)/$(CROSS)include/.
64         $(INSTALL_DATA) klcc.1 $(INSTALLROOT)$(mandir)/man1/$(CROSS)klcc.1
65         $(INSTALL_EXEC) $(CROSS)klcc $(INSTALLROOT)$(bindir)
66
67 -include MCONFIG