X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=klibc%2FMakefile;h=e634aaccb58ad5a734a3939aaa0fdf2db1946df4;hb=57d782bf1e8313e65579a8faa9671a8e5ffecb2f;hp=8823a33bfd94e51b0f6e2edb3ae62e79a283a29e;hpb=c39f31e51d37feb711252cb580683a665db7af33;p=elogind.git diff --git a/klibc/Makefile b/klibc/Makefile index 8823a33bf..e634aaccb 100644 --- a/klibc/Makefile +++ b/klibc/Makefile @@ -1,5 +1,6 @@ VERSION := $(shell cat version) -SUBDIRS = klibc +SUBDIRS = klibc ash ipconfig nfsmount utils kinit gzip +SRCROOT = . all: @@ -12,12 +13,65 @@ klibc.spec: klibc.spec.in version rpm: klibc.spec +$(rpmbuild) -bb klibc.spec --target=$(ARCH) -%: - @set -e; for d in $(SUBDIRS); do $(MAKE) -C $$d $@; done +$(CROSS)klibc.config: Makefile + rm -f $@ + echo 'ARCH=$(ARCH)' >> $@ + echo 'CROSS=$(CROSS)' >> $@ + echo 'KCROSS=$(KCROSS)' >> $@ + echo 'CC=$(CC)' >> $@ + echo 'LD=$(LD)' >> $@ + echo 'REQFLAGS=$(filter-out -I%,$(REQFLAGS))' >> $@ + echo 'OPTFLAGS=$(OPTFLAGS)' >> $@ + echo 'LDFLAGS=$(LDFLAGS)' >> $@ + echo 'STRIP=$(STRIP)' >> $@ + echo 'STRIPFLAGS=$(STRIPFLAGS)' >> $@ + echo 'EMAIN=$(EMAIN)' >> $@ + echo 'BITSIZE=$(BITSIZE)' >> $@ + echo 'prefix=$(INSTALLDIR)' >> $@ + echo 'bindir=$(INSTALLDIR)/$(KCROSS)bin' >> $@ + echo 'libdir=$(INSTALLDIR)/$(KCROSS)lib' >> $@ + echo 'includedir=$(INSTALLDIR)/$(KCROSS)include' >> $@ -clean: - @set -e; for d in $(SUBDIRS); do $(MAKE) -C $$d $@; done +$(CROSS)klcc: klcc.in $(CROSS)klibc.config makeklcc.pl + $(PERL) makeklcc.pl klcc.in $(CROSS)klibc.config \ + $(shell bash -c 'type -p $(PERL)') > $@ || ( rm -f $@ ; exit 1 ) + chmod a+x $@ -spotless: +%: local-% @set -e; for d in $(SUBDIRS); do $(MAKE) -C $$d $@; done + +local-all: $(CROSS)klcc + +local-clean: + rm -f klibc.config klcc + +local-spotless: local-clean rm -f klibc.spec *~ tags + +local-install: $(CROSS)klcc + mkdir -p $(INSTALLROOT)$(bindir) + mkdir -p $(INSTALLROOT)$(mandir)/man1 + mkdir -p $(INSTALLROOT)$(SHLIBDIR) + mkdir -p $(INSTALLROOT)$(INSTALLDIR) + -rm -rf $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)include + mkdir -p $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)include + mkdir -p $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)lib + mkdir -p $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)bin + set -xe ; for d in linux scsi asm-$(ARCH) asm-generic $(ASMARCH); do \ + mkdir -p $(INSTALLROOT)$(INSTALLDIR)/$(CROSS)include/$$d ; \ + for r in $(KRNLSRC)/include $(KRNLOBJ)/include $(KRNLOBJ)/include2 ; do \ + [ ! -d $$r/$$d ] || \ + cp -rfL $$r/$$d/. $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)include/$$d/. ; \ + done ; \ + done + cd $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)include && ln -sf asm-$(ARCH) asm + cp -rf include/. $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)include/. + $(INSTALL_DATA) klcc.1 $(INSTALLROOT)$(mandir)/man1/$(KCROSS)klcc.1 + $(INSTALL_EXEC) $(KCROSS)klcc $(INSTALLROOT)$(bindir) + +# This does all the prep work needed to turn a freshly exported git repository +# into a release tarball tree +release: klibc.spec + rm -f maketar.sh + +-include MCONFIG