X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=Makefile;h=7ac58d486c3ca803f07223c50c68dd0a218d17ba;hb=98be442ee8a2b8b7e0802b604e384d5a2c43282e;hp=2cd2342a55ff36c894dac6182ae8f12ea930bd1b;hpb=a80847d86a8865a78fdbebe7f9e2533f7a74e010;p=musl diff --git a/Makefile b/Makefile index 2cd2342a..7ac58d48 100644 --- a/Makefile +++ b/Makefile @@ -36,6 +36,7 @@ CFLAGS_ALL_SHARED = $(CFLAGS_ALL) -fPIC -DSHARED AR = $(CROSS_COMPILE)ar RANLIB = $(CROSS_COMPILE)ranlib +INSTALL = ./tools/install.sh ARCH_INCLUDES = $(wildcard arch/$(ARCH)/bits/*.h) ALL_INCLUDES = $(sort $(wildcard include/*.h include/*/*.h) $(GENH) $(ARCH_INCLUDES:arch/$(ARCH)/%=include/%)) @@ -80,15 +81,36 @@ include/bits/alltypes.h: include/bits/alltypes.h.in include/alltypes.h.in tools/ src/ldso/dynlink.lo: arch/$(ARCH)/reloc.h +crt/crt1.o crt/Scrt1.o: $(wildcard arch/$(ARCH)/crt_arch.h) + +crt/Scrt1.o: CFLAGS += -fPIC + OPTIMIZE_SRCS = $(wildcard $(OPTIMIZE_GLOBS:%=src/%)) $(OPTIMIZE_SRCS:%.c=%.o) $(OPTIMIZE_SRCS:%.c=%.lo): CFLAGS += -O3 +MEMOPS_SRCS = src/string/memcpy.c src/string/memmove.c src/string/memcmp.c src/string/memset.c +$(MEMOPS_SRCS:%.c=%.o) $(MEMOPS_SRCS:%.c=%.lo): CFLAGS += $(CFLAGS_MEMOPS) + +# This incantation ensures that changes to any subarch asm files will +# force the corresponding object file to be rebuilt, even if the implicit +# rule below goes indirectly through a .sub file. +define mkasmdep +$(dir $(patsubst %/,%,$(dir $(1))))$(notdir $(1:.s=.o)): $(1) +endef +$(foreach s,$(wildcard src/*/$(ARCH)*/*.s),$(eval $(call mkasmdep,$(s)))) + +%.o: $(ARCH)$(ASMSUBARCH)/%.sub + $(CC) $(CFLAGS_ALL_STATIC) -c -o $@ $(dir $<)$(shell cat $<) + %.o: $(ARCH)/%.s $(CC) $(CFLAGS_ALL_STATIC) -c -o $@ $< %.o: %.c $(GENH) $(IMPH) $(CC) $(CFLAGS_ALL_STATIC) -c -o $@ $< +%.lo: $(ARCH)$(ASMSUBARCH)/%.sub + $(CC) $(CFLAGS_ALL_SHARED) -c -o $@ $(dir $<)$(shell cat $<) + %.lo: $(ARCH)/%.s $(CC) $(CFLAGS_ALL_SHARED) -c -o $@ $< @@ -120,25 +142,22 @@ tools/musl-gcc: config.mak chmod +x $@ $(DESTDIR)$(bindir)/%: tools/% - install -D $< $@ + $(INSTALL) -D $< $@ $(DESTDIR)$(libdir)/%.so: lib/%.so - install -D -m 755 $< $@ + $(INSTALL) -D -m 755 $< $@ $(DESTDIR)$(libdir)/%: lib/% - install -D -m 644 $< $@ + $(INSTALL) -D -m 644 $< $@ $(DESTDIR)$(includedir)/bits/%: arch/$(ARCH)/bits/% - install -D -m 644 $< $@ + $(INSTALL) -D -m 644 $< $@ $(DESTDIR)$(includedir)/%: include/% - install -D -m 644 $< $@ - -$(DESTDIR)$(LDSO_PATHNAME): $(DESTDIR)$(syslibdir) - ln -sf $(libdir)/libc.so $@ || true + $(INSTALL) -D -m 644 $< $@ -$(DESTDIR)$(syslibdir): - install -d -m 755 $(DESTDIR)$(syslibdir) +$(DESTDIR)$(LDSO_PATHNAME): $(DESTDIR)$(libdir)/libc.so + $(INSTALL) -D -l $(libdir)/libc.so $@ || true install-libs: $(ALL_LIBS:lib/%=$(DESTDIR)$(libdir)/%) $(if $(SHARED_LIBS),$(DESTDIR)$(LDSO_PATHNAME),)