chiark / gitweb /
volume_id: provide libvolume_id.a file
[elogind.git] / klibc / klibc / Makefile
index 8a9a68bcf78a28b3b7ece4d31b4e691f2a38ef93..dff813fc59a938b2be6caf9951714e6f3c1ab459 100644 (file)
@@ -7,6 +7,8 @@
 # Include configuration rules
 include MCONFIG
 
+INCLUDE += -I./zlib
+
 TESTS   = $(patsubst %.c,%,$(wildcard tests/*.c)) \
          $(patsubst %.c,%.shared,$(wildcard tests/*.c))
 LIBOBJS = vsnprintf.o snprintf.o vsprintf.o sprintf.o \
@@ -47,10 +49,17 @@ LIBOBJS = vsnprintf.o snprintf.o vsprintf.o sprintf.o \
          inet/inet_ntoa.o inet/inet_aton.o inet/inet_addr.o \
          inet/inet_ntop.o inet/inet_pton.o inet/bindresvport.o \
          send.o recv.o
+
 ifeq ($(ERRLIST),1)
 LIBOBJS += errlist.o
 endif
 
+ifeq ($(ZLIB),1)
+LIBOBJS += zlib/adler32.o zlib/compress.o zlib/crc32.o zlib/gzio.o \
+          zlib/uncompr.o zlib/deflate.o zlib/trees.o zlib/zutil.o \
+          zlib/inflate.o zlib/infback.o zlib/inftrees.o zlib/inffast.o
+endif
+
 SOLIB   = libc.so
 SOHASH  = klibc.so
 
@@ -79,12 +88,12 @@ tests/testvsnp.o : tests/testvsnp.c
 tests/% : tests/%.o $(LIB) $(CRT0)
        $(LD) $(LDFLAGS) -o $@ $(CRT0) $< $(LIB) $(LIBGCC)
        cp $@ $@.stripped
-       $(STRIP) $@.stripped
+       $(STRIPCMD) $@.stripped
 
 tests/%.shared : tests/%.o interp.o $(SOLIB)
        $(LD) $(LDFLAGS) -o $@ $(EMAIN) interp.o tests/$*.o -R $(SOLIB) $(LIBGCC)
        cp $@ $@.stripped
-       $(STRIP) $@.stripped
+       $(STRIPCMD) $@.stripped
 
 $(LIB): __static_init.o $(LIBOBJS) $(ARCHOBJS) syscalls/static.obj socketcalls/static.obj
        rm -f $(LIB)
@@ -107,7 +116,7 @@ $(SOLIB).hash: $(SOLIB) sha1hash
 
 $(SOHASH): $(SOLIB) $(SOLIB).hash
        cp -f $(SOLIB) $@
-       $(STRIP) $@
+       $(STRIPCMD) $@
        rm -f klibc-??????????????????????.so
        ln -f $@ klibc-`cat $(SOLIB).hash`.so
 
@@ -130,18 +139,20 @@ syscalls.nrs: ../include/sys/syscall.h
        $(CC) $(CFLAGS) -Wp,-dM -x c -E -o $@ $<
 
 syscalls.dir: SYSCALLS.i syscalls.pl arch/$(ARCH)/sysstub.ph syscommon.h syscalls.nrs
-       rm -rf syscalls
-       mkdir syscalls
-       $(PERL) syscalls.pl SYSCALLS.i $(ARCH) $(BITSIZE) syscalls.nrs ../include/klibc/havesyscall.h
+       rm -f syscalls/*.[Ssco] syscalls/*.obj
+       mkdir -p syscalls
+       $(PERL) syscalls.pl SYSCALLS.i arch/$(ARCH)/sysstub.ph $(ARCH) \
+               $(BITSIZE) syscalls.nrs \
+               syscalls ../include/klibc/havesyscall.h
        touch $@
 
 ../include/klibc/havesyscall.h: syscalls.dir
        : Generated by side effect
 
 socketcalls.dir: SOCKETCALLS.def socketcalls.pl socketcommon.h
-       rm -rf socketcalls
-       mkdir socketcalls
-       $(PERL) socketcalls.pl SOCKETCALLS.def $(ARCH)
+       rm -f socketcalls/*.[Ssco] socketcalls/*.obj
+       mkdir -p socketcalls
+       $(PERL) socketcalls.pl SOCKETCALLS.def $(ARCH) socketcalls
        touch $@
 
 %/static.obj: %.dir
@@ -156,8 +167,8 @@ clean: archclean
        find . -type f -a \( -name \*.[isoa] -o -name \*.l[iso] \) -print0 | xargs -0rt rm -f
        rm -f *.a *.so *.hash *.syms *.stripped
        rm -f $(TESTS) tests/*.stripped
-       rm -rf syscalls syscalls.dir
-       rm -rf socketcalls socketcalls.dir
+       rm -f syscalls/*.[Ssco] syscalls/*.obj syscalls.dir
+       rm -f socketcalls/*.[Ssco] socketcalls/*.obj socketcalls.dir
        rm -f sha1hash errlist.c
 
 spotless: clean
@@ -168,6 +179,14 @@ spotless: clean
 bitsize:
        @echo $(BITSIZE)
 
+install: all
+       $(INSTALL_DATA) $(LIB) $(SOLIB) $(CRT0) $(INTERP_O) \
+               $(INSTALLROOT)$(INSTALLDIR)/$(CROSS)lib
+       $(INSTALL_EXEC) klibc-`cat $(SOLIB).hash`.so \
+               $(INSTALLROOT)$(INSTALLDIR)/$(CROSS)lib
+       $(INSTALL_EXEC) klibc-`cat $(SOLIB).hash`.so \
+               $(INSTALLROOT)/$(SHLIBDIR)
+
 ifneq ($(wildcard $(DIR).*.d),)
 include $(wildcard $(DIR).*.d)
 endif